Logs on 2022-06-05 (liberachat/#haskell)
| 00:01:35 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 00:03:42 | → | vysn joins (~vysn@user/vysn) |
| 00:05:46 | → | slack1256 joins (~slack1256@191.126.99.196) |
| 00:12:52 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 00:13:39 | → | dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) |
| 00:16:36 | × | finsternis quits (~X@23.226.237.192) (Read error: Connection reset by peer) |
| 00:19:34 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 00:20:27 | → | calleum_ joins (~calleum@user/calleum) |
| 00:21:21 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 00:22:00 | → | mvk joins (~mvk@2607:fea8:5ce3:8500::ba9a) |
| 00:28:53 | × | aeka quits (~aeka@2606:6080:1001:16:3492:5f11:f1fb:66ae) (Quit: ZNC 1.8.2 - https://znc.in) |
| 00:29:46 | → | aeka joins (~aeka@user/hiruji) |
| 00:35:06 | × | dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 258 seconds) |
| 00:36:07 | → | bluesman joins (~bluesman@92.223.85.241) |
| 00:39:09 | → | sebastiandb joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) |
| 00:45:16 | <Bulby[m]> | why is pattern synonyms saying non exhastive for this |
| 00:45:35 | <Bulby[m]> | wait |
| 00:46:32 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds) |
| 00:46:34 | <Bulby[m]> | https://paste.tomsmeding.com/XHXTf6is |
| 00:46:46 | × | koolazer quits (~koo@user/koolazer) (Read error: Connection reset by peer) |
| 00:47:35 | × | waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 260 seconds) |
| 00:47:37 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 00:48:04 | <Bulby[m]> | `FunDecl' name args stmt` is equivilant to `FunDecl name (FunInfo args stmts)` imo |
| 00:48:21 | <Bulby[m]> | so idk why it's saying `FunDecl _ _` isn't accounted for |
| 00:53:09 | → | machinedgod joins (~machinedg@173.255.16.193) |
| 00:54:50 | <Bulby[m]> | ah, that's what the complete pragma is for |
| 00:59:12 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 01:05:28 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) |
| 01:06:04 | × | vysn quits (~vysn@user/vysn) (Quit: WeeChat 3.4) |
| 01:15:12 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 272 seconds) |
| 01:16:01 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) |
| 01:18:12 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 276 seconds) |
| 01:20:04 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 01:21:42 | × | sebastiandb quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 244 seconds) |
| 01:22:30 | × | gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 240 seconds) |
| 01:24:56 | × | TonyStone quits (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) (Ping timeout: 258 seconds) |
| 01:24:57 | × | slack1256 quits (~slack1256@191.126.99.196) (Read error: Connection reset by peer) |
| 01:25:29 | → | slack1256 joins (~slack1256@186.11.9.42) |
| 01:25:39 | × | Chargen quits (~chargen@D964062A.static.ziggozakelijk.nl) (Quit: Leaving) |
| 01:25:40 | → | TonyStone joins (~TonyStone@2603-7080-8607-c36a-2d91-707e-31c1-4661.res6.spectrum.com) |
| 01:27:17 | × | bluesman quits (~bluesman@92.223.85.241) (Remote host closed the connection) |
| 01:32:50 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 01:37:35 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds) |
| 01:51:03 | → | andrey_ joins (~andrey@p200300dbcf441800b9e8ee91347c2731.dip0.t-ipconnect.de) |
| 01:53:35 | × | andrey__ quits (~andrey@p508d5c0f.dip0.t-ipconnect.de) (Ping timeout: 255 seconds) |
| 01:54:52 | × | slack1256 quits (~slack1256@186.11.9.42) (Remote host closed the connection) |
| 02:01:27 | × | machinedgod quits (~machinedg@173.255.16.193) (Ping timeout: 260 seconds) |
| 02:22:30 | × | td_ quits (~td@94.134.91.175) (Ping timeout: 240 seconds) |
| 02:24:39 | → | td_ joins (~td@muedsl-82-207-238-061.citykom.de) |
| 02:24:47 | × | Kaiepi quits (~Kaiepi@156.34.47.253) (Ping timeout: 260 seconds) |
| 02:24:50 | → | prolic joins (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) |
| 02:26:11 | <prolic> | good evening, I'm back with yet another noob question |
| 02:26:17 | <prolic> | I hope somebody can help out |
| 02:26:19 | <prolic> | https://pastebin.com/UAV70431 |
| 02:27:30 | <dsal> | I'm not sure I'd call that noob if you're using ExistentialQuantification and RankNTypes to try to do impredicative polymorphism |
| 02:27:59 | <prolic> | that's only by accident :) |
| 02:28:37 | <prolic> | What I really want is, pass a callback along and store it in a data type |
| 02:28:53 | → | Tubo[m] joins (~tuboshion@2001:470:69fc:105::2:2385) |
| 02:30:21 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 276 seconds) |
| 02:32:04 | <glguy> | prolic: You'll need to switch RelayHandler to be a newtype |
| 02:34:42 | <prolic> | can you give me an example? because this throws a parse error |
| 02:35:03 | <glguy> | I can't see your screen; what did you try? |
| 02:36:20 | <prolic> | this here works: `data RelayHandler = forall i . Typeable i => RelayHandler (i -> SubscriptionId -> Event -> i)` |
| 02:36:29 | <prolic> | but I don't know how to pattern match this then |
| 02:36:52 | <glguy> | newtype RelayHandler = RelayHandler (forall i . Typeable i => i -> SubscriptionId -> Event -> i) |
| 02:37:46 | <glguy> | and you'll need RankNTypes enabled for that |
| 02:38:19 | <prolic> | ok, let me try, I need to update some functions then |
| 02:39:05 | → | sebastiandb joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) |
| 02:42:58 | <prolic> | WTF, this stuff compiles |
| 02:43:00 | <prolic> | thanks man! |
| 02:43:35 | <prolic> | also I don't need this nasty `ExistentialQuantification` anymore |
| 02:44:10 | <prolic> | I still fear at the end the overall thing makes no sense, lol - still learning a lot |
| 02:46:32 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:46:32 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:46:32 | finn_elija | is now known as FinnElija |
| 02:48:30 | <glguy> | prolic: It's not much more nasty than rankntypes but no, you don't need it for this |
| 02:49:51 | <glguy> | what you wrote means "There's a type i but all I will tell you about it is that it implements Typeable and here's a function that works on that type. Since it's a typeable a way to make one would be to try and use Data.Typeable.cast |
| 02:49:51 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 276 seconds) |
| 02:49:59 | <glguy> | maybe that's what you meant? |
| 02:50:22 | <glguy> | What I wrote means that you have a function that works for all types 'i' that implement Typeable |
| 02:51:08 | <prolic> | exactly |
| 02:51:21 | <prolic> | I don't know the concrete implementation in this module |
| 02:51:53 | <prolic> | but I want to reuse it in several places |
| 02:55:41 | → | prolic49 joins (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) |
| 02:55:55 | <prolic49> | ups, disconnected |
| 02:56:48 | → | bilegeek joins (~bilegeek@2600:1008:b029:39c1:dac7:1cba:79d3:5e29) |
| 02:59:18 | × | prolic quits (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) (Ping timeout: 252 seconds) |
| 03:00:28 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 03:01:00 | → | yaroot_ joins (~yaroot@11.70.30.125.dy.iij4u.or.jp) |
| 03:03:04 | prolic49 | is now known as prolic |
| 03:04:10 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds) |
| 03:04:24 | × | yaroot quits (~yaroot@2409:12:ac0:2300:680e:dbff:fe1e:4953) (Ping timeout: 248 seconds) |
| 03:04:24 | yaroot_ | is now known as yaroot |
| 03:06:24 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 03:21:51 | → | CoolerX joins (~user@user/coolerx) |
| 03:25:20 | × | prolic quits (~prolic@2803:2a00:2c0f:b96d:4824:1a8a:743e:8926) (Ping timeout: 252 seconds) |
| 03:26:54 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds) |
| 03:27:45 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds) |
| 03:32:29 | × | Tubo[m] quits (~tuboshion@2001:470:69fc:105::2:2385) (Quit: Reconnecting) |
| 03:32:44 | → | Tubo[m] joins (~tubogram@user/tubogram) |
| 03:33:51 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 03:36:39 | × | Topsi quits (~Topsi@dyndsl-095-033-091-150.ewe-ip-backbone.de) (Ping timeout: 276 seconds) |
| 03:50:30 | → | nate3 joins (~nate@98.45.169.16) |
| 03:56:34 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 03:56:44 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 258 seconds) |
| 03:58:01 | × | img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in) |
| 04:04:06 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 04:12:30 | → | img joins (~img@user/img) |
| 04:13:40 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 04:15:54 | → | dextaa joins (~DV@user/dextaa) |
| 04:20:52 | × | lagash quits (lagash@lagash.shelltalk.net) (Ping timeout: 248 seconds) |
| 04:21:43 | → | Kaiepi joins (~Kaiepi@156.34.47.253) |
| 04:21:44 | → | hsw_ joins (~hsw@112-104-144-236.adsl.dynamic.seed.net.tw) |
| 04:22:01 | → | Hash joins (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) |
| 04:22:28 | × | stoned quits (~Hash@tunnel686959-pt.tunnel.tserv15.lax1.ipv6.he.net) (Ping timeout: 248 seconds) |
| 04:22:39 | × | flukiluke quits (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) (Ping timeout: 240 seconds) |
| 04:22:58 | → | flukiluke joins (~m-7humut@2603:c023:c000:6c7e:8945:ad24:9113:a962) |
| 04:22:59 | × | hsw quits (~hsw@2001-b030-2303-0104-0172-0025-0012-0132.hinet-ip6.hinet.net) (Ping timeout: 252 seconds) |
| 04:26:21 | → | kayvank joins (~user@52-119-115-185.PUBLIC.monkeybrains.net) |
| 04:29:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 04:32:34 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 04:33:31 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 04:34:53 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 04:36:03 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 04:43:45 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 04:44:43 | → | takuan joins (~takuan@178.116.218.225) |
| 04:46:32 | × | kayvank quits (~user@52-119-115-185.PUBLIC.monkeybrains.net) (Remote host closed the connection) |
| 04:49:08 | → | mbuf joins (~Shakthi@171.61.227.202) |
| 04:54:50 | × | vglfr quits (~vglfr@coupling.penchant.volia.net) (Ping timeout: 240 seconds) |
| 04:55:26 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 05:01:09 | × | ente quits (~daemon@inferno.barfooze.de) (Ping timeout: 276 seconds) |
| 05:01:48 | → | lagash joins (lagash@lagash.shelltalk.net) |
| 05:06:29 | → | Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net) |
| 05:07:52 | <EvanR> | I have Finding Success and Failure (The Joy of Haskell) in the mail |
| 05:07:58 | <EvanR> | er, just came in |
| 05:09:02 | → | andrey__ joins (~andrey@p508d5b66.dip0.t-ipconnect.de) |
| 05:11:27 | × | andrey_ quits (~andrey@p200300dbcf441800b9e8ee91347c2731.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 05:15:17 | × | zebrag quits (~chris@user/zebrag) (Read error: Connection reset by peer) |
| 05:24:04 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 05:31:30 | → | nate3 joins (~nate@98.45.169.16) |
| 05:41:29 | → | vglfr joins (~vglfr@46.96.165.160) |
| 05:43:33 | × | raym quits (~raym@user/raym) (Ping timeout: 246 seconds) |
| 05:43:40 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 05:44:22 | → | raym joins (~raym@user/raym) |
| 05:45:53 | → | dextaa joins (~DV@user/dextaa) |
| 05:53:37 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 05:56:20 | × | calleum_ quits (~calleum@user/calleum) (Ping timeout: 258 seconds) |
| 06:00:21 | × | vglfr quits (~vglfr@46.96.165.160) (Ping timeout: 246 seconds) |
| 06:03:24 | <sm> | 🎉 |
| 06:04:26 | → | CoolerX joins (~user@user/coolerx) |
| 06:06:42 | → | odnes joins (~odnes@5-203-225-191.pat.nym.cosmote.net) |
| 06:08:57 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 06:10:30 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 06:10:43 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 06:11:27 | → | coot joins (~coot@213.134.190.95) |
| 06:18:11 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds) |
| 06:18:46 | → | CoolerX_ joins (~user@user/coolerx) |
| 06:20:01 | <CoolerX_> | i |
| 06:20:03 | <CoolerX_> | Hi |
| 06:20:19 | <CoolerX_> | how does aeson tojson encode stuff? |
| 06:20:33 | <CoolerX_> | example https://bpa.st/WV6Q |
| 06:20:50 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 240 seconds) |
| 06:21:30 | <CoolerX_> | looking at the types that it is encoding I am not sure where it got that particular json structure from https://github.com/koalaman/shellcheck/blob/master/src/ShellCheck/AST.hs#L42-L145 |
| 06:21:55 | <CoolerX_> | especially all the "contents" keys |
| 06:34:39 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 06:39:58 | × | hgolden quits (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) (Remote host closed the connection) |
| 06:41:53 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:43:20 | → | hgolden joins (~hgolden2@cpe-172-251-233-141.socal.res.rr.com) |
| 06:46:03 | → | vglfr joins (~vglfr@coupling.penchant.volia.net) |
| 06:59:12 | × | cheater quits (~Username@user/cheater) (Ping timeout: 258 seconds) |
| 07:11:33 | → | cheater joins (~Username@user/cheater) |
| 07:11:34 | → | acidjnk joins (~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de) |
| 07:25:16 | → | CoolerX joins (~user@user/coolerx) |
| 07:26:35 | × | CoolerX_ quits (~user@user/coolerx) (Ping timeout: 255 seconds) |
| 07:29:09 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 07:30:52 | → | dextaa joins (~DV@user/dextaa) |
| 07:31:01 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 258 seconds) |
| 07:32:22 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:32:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection) |
| 07:33:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 07:34:05 | → | fetsorn joins (~fetsorn@46.71.112.209) |
| 07:34:29 | × | fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection) |
| 07:36:10 | × | zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection) |
| 07:37:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 255 seconds) |
| 07:39:15 | → | zaquest joins (~notzaques@5.130.79.72) |
| 07:41:07 | → | ente joins (~daemon@inferno.barfooze.de) |
| 07:41:20 | → | alp joins (~alp@user/alp) |
| 07:42:27 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 07:43:00 | → | alp joins (~alp@user/alp) |
| 07:44:07 | × | alp quits (~alp@user/alp) (Remote host closed the connection) |
| 07:45:27 | × | mvk quits (~mvk@2607:fea8:5ce3:8500::ba9a) (Ping timeout: 240 seconds) |
| 07:45:41 | → | fendor joins (~fendor@77.119.163.245.wireless.dyn.drei.com) |
| 07:52:05 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 07:52:53 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 07:57:10 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 07:57:59 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 07:58:10 | × | xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 240 seconds) |
| 08:03:41 | → | xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp) |
| 08:08:01 | → | CoolerX joins (~user@user/coolerx) |
| 08:09:51 | × | bilegeek quits (~bilegeek@2600:1008:b029:39c1:dac7:1cba:79d3:5e29) (Quit: Leaving) |
| 08:16:20 | → | Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) |
| 08:20:42 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds) |
| 08:29:30 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 244 seconds) |
| 08:32:11 | → | nate3 joins (~nate@98.45.169.16) |
| 08:35:07 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 08:36:57 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 08:37:45 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:41:14 | → | calleum_ joins (~calleum@user/calleum) |
| 08:42:39 | × | acidjnk quits (~acidjnk@pd9e0b3b9.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 08:45:09 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz) |
| 08:47:20 | × | fendor quits (~fendor@77.119.163.245.wireless.dyn.drei.com) (Quit: Leaving) |
| 08:58:54 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 08:59:02 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 08:59:48 | × | kwshi quits (~kwshi@096-040-102-060.biz.spectrum.com) (Quit: Connection closed) |
| 09:00:09 | × | AdityaAlok[m] quits (~mradityaa@2001:470:69fc:105::1:ee36) (Quit: You have been kicked for being idle) |
| 09:00:09 | × | amesgen[m] quits (~amesgenm]@2001:470:69fc:105::82b) (Quit: You have been kicked for being idle) |
| 09:00:10 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 240 seconds) |
| 09:02:30 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 09:02:32 | → | chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:a086:3f3d:4abf:7826) |
| 09:05:56 | → | _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl) |
| 09:09:20 | × | mbuf quits (~Shakthi@171.61.227.202) (Quit: Leaving) |
| 09:16:34 | × | Chai-T-Rex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 240 seconds) |
| 09:17:22 | × | dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 250 seconds) |
| 09:18:05 | → | Chai-T-Rex joins (~ChaiTRex@user/chaitrex) |
| 09:20:58 | × | chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:a086:3f3d:4abf:7826) (Ping timeout: 272 seconds) |
| 09:25:28 | → | Pickchea joins (~private@user/pickchea) |
| 09:29:17 | → | Midjak joins (~Midjak@82.66.147.146) |
| 09:38:18 | <gentauro> | hey, what is the name of the rule in LC that remove `x` on both sides. Sample: `foo x = bar x` => `foo = bar`? |
| 09:38:21 | <gentauro> | I kind of forgot xD |
| 09:39:21 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds) |
| 09:40:26 | → | CoolerX joins (~user@user/coolerx) |
| 09:43:01 | × | odnes quits (~odnes@5-203-225-191.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 09:43:03 | → | odnes_ joins (~odnes@5-203-225-191.pat.nym.cosmote.net) |
| 09:43:50 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds) |
| 09:45:23 | → | coot joins (~coot@213.134.190.95) |
| 09:45:39 | <c_wraith> | eta conversion |
| 09:45:47 | → | janus78 joins (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl) |
| 09:46:22 | <gentauro> | c_wraith: you are right -> https://wiki.haskell.org/Eta_conversion |
| 09:46:23 | <gentauro> | thx |
| 09:50:28 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 09:51:43 | → | coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) |
| 09:54:37 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds) |
| 09:56:06 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: Textual IRC Client: www.textualapp.com) |
| 09:58:38 | <CoolerX> | Hi |
| 09:58:44 | <CoolerX> | I get this error in VSCode Project requires HLS but it isn't installed |
| 09:59:04 | <CoolerX> | It has a button "Install HLS" that takes you to https://www.haskell.org/ghcup/ |
| 09:59:26 | <CoolerX> | I already have stack installed |
| 09:59:30 | <CoolerX> | stack ghc |
| 09:59:34 | <CoolerX> | stack ghci |
| 10:00:21 | <CoolerX> | How do you get VSCode to use Stack instead of GHCup? |
| 10:01:07 | <CoolerX> | I am using this extension https://marketplace.visualstudio.com/items?itemName=haskell.haskell |
| 10:01:44 | <maerwald[m]> | CoolerX: What do you mean with "instead"? |
| 10:03:09 | <maerwald[m]> | The extension support stack via ghcup just fine |
| 10:03:18 | <CoolerX> | hm |
| 10:03:27 | <CoolerX> | isn't ghcup an alternative to staack? |
| 10:03:35 | <arahael> | CoolerX: No? |
| 10:03:45 | <CoolerX> | stack has its own installer |
| 10:03:56 | <arahael> | CoolerX: Many things have their own installer. |
| 10:04:02 | <CoolerX> | https://docs.haskellstack.org/en/stable/README/#how-to-install |
| 10:04:14 | <CoolerX> | yeah so what is ghcup doing? |
| 10:04:15 | × | calleum_ quits (~calleum@user/calleum) (Ping timeout: 256 seconds) |
| 10:04:25 | <CoolerX> | it's an alternative way to install |
| 10:06:07 | <[exa]> | ghcup is for installing the "haskell platform", basically ghc + cabal to get you running on any system. Stack does a bazillion of extra things (it does its own package management, installs a few own versions of ghc likely along with their own HLS and ide integrations) so a bit of mess is I'd say expectable |
| 10:06:10 | <maerwald[m]> | Ghcup can install stack too |
| 10:06:28 | <maerwald[m]> | Read https://github.com/haskell/vscode-haskell#setting-a-specific-toolchain |
| 10:06:36 | <CoolerX> | $ haskell-language-server-wrapper |
| 10:06:36 | <CoolerX> | -bash: haskell-language-server-wrapper: command not found |
| 10:06:56 | <CoolerX> | $ stack haskell-language-server-wrapper |
| 10:06:57 | <CoolerX> | Invalid argument `haskell-language-server-wrapper' |
| 10:07:01 | <CoolerX> | hmmm |
| 10:07:10 | <maerwald[m]> | You probably want this https://paste.tomsmeding.com/LH4oGpB2 |
| 10:07:31 | <maerwald[m]> | This causes the extension to only manage HLS and nothing else |
| 10:07:45 | <CoolerX> | stack install haskell-language-server |
| 10:07:57 | <CoolerX> | https://www.reddit.com/r/haskell/comments/qm9lra/stack_dependency_hell/ |
| 10:08:08 | <maerwald[m]> | Read https://github.com/haskell/vscode-haskell#stackcabalghc-can-not-be-found |
| 10:09:12 | <CoolerX> | maerwald[m]: that talks about GHCup |
| 10:09:15 | <CoolerX> | "Also make sure GHCup is installed and in $PATH. If you're not starting VSCode from the terminal, you might need to add ${HOME}/.ghcup/bin to PATH like so: |
| 10:09:18 | <CoolerX> | " |
| 10:09:30 | <maerwald[m]> | CoolerX: yes |
| 10:09:35 | <CoolerX> | I don't need GHCup I have ghc, cabal, etc |
| 10:09:38 | → | dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com) |
| 10:09:45 | <maerwald[m]> | The extension uses ghcup to install HLS |
| 10:09:57 | <maerwald[m]> | rtfm |
| 10:10:31 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 10:10:50 | <maerwald[m]> | I sent you links that emplain how to make the extension only install HLS, reas them |
| 10:10:58 | <maerwald[m]> | *read |
| 10:11:07 | <CoolerX> | I don't want it to install anything |
| 10:11:27 | <CoolerX> | I just want the extension to pick up and use the existing installed versions of ghc, cabal, hls, etc. |
| 10:11:38 | <CoolerX> | it's already installed, don't need double install |
| 10:12:00 | <[exa]> | CoolerX: extensions are usually super-picky about the versions :( |
| 10:12:18 | <CoolerX> | it's the latest version |
| 10:12:26 | <maerwald[m]> | CoolerX: read my links |
| 10:12:34 | <CoolerX> | maerwald[m]: I did |
| 10:12:41 | <maerwald[m]> | It's literally explained there |
| 10:12:43 | <maerwald[m]> | No you didn't |
| 10:13:03 | <CoolerX> | "15:37 < maerwald[m]> You probably want this https://paste.tomsmeding.com/LH4oGpB2" I don't want the extension to manage HLS |
| 10:13:06 | <CoolerX> | 15:37 < maerwald[m]> This causes the extension to only manage HLS and nothing else |
| 10:13:21 | <CoolerX> | why is it managing anything? |
| 10:13:26 | <CoolerX> | that's not i's job |
| 10:13:33 | <CoolerX> | just use the existing things |
| 10:13:36 | <[exa]> | CoolerX: "latest version" may change everyday, they usually go for some kind of LTS |
| 10:13:41 | <maerwald[m]> | https://github.com/haskell/vscode-haskell#downloaded-binaries |
| 10:14:03 | <maerwald[m]> | CoolerX: set haskell.manageHLS to PATT |
| 10:14:05 | <maerwald[m]> | PATH |
| 10:14:13 | <maerwald[m]> | It's explained in the readme |
| 10:14:16 | <CoolerX> | yeah I set that already |
| 10:14:27 | <CoolerX> | it still complains |
| 10:14:43 | <CoolerX> | I think because only stack is on the PATH technically speaking |
| 10:14:49 | <maerwald[m]> | Then thathas nothing to do with the extension but your setup |
| 10:15:55 | <maerwald[m]> | Again: read the readme. It explains how you can point it to a specific hls binary |
| 10:16:05 | <CoolerX> | I thought you said it can pick up and use stack just fine |
| 10:16:35 | <CoolerX> | it has to be through ghcup?? |
| 10:16:43 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:16:47 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 240 seconds) |
| 10:17:16 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 10:17:22 | <maerwald[m]> | No |
| 10:19:15 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 10:21:31 | → | Pickchea joins (~private@user/pickchea) |
| 10:22:51 | <CoolerX> | I guess I have to install ghcup |
| 10:23:01 | <CoolerX> | nothing else works |
| 10:24:18 | <maerwald[m]> | Your hls binaries need to be in PATH |
| 10:26:41 | <CoolerX> | how does hls find packages? |
| 10:27:13 | <CoolerX> | does it look for stack.yaml package.cabal? |
| 10:27:17 | <CoolerX> | package.yaml |
| 10:28:16 | <arahael> | CoolerX: In general, if you want to have a custom setup, you usually need to be sure to read everything as you effectively have a bespoke implementation now. |
| 10:29:11 | <CoolerX> | arahael: I didn't start out with that as a goal |
| 10:29:36 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 10:29:52 | <arahael> | CoolerX: I would probably just follow the instructions - I don't use HLS myself (It's on my todo... eventually...) but I would probably just run with it's default and have it install it's own entirely separate version of everything. |
| 10:30:01 | <CoolerX> | https://www.haskell.org/downloads/ |
| 10:30:05 | <CoolerX> | Stack: a cross-platform program for developing Haskell projects |
| 10:30:19 | <CoolerX> | https://docs.haskellstack.org/en/stable/README/ |
| 10:30:28 | <CoolerX> | https://docs.haskellstack.org/en/stable/README/#how-to-install |
| 10:30:47 | <CoolerX> | that's what I did |
| 10:31:51 | <CoolerX> | if you really want people to follow a particular way of installing and using then keep that as the only option |
| 10:33:33 | <maerwald[m]> | CoolerX: that's what I suggested, but it wasn't accepted |
| 10:33:44 | <maerwald[m]> | Ask the haskell.org committee |
| 10:33:49 | → | nate3 joins (~nate@98.45.169.16) |
| 10:33:53 | × | coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot) |
| 10:33:53 | → | __monty__ joins (~toonn@user/toonn) |
| 10:35:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 10:35:18 | → | coot joins (~coot@213.134.190.95) |
| 10:35:48 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 10:37:04 | <maerwald[m]> | You can rant here https://github.com/haskell-infra/www.haskell.org/issues |
| 10:38:17 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 260 seconds) |
| 10:40:08 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 272 seconds) |
| 10:41:33 | <CoolerX> | ghcup is doing something weird |
| 10:41:43 | <maerwald[m]> | CoolerX: like? |
| 10:41:53 | × | jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds) |
| 10:42:14 | <CoolerX> | op nvm |
| 10:42:20 | <CoolerX> | it just froze for a few minutes |
| 10:42:22 | <CoolerX> | now it finished |
| 10:42:48 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 246 seconds) |
| 10:43:42 | <CoolerX> | Project requires GHCup but it isn't installed |
| 10:43:46 | <CoolerX> | oh ffs |
| 10:44:18 | <maerwald[m]> | CoolerX: https://github.com/haskell/vscode-haskell#stackcabalghc-can-not-be-found |
| 10:44:20 | <CoolerX> | $ ghcup |
| 10:44:20 | <CoolerX> | Missing: COMMAND |
| 10:44:20 | <CoolerX> | Usage: ghcup [(-v|--verbose) | --no-verbose] [(-c|--cache) | --no-cache] |
| 10:44:27 | <CoolerX> | I have it installed and in PATH |
| 10:44:49 | <maerwald[m]> | Yes, but you probably don't stsrt vscode from Terminal |
| 10:45:00 | <maerwald[m]> | GUI programs on linux don't inherit shell path |
| 10:45:12 | <maerwald[m]> | At least not if you use gdm etc |
| 10:45:29 | <CoolerX> | works after restarting twice |
| 10:45:30 | <maerwald[m]> | The link explains how to fix it |
| 10:45:31 | <CoolerX> | vscode |
| 10:45:41 | × | janus78 quits (~janus@84-107-171-239.cable.dynamic.v4.ziggo.nl) (Quit: Client closed) |
| 10:45:53 | <CoolerX> | Multi Cradle: No prefixes matched |
| 10:46:21 | <CoolerX> | it's showing a red line here v |
| 10:46:22 | <CoolerX> | https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/app.hs#L1 |
| 10:46:42 | <maerwald[m]> | CoolerX: https://paste.tomsmeding.com/Ft8HxOzo |
| 10:46:53 | <maerwald[m]> | Add this file as hie.yaml to your project root |
| 10:47:34 | <CoolerX> | hmm https://hackage.haskell.org/package/implicit-hie |
| 10:47:37 | <CoolerX> | what is that? |
| 10:47:44 | <CoolerX> | haskell internal extensions? |
| 10:47:56 | → | gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) |
| 10:48:16 | <arahael> | Haskell IDE Engine, I think. |
| 10:48:37 | <CoolerX> | ok? |
| 10:48:48 | <maerwald[m]> | CoolerX: did you do what I said? |
| 10:49:16 | <CoolerX> | yes |
| 10:49:26 | <maerwald[m]> | Now restart vscode |
| 10:49:49 | <CoolerX> | yeah that works thanks |
| 10:50:22 | <CoolerX> | ok now it complains about not being able to load modules |
| 10:50:36 | <CoolerX> | Could not load module ‘Data.Text’ |
| 10:50:36 | <CoolerX> | It is a member of the hidden package ‘text-1.2.5.0’. |
| 10:50:36 | <CoolerX> | You can run ‘:set -package text’ to expose it. |
| 10:50:38 | <CoolerX> | (Note: this unloads all the modules in the current scope.) |
| 10:50:58 | <CoolerX> | red line on https://github.com/jjhenkel/binnacle-icse2020/blob/master/datasets/2-phase-2-dockerfile-asts/generate/app.hs#L18 |
| 10:51:47 | × | dcoutts__ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 240 seconds) |
| 10:51:56 | <maerwald[m]> | CoolerX: https://www.haskell.org/ghcup/steps/#adding-dependencies |
| 10:53:37 | → | yosef` joins (~user@user/yosef/x-2947716) |
| 10:57:52 | <CoolerX> | maerwald[m]: that's like magic copy paste stuff |
| 10:57:56 | <CoolerX> | doesn't explain much |
| 10:58:31 | <CoolerX> | https://docs.haskellstack.org/en/stable/stack_yaml_vs_cabal_package_file/ |
| 10:59:53 | <maerwald[m]> | CoolerX: copy paste? |
| 11:01:54 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 11:02:02 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 11:02:10 | × | sander quits (~sander@user/sander) (Quit: So long! :)) |
| 11:03:37 | → | sander joins (~sander@user/sander) |
| 11:04:00 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:04:22 | <CoolerX> | maerwald[m]: what does this mean? build-depends: base ^>=4.14.3.0 |
| 11:04:22 | <CoolerX> | , directory |
| 11:04:31 | <CoolerX> | what is base and directory? |
| 11:04:48 | <CoolerX> | what does ^>= mean? |
| 11:05:24 | × | causal quits (~user@50.35.83.177) (Quit: WeeChat 3.5) |
| 11:05:38 | <maerwald[m]> | https://cabal.readthedocs.io/en/stable/cabal-package.html |
| 11:06:14 | <maerwald[m]> | That's the caret operator explained here https://cabal.readthedocs.io/en/stable/cabal-package.html#pkg-field-build-depends |
| 11:06:50 | <maerwald[m]> | ^>= x.y.z.u == >= x.y.z && < x.(y+1) |
| 11:07:10 | × | raym quits (~raym@user/raym) (Ping timeout: 240 seconds) |
| 11:10:37 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 11:13:28 | → | raym joins (~raym@user/raym) |
| 11:16:24 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 11:28:24 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 11:30:38 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:32:31 | → | titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de) |
| 11:38:54 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 11:46:19 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 258 seconds) |
| 11:48:16 | × | yosef` quits (~user@user/yosef/x-2947716) (Quit: ERC (IRC client for Emacs 28.0.50)) |
| 11:50:04 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 11:58:14 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 244 seconds) |
| 11:59:29 | → | acidjnk joins (~acidjnk@p200300d0c7068b769182d16d5e27fb19.dip0.t-ipconnect.de) |
| 12:06:13 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 12:07:42 | → | CoolerX joins (~user@user/coolerx) |
| 12:15:57 | → | unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) |
| 12:19:06 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 12:20:53 | → | lyle joins (~lyle@104.246.145.85) |
| 12:23:12 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:30:12 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 12:32:24 | → | kuribas joins (~user@ptr-17d51en0oz3ua6p75jh.18120a2.ip6.access.telenet.be) |
| 12:32:50 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 12:34:01 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 12:35:01 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 12:37:14 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 12:41:13 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 256 seconds) |
| 12:41:35 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 260 seconds) |
| 12:43:02 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 12:43:45 | → | user1 joins (~user@188.253.237.216) |
| 12:45:54 | × | CoolerX quits (~user@user/coolerx) (Ping timeout: 276 seconds) |
| 12:46:15 | ← | user1 parts (~user@188.253.237.216) () |
| 12:51:15 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 13:03:02 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 13:11:54 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 276 seconds) |
| 13:12:46 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 13:21:30 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b766488324a9f98d1f8.dip0.t-ipconnect.de) |
| 13:25:02 | × | acidjnk quits (~acidjnk@p200300d0c7068b769182d16d5e27fb19.dip0.t-ipconnect.de) (Ping timeout: 244 seconds) |
| 13:25:21 | × | siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in) |
| 13:27:20 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b766488324a9f98d1f8.dip0.t-ipconnect.de) (Ping timeout: 272 seconds) |
| 13:27:24 | → | siers joins (~ij@user/ij) |
| 13:30:27 | × | Kevin578 quits (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) (Ping timeout: 246 seconds) |
| 13:33:13 | → | chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:fb69:f691:39d4:dfaa) |
| 13:35:52 | → | unclechu joins (~unclechu@2001:470:69fc:105::354) |
| 13:36:49 | × | odnes_ quits (~odnes@5-203-225-191.pat.nym.cosmote.net) (Quit: Leaving) |
| 13:37:29 | → | Pickchea joins (~private@user/pickchea) |
| 13:41:31 | × | lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5) |
| 13:42:05 | × | AlexZenon quits (~alzenon@178.34.151.152) (Ping timeout: 258 seconds) |
| 13:42:42 | × | Alex_test quits (~al_test@178.34.151.152) (Ping timeout: 246 seconds) |
| 13:43:31 | → | Alex_test joins (~al_test@178.34.151.152) |
| 13:43:44 | → | AlexZenon joins (~alzenon@178.34.151.152) |
| 13:46:13 | → | nate3 joins (~nate@98.45.169.16) |
| 13:50:16 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 13:50:47 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 13:58:23 | → | epolanski joins (uid312403@id-312403.helmsley.irccloud.com) |
| 14:02:50 | × | siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in) |
| 14:11:26 | → | acidjnk_new joins (~acidjnk@p200300d0c7068b76557c5ebe21773c19.dip0.t-ipconnect.de) |
| 14:13:04 | → | siers joins (~ij@user/ij) |
| 14:13:08 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 258 seconds) |
| 14:23:10 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 240 seconds) |
| 14:25:37 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 14:30:22 | → | dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) |
| 14:30:40 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 272 seconds) |
| 14:34:32 | × | Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 14:35:00 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 14:35:33 | → | Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) |
| 14:38:18 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 14:41:51 | × | sebastiandb quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 246 seconds) |
| 14:42:32 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Ping timeout: 244 seconds) |
| 14:51:19 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 244 seconds) |
| 14:52:50 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 240 seconds) |
| 14:53:57 | × | Pickchea quits (~private@user/pickchea) (Ping timeout: 276 seconds) |
| 14:54:30 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 15:01:15 | × | titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Quit: Leaving.) |
| 15:10:06 | × | shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 250 seconds) |
| 15:24:42 | × | chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:fb69:f691:39d4:dfaa) (Ping timeout: 260 seconds) |
| 15:24:57 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 15:29:36 | → | zebrag joins (~chris@user/zebrag) |
| 15:34:56 | × | acidsys quits (~crameleon@2a03:4000:6:b666:6666::) (Changing host) |
| 15:34:56 | → | acidsys joins (~crameleon@openSUSE/member/crameleon) |
| 15:35:30 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 15:37:45 | × | dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 260 seconds) |
| 15:41:48 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection) |
| 15:48:23 | → | nate3 joins (~nate@98.45.169.16) |
| 15:52:50 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 15:53:53 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 15:57:17 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 256 seconds) |
| 16:01:36 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 16:05:20 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 16:07:25 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 16:08:02 | → | titibandit joins (~thibaut@xdsl-87-78-253-243.nc.de) |
| 16:23:00 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 246 seconds) |
| 16:24:10 | → | DNH joins (~DNH@2a02:8108:1100:16d8:4803:3ca5:63c4:4e9f) |
| 16:26:48 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection) |
| 16:27:04 | → | eggplantade joins (~Eggplanta@108.201.191.115) |
| 16:28:58 | <Bulby[m]> | How would I represent native functions in my interpreter in a Showable way? |
| 16:29:01 | <Bulby[m]> | because using a haskell function doesn't wokr |
| 16:29:36 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds) |
| 16:33:08 | → | Guest12 joins (~Guest12@2605:a601:a615:f600:eda9:6b28:bfe6:17d8) |
| 16:33:51 | × | dolio quits (~dolio@130.44.130.54) (Quit: ZNC 1.8.2 - https://znc.in) |
| 16:34:20 | <Guest12> | I'm about to submit a proposal to make `$` fully levity polymorphic, but I'm still not 100% on the proposals process. Should the `0000` in the name of the proposal be change to something else? |
| 16:35:08 | <Guest12> | (This is for ghc-proposals on Github.) |
| 16:35:38 | → | dolio joins (~dolio@130.44.130.54) |
| 16:36:19 | <Guest12> | (The change is just `($) :: forall ra rb. (a :: TYPE ra) (b :: TYPE rb). (a -> b) -> a -> b ; ($) f = f`.) |
| 16:37:27 | × | eggplantade quits (~Eggplanta@108.201.191.115) (Remote host closed the connection) |
| 16:37:41 | → | coot joins (~coot@213.134.190.95) |
| 16:38:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 16:40:41 | <Guest12> | Guess I'll just submit it and see what happens. |
| 16:40:48 | × | Guest12 quits (~Guest12@2605:a601:a615:f600:eda9:6b28:bfe6:17d8) (Quit: Client closed) |
| 16:42:33 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 16:42:57 | × | coot quits (~coot@213.134.190.95) (Quit: coot) |
| 16:43:40 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 260 seconds) |
| 16:45:28 | <Bulby[m]> | how does polysemy reinterpret work? does it mean I can use the things of the reinterpreted? |
| 17:04:06 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 17:07:43 | × | Alleria quits (~textual@user/alleria) (Read error: Connection reset by peer) |
| 17:08:47 | → | Alleria joins (~textual@user/alleria) |
| 17:09:26 | × | Alleria quits (~textual@user/alleria) (Client Quit) |
| 17:11:15 | → | random-jellyfish joins (~random-je@user/random-jellyfish) |
| 17:16:55 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 17:20:30 | → | econo joins (uid147250@user/econo) |
| 17:24:02 | → | stackdroid18 joins (14094@user/stackdroid) |
| 17:25:31 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 17:25:42 | × | fr-isotope quits (uid556229@id-556229.ilkley.irccloud.com) (Quit: Connection closed for inactivity) |
| 17:26:34 | → | wayfaster joins (~wayfaster@eth-west-pareq2-46-193-4-100.wb.wifirst.net) |
| 17:27:52 | × | foul_owl quits (~kerry@23.82.194.93) (Ping timeout: 244 seconds) |
| 17:33:27 | → | Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) |
| 17:37:36 | × | random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed) |
| 17:40:37 | <maerwald> | is useAsCString/peekCString safe under unsafeDupablePerformIO? |
| 17:42:34 | <c_wraith> | if you're not mutating it, I'd expect it to be completely safe. If you are mutating it, things might get weird depending on some factors. |
| 17:42:41 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 17:43:08 | → | foul_owl joins (~kerry@71.212.150.111) |
| 17:43:13 | → | cheater joins (~Username@user/cheater) |
| 17:43:41 | <maerwald> | It's literally: useAsCString bs $ \cstr -> peekCString utf8 cstr |
| 17:43:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection) |
| 17:44:07 | <maerwald> | I don't think those mutate |
| 17:45:52 | <maerwald> | unsafeDupablePerformIO says that bracket inside is unsafe |
| 17:46:10 | <maerwald> | useAsCString also frees up the cstr after termination of the inner function or when an exception is raised |
| 17:46:16 | <maerwald> | so it seems unsafe to me |
| 17:46:25 | <maerwald> | could lead to the cstr not being freed up |
| 17:46:49 | <maerwald> | "It may even happen that one of the duplicated IO actions is only run partially, and then interrupted in the middle without an exception being raised." |
| 17:51:27 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) |
| 17:52:22 | <c_wraith> | ah, yes. that's a problem |
| 17:52:30 | <c_wraith> | in the memory leak side |
| 17:54:57 | <geekosaur> | I don't think I see why: it's just giving you a Ptr CChar pointing at the innards of a ByteString, right? not sure this can even leak in a way that can escape gc |
| 17:55:02 | <justsomeguy> | I'll be traveling through Ireland and the UK soon, and am thinking of looking for in-person Haskell meetups along the way. Are there any big ones around there? |
| 17:55:52 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Read error: Connection reset by peer) |
| 17:56:45 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 17:57:53 | justsomeguy | is tempted to check out University of Glasgow on his way |
| 17:58:08 | <maerwald> | geekosaur: I'm working with ShortByteString |
| 17:58:13 | <maerwald> | so there's an allocation |
| 17:58:57 | <geekosaur> | is useAsCString safe in that case at all? the original version assumed ByteString which is pinned |
| 17:59:18 | <geekosaur> | would nbeed to be redesigned to prevent a ShortByteString from being gced/moved |
| 18:00:56 | <maerwald> | https://hackage.haskell.org/package/bytestring-0.11.3.1/docs/Data-ByteString-Short-Internal.html#v:useAsCString |
| 18:01:46 | <geekosaur> | yeh, that sounds unsafe |
| 18:02:16 | <maerwald> | geekosaur: shortbytestring is unpinned memory |
| 18:03:08 | <geekosaur[m]> | Yes, I know |
| 18:03:13 | <maerwald> | so what is unsafe here |
| 18:04:43 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:05:22 | × | raym quits (~raym@user/raym) (Ping timeout: 272 seconds) |
| 18:05:42 | <geekosaur[m]> | The copy it makes can fail to be collected in the case where unsafeDupablePerformIO is aborted as you said earlier, without an exception |
| 18:05:49 | → | raym joins (~raym@user/raym) |
| 18:06:01 | <maerwald> | yeah, I thought you're saying it's unsafe outside of unsafeDupablePerformIO |
| 18:07:29 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:07:51 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:08:34 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:08:55 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:09:26 | → | Guest88 joins (~Guest88@77-170-226-23.fixed.kpn.net) |
| 18:09:40 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:09:58 | <maerwald> | that would mean I introduced a bug to bytestring, so my heart stopped for a second :D |
| 18:10:00 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:10:34 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:10:54 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:11:20 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 18:11:41 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:12:21 | × | Guest88 quits (~Guest88@77-170-226-23.fixed.kpn.net) (Client Quit) |
| 18:12:57 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:13:15 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:13:31 | → | Kevin578 joins (~Kevin578@pool-173-76-179-30.bstnma.fios.verizon.net) |
| 18:22:00 | <geekosaur> | no, I was answering your original question which was about using it in unsafeDupablePerformIO |
| 18:22:24 | <geekosaur> | if it were unsafe in general one would have to ask why it existed and didn;t have a bunch of warnings on it |
| 18:25:16 | <c_wraith> | the fact that bracket doesn't work inside unsafeDupablePerformIO is a big footgun. I understand why, but I wouldn't have predicted it. |
| 18:26:56 | → | shapr joins (~user@pool-173-73-44-186.washdc.fios.verizon.net) |
| 18:27:25 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 18:27:59 | × | epolanski quits (uid312403@id-312403.helmsley.irccloud.com) (Quit: Connection closed for inactivity) |
| 18:28:40 | → | stackdroid18 joins (14094@user/stackdroid) |
| 18:31:34 | <maerwald> | can `newCString` fail? (the encoding part from String to ShortByteString) |
| 18:31:40 | <maerwald> | should be total, right? |
| 18:32:13 | <maerwald> | on the other hand, custom TextEncoding's could do whatever |
| 18:33:02 | → | Alleria joins (~textual@user/alleria) |
| 18:33:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 18:33:29 | <maerwald> | I guess the ones provided by GHC.IO.Encoding should be total |
| 18:36:31 | <hpc> | that's just the encoding being total or partial then |
| 18:36:36 | <hpc> | like how ($) is total |
| 18:36:55 | <maerwald> | yeah |
| 18:39:32 | × | AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.2.1) |
| 18:39:41 | → | notzmv joins (~zmv@user/notzmv) |
| 18:40:25 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 18:41:19 | → | AkechiShiro joins (~licht@user/akechishiro) |
| 18:42:55 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 18:44:33 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Remote host closed the connection) |
| 18:44:48 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 18:45:37 | → | alp joins (~alp@user/alp) |
| 18:54:40 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.4) |
| 18:54:46 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Read error: Connection reset by peer) |
| 18:58:18 | <Bulby[m]> | `coerce @(HM.HashMap T.Text LoxValue) @LxEnv (HM.insert k v)` why is coerce being mean ☹️ |
| 18:58:26 | <Bulby[m]> | i am not in the mood to write out a full type signature |
| 18:58:43 | <Bulby[m]> | LxEnv is a newtype around a hashmap |
| 18:59:30 | <geekosaur> | coerce is magical, I'm not sure you get to TypeApplications it |
| 18:59:43 | <Bulby[m]> | ☹️ |
| 19:00:02 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 19:00:16 | <Bulby[m]> | oh, the context is enough for coerce to understand LOL |
| 19:00:19 | <geekosaur> | if the typechecker can't determine that it's a newtype itself, it'll reject it as unsound |
| 19:01:41 | → | dcleonarski joins (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) |
| 19:05:00 | → | nate3 joins (~nate@98.45.169.16) |
| 19:10:18 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 19:11:00 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 246 seconds) |
| 19:12:21 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) |
| 19:21:43 | → | azimut_ joins (~azimut@gateway/tor-sasl/azimut) |
| 19:22:34 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 19:24:24 | × | Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Ping timeout: 258 seconds) |
| 19:25:29 | → | chomwitt joins (~chomwitt@2a02:587:dc0e:3e00:ff2b:b7c:b12a:ef6f) |
| 19:25:46 | → | Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) |
| 19:28:05 | × | hololeap quits (~quassel@user/hololeap) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
| 19:28:23 | → | Oiyqlk joins (~IceChat95@2804:d45:88b7:6700:bccb:9701:17fa:48f) |
| 19:31:30 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 272 seconds) |
| 19:33:31 | → | hololeap joins (~quassel@user/hololeap) |
| 19:35:10 | ← | Oiyqlk parts (~IceChat95@2804:d45:88b7:6700:bccb:9701:17fa:48f) () |
| 19:44:34 | → | pavonia joins (~user@user/siracusa) |
| 19:46:19 | → | odnes joins (~odnes@5-203-234-138.pat.nym.cosmote.net) |
| 19:47:02 | → | slack1256 joins (~slack1256@186.11.17.226) |
| 19:58:14 | → | waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) |
| 19:58:44 | × | slack1256 quits (~slack1256@186.11.17.226) (Ping timeout: 244 seconds) |
| 19:59:48 | → | dsrt^ joins (~dsrt@128-092-183-014.biz.spectrum.com) |
| 20:09:57 | × | AkechiShiro quits (~licht@user/akechishiro) (Quit: WeeChat 3.5) |
| 20:11:30 | × | Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Read error: Connection reset by peer) |
| 20:11:48 | → | AkechiShiro joins (~licht@user/akechishiro) |
| 20:19:26 | → | _xor joins (~xor@72.49.198.103) |
| 20:28:33 | × | _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection) |
| 20:34:04 | × | azimut_ quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 20:37:08 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 20:38:44 | → | fr-isotope joins (uid556229@id-556229.ilkley.irccloud.com) |
| 20:41:43 | × | adium quits (adium@user/adium) (Quit: Stable ZNC by #bnc4you) |
| 20:43:13 | × | stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!) |
| 20:58:54 | → | trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) |
| 21:01:58 | × | alp quits (~alp@user/alp) (Ping timeout: 250 seconds) |
| 21:06:43 | → | nate3 joins (~nate@98.45.169.16) |
| 21:07:56 | × | cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Remote host closed the connection) |
| 21:11:04 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
| 21:12:11 | → | fetsorn joins (~fetsorn@46.71.112.209) |
| 21:12:58 | → | cosimone joins (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) |
| 21:14:03 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Remote host closed the connection) |
| 21:14:26 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 21:14:38 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 21:15:36 | × | fetsorn quits (~fetsorn@46.71.112.209) (Client Quit) |
| 21:16:51 | → | dextaa joins (~DV@user/dextaa) |
| 21:17:08 | × | Midjak quits (~Midjak@82.66.147.146) (Quit: This computer has gone to sleep) |
| 21:17:59 | → | Topsi joins (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) |
| 21:18:47 | → | fetsorn joins (~fetsorn@46.71.112.209) |
| 21:20:44 | → | adium joins (adium@user/adium) |
| 21:22:38 | × | fetsorn quits (~fetsorn@46.71.112.209) (Remote host closed the connection) |
| 21:23:31 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 21:24:23 | × | unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 258 seconds) |
| 21:26:20 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5) |
| 21:26:56 | × | takuan quits (~takuan@178.116.218.225) (Remote host closed the connection) |
| 21:27:23 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 21:29:47 | <Bulby[m]> | in unordered containers, is the representation of lazy vs strict the same? |
| 21:30:08 | <Bulby[m]> | because when switching from strict to lazy it didn't throw a temper tantrum when they mismatched |
| 21:30:46 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 21:31:06 | <geekosaur> | looks like yes |
| 21:31:51 | <geekosaur> | both use Data.Hash*.Internal. Data.Map is similar, the operations differ but the representation is the same |
| 21:31:53 | <Bulby[m]> | hm, switching to lazy didn't fix my issue |
| 21:32:08 | <geekosaur> | what's your issue? |
| 21:32:33 | → | dextaa joins (~DV@user/dextaa) |
| 21:32:43 | × | odnes quits (~odnes@5-203-234-138.pat.nym.cosmote.net) (Quit: Leaving) |
| 21:33:20 | <Bulby[m]> | so the closure in my interpreter is being weird... |
| 21:33:20 | <Bulby[m]> | `fun foo(a) { if (a == 0) then return; else foo(a - 1); }` works |
| 21:33:21 | <Bulby[m]> | but |
| 21:33:30 | <Bulby[m]> | ``` |
| 21:33:30 | × | zebrag quits (~chris@user/zebrag) (Ping timeout: 240 seconds) |
| 21:33:41 | <geekosaur> | also remember that the keys will always be strict because they have to be hashed and compared for anything to happen |
| 21:33:46 | <Bulby[m]> | `fun bar() { var i = 1; fun foo() { print i;} return foo; } bar()();` does not |
| 21:33:50 | → | zebrag joins (~chris@user/zebrag) |
| 21:34:03 | <Bulby[m]> | oh I don't care about keys |
| 21:34:03 | <Bulby[m]> | this is the silly recursive stuff again |
| 21:34:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 21:34:13 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Lox/Evaluate.hs#L40-L43 |
| 21:34:43 | <Bulby[m]> | the closure captures the function itself but not surronding variables |
| 21:34:43 | <Bulby[m]> | which is odd |
| 21:35:12 | <Bulby[m]> | (btw, it's now represented as [LxEnv] and not LxEnv) |
| 21:36:15 | <Bulby[m]> | it tells me it fails to fetch it |
| 21:36:28 | <Bulby[m]> | wait, idea for printing |
| 21:36:34 | <Bulby[m]> | i could print out just the keys |
| 21:37:43 | <geekosaur> | the closure should include the entire `[LxEnv]` from when it was created, not rely on the state (where the `LxEnv`s from both `foo` and `bar` will have been discarded) |
| 21:38:26 | <geekosaur> | discarded by the time you call the `foo` returned by `bar`, that is |
| 21:38:47 | <Bulby[m]> | it does now, right? `get` returns `[LxEnv]` |
| 21:39:13 | <Bulby[m]> | i made a new polysemy effect |
| 21:39:31 | <Bulby[m]> | that is basically a stack state |
| 21:41:27 | <Bulby[m]> | https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/master/src/Polysemy/StackState.hs this is that effect |
| 21:44:40 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 21:45:28 | × | chomwitt quits (~chomwitt@2a02:587:dc0e:3e00:ff2b:b7c:b12a:ef6f) (Ping timeout: 258 seconds) |
| 21:45:57 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 21:47:48 | <geekosaur> | not seeing anything that jumps out at me as wrong , but I'm among other things not very familiar with polysemy |
| 21:48:29 | <Bulby[m]> | how would I go about debugging it? |
| 21:51:09 | <geekosaur> | on function entry print out the full state stack; on defining a function print out the state that's being captured with it. note that if you actually went with static instead of dynamic scope, you may not have the full state at definition time (this is why static is harder than dynamic, although it's saner once you get it to work) |
| 21:51:55 | <geekosaur> | also make sure "running" the `var` declaration adds it to the right state/scope |
| 21:52:38 | <Bulby[m]> | I did go static I think, which is what `getAt` and `assignAt` is |
| 21:54:33 | → | jmdaemon joins (~jmdaemon@user/jmdaemon) |
| 21:56:11 | → | _73 joins (~user@pool-173-76-102-248.bstnma.fios.verizon.net) |
| 21:57:20 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 22:00:45 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:06:34 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:06:41 | <Bulby[m]> | printing, I realize that the internal function isn't initialized until ran |
| 22:08:05 | × | acidjnk_new quits (~acidjnk@p200300d0c7068b76557c5ebe21773c19.dip0.t-ipconnect.de) (Ping timeout: 258 seconds) |
| 22:08:43 | <Bulby[m]> | 😱 |
| 22:08:50 | <Bulby[m]> | the issue was enviroments and scopes weren't lining up |
| 22:09:25 | <Bulby[m]> | there was no `enterBlock` or `exitBlock` around the function, which confused it |
| 22:11:03 | <Bulby[m]> | so now it runs |
| 22:11:08 | × | _73 quits (~user@pool-173-76-102-248.bstnma.fios.verizon.net) (Remote host closed the connection) |
| 22:11:09 | <Bulby[m]> | next task - convert the java test suite to haskell 😄 |
| 22:17:58 | → | zebrag joins (~chris@user/zebrag) |
| 22:18:40 | → | nate3 joins (~nate@98.45.169.16) |
| 22:19:23 | → | machinedgod joins (~machinedg@209.171.85.74) |
| 22:21:08 | × | matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in) |
| 22:22:10 | → | matijja joins (~matijja@193.77.181.201) |
| 22:22:33 | → | calleum_ joins (~calleum@user/calleum) |
| 22:23:04 | × | calleum_ quits (~calleum@user/calleum) (Max SendQ exceeded) |
| 22:23:34 | → | calleum_ joins (~calleum@user/calleum) |
| 22:23:55 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:cd32:9943:3e3c:c96c) (Remote host closed the connection) |
| 22:24:37 | × | quintasan quits (~quassel@quintasan.pl) (Quit: No Ping reply in 180 seconds.) |
| 22:25:56 | → | quintasan joins (~quassel@quintasan.pl) |
| 22:28:49 | × | titibandit quits (~thibaut@xdsl-87-78-253-243.nc.de) (Remote host closed the connection) |
| 22:31:01 | <EvanR> | another "wall of incomplete dysfunctional imperative programming" in #haskell xD |
| 22:31:07 | × | dcleonarski quits (~user@2804:d51:4704:e400:680:84d0:9355:7c5b) (Ping timeout: 260 seconds) |
| 22:31:14 | <Bulby[m]> | sorry |
| 22:31:32 | × | DNH quits (~DNH@2a02:8108:1100:16d8:4803:3ca5:63c4:4e9f) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 22:32:57 | → | alp joins (~alp@user/alp) |
| 22:33:27 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 22:35:45 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds) |
| 22:35:58 | × | dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer) |
| 22:37:02 | × | wayfaster quits (~wayfaster@eth-west-pareq2-46-193-4-100.wb.wifirst.net) (Ping timeout: 252 seconds) |
| 22:38:47 | → | dextaa joins (~DV@user/dextaa) |
| 22:39:15 | → | nate3 joins (~nate@98.45.169.16) |
| 22:42:44 | → | causal joins (~user@50.35.83.177) |
| 22:53:35 | × | hueso quits (~root@user/hueso) (Ping timeout: 255 seconds) |
| 22:54:14 | → | hueso joins (~root@user/hueso) |
| 22:56:44 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 255 seconds) |
| 22:58:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 22:58:38 | <Bulby[m]> | hm, I don't know how to edit the closure, as I don't know where to define |
| 22:59:50 | × | machinedgod quits (~machinedg@209.171.85.74) (Ping timeout: 240 seconds) |
| 23:00:20 | × | trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds) |
| 23:01:08 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:02:10 | → | moonsheep joins (~user@user/moonsheep) |
| 23:02:32 | ← | moonsheep parts (~user@user/moonsheep) () |
| 23:10:18 | → | moonsheep joins (~user@user/moonsheep) |
| 23:10:25 | ← | moonsheep parts (~user@user/moonsheep) (ERC 5.4 (IRC client for GNU Emacs 28.1)) |
| 23:20:11 | → | king_gs joins (~Thunderbi@2806:103e:29:ce73:832b:2b9c:b188:29da) |
| 23:20:12 | × | king_gs quits (~Thunderbi@2806:103e:29:ce73:832b:2b9c:b188:29da) (Client Quit) |
| 23:24:16 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:a007:efa3:2690:a05d) |
| 23:28:52 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:a007:efa3:2690:a05d) (Ping timeout: 250 seconds) |
| 23:31:38 | <Bulby[m]> | nvm, with some wizardry it is possible |
| 23:36:18 | × | dsrt^ quits (~dsrt@128-092-183-014.biz.spectrum.com) (Ping timeout: 246 seconds) |
| 23:41:11 | <Bulby[m]> | oh, the repl also seems to be incapable of carrying over vars |
| 23:41:54 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 23:43:12 | <geekosaur> | repls are complicated |
| 23:44:13 | <Bulby[m]> | it's weird, if it's all on one line it works fine, otherwise it gives up |
| 23:44:44 | → | nate3 joins (~nate@98.45.169.16) |
| 23:44:49 | <geekosaur> | ghci behaves like that under some circumstances |
| 23:45:14 | <geekosaur> | scoping is also more complicated in a repl than in a program, usually |
| 23:45:29 | <Bulby[m]> | yeah, which is why it's having issues |
| 23:45:39 | <hpc> | use :{ and :} for multi-line inputs |
| 23:45:41 | <hpc> | or a file |
| 23:45:47 | <geekosaur> | this is a Lox repl |
| 23:45:52 | <hpc> | ah |
| 23:46:00 | <geekosaur> | I was just using ghci as a comparison of the issues that come up in a repl |
| 23:46:13 | <Bulby[m]> | and yes, `:{` and `:}` are multiline commands |
| 23:47:00 | <Bulby[m]> | it's probably even more problematic than ghci because at least haskell is functional |
| 23:47:12 | × | dkeohane3 quits (~dkeohane@ec2-18-189-29-140.us-east-2.compute.amazonaws.com) (Quit: WeeChat 2.3) |
| 23:47:55 | <geekosaur> | another issue that will come up is if the user redefines something (in particular, a variable) |
| 23:48:04 | × | littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds) |
| 23:48:05 | <geekosaur> | because you may have functions that close over the old definition |
| 23:48:16 | <Bulby[m]> | WAIT |
| 23:48:21 | <geekosaur> | do you discard them? do you let them keep it alive but inaccessible? |
| 23:48:24 | <Bulby[m]> | OH |
| 23:49:01 | <Bulby[m]> | that's going to be a headache |
| 23:49:08 | <geekosaur> | yep |
| 23:49:30 | <Bulby[m]> | >>> fun foo() { var i = 0; fun bar() { print i = i + 1; } return bar; } var baz = foo(); baz(); baz(); |
| 23:49:32 | <Bulby[m]> | 1.0 |
| 23:49:34 | <Bulby[m]> | 1.0 |
| 23:49:37 | <geekosaur> | ghci lets such functions keep the old definition alive |
| 23:49:38 | <Bulby[m]> | oops |
| 23:49:41 | × | nate3 quits (~nate@98.45.169.16) (Ping timeout: 244 seconds) |
| 23:49:42 | → | littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo) |
| 23:49:43 | <Bulby[m]> | i made multiple oopsies |
| 23:49:54 | <Bulby[m]> | fun foo() { var i = 0; fun bar() { print i = i + 1; } return bar; } var baz = foo(); baz(); baz(); |
| 23:49:56 | <Bulby[m]> | 1.0 |
| 23:49:58 | <Bulby[m]> | 2.0 |
| 23:50:00 | <Bulby[m]> | that works |
| 23:50:02 | <Bulby[m]> | but then |
| 23:51:04 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 23:51:04 | <Bulby[m]> | "it works, why" |
| 23:51:10 | <Bulby[m]> | it wasn't working earlier |
| 23:51:14 | <Bulby[m]> | I give up |
| 23:51:48 | <Bulby[m]> | i fail to understand why it works now |
| 23:53:01 | <Bulby[m]> | also, that is an interesting way to write a counter |
| 23:53:09 | <Bulby[m]> | I wonder if that works in other imperative langs |
| 23:54:39 | <geekosaur> | enough that it's a known way to keep a counter that can't be interfered with from outside |
| 23:55:06 | <Bulby[m]> | really? that's cool! I can't believe I didn't know that |
| 23:55:53 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 244 seconds) |
| 23:58:46 | × | Topsi quits (~Topsi@dyndsl-095-033-023-170.ewe-ip-backbone.de) (Ping timeout: 250 seconds) |
| 23:59:26 | <Bulby[m]> | my solution for closures probably won't work if it can't deduce an identifier |
All times are in UTC on 2022-06-05.