Logs on 2021-06-10 (liberachat/#haskell)
| 00:01:21 | → | yd502 joins (~yd502@223.104.210.183) |
| 00:01:26 | → | lavaman joins (~lavaman@98.38.249.169) |
| 00:01:42 | × | xal quits (~xal@2604:3d08:9a80:4c18:2584:dda0:e5c4:dbaf) (Quit: Leaving) |
| 00:03:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 00:04:36 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
| 00:04:56 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 00:05:57 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 252 seconds) |
| 00:06:43 | → | dcoutts_ joins (~duncan@94.186.125.91.dyn.plus.net) |
| 00:09:18 | × | dcoutts quits (~duncan@94.186.125.91.dyn.plus.net) (Ping timeout: 265 seconds) |
| 00:09:41 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 00:11:21 | → | nkatte_ joins (~nkatte@2804:14c:7980:8c9a::3c66) |
| 00:14:07 | → | slashzero joins (~slashzero@pool-71-114-107-11.washdc.fios.verizon.net) |
| 00:16:24 | × | yd502 quits (~yd502@223.104.210.183) (Ping timeout: 252 seconds) |
| 00:18:05 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:21:16 | → | renzhi joins (~xp@2607:fa49:6500:bc00::e7b) |
| 00:22:09 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 00:22:27 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
| 00:24:04 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 00:24:08 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 00:24:45 | <slashzero> | Hi, I'm working through the Simple Haskell Handbook and I'm trying to run `stack test` but for some reason ghc can't find `record-dot-preprocessor` even though it is in my PATH. |
| 00:25:16 | × | nkatte_ quits (~nkatte@2804:14c:7980:8c9a::3c66) (Quit: nkatte_) |
| 00:26:45 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 00:28:51 | <Axman6> | what does that do? it may not be necessary |
| 00:32:10 | <Axman6> | slashzero: and what does `stack exec -- which record-dot-preprocessor` tell you? |
| 00:34:20 | → | asthasr joins (~asthasr@162.210.29.120) |
| 00:36:12 | <slashzero> | https://paste.tomsmeding.com/9mXEdawi |
| 00:36:50 | <Axman6> | ah. nix, yeah I don't know how to help you there, I';ve never used a unix system which doesn't have which... |
| 00:37:40 | × | P1RATEZ quits (piratez@cpe98524ab27125-cm98524ab27123.cpe.net.cable.rogers.com) () |
| 00:37:57 | <geekosaur> | try using: stack exec -- sh -c 'type record-dot-preprocessor' |
| 00:38:06 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 00:39:02 | <geekosaur> | however it looks like it's haskell and its package (same name) should be a setup-depends entry |
| 00:39:22 | <geekosaur> | or whatever stack calls its setup-depends |
| 00:40:59 | <Axman6> | can you not just use the RecordDotSyntax language extension? (We use it all the time in DAML and it's great) |
| 00:43:20 | <slashzero> | I think this is the cause. That `stack exec -- whiich record-dot-preprocessor`command clued me into the fact that stack is building things in an pure environment https://docs.haskellstack.org/en/stable/nix_integration/#the-nix-shell |
| 00:43:34 | → | beka joins (~beka@104.193.170-254.PUBLIC.monkeybrains.net) |
| 00:43:47 | <slashzero> | thanks Axman6 |
| 00:44:41 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 00:45:25 | <slashzero> | that was definitely it. I ran `stack test --no-nix-pure` and it worked. Thanks for helping Axman6 and geekosaur |
| 00:45:44 | <Axman6> | Great |
| 00:52:25 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
| 00:53:03 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 00:53:58 | × | tabemann_ quits (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) (Remote host closed the connection) |
| 00:55:15 | → | tabemann_ joins (~tabemann@172-13-49-137.lightspeed.milwwi.sbcglobal.net) |
| 00:55:44 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 00:56:00 | tabemann_ | is now known as tabemann |
| 00:58:17 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 272 seconds) |
| 01:01:15 | × | Iryon quits (~Iryon@2a02:a31a:a045:3500:5c9:2f58:8faf:5e52) (Remote host closed the connection) |
| 01:02:45 | → | teaSlurper joins (~chris@81.96.113.213) |
| 01:06:59 | → | yd502 joins (~yd502@180.168.212.6) |
| 01:07:00 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Ping timeout: 252 seconds) |
| 01:13:04 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 01:14:08 | → | sekun joins (~sekun@180.190.152.149) |
| 01:15:02 | × | xff0x_ quits (~xff0x@2001:1a81:52c9:6b00:c9ec:1ec0:3ea4:2bb4) (Ping timeout: 266 seconds) |
| 01:16:15 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 01:16:32 | → | xff0x_ joins (~xff0x@2001:1a81:5309:4200:6690:d1a3:e3e9:8847) |
| 01:21:38 | → | Lycurgus joins (~juan@cpe-45-46-140-49.buffalo.res.rr.com) |
| 01:22:32 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 264 seconds) |
| 01:23:17 | × | slashzero quits (~slashzero@pool-71-114-107-11.washdc.fios.verizon.net) (Quit: Client closed) |
| 01:24:20 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 264 seconds) |
| 01:25:47 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 01:29:35 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Read error: Connection reset by peer) |
| 01:29:38 | × | pbrisbin quits (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
| 01:29:40 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 01:32:53 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 01:33:18 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 01:34:25 | → | lavaman joins (~lavaman@98.38.249.169) |
| 01:41:13 | → | yd502_ joins (~yd502@180.168.212.6) |
| 01:41:15 | → | mpt joins (~tom@2a02:908:1862:49e0::5) |
| 01:41:28 | × | Lycurgus quits (~juan@cpe-45-46-140-49.buffalo.res.rr.com) (Quit: Exeunt) |
| 01:44:14 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 245 seconds) |
| 01:45:37 | <Axman6> | @where cph |
| 01:45:37 | <lambdabot> | I know nothing about cph. |
| 01:45:40 | <Axman6> | @where cphih |
| 01:45:40 | <lambdabot> | I know nothing about cphih. |
| 01:46:00 | <Axman6> | @where pacp |
| 01:46:00 | <lambdabot> | I know nothing about pacp. |
| 01:46:04 | <Axman6> | -_- |
| 01:46:48 | × | awth13 quits (~user@user/awth13) (Remote host closed the connection) |
| 01:46:50 | <Axman6> | parallel and concurrent programming in Haskell, where art thou |
| 01:47:21 | <Axman6> | (https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/cover.html apparently) |
| 01:48:38 | <Clint> | so many fish |
| 01:51:02 | → | awth13 joins (~user@185.209.196.143) |
| 01:52:57 | × | awth13 quits (~user@185.209.196.143) (Changing host) |
| 01:52:57 | → | awth13 joins (~user@user/awth13) |
| 01:53:10 | <Axman6> | There aren't enough fish in the C, so we use Haskell >=> |
| 01:54:06 | <Clint> | lambdabot: you should remember that |
| 01:54:13 | × | awth13 quits (~user@user/awth13) (Client Quit) |
| 01:54:31 | <Axman6> | lambdabot can @remember whatever you want |
| 01:54:42 | → | awth13 joins (~user@185.209.196.143) |
| 01:54:59 | <Axman6> | you might be the first person to use on the new network :o |
| 01:55:27 | × | awth13 quits (~user@185.209.196.143) (Changing host) |
| 01:55:27 | → | awth13 joins (~user@user/awth13) |
| 01:55:48 | <ski> | @where PCPH |
| 01:55:48 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
| 01:55:48 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
| 01:56:13 | <Axman6> | <3 ski |
| 01:58:46 | × | awth13 quits (~user@user/awth13) (Client Quit) |
| 01:59:58 | → | awth13 joins (~user@user/awth13) |
| 02:06:56 | → | hammock joins (~Hammock@2600:1700:19a1:3330::625) |
| 02:07:21 | → | adinfinitum joins (~user@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) |
| 02:09:54 | × | derelict quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Ping timeout: 264 seconds) |
| 02:10:25 | → | thyriaen joins (~thyriaen@45.178.73.238) |
| 02:10:42 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 02:12:06 | × | thyriaen quits (~thyriaen@45.178.73.238) (Client Quit) |
| 02:12:31 | → | thyriaen joins (~thyriaen@45.178.73.238) |
| 02:13:24 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 02:23:51 | × | zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!) |
| 02:24:56 | × | shapr quits (~user@pool-100-36-247-68.washdc.fios.verizon.net) (Ping timeout: 264 seconds) |
| 02:26:29 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 02:26:46 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 02:28:26 | → | derelict joins (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) |
| 02:34:12 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 02:35:02 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:35:02 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (mercury.libera.chat (Nickname regained by services))) |
| 02:35:02 | finn_elija | is now known as FinnElija |
| 02:35:27 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 02:37:35 | → | ec joins (~ec@gateway/tor-sasl/ec) |
| 02:38:18 | → | haltux joins (~haltux@a89-154-181-47.cpe.netcabo.pt) |
| 02:41:22 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 02:44:53 | × | trent quits (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 268 seconds) |
| 02:45:49 | × | ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 252 seconds) |
| 02:49:26 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 02:49:52 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 02:53:13 | → | lavaman joins (~lavaman@98.38.249.169) |
| 02:53:22 | × | mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 244 seconds) |
| 02:53:53 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Ping timeout: 244 seconds) |
| 02:57:05 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 02:57:45 | → | notzmv joins (~zmv@user/notzmv) |
| 02:59:31 | → | Toast52 joins (~Toast52@151.192.167.120) |
| 03:05:35 | × | derelict quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Quit: WeeChat 3.1) |
| 03:06:50 | → | nilof joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 03:08:33 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 03:08:55 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 03:19:31 | jackhill_ | is now known as jackhill |
| 03:19:55 | → | mra joins (~morgan@S0106383fb3f42be5.gv.shawcable.net) |
| 03:20:28 | ← | adinfinitum parts (~user@2600:6c40:653f:5f00:a650:d8d7:fe0b:8c1f) (WeeChat 3.0.1) |
| 03:22:40 | → | thiross joins (~user@173.242.113.143.16clouds.com) |
| 03:22:42 | × | mra quits (~morgan@S0106383fb3f42be5.gv.shawcable.net) (Quit: WeeChat 3.1) |
| 03:26:42 | × | myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 252 seconds) |
| 03:27:15 | × | machinedgod quits (~machinedg@135-23-192-217.cpe.pppoe.ca) (Ping timeout: 252 seconds) |
| 03:27:25 | → | wei2912 joins (~wei2912@112.199.250.21) |
| 03:28:00 | ← | ozone parts (ozone@libera/bot/ozone) (Leaving the channel. /invite ozone again if needed) |
| 03:29:01 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 03:29:35 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 03:29:39 | → | P1RATEZ joins (piratez@cpe98524ab27125-cm98524ab27123.cpe.net.cable.rogers.com) |
| 03:30:22 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 265 seconds) |
| 03:30:49 | Lord_of_Life_ | is now known as Lord_of_Life |
| 03:31:06 | × | jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 252 seconds) |
| 03:31:16 | → | yd502 joins (~yd502@180.168.212.6) |
| 03:33:51 | × | yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds) |
| 03:35:44 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 03:42:47 | → | yd502__ joins (~yd502@180.168.212.6) |
| 03:43:28 | × | beka quits (~beka@104.193.170-254.PUBLIC.monkeybrains.net) (Ping timeout: 268 seconds) |
| 03:43:38 | → | AgentM joins (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) |
| 03:44:16 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 03:47:54 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 03:48:20 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 03:48:43 | × | siraben quits (~siraben@user/siraben) (Quit: Reconnecting) |
| 03:49:03 | → | siraben joins (~siraben@user/siraben) |
| 03:49:28 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 03:51:16 | × | nilof quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Read error: Connection reset by peer) |
| 03:51:25 | → | Toast52_ joins (~Toast52@151.192.167.120) |
| 03:52:46 | → | slack1256 joins (~slack1256@191.125.180.163) |
| 03:53:06 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Ping timeout: 264 seconds) |
| 03:54:20 | × | Toast52 quits (~Toast52@151.192.167.120) (Ping timeout: 264 seconds) |
| 03:55:37 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 03:59:33 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:00:20 | × | yd502__ quits (~yd502@180.168.212.6) (Ping timeout: 264 seconds) |
| 04:00:32 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 04:00:36 | → | yd502__ joins (~yd502@180.168.212.6) |
| 04:02:41 | × | sekun quits (~sekun@180.190.152.149) (Remote host closed the connection) |
| 04:03:03 | → | sekun joins (~sekun@180.190.152.149) |
| 04:03:31 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 04:03:44 | → | lavaman joins (~lavaman@98.38.249.169) |
| 04:12:18 | × | thiross quits (~user@173.242.113.143.16clouds.com) (Ping timeout: 264 seconds) |
| 04:16:11 | × | slack1256 quits (~slack1256@191.125.180.163) (Remote host closed the connection) |
| 04:16:26 | → | slack1256 joins (~slack1256@191.125.180.163) |
| 04:17:18 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 252 seconds) |
| 04:19:46 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 04:24:18 | × | renzhi quits (~xp@2607:fa49:6500:bc00::e7b) (Ping timeout: 244 seconds) |
| 04:24:45 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 04:24:56 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 264 seconds) |
| 04:24:56 | → | fresheyeball joins (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) |
| 04:29:24 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
| 04:31:01 | → | alarix joins (~alarix@59.88.30.217) |
| 04:32:03 | × | yd502__ quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 04:34:57 | → | winircuser-254 joins (~winircuse@170.250.221.149) |
| 04:35:57 | × | AgentM quits (~agentm@pool-162-83-130-212.nycmny.fios.verizon.net) (Read error: Connection reset by peer) |
| 04:37:00 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 04:41:37 | × | thyriaen quits (~thyriaen@45.178.73.238) (Quit: Leaving) |
| 04:42:13 | × | winircuser-254 quits (~winircuse@170.250.221.149) (Read error: Connection reset by peer) |
| 04:44:27 | × | oxide_ quits (~lambda@user/oxide) (Ping timeout: 244 seconds) |
| 04:47:11 | × | RohitGoswami[m] quits (~rgoswamim@2001:470:69fc:105::16cc) (Remote host closed the connection) |
| 04:47:11 | × | siraben quits (~siraben@user/siraben) (Read error: Connection reset by peer) |
| 04:47:11 | × | cdepillabout[m] quits (~cdepillab@2001:470:69fc:105::3d3) (Read error: Connection reset by peer) |
| 04:47:11 | × | Drezil quits (~drezilkif@2001:470:69fc:105::7f8) (Read error: Connection reset by peer) |
| 04:47:11 | × | Soft quits (~soft-matr@2001:470:69fc:105::c75) (Read error: Connection reset by peer) |
| 04:47:11 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Read error: Connection reset by peer) |
| 04:47:11 | × | tomferon[m] quits (~tomferon@2001:470:69fc:105::268) (Write error: Connection reset by peer) |
| 04:47:11 | × | eddiemundo quits (~eddiemund@2001:470:69fc:105::a9c) (Remote host closed the connection) |
| 04:47:11 | × | dualinverter[m] quits (~dualinver@2001:470:69fc:105::16a7) (Read error: Connection reset by peer) |
| 04:47:11 | × | bb010g quits (~bb010gmat@2001:470:69fc:105::9a5) (Read error: Connection reset by peer) |
| 04:47:11 | × | hjulle[m] quits (~hjullemat@2001:470:69fc:105::1dd) (Remote host closed the connection) |
| 04:47:11 | × | oak- quits (~oakuniver@2001:470:69fc:105::fcd) (Read error: Connection reset by peer) |
| 04:47:11 | × | autrim64[m] quits (~autrim64m@2001:470:69fc:105::16a1) (Read error: Connection reset by peer) |
| 04:47:11 | × | cdsmith quits (~cdsmithma@2001:470:69fc:105::284) (Remote host closed the connection) |
| 04:47:11 | × | vaibhavsagar[m] quits (~vaibhavsa@2001:470:69fc:105::ffe) (Remote host closed the connection) |
| 04:47:11 | × | Las[m] quits (~lasmatrix@2001:470:69fc:105::74e) (Read error: Connection reset by peer) |
| 04:47:11 | × | Artem[m] quits (~artemtype@2001:470:69fc:105::75b) (Remote host closed the connection) |
| 04:47:11 | × | psydroid quits (~psydroidm@2001:470:69fc:105::165) (Write error: Connection reset by peer) |
| 04:47:11 | × | fabfianda[m] quits (~fabfianda@2001:470:69fc:105::6db) (Remote host closed the connection) |
| 04:47:11 | × | maralorn quits (~maralorn@2001:470:69fc:105::251) (Remote host closed the connection) |
| 04:47:11 | × | fgaz quits (~fgaz@2001:470:69fc:105::842) (Write error: Connection reset by peer) |
| 04:47:11 | × | thedward[m] quits (~thedwardm@2001:470:69fc:105::f79) (Remote host closed the connection) |
| 04:47:11 | × | MatrixTravelerbo quits (~voyagert2@2001:470:69fc:105::22) (Write error: Connection reset by peer) |
| 04:47:11 | × | kadoban quits (~kadoban@user/kadoban) (Write error: Connection reset by peer) |
| 04:47:11 | × | bryan[m] quits (~bchreekat@2001:470:69fc:105::16b5) (Read error: Connection reset by peer) |
| 04:47:11 | × | sm[m] quits (~sm@plaintextaccounting/sm) (Write error: Connection reset by peer) |
| 04:47:11 | × | ac quits (~aloiscoch@2001:470:69fc:105::65) (Write error: Connection reset by peer) |
| 04:47:11 | × | amesgen[m] quits (~amesgenam@2001:470:69fc:105::82b) (Read error: Connection reset by peer) |
| 04:47:11 | × | adziahel[m] quits (~adziahelm@2001:470:69fc:105::b4d) (Read error: Connection reset by peer) |
| 04:47:11 | × | kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Read error: Connection reset by peer) |
| 04:47:11 | × | Morrow[m] quits (~morrowmma@2001:470:69fc:105::1d0) (Read error: Connection reset by peer) |
| 04:47:11 | × | ServerStatsDisco quits (~serversta@2001:470:69fc:105::1a) (Write error: Connection reset by peer) |
| 04:47:11 | × | maerwald[m] quits (~maerwaldm@2001:470:69fc:105::1ee) (Read error: Connection reset by peer) |
| 04:47:11 | × | wallymathieu[m] quits (~wallymath@2001:470:69fc:105::16ae) (Remote host closed the connection) |
| 04:47:11 | × | srid[m] quits (~sridmatri@2001:470:69fc:105::1c2) (Read error: Connection reset by peer) |
| 04:47:11 | × | jophish quits (~jophish@2001:470:69fc:105::670) (Read error: Connection reset by peer) |
| 04:47:11 | × | the-coot[m] quits (~the-cootm@2001:470:69fc:105::95f) (Remote host closed the connection) |
| 04:47:11 | × | peddie quits (~peddie@2001:470:69fc:105::25d) (Remote host closed the connection) |
| 04:47:12 | × | jaror[m] quits (~jaror@2001:470:69fc:105::265) (Remote host closed the connection) |
| 04:47:12 | × | ru0mad[m] quits (~ru0madmat@2001:470:69fc:105::9b2) (Read error: Connection reset by peer) |
| 04:47:45 | → | thedward[m] joins (~thedwardm@2001:470:69fc:105::f79) |
| 04:48:28 | → | ac joins (~aloiscoch@2001:470:69fc:105::65) |
| 04:48:28 | → | sm[m] joins (~sm@plaintextaccounting/sm) |
| 04:48:29 | → | maralorn joins (~maralorn@2001:470:69fc:105::251) |
| 04:48:29 | → | fgaz joins (~fgaz@2001:470:69fc:105::842) |
| 04:48:29 | → | MatrixTravelerbo joins (~voyagert2@2001:470:69fc:105::22) |
| 04:48:29 | → | peddie joins (~peddie@2001:470:69fc:105::25d) |
| 04:48:29 | → | fabfianda[m] joins (~fabfianda@2001:470:69fc:105::6db) |
| 04:48:29 | → | Las[m] joins (~lasmatrix@2001:470:69fc:105::74e) |
| 04:48:29 | → | ServerStatsDisco joins (~serversta@2001:470:69fc:105::1a) |
| 04:48:29 | → | siraben joins (~siraben@user/siraben) |
| 04:48:29 | → | the-coot[m] joins (~the-cootm@2001:470:69fc:105::95f) |
| 04:48:29 | → | psydroid joins (~psydroidm@2001:470:69fc:105::165) |
| 04:48:29 | → | vaibhavsagar[m] joins (~vaibhavsa@2001:470:69fc:105::ffe) |
| 04:48:29 | → | kadoban joins (~kadoban@user/kadoban) |
| 04:48:29 | → | jophish joins (~jophish@2001:470:69fc:105::670) |
| 04:48:40 | → | hjulle[m] joins (~hjullemat@2001:470:69fc:105::1dd) |
| 04:48:40 | → | maerwald[m] joins (~maerwaldm@2001:470:69fc:105::1ee) |
| 04:48:41 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 04:48:41 | → | Drezil joins (~drezilkif@2001:470:69fc:105::7f8) |
| 04:48:41 | → | Artem[m] joins (~artemtype@2001:470:69fc:105::75b) |
| 04:48:41 | → | wallymathieu[m] joins (~wallymath@2001:470:69fc:105::16ae) |
| 04:48:41 | → | cdepillabout[m] joins (~cdepillab@2001:470:69fc:105::3d3) |
| 04:48:41 | → | amesgen[m] joins (~amesgenam@2001:470:69fc:105::82b) |
| 04:48:41 | → | eddiemundo joins (~eddiemund@2001:470:69fc:105::a9c) |
| 04:48:41 | → | Soft joins (~soft-matr@2001:470:69fc:105::c75) |
| 04:48:41 | → | autrim64[m] joins (~autrim64m@2001:470:69fc:105::16a1) |
| 04:48:41 | → | RohitGoswami[m] joins (~rgoswamim@2001:470:69fc:105::16cc) |
| 04:48:41 | → | tomferon[m] joins (~tomferon@2001:470:69fc:105::268) |
| 04:48:41 | → | bb010g joins (~bb010gmat@2001:470:69fc:105::9a5) |
| 04:48:41 | → | srid[m] joins (~sridmatri@2001:470:69fc:105::1c2) |
| 04:48:41 | → | adziahel[m] joins (~adziahelm@2001:470:69fc:105::b4d) |
| 04:48:41 | → | dualinverter[m] joins (~dualinver@2001:470:69fc:105::16a7) |
| 04:48:41 | → | Morrow[m] joins (~morrowmma@2001:470:69fc:105::1d0) |
| 04:48:41 | → | kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d) |
| 04:48:41 | → | bryan[m] joins (~bchreekat@2001:470:69fc:105::16b5) |
| 04:48:42 | → | jaror[m] joins (~jaror@2001:470:69fc:105::265) |
| 04:48:42 | → | oak- joins (~oakuniver@2001:470:69fc:105::fcd) |
| 04:48:43 | → | cdsmith joins (~cdsmithma@2001:470:69fc:105::284) |
| 04:48:43 | → | ru0mad[m] joins (~ru0madmat@2001:470:69fc:105::9b2) |
| 04:54:46 | → | pe200012 joins (~pe200012@120.236.162.10) |
| 05:02:25 | × | juhp quits (~juhp@128.106.188.66) (Quit: juhp) |
| 05:03:19 | × | dan-so quits (~danso@modemcable156.91-20-96.mc.videotron.ca) (Quit: WeeChat 3.1) |
| 05:03:42 | × | Taneb quits (~Taneb@runciman.hacksoc.org) (Quit: I seem to have stopped.) |
| 05:03:53 | × | alex3 quits (~Chel@BSN-77-82-41.static.siol.net) (Ping timeout: 244 seconds) |
| 05:04:08 | → | monochrm joins (trebla@216.138.220.146) |
| 05:04:26 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 05:04:51 | → | juhp joins (~juhp@128.106.188.66) |
| 05:05:05 | × | monochrom quits (trebla@216.138.220.146) (Ping timeout: 272 seconds) |
| 05:05:05 | monochrm | is now known as monochrom |
| 05:05:29 | × | bgamari quits (~bgamari@72.65.101.148) (Ping timeout: 268 seconds) |
| 05:06:33 | × | ptrcmd_ quits (~ptrcmd@user/ptrcmd) (Ping timeout: 272 seconds) |
| 05:07:06 | → | ptrcmd joins (~ptrcmd@user/ptrcmd) |
| 05:07:48 | × | juhp quits (~juhp@128.106.188.66) (Client Quit) |
| 05:08:31 | → | juhp joins (~juhp@128.106.188.66) |
| 05:08:42 | × | Toast52_ quits (~Toast52@151.192.167.120) (Ping timeout: 264 seconds) |
| 05:08:44 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:09:36 | → | bgamari joins (~bgamari@2001:470:e438::1) |
| 05:12:20 | → | yd502__ joins (~yd502@180.168.212.6) |
| 05:13:08 | → | alex3 joins (~Chel@BSN-77-82-41.static.siol.net) |
| 05:18:13 | → | wanagnuj joins (~wanagnuj@101.95.97.158) |
| 05:19:04 | <dibblego> | does anyone happen to know what is appropriate use of the extra argument (:+ p) in creating a polygon given a list of points? https://hackage.haskell.org/package/hgeometry-0.12.0.4/docs/Data-Geometry-Polygon.html#v:fromPoints |
| 05:19:08 | <dibblego> | ping lemmih ^ |
| 05:21:11 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 05:23:34 | <dibblego> | I guess just :+ () and get on widdit? |
| 05:25:42 | <int-e> | or https://hackage.haskell.org/package/hgeometry-combinatorial-0.12.0.3/docs/Data-Ext.html#v:ext |
| 05:30:20 | × | slack1256 quits (~slack1256@191.125.180.163) (Ping timeout: 264 seconds) |
| 05:33:32 | × | yd502__ quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
| 05:33:51 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 05:33:54 | <dibblego> | yeah got it ta, just not sure of its purpose (yet) |
| 05:34:06 | → | yd502 joins (~yd502@180.168.212.6) |
| 05:36:36 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 05:36:53 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 05:41:39 | × | lbseale quits (~lbseale@user/ep1ctetus) (Read error: Connection reset by peer) |
| 05:46:01 | → | Bartosz joins (~textual@24.35.90.211) |
| 05:46:03 | <int-e> | dibblego: if you want some speculation: it's for users who want to associate more data with points... say, a mass, or object types, or maybe even some nested geometry |
| 05:46:09 | × | aerona quits (~aerona@2600:6c54:4600:f300:d2da:d7c1:1e2d:1a51) (Quit: Leaving) |
| 05:46:15 | × | boxscape quits (~boxscape@user/boxscape) (Ping timeout: 272 seconds) |
| 05:46:26 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 05:46:54 | → | Toast52 joins (~Toast52@151.192.167.120) |
| 05:47:17 | <int-e> | I skimmed the API a bit (not comprehensively) and didn't see anything that actually used that extension data... but it's also possible that it's used internally somewhere... easy to miss. |
| 05:48:39 | → | Numeral joins (~Numeral@2600:100e:b134:586b:7b7a:968a:9363:1b52) |
| 05:48:59 | → | Guest27 joins (~Guest27@2604:5500:c07d:3f00:1568:5be2:dbc1:e40a) |
| 05:50:56 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 05:51:16 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
| 05:53:10 | × | Numeral quits (~Numeral@2600:100e:b134:586b:7b7a:968a:9363:1b52) (Quit: Quit) |
| 05:55:33 | × | wroathe quits (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) (Ping timeout: 244 seconds) |
| 06:02:19 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 06:03:05 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:03:51 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 06:05:29 | → | _ht joins (~quassel@82-169-194-8.biz.kpn.net) |
| 06:05:42 | → | Bartosz joins (~textual@24.35.90.211) |
| 06:07:05 | → | Toast52_ joins (~Toast52@151.192.167.120) |
| 06:10:29 | × | Toast52 quits (~Toast52@151.192.167.120) (Ping timeout: 245 seconds) |
| 06:16:29 | × | P1RATEZ quits (piratez@cpe98524ab27125-cm98524ab27123.cpe.net.cable.rogers.com) (Changing host) |
| 06:16:29 | → | P1RATEZ joins (piratez@user/p1ratez) |
| 06:17:19 | × | P1RATEZ quits (piratez@user/p1ratez) () |
| 06:18:42 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:b9f7:1919:7684:9913) |
| 06:19:49 | → | notzmv joins (~zmv@user/notzmv) |
| 06:20:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 06:21:07 | × | juhp quits (~juhp@128.106.188.66) (Quit: juhp) |
| 06:25:31 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 06:26:37 | → | dhil joins (~dhil@195.213.192.47) |
| 06:28:34 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 06:29:20 | × | spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 244 seconds) |
| 06:29:58 | → | spatchkaa joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
| 06:33:30 | <dibblego> | int-e: ah ok, cool cheers |
| 06:37:38 | → | dhouthoo joins (~dhouthoo@178-117-36-167.access.telenet.be) |
| 06:38:17 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 06:39:50 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 252 seconds) |
| 06:39:53 | → | spatchkaa_ joins (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) |
| 06:40:40 | × | spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Ping timeout: 272 seconds) |
| 06:41:37 | → | wonko joins (~wjc@62.115.229.50) |
| 06:42:09 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 245 seconds) |
| 06:45:52 | → | juhp joins (~juhp@128.106.188.66) |
| 06:46:03 | → | jco joins (~jco@c83-248-173-38.bredband.tele2.se) |
| 06:46:31 | → | cfricke joins (~cfricke@user/cfricke) |
| 06:46:42 | → | ubert joins (~Thunderbi@p200300ecdf259d4b4d0b89c625dcbc13.dip0.t-ipconnect.de) |
| 06:48:24 | × | Guest27 quits (~Guest27@2604:5500:c07d:3f00:1568:5be2:dbc1:e40a) (Quit: Client closed) |
| 06:50:38 | × | slowButPresent quits (~slowButPr@user/slowbutpresent) (Quit: leaving) |
| 06:52:59 | ← | jakalx parts (~jakalx@base.jakalx.net) () |
| 06:53:02 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: No route to host) |
| 06:54:01 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 06:54:27 | × | abraham quits (~abraham@173.239.198.148) (Quit: Textual IRC Client: www.textualapp.com) |
| 06:59:57 | → | nsilv joins (~nsilv@212.103.198.210) |
| 07:00:24 | → | chddr joins (~Thunderbi@31.148.23.125) |
| 07:01:09 | → | chomwitt joins (~Pitsikoko@athedsl-20549.home.otenet.gr) |
| 07:01:24 | → | yd502_ joins (~yd502@180.168.212.6) |
| 07:03:49 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 245 seconds) |
| 07:04:04 | × | sekun quits (~sekun@180.190.152.149) (Remote host closed the connection) |
| 07:05:00 | → | yd502 joins (~yd502@180.168.212.6) |
| 07:07:22 | × | yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 07:07:34 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 245 seconds) |
| 07:08:28 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 07:08:38 | → | berberman joins (~berberman@user/berberman) |
| 07:09:26 | × | berberman_ quits (~berberman@user/berberman) (Ping timeout: 268 seconds) |
| 07:09:41 | × | alarix quits (~alarix@59.88.30.217) (Quit: leaving) |
| 07:10:21 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:10:26 | → | cfricke joins (~cfricke@user/cfricke) |
| 07:12:11 | → | yd502_ joins (~yd502@180.168.212.6) |
| 07:13:16 | → | michalz joins (~michalz@185.246.204.126) |
| 07:13:41 | → | chele joins (~chele@user/chele) |
| 07:14:00 | → | yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
| 07:14:41 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 07:15:07 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 07:17:06 | <juri_> | glguy: the warnings refer to things inside of the package (when i haven't turned on inlining, and GHC wants it, for instance), and things outside of the package. i need the former warnings, i don't need the latter. |
| 07:18:07 | × | mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 07:18:22 | → | mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) |
| 07:18:50 | → | yd502 joins (~yd502@180.168.212.6) |
| 07:20:04 | × | doublex_ quits (~doublex@2601:542:c480:6ee0:184b:7083:f026:c689) (Ping timeout: 245 seconds) |
| 07:21:19 | × | yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 245 seconds) |
| 07:21:29 | × | yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Read error: Connection reset by peer) |
| 07:24:59 | → | dendru joins (uid503630@id-503630.brockwell.irccloud.com) |
| 07:25:24 | × | Toast52_ quits (~Toast52@151.192.167.120) (Quit: Leaving) |
| 07:26:08 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 264 seconds) |
| 07:29:00 | → | jespada joins (~jespada@90.254.242.55) |
| 07:31:47 | → | zaquest joins (~notzaques@5.128.210.178) |
| 07:32:14 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 07:33:26 | → | gehmehgeh joins (~user@user/gehmehgeh) |
| 07:34:09 | → | kuribas joins (~user@ptr-25vy0i6v9tbds0gjkm6.18120a2.ip6.access.telenet.be) |
| 07:35:24 | × | zaquest quits (~notzaques@5.128.210.178) (Client Quit) |
| 07:35:38 | → | zaquest joins (~notzaques@5.128.210.178) |
| 07:37:38 | → | fendor joins (~fendor@77.119.128.226.wireless.dyn.drei.com) |
| 07:37:56 | → | oxide joins (~lambda@user/oxide) |
| 07:39:48 | → | yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
| 07:40:55 | × | betelgeuse quits (~john2gb@94-225-47-8.access.telenet.be) (Quit: The Lounge - https://thelounge.chat) |
| 07:42:09 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 245 seconds) |
| 07:42:42 | → | benin03 joins (~benin@183.82.176.4) |
| 07:42:44 | × | nsilv quits (~nsilv@212.103.198.210) (Ping timeout: 272 seconds) |
| 07:44:47 | → | nsilv joins (~nsilv@212.103.198.210) |
| 07:44:47 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Read error: Connection reset by peer) |
| 07:45:09 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 07:45:25 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 07:45:46 | → | td_ joins (~td@94.134.91.190) |
| 07:46:10 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 07:52:21 | → | oxide joins (~lambda@user/oxide) |
| 07:56:45 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 07:56:46 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 08:00:54 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 245 seconds) |
| 08:02:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:03:11 | × | alex3 quits (~Chel@BSN-77-82-41.static.siol.net) (Quit: WeeChat 3.0) |
| 08:07:27 | → | hendursa1 joins (~weechat@user/hendursaga) |
| 08:07:43 | → | alex2 joins (~alex3@BSN-77-82-41.static.siol.net) |
| 08:09:24 | × | alex2 quits (~alex3@BSN-77-82-41.static.siol.net) (Client Quit) |
| 08:09:31 | → | alex2 joins (~alex3@BSN-77-82-41.static.siol.net) |
| 08:10:12 | × | alex2 quits (~alex3@BSN-77-82-41.static.siol.net) (Client Quit) |
| 08:10:18 | → | alex3 joins (~alex3@BSN-77-82-41.static.siol.net) |
| 08:10:19 | × | hendursaga quits (~weechat@user/hendursaga) (Ping timeout: 252 seconds) |
| 08:11:16 | → | pera joins (~pera@70.red-88-14-152.dynamicip.rima-tde.net) |
| 08:11:39 | pera | is now known as Guest1402 |
| 08:13:46 | × | Guest1402 quits (~pera@70.red-88-14-152.dynamicip.rima-tde.net) (Client Quit) |
| 08:15:12 | × | oxide quits (~lambda@user/oxide) (Read error: Connection reset by peer) |
| 08:18:04 | × | ubert quits (~Thunderbi@p200300ecdf259d4b4d0b89c625dcbc13.dip0.t-ipconnect.de) (Remote host closed the connection) |
| 08:18:31 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 08:18:45 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:19:00 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 08:19:36 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 08:21:15 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 08:21:46 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 08:22:12 | → | larkfisherman joins (~larkfishe@217.75.204.126) |
| 08:22:15 | → | xkuru joins (~xkuru@user/xkuru) |
| 08:23:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 244 seconds) |
| 08:24:30 | → | qoelet joins (~kumo@139.180.144.166) |
| 08:26:00 | × | jco quits (~jco@c83-248-173-38.bredband.tele2.se) (Remote host closed the connection) |
| 08:30:23 | <dminuoso> | If my program is started by cron at 00:00:00, is it possible for getSystemTime to give me the timestamp at 23:59 from yesterday? |
| 08:30:58 | <Taneb> | Probably, computer time is weird. |
| 08:31:02 | <merijn> | Probably |
| 08:31:16 | <merijn> | Negative leap second coming up Soon-ish (TM) :p |
| 08:31:24 | <dminuoso> | Yeah, though negative leap second is fine with me. |
| 08:31:25 | <merijn> | RIP our collective sanity |
| 08:31:40 | <kritzefitz> | Definitely if the realtime clock is set in the meantime by NTP or something else. |
| 08:31:59 | <dminuoso> | I guess ntp is a rather realistic scenario |
| 08:33:01 | <c_wraith> | NTP shouldn't move the clock backwards - though tools like ntpdate will |
| 08:33:04 | <dminuoso> | Maybe I should just do the obvious and start it at 00:01:00, that way funny leap seconds or small drift fixes by NTP wont harm me. |
| 08:33:06 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 08:33:22 | <dminuoso> | c_wraith: It shouldn't? What if my clock runs too fast? Would it keep going into the future indefinitely? |
| 08:33:46 | <c_wraith> | NTP is intended to keep the clock monotonic - it will slow it down if you're ahead, rather than moving it backwards |
| 08:35:13 | <dminuoso> | I see. |
| 08:35:15 | × | Erutuon quits (~Erutuon@user/erutuon) (Ping timeout: 252 seconds) |
| 08:37:04 | <dminuoso> | How exactly does getSystemTime work anyway? How is time measured to this accuracy? Does the CPU calculate it from a clock cycle count and clock rate? |
| 08:37:16 | <tdammers> | AFAIK, most ntp clients will "jump" when the error exceeds a certain margin |
| 08:37:37 | <dminuoso> | (And how does all of this even work sensible on multi-core systems) |
| 08:37:38 | <tdammers> | like, when you're six days ahead, just slowing down would mean it'd take weeks to catch up, so that's not a good option |
| 08:38:12 | <Maxdamantus> | What system calls does it use to slow down time? |
| 08:38:58 | urtie | is now known as earthy |
| 08:40:17 | <Maxdamantus> | Ah, hm. Apparently that's what adjtime does. |
| 08:41:32 | <dminuoso> | Ah I guess you'd just set up a timer interrupt, which preempts the CPU and then increases a counter. |
| 08:41:47 | <dminuoso> | Can time be monotone in a multi-core environment? |
| 08:42:18 | <dminuoso> | Oh this is giving too much headaches. Im going to pretend its monotone for the sake of sanity. |
| 08:42:31 | <tdammers> | "eventual monotonicity" |
| 08:42:32 | <Maxdamantus> | It can. I imagine it probably is. |
| 08:42:50 | <kritzefitz> | dminuoso, at least on unix systems there are different clocks with different guarantees- |
| 08:42:52 | <c_wraith> | it's pretty common to set cron tasks to happen just after midnight because you don't want to deal with this :) |
| 08:43:08 | <kritzefitz> | One of those guarantees is monotonicity. |
| 08:43:20 | <kritzefitz> | But getSystemTime doesn't use a clock with that guarantee. |
| 08:43:27 | <dminuoso> | Maxdamantus: Yes? No? Maybe? Memory consistency is a thing. :p |
| 08:43:39 | <merijn> | dminuoso: Just use a monotone clock for you timings? |
| 08:43:50 | <merijn> | @hackage clock |
| 08:43:50 | <lambdabot> | https://hackage.haskell.org/package/clock |
| 08:43:58 | <merijn> | Don't use getSystemTime for this kinda thing |
| 08:44:04 | <Maxdamantus> | dminuoso: as long as people take memory consistency into account, it should be possible. |
| 08:44:30 | <dminuoso> | merijn: As for technical requirement, Im just bikeshedding a bit for the purpose of understanding. I just have a business requirement to work in terms of legal days. |
| 08:44:54 | <Maxdamantus> | dminuoso: you can come up with a model where if one request for the time "happens after" another, it will get a greater (or equal) time. |
| 08:45:04 | <merijn> | Is there even a definition of "legal day" |
| 08:45:09 | <dminuoso> | no clue |
| 08:45:16 | <merijn> | Well, that's step one, then |
| 08:45:16 | <dminuoso> | Probably :) |
| 08:45:24 | <merijn> | Everything else is pointless until you know what it is |
| 08:46:58 | <dminuoso> | So the technical requirement is that I need to activate an account on its activation date precisely at midnight. A minute drift is acceptable to the customer. I was just wondering how reliable `utctDay . systemToUTCTime <$> liftIO getSystemTime` would be for the task to identify whether today is the proper activation date. |
| 08:47:25 | <dminuoso> | Of course I can fix that with a heuristic that checks whether the current time is somewhere in the vicinity of midnight. If its shortly before, pretend its the next day, etc |
| 08:48:05 | <dminuoso> | This topic then introduced a bunch of related and unrelated questions regarding how time works anyway |
| 08:48:45 | <kritzefitz> | I think your best bet for a real time solution is to actually run a bit after midnight, so slight variations won't change the day. |
| 08:48:53 | <kritzefitz> | s/real time/real worl/ |
| 08:49:36 | <dminuoso> | kritzefitz: Dunno, running precisely at midnight, but adding say 5 minutes to the system time before taking the day seems like a better solution |
| 08:50:06 | <dminuoso> | That way I get to run as close to midnight as possible, but allowing for slight variations still |
| 08:50:24 | <kritzefitz> | So running close to midnight is important? |
| 08:50:45 | <dminuoso> | Apparently the legal department of the customer seems to think so |
| 08:50:56 | <Maxdamantus> | dminuoso: if you're not interacting with another computer, I imagine you theoretically don't need to worry about this, as long the computer you're running on isn't having its clock set backwards. |
| 08:52:00 | <Maxdamantus> | If you are dealing with another computer, one proper way to guarantee that time doesn't seem to move backwards after the message is handled by the other system would be to include a timestamp in all of your messages. |
| 08:52:10 | <Maxdamantus> | and the other computer should not handle the messages until that time has passed. |
| 08:52:56 | → | yd502 joins (~yd502@180.168.212.6) |
| 08:54:07 | × | dragestil quits (~quassel@user/dragestil) (Remote host closed the connection) |
| 08:54:49 | <kritzefitz> | Maxdamantus, but then you have to trust that your clock actually isn't set back. NTP and negative leap seconds might cause unexpected behavior here. It has been mentioned that those *shouldn't* set the clock backwards, but I personally wouldn't bet on it. |
| 08:55:26 | → | dragestil joins (~quassel@user/dragestil) |
| 08:55:57 | <earthy> | dminuoso: 'what midnight' 'should it start or finish close to midnight' |
| 08:56:40 | <Maxdamantus> | kritzefitz: then I guess you'd have to just apply my principle to within the same system. |
| 08:56:45 | <dminuoso> | earthy: I was just waiting for that question. :-) |
| 08:56:49 | × | spoonm quits (~spoonm@tokyo.spoonm.org) (Quit: Don't look behind you!) |
| 08:57:55 | <dminuoso> | Luckily this is just a small project, and the customer wasn't being too serious about what their legal department thinks. As long as it's "roughly" around midnight, all is good. |
| 08:57:55 | → | ubert joins (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) |
| 08:57:55 | <earthy> | but, given that you talked about account activation 'at midnight', the obvious answer is to have the account active already, but have the login system check against the timestamp of the request coming in. |
| 08:58:09 | <Maxdamantus> | So if you're updating a database at midnight, include a timestamp in the database entry, and when you read database entries, wait until that time has passed. |
| 08:59:02 | <earthy> | and have an account with validity time ranges. |
| 08:59:04 | <dminuoso> | earthy: If only things were that simple. To activate an account, I need to register resources with an external API. |
| 08:59:13 | <dminuoso> | Which itself has no validity range |
| 08:59:56 | <earthy> | as long as all interaction is through your frontend... I don't particularly see the problem. |
| 09:00:13 | <dminuoso> | I dont have a frontend, its behind that external thing. |
| 09:00:15 | <dminuoso> | That's the problem |
| 09:00:29 | <earthy> | *ah*... |
| 09:00:35 | <Maxdamantus> | (and also, avoid reading the time multiple times; read it once after reading from the database, unless you have to wait due to the clock skew) |
| 09:01:49 | <earthy> | that makes the 'should it definitely be active as of midnight or should it be not active at least until midnight' question that much more important. :) |
| 09:02:08 | × | whiteline quits (~whiteline@c-64c6e253.54725-0-757473696b74.bbcust.telenor.se) (Ping timeout: 264 seconds) |
| 09:04:01 | <dminuoso> | earthy: So the account gives access to some physical resource. If your account expires today, and someone elses starts tomorrow, and both of you are linked to the same resource, that would lead to overlapping access to that shared resource |
| 09:04:03 | × | kiweun quits (~sheepduck@2607:fea8:2a61:4800::e92f) (Remote host closed the connection) |
| 09:05:42 | <dminuoso> | Meaning I cant just "activate accounts 5 minutes before, and deactivate 5 minutes after midnight" |
| 09:06:00 | <dminuoso> | Time is a bizarre thing |
| 09:06:24 | → | whiteline joins (~whiteline@c-cda8d954.54725-0-757473696b74.bbcust.telenor.se) |
| 09:06:34 | <kritzefitz> | Do the activations and deactivations actually run in different processes? If they happened in the same process, you could just always deactivate first and only activate access after you're done with that. |
| 09:06:42 | <dminuoso> | Einstein knew too, the problem of time synchronization is what started a life works of a new branch of physics.. |
| 09:06:57 | <dminuoso> | kritzefitz: thats precisely what I do. :) |
| 09:08:14 | <kritzefitz> | Ok, I'm not sure anymore what the exact problem is. Do you “just” want to make sure that you run close to midnight or do you also need to reliably determine what the day after that midnight is? |
| 09:09:40 | <dminuoso> | kritzefitz: Maybe I miscommunicated. There is no real problem, just things I wondered about when I wrote a naive solution, thinking there were subtle bugs. |
| 09:09:54 | × | jneira quits (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) (Ping timeout: 264 seconds) |
| 09:11:21 | <earthy> | access to physical resources. that poses the obvious next question: *must* it necessarily be mutually exclusive... |
| 09:11:55 | <earthy> | (e.g.: a room can hold multiple people, even if that room is an office that should be assigned to just one person at any one time) |
| 09:12:44 | <earthy> | and the follow-on question is: can you actively *revoke* access at the cut-over time? (e.g. by boucing the person from the room) |
| 09:13:32 | <dminuoso> | So to avoid further confusion, this is just talking out of curiosity, not out of a need of a problem, right? |
| 09:14:04 | <earthy> | the thing is: you can create monotonic logical time for your system. you can anchor that logical time to some physical time, but then the *real* problems start. :) |
| 09:14:36 | <earthy> | yeah, just curious. plus, many of these things we've run into (and tried to solve). :) |
| 09:14:49 | <earthy> | slightly different context though. |
| 09:14:50 | <dminuoso> | earthy: There's actually some subtle legal impliciations. There's no reason we couldn't give shared access, just that it would make liability problematic., |
| 09:15:37 | <dminuoso> | I cant talk details about this project, but imagine the resource was a car. If the car is damaged, who is liable? |
| 09:15:48 | <earthy> | the driver. |
| 09:15:57 | <dminuoso> | damaged doesnt mean someone was driving it. |
| 09:16:24 | <dminuoso> | could just be a paint scratch |
| 09:16:26 | <earthy> | oh, wait. *drops assumption*. |
| 09:16:33 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 09:16:49 | <earthy> | who is liable is not necessarily knowable. |
| 09:17:04 | <dminuoso> | (lets just pretend we know *when* the damage occured) |
| 09:17:31 | × | hnOsmium0001 quits (uid453710@id-453710.stonehaven.irccloud.com) (Quit: Connection closed for inactivity) |
| 09:17:32 | <earthy> | yeah, but the legal framework for the liability may change around the damage... |
| 09:17:40 | <dminuoso> | highly stateful operations within strict time requirement with legal implications - fun things. |
| 09:18:12 | <maerwald> | what's the correct way to install llvm on Mac? |
| 09:18:27 | <dminuoso> | maerwald: angerman would know :p |
| 09:18:28 | × | vgtw quits (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) (Quit: ZNC - https://znc.in) |
| 09:18:45 | <merijn> | maerwald: homebrew and/or macports |
| 09:18:50 | <xerox> | is brew correct enough? |
| 09:18:59 | <maerwald> | homebrew messes up linking from my experience |
| 09:19:17 | <angerman> | brew should be good enough; building llvm from source is a bit of a pain. |
| 09:19:17 | <xerox> | their linking of formulas or linking as in compiler linking |
| 09:19:28 | <merijn> | maerwald: I mean, my homebrew llvm works, but homebrew is really about "support only the latest bleeding edge" |
| 09:19:36 | <earthy> | dminuoso: I was assuming damager and affected party are known. even then, if the damage happens at an exact change in law, the liability is complex (think starting the scratch before midnight and taking a few seconds) |
| 09:19:42 | <merijn> | maerwald: macports is slightly better in that sense |
| 09:20:05 | <merijn> | Building LLVM yourself is always the wrong solution >.> |
| 09:20:08 | <merijn> | So damn painful... |
| 09:20:11 | <dminuoso> | earthy: perhaps a fire is a better example than a scratch. |
| 09:20:34 | <dminuoso> | If the car was lit on fire, and it created surrounding damage to external property before midnight and after. |
| 09:21:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 09:22:37 | skewerr | is now known as spoonm |
| 09:23:03 | × | spoonm quits (~spoonm@inaba.spoonm.org) (Quit: ZNC - https://znc.in) |
| 09:23:18 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 09:23:44 | → | spoonm joins (~spoonm@inaba.spoonm.org) |
| 09:24:22 | <tdammers> | when it comes to these things, it may be helpful to introduce the concept of "bureaucratic reality" |
| 09:24:31 | <angerman> | merijn: if only they'd provide binary dists for llvm on both darwin platforms, but they don't. |
| 09:24:55 | × | spoonm quits (~spoonm@inaba.spoonm.org) (Client Quit) |
| 09:25:10 | <dminuoso> | tdammers: Guess that's why one has legal departments in the first place. Not because one can avoid bureaucratic reality, but to deal with it in these situations. :p |
| 09:25:33 | → | spoonm joins (~spoonm@inaba.spoonm.org) |
| 09:25:48 | <tdammers> | yes, that too |
| 09:25:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 244 seconds) |
| 09:26:01 | → | bitonic joins (~bitonicma@2001:470:69fc:105::1812) |
| 09:26:07 | <tdammers> | but my point is that there is a difference between "bureaucratic reality" and "actual reality" |
| 09:26:17 | → | vgtw joins (~vgtw@c-9164205c.07-348-756d651.bbcust.telenor.se) |
| 09:26:27 | × | spoonm quits (~spoonm@inaba.spoonm.org) (Client Quit) |
| 09:26:43 | <tdammers> | if I scratched your car 5 minutes past midnight, but the police report and eyewitnesses say I did it at 23:55, and my own statement matches that too, then that becomes the bureaucratic reality |
| 09:27:50 | → | spoonm joins (spoonm@inaba.spoonm.org) |
| 09:28:44 | → | yd502_ joins (~yd502@180.168.212.6) |
| 09:31:02 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
| 09:32:02 | <maerwald> | I was expecting xcode --install to install llvm |
| 09:32:51 | <merijn> | maerwald: That's some high level optimism :p |
| 09:34:09 | × | dhil quits (~dhil@195.213.192.47) (Quit: Leaving) |
| 09:34:12 | × | xkuru quits (~xkuru@user/xkuru) (Ping timeout: 272 seconds) |
| 09:34:24 | <maerwald> | merijn: I spent the last days writing powershell, so I have a lot of optimism |
| 09:37:23 | → | dhil joins (~dhil@195.213.192.47) |
| 09:37:29 | <maerwald> | so, after installing llvm with macports, cabal still can't find it |
| 09:37:48 | <merijn> | maerwald: macports doesn't install it into any of the default search paths |
| 09:37:59 | <merijn> | maerwald: Because they don't wanna conflict with system tools |
| 09:38:16 | <xerox> | I have installed it via brew, brew info llvm shows you how to arrange the PATH (and optionally LDFLAGS and CPPFLAGS) to make it override the system clang |
| 09:38:17 | <merijn> | maerwald: homebrew on the other hand *does* install into the main search paths because it wants to replace the system parts |
| 09:38:21 | <xerox> | works well |
| 09:38:55 | <maerwald> | well, I already installed via macports and I want it to work now |
| 09:39:03 | → | mastarija joins (~mastarija@31.217.22.43) |
| 09:39:09 | <xerox> | ok (: |
| 09:42:42 | → | xkuru joins (~xkuru@user/xkuru) |
| 09:45:43 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 09:47:21 | <kritzefitz> | dminuoso, I think the most accurate you can get is with `clock_gettime(CLOCK_TAI)`, which should be unaffected by leap seconds or other such bureaucratic nonsense. But if you want to extract a day from that, you would need to make sure to use the correct `right/...` timezone to convert to your local time. |
| 09:47:50 | <kritzefitz> | But I know of no existing bindings in haskell that allow to CLOCK_TAI. |
| 09:48:08 | × | yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 272 seconds) |
| 09:49:03 | → | yd502 joins (~yd502@180.168.212.6) |
| 09:49:45 | <kritzefitz> | But that still assumes that no one uses `clock_settime()` or similar to jump your system time backwards. |
| 09:53:12 | × | chddr quits (~Thunderbi@31.148.23.125) (Ping timeout: 272 seconds) |
| 09:58:26 | × | agumonke` quits (~user@88.160.31.174) (Read error: Connection reset by peer) |
| 10:01:24 | <mastarija> | is there a way to "condense" multiple patternmatches into one, something in the line of `case value of A,B,C-> do_one_thing; D,E,F-> do_other_thing;`? |
| 10:01:34 | → | agumonke` joins (~user@88.160.31.174) |
| 10:02:05 | <mastarija> | I guess I could use `elem` if my dat has an ord instance, but I'm not thrilled about that |
| 10:02:59 | <xerox> | mastarija: maybe with an helper function and a guard? |
| 10:03:22 | <mastarija> | I mean, guard would require `elem`, right? |
| 10:03:30 | <mastarija> | But I was hoping to avoid that :D |
| 10:03:32 | → | alphacath joins (~alpha@host-79-36-63-89.retail.telecomitalia.it) |
| 10:03:47 | <dminuoso> | mastarija: Mmm, this can be described lens/optics, but I dont know whether that fits the rest of your usage pattern. |
| 10:03:58 | <mastarija> | dminuoso, not really |
| 10:04:06 | <mastarija> | I was hoping for something simple |
| 10:04:30 | <dminuoso> | mastarija: Then use PatternSynonyms |
| 10:04:31 | <mastarija> | I'm kind of missing the "fall through" behaviour of switch from other languages |
| 10:04:46 | <dminuoso> | Yeah. You can mimic them with PatternSynonyms |
| 10:04:47 | <xerox> | I was thinking something like data Thing = A | B | C | D; good A = True; good B = True; good _ = False; f thing | True <- good thing = <case for A and B together> |
| 10:05:29 | × | chomwitt quits (~Pitsikoko@athedsl-20549.home.otenet.gr) (Ping timeout: 245 seconds) |
| 10:05:37 | → | pavonia joins (~user@user/siracusa) |
| 10:05:49 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 244 seconds) |
| 10:05:49 | <mastarija> | xerox, I was looking for something more "adhoc", this would require defining a helper function every time I want this behavior |
| 10:05:50 | <dminuoso> | mastarija: Also, do these constructors have fields? Or is this just a sum of nullary constructors? |
| 10:05:58 | <mastarija> | just a sum |
| 10:06:07 | × | agumonke` quits (~user@88.160.31.174) (Remote host closed the connection) |
| 10:06:25 | <xerox> | could probably be subsumed into a pattern synonym like pattern AorB <- ... so you can always define your functions on Thing matching on AorB, C, D .. |
| 10:06:39 | <dminuoso> | Then you can use case () of _ | x `elem` [A,B,C] -> ...; x `elem` [D,E] -> ....;` |
| 10:06:45 | <mastarija> | But yeah, now that I think about it, this could be nice language extension :) |
| 10:06:47 | <dminuoso> | (or perhaps directly in function cards) |
| 10:06:58 | → | azeem joins (~azeem@176.200.249.22) |
| 10:07:07 | <dminuoso> | mastarija: It's either this or PatternSynonyms. |
| 10:07:16 | <xerox> | check out the example here if you're unfamiliar with those, maybe that'll work well for you? https://downloads.haskell.org/~ghc/8.10.5/docs/html/users_guide/glasgow_exts.html#pattern-synonyms |
| 10:07:16 | <mastarija> | I'm gonna check the PatternSynonyms |
| 10:07:38 | <mastarija> | I took a peek some time ago, but didn't have much use for them |
| 10:07:51 | <mastarija> | This could be a good opportunity to check them out :D |
| 10:08:17 | <dminuoso> | mastarija: https://gist.github.com/dminuoso/20dcc292c7e9536e6fd3ab73b7d83889 |
| 10:08:24 | <dminuoso> | This is what it would look like with elem |
| 10:08:51 | <mastarija> | dminuoso, yes, I know that but I kind of wanted to avoid elem |
| 10:09:00 | <mastarija> | you've probably missed that :D |
| 10:09:18 | <dminuoso> | What's wrong with elem? |
| 10:10:38 | <mastarija> | noise? |
| 10:10:42 | <nsilv> | it's basically Or patterns... so it is very old but there's this: https://hackage.haskell.org/package/OrPatterns |
| 10:12:36 | <mastarija> | dminuoso, ah yes, another thing with elem is that it requires `Eq` |
| 10:13:11 | <mastarija> | that's also what I was trying to avoid |
| 10:13:22 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 244 seconds) |
| 10:14:03 | <nsilv> | sadly or patterns seem pretty much dead? https://github.com/ghc-proposals/ghc-proposals/pull/43 |
| 10:14:52 | → | martin02 joins (silas@hund.fs.lmu.de) |
| 10:14:54 | <mastarija> | nsilv, and I'm not really going to download a lib for such a minor thing :D |
| 10:15:03 | <mastarija> | I was hoping there was something in the language already |
| 10:15:09 | <mastarija> | But it's not a big deal |
| 10:16:17 | <nsilv> | yeah there were thoughts of doing it (I think it's in both OCaml and F#, maybe SML too?) the ticket just stalled. Which is sad, it's a small but very useful feature |
| 10:17:38 | → | nschoe joins (~quassel@2a04:cec0:1140:d70e:246d:fa9d:5f2c:423e) |
| 10:18:08 | <DigitalKiwi> | why make something so minor part of the language if you can just download a lib? |
| 10:19:43 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 10:20:38 | <yushyin> | or-patters have a long history of not beeing implemented in haskell/ghc :D |
| 10:23:11 | × | xkuru quits (~xkuru@user/xkuru) (Read error: Connection reset by peer) |
| 10:23:45 | → | zeenk joins (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) |
| 10:24:59 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 10:26:03 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 10:26:21 | → | dhil joins (~dhil@80.208.56.181) |
| 10:29:05 | <dminuoso> | Me personally, Ive just become accustomed to repeating case-of branches. It's an annoyance, but in the grand scheme of things there's many other more pressing things that I want in Haskell. |
| 10:29:23 | <dminuoso> | Like circular imports |
| 10:29:36 | <dminuoso> | (By Haskell I mean GHC Haskell, of course) |
| 10:29:56 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
| 10:30:05 | <dibblego> | optics are better anyway |
| 10:30:29 | <dminuoso> | dibblego: If they fit the usage pattern, anyway. |
| 10:30:40 | <dibblego> | the what? |
| 10:31:13 | × | nsilv quits (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
| 10:31:27 | <dminuoso> | optics are not a universal replacement for case-of |
| 10:31:38 | <dibblego> | yes they are |
| 10:32:01 | → | pbrisbin joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
| 10:34:29 | ← | Voeid parts (luke@voeid.cf) (Leaving...) |
| 10:36:19 | × | azeem quits (~azeem@176.200.249.22) (Ping timeout: 245 seconds) |
| 10:36:39 | <dminuoso> | If by that you mean "one can mechanically replace a usage of case-of with optics", then that's not saying much. |
| 10:37:02 | <dminuoso> | My point is, they are not universally better at discriminating values than case-of. |
| 10:37:09 | <dibblego> | yes they are |
| 10:37:21 | <dminuoso> | Okay. |
| 10:37:58 | <dibblego> | fallacy of false middle — show me the counter-example! |
| 10:38:06 | → | yd502_ joins (~yd502@180.168.212.6) |
| 10:38:18 | → | Guest9836 joins (~Guest98@156.217.248.178) |
| 10:38:53 | <mastarija> | dminuoso, I wonder how much effort it would be to add that feature to Haskell, and if this might be a good starter project to get familiar with GHC internals |
| 10:39:38 | <mastarija> | i was thinking of starting to dig through GHC, so this might be a good starter |
| 10:39:43 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 10:40:23 | × | adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection) |
| 10:40:30 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 10:40:33 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 10:40:36 | → | adanwan joins (~adanwan@gateway/tor-sasl/adanwan) |
| 10:41:13 | → | teaSlurper joins (~chris@81.96.113.213) |
| 10:41:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:41:16 | × | yd502 quits (~yd502@180.168.212.6) (Ping timeout: 244 seconds) |
| 10:41:58 | × | nschoe quits (~quassel@2a04:cec0:1140:d70e:246d:fa9d:5f2c:423e) (Ping timeout: 272 seconds) |
| 10:42:03 | <dminuoso> | mastarija: From a quick look at the existing PR, it seems one of the main complexities is the interaction with other extensions |
| 10:42:29 | <dminuoso> | Seems to be missing clear specifications, so it's not just the mechanical work of implementing it |
| 10:42:31 | <mastarija> | Hm.. yes, I guess Pattern synonyms don't help the cause there |
| 10:44:04 | <lortabac> | dminuoso: +1, lack of circular imports is incredibly annoying, I inevitably end up with a huge Types module to circumvent the problem |
| 10:44:39 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 10:45:11 | <dminuoso> | lortabac: Just use a big mono module! |
| 10:45:15 | <dminuoso> | Problem solved. |
| 10:45:16 | <mastarija> | dminuoso, have you ever contributed to GHC? I was always wondering what is the workflow for such things, I imagine my little laptop wouldn't be able to compile the whole of GHC when I want to test changes locally. |
| 10:45:48 | → | azeem joins (~azeem@176.200.230.226) |
| 10:45:53 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 268 seconds) |
| 10:46:02 | <dminuoso> | mastarija: I did some modifications a while ago. The experience is be pleasant enough, you should be able to build it even on older laptops. |
| 10:46:10 | <mastarija> | I really like the GHCI workflow, but I imagine that's a no go when you are working on the GHC it self. |
| 10:46:19 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 10:46:24 | <dminuoso> | For development, you dont need a full optimized build |
| 10:46:33 | <dminuoso> | Of course you can use that! |
| 10:46:41 | <dminuoso> | GHC is just a Haskell program, no reason you couldn't run it from GHCi. |
| 10:46:43 | <mastarija> | dminuoso, to test the new syntax? |
| 10:46:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:46:57 | × | Guest9836 quits (~Guest98@156.217.248.178) (Quit: Client closed) |
| 10:47:07 | <mastarija> | starting a ghci from ghci :D |
| 10:47:20 | <mastarija> | That smells like trouble |
| 10:47:39 | <dminuoso> | Well, you can just run `ghc` on small files. :) |
| 10:47:53 | <mastarija> | Well, I just might try it. |
| 10:48:00 | <mastarija> | I have some free time this year anyway |
| 10:49:27 | × | pbrisbin quits (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) (Ping timeout: 252 seconds) |
| 10:49:32 | × | brian_da_mage quits (~Neuromanc@user/briandamag) (Ping timeout: 252 seconds) |
| 10:50:59 | <dminuoso> | mastarija: https://gitlab.haskell.org/ghc/ghc/-/wikis/building/in-ghci |
| 10:51:19 | <dminuoso> | This can be handy to rapidly test out changes as you make them to GHC. |
| 10:52:09 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 10:52:18 | → | Day1 joins (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) |
| 10:52:41 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 10:53:21 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 10:53:51 | × | yd502_ quits (~yd502@180.168.212.6) (Ping timeout: 252 seconds) |
| 10:54:25 | <mastarija> | That's cool, so basically it's not as big of a deal as I thought |
| 10:55:52 | × | ukari quits (~ukari@user/ukari) (Remote host closed the connection) |
| 10:56:53 | → | ukari joins (~ukari@user/ukari) |
| 10:57:59 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 10:58:26 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:01:27 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 11:03:24 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 245 seconds) |
| 11:04:03 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:04:30 | × | Day1 quits (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 11:05:39 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 11:06:00 | → | teaSlurper joins (~chris@81.96.113.213) |
| 11:06:44 | × | azeem quits (~azeem@176.200.230.226) (Ping timeout: 245 seconds) |
| 11:07:06 | → | neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
| 11:07:27 | → | azeem joins (~azeem@176.200.195.4) |
| 11:08:21 | → | agumonke` joins (~user@88.160.31.174) |
| 11:08:54 | → | Day1 joins (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) |
| 11:09:10 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 11:09:59 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 11:10:04 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 11:10:47 | × | Day1 quits (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 11:18:28 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 11:19:41 | → | Torro joins (Torro@gateway/vpn/protonvpn/torro) |
| 11:19:58 | × | azeem quits (~azeem@176.200.195.4) (Ping timeout: 272 seconds) |
| 11:20:01 | → | sheepduck joins (~sheepduck@2607:fea8:2a61:4800::3ae6) |
| 11:20:19 | × | marinelli[m] quits (~marinelli@2001:470:69fc:105::2d8) (Quit: Reconnecting) |
| 11:20:35 | → | marinelli[m] joins (~marinelli@2001:470:69fc:105::2d8) |
| 11:21:29 | → | Day1 joins (~Android@pop.92-184-116-93.mobile.abo.orange.fr) |
| 11:22:23 | × | sheepduck quits (~sheepduck@2607:fea8:2a61:4800::3ae6) (Remote host closed the connection) |
| 11:23:00 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
| 11:24:52 | → | machinedgod joins (~machinedg@135-23-192-217.cpe.pppoe.ca) |
| 11:25:20 | → | azeem joins (~azeem@176.200.195.4) |
| 11:26:02 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 11:26:45 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 11:27:49 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 268 seconds) |
| 11:28:00 | → | sheepduck joins (~sheepduck@2607:fea8:2a61:4800::3ae6) |
| 11:30:54 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 268 seconds) |
| 11:31:09 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 11:36:45 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 244 seconds) |
| 11:37:41 | × | azeem quits (~azeem@176.200.195.4) (Ping timeout: 268 seconds) |
| 11:38:04 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 11:38:43 | → | trent1 joins (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) |
| 11:38:48 | → | azeem joins (~azeem@176.200.214.131) |
| 11:39:00 | → | jespada joins (~jespada@90.254.242.55) |
| 11:40:35 | → | dhil joins (~dhil@195.213.192.47) |
| 11:45:56 | × | azeem quits (~azeem@176.200.214.131) (Ping timeout: 272 seconds) |
| 11:46:04 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 11:47:46 | → | azeem joins (~azeem@176.200.214.131) |
| 11:50:29 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 11:52:09 | × | azeem quits (~azeem@176.200.214.131) (Ping timeout: 252 seconds) |
| 11:53:19 | → | azeem joins (~azeem@176.200.214.131) |
| 11:53:34 | → | slack1256 joins (~slack1256@181.203.23.128) |
| 11:56:28 | × | yaroot quits (~yaroot@6.3.30.125.dy.iij4u.or.jp) (Quit: The Lounge - https://thelounge.chat) |
| 11:57:13 | → | yaroot joins (~yaroot@6.3.30.125.dy.iij4u.or.jp) |
| 11:58:28 | × | fresheyeball quits (~fresheyeb@c-71-237-105-37.hsd1.co.comcast.net) (Quit: WeeChat 2.9) |
| 12:00:57 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 12:02:36 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 252 seconds) |
| 12:03:49 | × | trent1 quits (~trent@2001:8003:340d:d00:b2de:b98:7a93:b0ea) (Ping timeout: 245 seconds) |
| 12:05:34 | × | azeem quits (~azeem@176.200.214.131) (Ping timeout: 272 seconds) |
| 12:05:34 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 272 seconds) |
| 12:05:52 | → | azeem joins (~azeem@176.201.34.70) |
| 12:06:17 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 12:09:21 | → | jippiedoe joins (~david@2a02-a44c-e14e-1-6bdc-c755-d41c-84af.fixed6.kpn.net) |
| 12:10:59 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 268 seconds) |
| 12:15:50 | → | dhil joins (~dhil@80.208.56.181) |
| 12:16:23 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 12:17:13 | → | oxide joins (~lambda@user/oxide) |
| 12:18:14 | × | azeem quits (~azeem@176.201.34.70) (Ping timeout: 272 seconds) |
| 12:20:14 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 12:22:57 | → | azeem joins (~azeem@176.201.34.70) |
| 12:23:24 | × | slack1256 quits (~slack1256@181.203.23.128) (Ping timeout: 245 seconds) |
| 12:26:23 | → | peterhil_ joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 12:26:27 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 12:30:16 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 272 seconds) |
| 12:31:08 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 12:31:11 | × | psydroid quits (~psydroidm@2001:470:69fc:105::165) (Changing host) |
| 12:31:11 | → | psydroid joins (~psydroidm@user/psydroid) |
| 12:32:27 | → | nan` joins (~nan`@rrcs-70-60-83-42.central.biz.rr.com) |
| 12:32:34 | × | peterhil_ quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds) |
| 12:32:34 | × | azeem quits (~azeem@176.201.34.70) (Ping timeout: 268 seconds) |
| 12:33:19 | → | azeem joins (~azeem@176.200.189.210) |
| 12:34:04 | × | benin03 quits (~benin@183.82.176.4) (Ping timeout: 272 seconds) |
| 12:35:24 | → | peterhil joins (~peterhil@mobile-access-bcee65-77.dhcp.inet.fi) |
| 12:35:29 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 12:37:40 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 12:38:29 | → | jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) |
| 12:39:15 | × | yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Remote host closed the connection) |
| 12:41:51 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 12:42:13 | → | pbrisbin joins (~patrick@pool-72-92-38-164.phlapa.fios.verizon.net) |
| 12:43:12 | → | dhil joins (~dhil@195.213.192.47) |
| 12:43:17 | × | Day1 quits (~Android@pop.92-184-116-93.mobile.abo.orange.fr) (Read error: Connection reset by peer) |
| 12:45:40 | × | hmmmas quits (~chenqisu1@183.217.200.246) (Quit: Leaving.) |
| 12:45:54 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 12:47:05 | → | Day1 joins (~Android@pop.92-184-116-9.mobile.abo.orange.fr) |
| 12:47:59 | × | wanagnuj quits (~wanagnuj@101.95.97.158) (Ping timeout: 245 seconds) |
| 12:48:01 | → | benin03 joins (~benin@183.82.206.186) |
| 12:50:14 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 12:53:37 | × | mastarija quits (~mastarija@31.217.22.43) (Quit: Leaving) |
| 12:54:48 | <kuribas> | I am seeing a lot of downloads of my (264) of my hasqlator library, it isn't completely stable yet... |
| 12:55:00 | <merijn> | kuribas: Lots of bot downloads on hackage |
| 12:55:06 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 12:55:10 | <kuribas> | oh right |
| 12:55:26 | → | sekun joins (~sekun@180.190.152.231) |
| 12:55:48 | <merijn> | Even if you release a package today you'll see downloads steadily going up right away |
| 12:56:20 | <kuribas> | ok, so no world domination for my database library yet ;-) |
| 12:56:26 | <sshine> | kuribas, excellent package name |
| 12:56:37 | <merijn> | kuribas: I just have a bold "Warning: this will evolve, use PVP upperbounds or get rekt" |
| 12:56:54 | <merijn> | Except, you know, more politically correctly written :p |
| 12:57:42 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 12:58:06 | <kuribas> | yeah |
| 12:58:31 | <kuribas> | I could use 0.x.x for unstable, 1.x.x when it's more stable. |
| 12:58:41 | → | jumper149 joins (~jumper149@80.240.31.34) |
| 12:59:40 | → | chomwitt joins (~Pitsikoko@athedsl-20549.home.otenet.gr) |
| 12:59:55 | <kuribas> | merijn: one of the reasons i haven't announced it yet on reddit etc..., because I am still change small things. |
| 13:00:14 | <kuribas> | however, it's already enjoyable to work with :) |
| 13:00:39 | <kuribas> | seeing an error when trying to use a wrong field with the wrong table, or the wrong return value. |
| 13:01:58 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 13:02:25 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 13:03:14 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 13:04:38 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Read error: Connection reset by peer) |
| 13:04:38 | × | oxide quits (~lambda@user/oxide) (Ping timeout: 268 seconds) |
| 13:04:39 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 13:04:56 | → | fendor_ joins (~fendor@213142096031.public.telering.at) |
| 13:05:45 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 13:06:06 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 13:06:24 | × | azeem quits (~azeem@176.200.189.210) (Ping timeout: 252 seconds) |
| 13:06:29 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 268 seconds) |
| 13:06:36 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 13:06:38 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 13:06:46 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 13:07:17 | × | kw` quits (~user@152.1.137.158) (Remote host closed the connection) |
| 13:07:45 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 13:10:14 | <jumper149> | Hi, would it be considered safe to use `unsafeIOToSTM` to call something like `logInfoSH` from `Control.Monad.Logger` (monad-logger)? |
| 13:10:17 | × | Day1 quits (~Android@pop.92-184-116-9.mobile.abo.orange.fr) (Read error: Connection reset by peer) |
| 13:11:54 | <dminuoso> | jumper149: fsvo of safe. |
| 13:12:06 | × | larkfisherman quits (~larkfishe@217.75.204.126) (Quit: Leaving) |
| 13:12:11 | <dminuoso> | jumper149: Keep in mind that STM can retry |
| 13:12:32 | <dminuoso> | Depending on the scenario, it could retry a lot.. |
| 13:14:45 | <dminuoso> | (And in fact, if you didn't expect any retry, you'd just be using IO) |
| 13:15:30 | <dminuoso> | So if you dont mind that you might get (heavily) repeated calls into logInfoSH (possibly even draining resources, depending on what your monad logger is connected to...) |
| 13:16:26 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 13:17:11 | → | o1lo01ol_ joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 13:17:32 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 13:17:46 | → | oxide joins (~lambda@user/oxide) |
| 13:18:13 | <kritzefitz> | The documentation of unsafeIOToSTM warns that IO on handles or other operations that need cleanup might leave behind inconsistent state when a transaction is aborted. This sounds like it could be a problem for logInfoSH. |
| 13:18:18 | → | shapr joins (~user@pool-100-36-247-68.washdc.fios.verizon.net) |
| 13:21:30 | <dminuoso> | Ah, thats annoying |
| 13:22:13 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 13:22:15 | <jumper149> | kritzefitz: Yeah, thats what I was mostly worried about. |
| 13:22:26 | <jumper149> | I guess I'll do the safe approach and do the logging just in IO. |
| 13:25:42 | <kritzefitz> | jumper149, I found writing `join $ atomically ...` useful. That way you can just return IO from your transaction and have it executed just after the transaction. |
| 13:26:05 | × | peterhil quits (~peterhil@mobile-access-bcee65-77.dhcp.inet.fi) (Ping timeout: 244 seconds) |
| 13:26:43 | <kritzefitz> | If your transaction is complex enough you could even use a writer monad to collect the IO along the way. But I digress. |
| 13:26:50 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 268 seconds) |
| 13:26:59 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 13:27:04 | <jumper149> | Yeah I was also thinking of that Writer approach |
| 13:27:14 | <jumper149> | or WriterT to be exact |
| 13:27:18 | HotblackDesiato_ | is now known as HotblackDesiato |
| 13:27:22 | → | ddellacosta joins (~ddellacos@86.106.121.47) |
| 13:28:03 | <jumper149> | I'm not sure how `join` would be better than just putting it afterwards in do-notation. |
| 13:29:14 | → | azeem joins (~azeem@176.200.245.34) |
| 13:30:11 | <kritzefitz> | It's mostly useful, if the IO you want to do depends heavily on the result of the transaction. For example you can do `join $ atomically (readTVar v >>= \case { A -> doSomething; B x -> doSomethingElse x; C a b c -> somethingElseEntirely a c })` |
| 13:30:19 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 13:32:28 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 13:35:41 | <jumper149> | kritzefitz: I can't wrap my head around it x) |
| 13:35:53 | <jumper149> | That case is still in STM |
| 13:36:29 | <jumper149> | ahhhhhh |
| 13:36:32 | <jumper149> | now I see it |
| 13:36:46 | × | wei2912 quits (~wei2912@112.199.250.21) (Quit: Lost terminal) |
| 13:37:06 | <jumper149> | The argument of `atomically` would have type `STM (IO a)` |
| 13:37:15 | <kritzefitz> | Right |
| 13:37:33 | <kritzefitz> | And `join . atomically` turns it into `IO a`. |
| 13:38:12 | <jumper149> | @src join |
| 13:38:12 | <lambdabot> | join x = x >>= id |
| 13:38:27 | <jumper149> | Isnt that still the same as using do-notation? |
| 13:38:50 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 13:39:12 | × | cheater quits (~Username@user/cheater) (Remote host closed the connection) |
| 13:39:16 | <kritzefitz> | The same can be expressed in do-notation: `do { action <- atomically ...; action }`. |
| 13:40:34 | <jumper149> | What I mean is: do { x <- atomically (readTVar v); case x of ... } |
| 13:41:17 | <jumper149> | I don't see the difference to putting that lambda-case after atomically in your example |
| 13:41:23 | → | derelict joins (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) |
| 13:41:28 | × | o1lo01ol_ quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 13:41:29 | <kritzefitz> | Yes, my example was too simple. |
| 13:41:31 | × | azeem quits (~azeem@176.200.245.34) (Read error: Connection reset by peer) |
| 13:41:44 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 13:42:10 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 13:42:21 | <kritzefitz> | I'll paste a section from real code where I used this. |
| 13:42:23 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 13:42:38 | <jumper149> | Ok very cool :) |
| 13:43:22 | → | peterhil_ joins (~peterhil@mobile-access-bcee65-77.dhcp.inet.fi) |
| 13:44:38 | → | yoctocell joins (~yoctocell@h87-96-130-155.cust.a3fiber.se) |
| 13:44:59 | <kritzefitz> | jumper149, https://gitlab.com/Kritzefitz/reflex-gi-gtk/-/blob/next/src/Reflex/GI/Gtk/Run/Base.hs#L180 (Line 180). |
| 13:45:28 | → | larkfisherman joins (~larkfishe@217.75.204.126) |
| 13:45:54 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 245 seconds) |
| 13:46:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 13:46:49 | <kritzefitz> | There the resulting IO depends on the branching done by `orElse`. I can't do that after the transaction is finished. |
| 13:47:58 | → | fendor__ joins (~fendor@212095005130.public.telering.at) |
| 13:48:07 | → | Day1 joins (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) |
| 13:50:04 | × | benin03 quits (~benin@183.82.206.186) (Ping timeout: 272 seconds) |
| 13:50:29 | × | fendor_ quits (~fendor@213142096031.public.telering.at) (Ping timeout: 245 seconds) |
| 13:53:38 | → | boxscape joins (~boxscape@user/boxscape) |
| 13:54:04 | × | Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Read error: Connection reset by peer) |
| 13:54:22 | → | Katarushisu joins (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
| 13:54:29 | × | Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Client Quit) |
| 13:55:01 | <jumper149> | kritzefitz: That's some complicated piece of code ^^ |
| 13:55:15 | → | Katarushisu joins (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
| 13:56:43 | → | sayola joins (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) |
| 13:57:34 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 245 seconds) |
| 13:57:42 | <jumper149> | But I can see what you mean with the branching. |
| 13:57:52 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 13:59:11 | × | chomwitt quits (~Pitsikoko@athedsl-20549.home.otenet.gr) (Quit: Leaving) |
| 13:59:24 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 13:59:38 | → | o1lo01ol_ joins (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) |
| 14:00:23 | × | pgib quits (~textual@173.38.117.92) (Ping timeout: 244 seconds) |
| 14:00:43 | <kritzefitz> | Yeah, that section is one of those places where FFI and concurrency bonded together to form the most complex code ever seen. |
| 14:01:03 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Read error: Connection reset by peer) |
| 14:01:12 | → | chomwitt joins (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) |
| 14:01:36 | → | jorjor joins (~jorgemene@85.251.190.6.dyn.user.ono.com) |
| 14:01:54 | → | fluffyballoon joins (~fluffybal@2620:72:0:6480::10f7) |
| 14:02:03 | <kritzefitz> | But the point is, with `x <- atomically ...; foo x` you have to decide before the transaction what `foo` will be. When you construct the `IO` in the transaction, you can push that decision to the very end of the transaction and still have all variables from the transaction at scope. |
| 14:02:08 | <kritzefitz> | *in scope |
| 14:02:24 | × | hendursa1 quits (~weechat@user/hendursaga) (Quit: hendursa1) |
| 14:02:25 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 14:02:30 | <jumper149> | That puts it very nicely. |
| 14:02:45 | → | hendursaga joins (~weechat@user/hendursaga) |
| 14:05:03 | × | Torro quits (Torro@gateway/vpn/protonvpn/torro) (Quit: leaving) |
| 14:05:51 | × | lavaman quits (~lavaman@98.38.249.169) (Remote host closed the connection) |
| 14:06:44 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 14:07:29 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:08:33 | → | mpt joins (~tom@2a02:908:1862:49e0::5) |
| 14:08:49 | <ddellacosta> | is DerivingStrategies enabled by default when you use DerivingVia? I was going through this https://www.youtube.com/watch?v=UZaQuSIrO6s and I simply didn't need to include DerivingStrategies to be able to e.g. denote stock deriving or whatnot, so wondering why that is. I don't see it documented here https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/exts/deriving_via.html#deriving-via, although maybe I missed it |
| 14:09:07 | → | jneira joins (~jneira@166.red-81-39-172.dynamicip.rima-tde.net) |
| 14:10:08 | <ddellacosta> | or maybe the Implies thing at the top is telling me that? I wasn't sure |
| 14:10:14 | <dminuoso> | ddellacosta: Itr says right there. Yes. |
| 14:10:56 | <ddellacosta> | ah okay, so in general if I see "Implies" in the docs there, I can assume I don't need to explicitly import those extensions to use the extension I'm looking at? |
| 14:11:08 | × | peterhil_ quits (~peterhil@mobile-access-bcee65-77.dhcp.inet.fi) (Ping timeout: 264 seconds) |
| 14:11:10 | <jumper149> | ddellacosta: I would say yes. |
| 14:11:17 | <jumper149> | GHC manual is very nice |
| 14:11:22 | <ddellacosta> | okay, thanks folks |
| 14:11:53 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 14:12:48 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 14:13:12 | → | nsilv joins (~nsilv@212.103.198.210) |
| 14:13:22 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 14:14:06 | → | wallymathieu joins (~wallymath@81-234-151-21-no94.tbcn.telia.com) |
| 14:14:20 | × | jumper149 quits (~jumper149@80.240.31.34) (Quit: WeeChat 3.1) |
| 14:16:07 | × | fendor__ quits (~fendor@212095005130.public.telering.at) (Remote host closed the connection) |
| 14:17:08 | → | fendor_ joins (~fendor@212095005130.public.telering.at) |
| 14:17:24 | → | fendor__ joins (~fendor@212095005130.public.telering.at) |
| 14:18:04 | × | fendor__ quits (~fendor@212095005130.public.telering.at) (Client Quit) |
| 14:20:04 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 245 seconds) |
| 14:20:04 | × | o1lo01ol_ quits (~o1lo01ol1@cpe-74-65-193-238.nyc.res.rr.com) (Remote host closed the connection) |
| 14:20:46 | → | azeem joins (~azeem@176.201.14.251) |
| 14:21:40 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Remote host closed the connection) |
| 14:22:14 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 14:22:38 | → | xkuru joins (~xkuru@user/xkuru) |
| 14:23:44 | × | Day1 quits (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 14:25:25 | × | azeem quits (~azeem@176.201.14.251) (Ping timeout: 268 seconds) |
| 14:26:22 | → | azeem joins (~azeem@176.201.37.85) |
| 14:26:39 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 268 seconds) |
| 14:26:44 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 264 seconds) |
| 14:26:50 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 14:28:55 | o | is now known as niko |
| 14:30:20 | × | geekosaur quits (~geekosaur@069-135-003-034.biz.spectrum.com) (Remote host closed the connection) |
| 14:30:25 | → | zebrag joins (~chris@user/zebrag) |
| 14:30:58 | → | fendor__ joins (~fendor@77.119.128.226.wireless.dyn.drei.com) |
| 14:31:09 | → | geekosaur joins (~geekosaur@069-135-003-034.biz.spectrum.com) |
| 14:31:19 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Ping timeout: 245 seconds) |
| 14:31:44 | → | aerona joins (~aerona@2600:6c54:4600:f300:f3ed:d9b8:4e4c:a83a) |
| 14:32:14 | → | Deide joins (~Deide@wire.desu.ga) |
| 14:32:14 | × | Deide quits (~Deide@wire.desu.ga) (Changing host) |
| 14:32:14 | → | Deide joins (~Deide@user/deide) |
| 14:33:18 | × | fendor_ quits (~fendor@212095005130.public.telering.at) (Ping timeout: 252 seconds) |
| 14:37:29 | × | sh9 quits (~sh9@softbank060116136158.bbtec.net) (Quit: WeeChat 3.0.1) |
| 14:39:14 | × | malvo quits (~malvo@malvo.org) (Ping timeout: 245 seconds) |
| 14:39:48 | → | cheater joins (~Username@user/cheater) |
| 14:42:43 | → | malvo joins (~malvo@malvo.org) |
| 14:44:38 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 14:46:36 | → | Day1 joins (~Android@pop.92-184-116-0.mobile.abo.orange.fr) |
| 14:46:44 | × | Day1 quits (~Android@pop.92-184-116-0.mobile.abo.orange.fr) (Read error: Connection reset by peer) |
| 14:49:36 | × | mpt quits (~tom@2a02:908:1862:49e0::5) (Ping timeout: 272 seconds) |
| 14:52:56 | → | slowButPresent joins (~slowButPr@user/slowbutpresent) |
| 14:53:24 | × | malvo quits (~malvo@malvo.org) (Ping timeout: 244 seconds) |
| 14:54:30 | → | malvo joins (~malvo@malvo.org) |
| 14:55:29 | × | azeem quits (~azeem@176.201.37.85) (Ping timeout: 245 seconds) |
| 14:55:59 | → | azeem joins (~azeem@176.201.16.194) |
| 14:56:03 | × | ddellacosta quits (~ddellacos@86.106.121.47) (Read error: Connection reset by peer) |
| 14:56:09 | → | ddellaco_ joins (~ddellacos@86.106.121.47) |
| 14:59:30 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 15:00:15 | × | cheater quits (~Username@user/cheater) (Ping timeout: 252 seconds) |
| 15:00:35 | → | cheater joins (~Username@user/cheater) |
| 15:01:52 | × | dhouthoo quits (~dhouthoo@178-117-36-167.access.telenet.be) (Quit: WeeChat 3.1) |
| 15:02:11 | × | cfricke quits (~cfricke@user/cfricke) (Ping timeout: 244 seconds) |
| 15:02:44 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 15:03:44 | → | econo joins (uid147250@user/econo) |
| 15:04:29 | → | cfricke joins (~cfricke@user/cfricke) |
| 15:04:53 | → | delYsid joins (~user@84-115-55-45.cable.dynamic.surfer.at) |
| 15:06:15 | <delYsid> | Why, oh why, is Tree not Hashable... |
| 15:06:30 | → | lavaman joins (~lavaman@98.38.249.169) |
| 15:07:11 | × | derelict quits (~winter@2603-6011-f901-9e5b-78b5-8b2f-cdb2-4171.res6.spectrum.com) (Changing host) |
| 15:07:11 | → | derelict joins (~winter@user/derelict) |
| 15:07:51 | × | azeem quits (~azeem@176.201.16.194) (Read error: Connection reset by peer) |
| 15:08:32 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 15:08:38 | × | cfricke quits (~cfricke@user/cfricke) (Client Quit) |
| 15:09:27 | <boxscape> | delYsid can't you add an instance? |
| 15:09:37 | × | xff0x_ quits (~xff0x@2001:1a81:5309:4200:6690:d1a3:e3e9:8847) (Ping timeout: 244 seconds) |
| 15:10:42 | → | xff0x_ joins (~xff0x@2001:1a81:5309:4200:5885:4f5d:c0ef:4e6d) |
| 15:10:52 | × | derelict quits (~winter@user/derelict) (Quit: WeeChat 3.1) |
| 15:10:54 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 245 seconds) |
| 15:11:11 | → | derelict joins (~derelict@user/derelict) |
| 15:11:51 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 15:11:55 | → | kw joins (~user@152.1.137.158) |
| 15:12:37 | <kw> | Is there an accepted way to serialize `TypeRep` ? |
| 15:14:35 | <kw> | Like, say I have a `Map TypeRep Cast` where `data Cast = forall a. Typable a => Cast a` and I want to write it to disk... |
| 15:15:02 | <sclv> | I don't think there's a great way to do that, last I remember |
| 15:15:15 | → | Day1 joins (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) |
| 15:15:23 | <sclv> | One could call typeRepFingerprint, and those fingerprints are serializable, and have eq and ord on them |
| 15:15:32 | → | mastarija joins (~mastarija@31.217.22.43) |
| 15:16:10 | <sclv> | So if having a map from Fingerprint to Cast is acceptable, you're done :-) |
| 15:16:32 | <kw> | sclv: Nice, that's perfect! Thanks! |
| 15:16:42 | <mastarija> | How does one exit an infinite loop in GHCi on Windows? This is something that's been always annoying me but I was too lazy to deal with properly. |
| 15:16:58 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 15:17:12 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 15:17:16 | <mastarija> | I tried Ctrl+C, but that exits GHCi, yet the infinite loop still runs in the background (sometimes...) |
| 15:18:16 | <sclv> | uh... maybe https://gitlab.haskell.org/ghc/ghc/-/issues/14150 ?? |
| 15:19:45 | <mastarija> | oh god.. |
| 15:19:59 | <tomsmeding> | delYsid: Tree from where? Data.Tree from containers? Presumably because that would add a dependency on the 'hashable' package in the boot library 'containers' and the ghc developers don't want to add another boot library if not really necessary |
| 15:20:39 | <[exa]> | mastarija: windows problems may require windows solutions |
| 15:21:10 | <mastarija> | [exa], I thought maybe windows uses some other keybinding |
| 15:21:11 | <tomsmeding> | though I guess hashable could give the instance, though that would add a 'containers' dependency to hashable; but that's less bad because containers is a boot library |
| 15:22:22 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 15:22:51 | <[exa]> | mastarija: afaik console stuff is not documented at all on windows, I guess we're lucky that it at least sends *some* signal |
| 15:23:48 | <mastarija> | [exa], you mean console api / behaviour on windows? I remember it being pretty well documented few years back when I had to do some console stuff. |
| 15:23:56 | × | larkfisherman quits (~larkfishe@217.75.204.126) (Remote host closed the connection) |
| 15:24:39 | × | lortabac quits (~lortabac@2a01:e0a:541:b8f0:b9f7:1919:7684:9913) (Quit: WeeChat 2.8) |
| 15:24:58 | <[exa]> | mastarija: ok if there's docs I'm surprised |
| 15:25:09 | <[exa]> | doesn't it mention some other keybinding? |
| 15:25:53 | <mastarija> | nope, I just assumed Ctrl+C just kills the host process on windows, so maybe GHCi used some other combo on windows |
| 15:26:56 | <sclv> | mastarija: are you running it via stack or something else or directly? |
| 15:28:08 | <mastarija> | I've noticed that comment at the end, I'm trying now to run just GHCi, I ran it as cabal repl --dependencies "lalala..." |
| 15:28:27 | <mastarija> | Maybe if I run it from Cabal it doesn't work |
| 15:28:47 | → | wroathe joins (~wroathe@c-68-54-25-135.hsd1.mn.comcast.net) |
| 15:29:32 | × | sayola quits (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) (Quit: Leaving.) |
| 15:30:11 | <sclv> | mastarija: interesting. if you can reproduce that issue with cabal repl on windows, its worth filing a cabal ticket... |
| 15:30:22 | <mastarija> | hm... but now I can't load my libraries I require for my script, I did `cabal install --lib random transformers`, but when I start GHCi it says it can't find System.Random |
| 15:30:31 | <mastarija> | sclv, Not sure it's cabal, I have to check first |
| 15:30:46 | × | agumonke` quits (~user@88.160.31.174) (Ping timeout: 272 seconds) |
| 15:30:49 | → | sayola joins (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) |
| 15:30:57 | <sclv> | you'll have to use v1-install, which places it in the global package store |
| 15:31:11 | <mastarija> | I thought when doing cabal install --lib, my lib get's added to ghc environment, and that is read by GHCi |
| 15:31:24 | <sclv> | oh good point, that _should_ suffice too, weird |
| 15:31:52 | <sclv> | i guess it depends where it puts the package env file when you do that -- gah those commands really don't have quite enough polish and chrome :-/ |
| 15:32:11 | <mastarija> | hm... |
| 15:32:19 | <mastarija> | damn, another problem to solve |
| 15:32:55 | <monochrom> | I have had great success with --lib. All default settings. But on linux. |
| 15:33:02 | <mastarija> | yes, I've deleted the default env and watched it regenerate with my own two eyes |
| 15:33:08 | <mastarija> | but GHCi is playing dumb |
| 15:33:30 | → | bontaq joins (~user@ool-18e47f8d.dyn.optonline.net) |
| 15:33:35 | <monochrom> | which GHC version? |
| 15:34:02 | <mastarija> | 8.8.4 |
| 15:34:09 | <monochrom> | New enough. |
| 15:35:30 | × | nan` quits (~nan`@rrcs-70-60-83-42.central.biz.rr.com) (Quit: Bye, all!) |
| 15:38:52 | × | Day1 quits (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 15:40:13 | → | Day1 joins (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) |
| 15:41:19 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 245 seconds) |
| 15:41:19 | × | Day1 quits (~Android@2a01cb06a02f03df0000005a611ae401.ipv6.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 15:41:31 | → | Baloo_ joins (~Baloo_@h-98-128-172-214.A785.priv.bahnhof.se) |
| 15:41:41 | × | Baloo_ quits (~Baloo_@h-98-128-172-214.A785.priv.bahnhof.se) (Remote host closed the connection) |
| 15:42:16 | → | Baloo_ joins (~Baloo_@193.138.218.166) |
| 15:42:20 | → | lbseale joins (~lbseale@user/ep1ctetus) |
| 15:42:30 | → | myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net) |
| 15:45:04 | × | ddellaco_ quits (~ddellacos@86.106.121.47) (Read error: Connection reset by peer) |
| 15:45:08 | × | dut quits (~dut@user/dut) (Read error: Connection reset by peer) |
| 15:45:14 | → | ddellacosta joins (~ddellacos@86.106.121.47) |
| 15:46:53 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 15:47:59 | → | Day1 joins (~Android@pop.92-184-116-63.mobile.abo.orange.fr) |
| 15:50:51 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 15:51:15 | → | danso joins (~danso@modemcable156.91-20-96.mc.videotron.ca) |
| 15:52:01 | → | Day1_ joins (~Android@lfbn-str-1-401-42.w90-126.abo.wanadoo.fr) |
| 15:54:06 | → | Tuplanolla joins (~Tuplanoll@91-159-68-239.elisa-laajakaista.fi) |
| 15:54:38 | × | wallymathieu quits (~wallymath@81-234-151-21-no94.tbcn.telia.com) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 15:54:42 | <geekosaur> | iirc there's an environment variable that tells ghc(i) to ignore environment files |
| 15:54:56 | × | Day1 quits (~Android@pop.92-184-116-63.mobile.abo.orange.fr) (Ping timeout: 264 seconds) |
| 15:55:19 | × | Day1_ quits (~Android@lfbn-str-1-401-42.w90-126.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 15:55:55 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 244 seconds) |
| 15:56:56 | → | wonko joins (~wjc@62.115.229.50) |
| 15:57:28 | → | dut joins (~dut@user/dut) |
| 15:57:45 | → | Day1 joins (~Android@lfbn-str-1-401-42.w90-126.abo.wanadoo.fr) |
| 16:00:19 | × | nsilv quits (~nsilv@212.103.198.210) (Quit: WeeChat 3.0.1) |
| 16:01:37 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 268 seconds) |
| 16:01:55 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 16:03:18 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 16:05:17 | → | hololeap joins (hololeap@user/hololeap) |
| 16:06:20 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:07:23 | → | Ariakenom joins (~Ariakenom@2001:9b1:efb:fc00:1900:b2bf:db54:db6b) |
| 16:08:00 | × | pe200012 quits (~pe200012@120.236.162.10) (Ping timeout: 244 seconds) |
| 16:09:02 | × | ubert quits (~Thunderbi@2a02:8109:9880:303c:ca5b:76ff:fe29:f233) (Remote host closed the connection) |
| 16:11:21 | <dminuoso> | [__2] rejecting: freyja-client-0.4.0.0 (conflict: base==4.12.0.0/installed-4.12.0.0, freyja-client => base>=4.13 && <5) |
| 16:11:45 | <dminuoso> | What is the meaning of the `/installed-4.12.0.0` suffix of `4.12.0.0/installed-4.12.0.0`? |
| 16:12:26 | <dminuoso> | Is that an actually valid constraint? Or just something cabal pretty prints based on how it derives the base==4.12.0.0 constraint? |
| 16:12:43 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 268 seconds) |
| 16:13:25 | → | Guest18 joins (~Guest18@103.77.136.56) |
| 16:13:51 | <dminuoso> | Because cabal rejects it if I specify `base==4.13.0.0/installed-4.13.0.0` |
| 16:14:07 | <wz1000> | dminuoso: base cannot be reinstalled, it ships with your compiler |
| 16:14:17 | <dminuoso> | wz1000: Sure, that's not what Im wondering about. |
| 16:14:31 | <wz1000> | the installed suffix indicates this |
| 16:14:37 | <dminuoso> | Im just trying to understand the exact verbatim output. |
| 16:15:01 | → | MQ-17J joins (~MQ-17J@8.21.10.116) |
| 16:16:41 | × | Guest18 quits (~Guest18@103.77.136.56) (Quit: Client closed) |
| 16:17:38 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 16:18:39 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 16:19:10 | × | chomwitt quits (~Pitsikoko@2a02:587:dc02:b00:98b0:cd42:bd6f:8295) (Ping timeout: 244 seconds) |
| 16:19:28 | → | ddellaco_ joins (~ddellacos@86.106.121.20) |
| 16:19:37 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 16:20:44 | × | ddellacosta quits (~ddellacos@86.106.121.47) (Ping timeout: 264 seconds) |
| 16:22:59 | → | o1lo01ol1o joins (~o1lo01ol1@cpe-74-72-187-2.nyc.res.rr.com) |
| 16:22:59 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 16:23:12 | × | peterhil quits (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) (Ping timeout: 268 seconds) |
| 16:23:15 | × | o1lo01ol1o quits (~o1lo01ol1@cpe-74-72-187-2.nyc.res.rr.com) (Remote host closed the connection) |
| 16:24:20 | × | ddellaco_ quits (~ddellacos@86.106.121.20) (Ping timeout: 264 seconds) |
| 16:25:17 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 16:25:20 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 16:27:24 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 16:28:01 | × | Day1 quits (~Android@lfbn-str-1-401-42.w90-126.abo.wanadoo.fr) (Read error: Connection reset by peer) |
| 16:30:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 16:31:10 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 16:31:28 | codolio | is now known as dolio |
| 16:32:00 | → | Bartosz joins (~textual@24.35.90.211) |
| 16:32:47 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 16:34:06 | × | boxscape quits (~boxscape@user/boxscape) (Ping timeout: 272 seconds) |
| 16:34:18 | × | mastarija quits (~mastarija@31.217.22.43) (Ping timeout: 268 seconds) |
| 16:35:28 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 16:38:21 | → | Day1 joins (~Android@2a01:cb10:65:ae00:cdb0:cf48:9a12:9b62) |
| 16:38:25 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 16:39:52 | × | Day1 quits (~Android@2a01:cb10:65:ae00:cdb0:cf48:9a12:9b62) (Client Quit) |
| 16:40:33 | <dminuoso> | Mmm, judging from the cabal code, it seems it's just the pretty printer |
| 16:41:32 | <dminuoso> | showI (I v (Inst uid)) = showVer v ++ "/installed" ++ extractPackageAbiHash uid |
| 16:42:26 | × | siraben quits (~siraben@user/siraben) (Quit: Reconnecting) |
| 16:45:42 | → | peterhil joins (~peterhil@dsl-hkibng32-54f849-252.dhcp.inet.fi) |
| 16:47:47 | <dminuoso> | $ ghc-pkg describe base|grep id #=> id: base-4.13.0.0 |
| 16:48:08 | <dminuoso> | Here we go, and that id string at the end is where the version number after `installed` comes from. |
| 16:48:14 | <dminuoso> | Bah, this is quite odd and confusing. |
| 16:48:18 | → | koishi_ joins (~koishi_@160.16.113.140) |
| 16:54:10 | × | Bartosz quits (~textual@24.35.90.211) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 16:55:04 | → | ubert joins (~Thunderbi@p200300ecdf259d4bf8eef0820066d39d.dip0.t-ipconnect.de) |
| 16:57:05 | × | ubert quits (~Thunderbi@p200300ecdf259d4bf8eef0820066d39d.dip0.t-ipconnect.de) (Client Quit) |
| 16:57:22 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:57:56 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 16:57:58 | → | gzj joins (~GZJ0X@199.193.127.217.16clouds.com) |
| 16:58:23 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 16:58:52 | → | teaSlurper joins (~chris@81.96.113.213) |
| 17:02:22 | → | chomwitt joins (~Pitsikoko@athedsl-20549.home.otenet.gr) |
| 17:03:31 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:04:07 | × | jorjor quits (~jorgemene@85.251.190.6.dyn.user.ono.com) (Ping timeout: 244 seconds) |
| 17:04:32 | → | siraben` joins (~user@103.206.205.210) |
| 17:04:35 | × | siraben` quits (~user@103.206.205.210) (Remote host closed the connection) |
| 17:08:57 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 252 seconds) |
| 17:09:00 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 17:09:35 | × | MQ-17J quits (~MQ-17J@8.21.10.116) (Ping timeout: 252 seconds) |
| 17:09:37 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 265 seconds) |
| 17:11:47 | × | alx741 quits (~alx741@181.196.69.18) (Ping timeout: 252 seconds) |
| 17:12:05 | → | reumeth joins (~reumeth@user/reumeth) |
| 17:12:05 | <tomsmeding> | dminuoso: um, so what's the difference with the normal version number? :P |
| 17:12:49 | → | mastarija joins (~mastarija@31.217.22.43) |
| 17:13:46 | × | derelict quits (~derelict@user/derelict) (Ping timeout: 268 seconds) |
| 17:14:38 | <dminuoso> | tomsmeding: From the looks of it, it's probably an overlooked bug. |
| 17:14:45 | <dminuoso> | The code is supposed to extract the abi hash from the package |
| 17:14:57 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Read error: Connection reset by peer) |
| 17:15:26 | → | derelict joins (~derelict@user/derelict) |
| 17:15:50 | <dminuoso> | So say you had `wai-logger-2.3.6-2a8c55efa43c9b01a0a3b38bdaadb02395a01172c27fddc88dd059cf00e1627c` installed |
| 17:15:53 | <dminuoso> | then this would report: |
| 17:16:11 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 17:16:33 | <dminuoso> | (conflict: wai-logger==2.3.6/installed-2a8c55efa43c9b01a0a3b38bdaadb02395a01172c27fddc88dd059cf00e1627c, freyja-client => wai-logger>=2.4) |
| 17:16:46 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 17:17:25 | <dminuoso> | It's interesting that I understand the meaning of == and => now. == means it's a fixed dependency, and => means the right hand is a constraint induced by the left thing |
| 17:18:52 | → | crazazy joins (~user@130.89.171.203) |
| 17:19:12 | × | kuribas quits (~user@ptr-25vy0i6v9tbds0gjkm6.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
| 17:19:27 | → | slack1256 joins (~slack1256@181.203.23.128) |
| 17:20:12 | <dminuoso> | I just dont understand in what codepath that would ever trigger |
| 17:20:38 | <tomsmeding> | Interesting! |
| 17:22:32 | <zzz> | hi. i am creating a tree of all possible moves in a game (think tic tac toe). can anyone give me some advice on how to make my code concurrent or parallel, or help me find exaclty what can i do? |
| 17:22:34 | × | malvo quits (~malvo@malvo.org) (Ping timeout: 245 seconds) |
| 17:23:44 | × | myShoggoth quits (~myShoggot@97-120-89-117.ptld.qwest.net) (Ping timeout: 264 seconds) |
| 17:24:19 | × | mc47 quits (~mc47@xmonad/TheMC47) (Quit: Leaving) |
| 17:24:36 | → | hnOsmium0001 joins (uid453710@id-453710.stonehaven.irccloud.com) |
| 17:24:44 | → | alx741 joins (~alx741@186.178.108.59) |
| 17:24:46 | → | boxscape joins (~boxscape@user/boxscape) |
| 17:25:06 | <dminuoso> | zzz: hiya, probably. |
| 17:26:09 | <dminuoso> | zzz: Have you decided on a particular algorithm? Maybe alpha beta pruning? |
| 17:26:47 | spatchkaa_ | is now known as spatchkaa |
| 17:26:50 | <dminuoso> | The key here is whether you even have an search algorithm that you parallelize or not. |
| 17:27:22 | <boxscape> | tomsmeding have you considered loading up the last page instead of the first page when visiting https://ircbrowse.tomsmeding.com/browse/lchaskell ? Seems like that would be quite a bit more useful (and save me a click everytime I go there :) |
| 17:27:33 | → | malvo joins (~malvo@malvo.org) |
| 17:27:44 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Ping timeout: 252 seconds) |
| 17:27:44 | × | spatchkaa quits (~spatchkaa@S010600fc8da47b63.gv.shawcable.net) (Quit: Leaving) |
| 17:28:06 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 17:28:21 | tomsmeding | notes boxscape's suggestion on the list |
| 17:28:26 | <boxscape> | thanks :) |
| 17:28:31 | <dminuoso> | tomsmeding: actually strike what I said about abi hashes, I dont quite understand when, but apparently under some circumstances, a package identifier can be `other-package-AbCdEfGhIj0123456789` |
| 17:28:42 | tomsmeding | does the same every time so I wager it will save everyone a click |
| 17:28:49 | <dminuoso> | And https://github.com/haskell/cabal/issues/5892 suggests the above was quite intentional |
| 17:29:18 | <tomsmeding> | dminuoso: perhaps the disappearance of a hash happens for boot libraries only? |
| 17:29:20 | → | azeem joins (~azeem@176.200.250.80) |
| 17:30:05 | × | xkuru quits (~xkuru@user/xkuru) (Remote host closed the connection) |
| 17:30:15 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 17:30:23 | → | xkuru joins (~xkuru@user/xkuru) |
| 17:31:02 | <dminuoso> | tomsmeding: Not quite sure, boot libraries have abi hashes too. |
| 17:31:45 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 17:31:50 | <dminuoso> | What I am sure about, is that this must be installed packages. |
| 17:31:58 | <dminuoso> | Perhaps this is about packages installed inside the v2- store? |
| 17:32:03 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 252 seconds) |
| 17:34:37 | → | myShoggoth joins (~myShoggot@97-120-89-117.ptld.qwest.net) |
| 17:35:13 | × | xkuru quits (~xkuru@user/xkuru) (Remote host closed the connection) |
| 17:35:55 | × | azeem quits (~azeem@176.200.250.80) (Read error: Connection reset by peer) |
| 17:37:27 | → | octeep joins (~octeep@n219077212239.netvigator.com) |
| 17:38:54 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 17:39:09 | → | Crypt9a2e joins (~Crypt9a2e@157.51.21.223) |
| 17:40:36 | × | neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds) |
| 17:45:02 | <zzz> | dminuoso: no, for now i am pretty much just bruteforcing all possible moves. i have one or two heuristics but that's it. the game is similar in every way to tic tac toe except you have 3 ranks of pieces. each player has 2 pieces of each rank for a total of 6. you can play higher rank pieces over lower rank ones. once a piece is placed, it can never be moved. i mainly want to explore optimal strategies |
| 17:45:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 17:46:13 | → | nattiestnate joins (~nate@36.70.194.182) |
| 17:46:24 | <dminuoso> | zzz: Presumably the goal is to explore parallel programming in Haskell then? |
| 17:46:52 | <dminuoso> | @where pacp |
| 17:46:52 | <lambdabot> | I know nothing about pacp. |
| 17:46:54 | <dminuoso> | @where PACP |
| 17:46:54 | <lambdabot> | I know nothing about pacp. |
| 17:47:34 | <dminuoso> | @where PCPH |
| 17:47:35 | <lambdabot> | "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive. |
| 17:47:35 | <lambdabot> | org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/> |
| 17:47:53 | <dminuoso> | This is the definite book to grab and read. |
| 17:48:06 | <dminuoso> | A pdf is available on the web.archive.org link ^- |
| 17:48:41 | → | tremon joins (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) |
| 17:49:02 | <zzz> | thanks that's great |
| 17:49:21 | <DigitalKiwi> | free as in piracy |
| 17:49:42 | <dminuoso> | DigitalKiwi: It was up on oreilly.com directly. |
| 17:49:54 | <dminuoso> | I don't consider it piracy if the publisher itself provides open access to a book. |
| 17:50:00 | × | mmaruseacph2 quits (~mihai@198.199.100.72) (Quit: The past is dead and buried.) |
| 17:50:12 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 17:50:19 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 17:50:51 | → | mmaruseacph2 joins (~mihai@198.199.100.72) |
| 17:51:38 | <DigitalKiwi> | https://www.youtube.com/watch?v=GVXCr6upWUo |
| 17:52:07 | <dminuoso> | zzz: As for a parallel compatible algorithm you might want to start with principle variation splitting or YBWC. PVS is probably by far easiest to implement. |
| 17:52:12 | <DigitalKiwi> | doc.lagout.org |
| 17:52:15 | → | leif joins (~leif@75.164.44.108) |
| 17:52:20 | <DigitalKiwi> | yw |
| 17:52:28 | leif | is now known as pdxleif |
| 17:53:08 | × | sekun quits (~sekun@180.190.152.231) (Ping timeout: 264 seconds) |
| 17:56:13 | → | motherfs1 joins (~motherfsc@user/motherfsck) |
| 17:56:27 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 17:59:19 | <zzz> | dminuoso: i have no idea what that means but ill be looking into it |
| 17:59:24 | × | motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
| 18:00:17 | <dminuoso> | zzz: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.1116&rep=rep1&type=pdf |
| 18:06:11 | × | motherfs1 quits (~motherfsc@user/motherfsck) (Ping timeout: 268 seconds) |
| 18:07:19 | <zzz> | i see |
| 18:07:49 | → | lavaman joins (~lavaman@98.38.249.169) |
| 18:12:19 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
| 18:16:07 | → | bitmapper joins (uid464869@id-464869.tooting.irccloud.com) |
| 18:16:11 | → | arkeet joins (arkeet@moriya.ca) |
| 18:16:23 | → | justsomeguy joins (~justsomeg@user/justsomeguy) |
| 18:17:06 | × | gzj quits (~GZJ0X@199.193.127.217.16clouds.com) (Remote host closed the connection) |
| 18:17:25 | → | gzj joins (~GZJ0X@199.193.127.217.16clouds.com) |
| 18:18:37 | → | motherfs1 joins (~motherfsc@user/motherfsck) |
| 18:21:28 | <zzz> | "Note that actual parallelism is only supported by certain implementations (GHC with the -threaded option, and GPH, for now). On other implementations, par a b = b. |
| 18:21:40 | <zzz> | ^is this still true? |
| 18:22:04 | × | koishi_ quits (~koishi_@160.16.113.140) (Quit: /ragequit) |
| 18:22:51 | → | v01d4lph4 joins (~v01d4lph4@122.160.65.250) |
| 18:22:51 | × | v01d4lph4 quits (~v01d4lph4@122.160.65.250) (Changing host) |
| 18:22:51 | → | v01d4lph4 joins (~v01d4lph4@user/v01d4lph4) |
| 18:22:56 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 18:23:00 | <tomsmeding> | zzz: which other implementations do you want to know about? |
| 18:23:05 | × | gzj quits (~GZJ0X@199.193.127.217.16clouds.com) (Remote host closed the connection) |
| 18:23:23 | → | gzj joins (~GZJ0X@199.193.127.217.16clouds.com) |
| 18:23:48 | <zzz> | oh, i just want to know if i still need the ghc -threaded option |
| 18:24:13 | <tomsmeding> | Ah, you do |
| 18:24:20 | <zzz> | thank you |
| 18:24:29 | <tomsmeding> | There's usually little reason to not pass that flag, I believe |
| 18:24:47 | → | fvr joins (uid503686@id-503686.highgate.irccloud.com) |
| 18:27:09 | × | v01d4lph4 quits (~v01d4lph4@user/v01d4lph4) (Ping timeout: 245 seconds) |
| 18:27:26 | × | nattiestnate quits (~nate@36.70.194.182) (Quit: WeeChat 3.1) |
| 18:27:46 | → | nattiestnate joins (~nate@36.70.194.182) |
| 18:27:56 | → | yin[m] joins (~zwromatri@2001:470:69fc:105::1d4) |
| 18:29:48 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 18:30:11 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 18:30:47 | × | nattiestnate quits (~nate@36.70.194.182) (Client Quit) |
| 18:32:26 | → | nattiestnate joins (~nate@36.70.194.182) |
| 18:32:31 | × | nattiestnate quits (~nate@36.70.194.182) (Client Quit) |
| 18:32:57 | → | nattiestnate joins (~nate@36.70.194.182) |
| 18:33:48 | <zzz> | for now i'm just going with the most naive solution of "here's a list of computations, run each one of them in parallel"? |
| 18:33:48 | → | siraben joins (~siraben@user/siraben) |
| 18:34:24 | <zzz> | s/?/! |
| 18:34:58 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 18:35:28 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 18:36:28 | × | nattiestnate quits (~nate@36.70.194.182) (Client Quit) |
| 18:36:49 | → | nattiestnate joins (~nate@36.70.194.182) |
| 18:36:57 | <slack1256> | Has anyone used ghc on a Rpi 4 with nixos? is it workable or should I need to cross compile? |
| 18:41:32 | × | justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.0.1) |
| 18:43:51 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 18:45:51 | <DigitalKiwi> | i have used it |
| 18:46:45 | <maerwald> | slack1256: there are bindists, no? |
| 18:47:14 | <DigitalKiwi> | i use distributed builds though https://github.com/nix-community/aarch64-build-box |
| 18:47:32 | → | Shaeto joins (~Shaeto@94.25.234.141) |
| 18:47:35 | <maerwald> | armv7 and aarch64 bindists exist |
| 18:47:57 | × | Morrow quits (~Morrow@bzq-110-168-31-106.red.bezeqint.net) (Ping timeout: 252 seconds) |
| 18:50:21 | <DigitalKiwi> | when i get really bored i try to build things for x86_64 on that box lol |
| 18:50:57 | <DigitalKiwi> | https://myfriendshate.me/files/2020-01-07-075516_2880x1800_scrot.png |
| 18:51:22 | → | agumonke` joins (~user@88.163.231.79) |
| 18:52:54 | × | agumonke` quits (~user@88.163.231.79) (Read error: Connection reset by peer) |
| 18:53:11 | → | agumonke` joins (~user@88.163.231.79) |
| 18:53:47 | mnrmnaugh | is now known as awk |
| 18:54:01 | → | cfricke joins (~cfricke@user/cfricke) |
| 18:54:02 | × | Scotty_Trees quits (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) (Quit: Leaving) |
| 18:57:31 | dy` | is now known as dy |
| 18:59:14 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 19:01:30 | × | slack1256 quits (~slack1256@181.203.23.128) (Read error: Connection reset by peer) |
| 19:02:45 | → | vicfred joins (~vicfred@user/vicfred) |
| 19:04:27 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 19:10:23 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 19:11:00 | → | Scotty_Trees joins (~Scotty_Tr@162-234-179-169.lightspeed.brhmal.sbcglobal.net) |
| 19:11:05 | → | Guest97 joins (~Guest9@43.241.144.108) |
| 19:13:24 | × | Crypt9a2e quits (~Crypt9a2e@157.51.21.223) (Ping timeout: 268 seconds) |
| 19:13:48 | × | LambdaDuck quits (~anka@ksit.fixme.fi) (Ping timeout: 244 seconds) |
| 19:14:55 | → | LambdaDuck joins (~anka@ksit.fixme.fi) |
| 19:15:51 | → | neceve joins (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) |
| 19:17:58 | × | fendor quits (~fendor@77.119.128.226.wireless.dyn.drei.com) (Remote host closed the connection) |
| 19:19:47 | × | ystael quits (~ystael@user/ystael) (Read error: Connection reset by peer) |
| 19:20:28 | → | ystael joins (~ystael@user/ystael) |
| 19:20:28 | × | teaSlurper quits (~chris@81.96.113.213) (Read error: Connection reset by peer) |
| 19:20:58 | × | nattiestnate quits (~nate@36.70.194.182) (Quit: WeeChat 3.1) |
| 19:20:59 | → | safinaskar joins (~safinaska@109-252-90-89.nat.spd-mgts.ru) |
| 19:21:17 | → | fendor joins (~fendor@77.119.128.226.wireless.dyn.drei.com) |
| 19:24:54 | <tomsmeding> | DigitalKiwi: juicy |
| 19:25:06 | <tomsmeding> | What's up with that 0% in the cpu column though |
| 19:25:52 | <tomsmeding> | Also how is that sorted on cpu with 1.9%, 3.2%, 0.0% on top |
| 19:27:04 | → | xkuru joins (~xkuru@user/xkuru) |
| 19:28:12 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 19:28:56 | → | Morrow joins (~Morrow@bzq-110-168-31-106.red.bezeqint.net) |
| 19:28:57 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 19:29:08 | → | azeem joins (~azeem@176.201.7.210) |
| 19:32:16 | → | teaSlurper joins (~chris@81.96.113.213) |
| 19:33:35 | × | azeem quits (~azeem@176.201.7.210) (Ping timeout: 272 seconds) |
| 19:33:47 | <DigitalKiwi> | i don't think the sorting refreshes as quickly as the number |
| 19:33:53 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 19:34:19 | → | azeem joins (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) |
| 19:36:22 | × | teaSlurper quits (~chris@81.96.113.213) (Read error: Connection reset by peer) |
| 19:36:34 | → | teaSlurper joins (~chris@81.96.113.213) |
| 19:36:38 | <safinaskar> | hi. i want to create my own language. and i plan to use library "lsp". the only functionality i need is this: i want my interpreter to produce error/warning messages, and i want editor to show them in necessary place. is there some "lsp" example with exactly this functionality and nothing more? |
| 19:37:25 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 19:40:09 | → | Topsi joins (~Tobias@dyndsl-037-138-065-228.ewe-ip-backbone.de) |
| 19:40:10 | <dminuoso> | 20:24:29 tomsmeding | There's usually little reason to not pass that flag, I believe |
| 19:40:18 | <dminuoso> | tomsmeding: Fun fact, not passing threaded is not supported! |
| 19:40:36 | <dminuoso> | It's a bit weird that to get an officially supported mode of operation, you have to pass extra flags.. |
| 19:40:52 | → | exarkun joins (~exarkun@user/exarkun) |
| 19:41:27 | <tomsmeding> | dminuoso: wut? |
| 19:41:28 | <geekosaur> | there are reasons to not pass it, such as debugging crashes (as is currently going on in #ghc) |
| 19:41:44 | <geekosaur> | but indeed they only really support the threaded runtime |
| 19:42:05 | <exarkun> | if I were any good at haskell, would the point and usage of https://hackage.haskell.org/package/wai-extra-3.1.6/docs/Network-Wai-Test.html just be obvious to me from what's on that page? |
| 19:42:26 | <tomsmeding> | This situation sounds like a research prototype :p |
| 19:42:46 | <tomsmeding> | Where the unsupported debugging setting is the default |
| 19:42:56 | <geekosaur> | s/Haskell/WAI/, I think |
| 19:43:23 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 19:44:41 | <geekosaur> | the point seems somewhat obvious to me, it's stubs for debugging a WAI application |
| 19:46:36 | <xerox> | exarkun: I find this kind of search sometimes helps in these cases https://github.com/search?l=Haskell&p=2&q=import+Network.Wai.Test&type=Code you see how people actually end up using it |
| 19:47:10 | <dminuoso> | exarkun: The usage seems clear from the type signatures alone. |
| 19:47:37 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: Textual IRC Client: www.textualapp.com) |
| 19:47:37 | <dminuoso> | While granted, it's no excuse, but the intend and ergonomics are clear after looking at it for 2 minutes. |
| 19:48:42 | <exarkun> | xerox: That definitely helps. In the first example I finally see how to set anything other than the request path in a request. |
| 19:48:51 | <xerox> | hurray! |
| 19:50:47 | <exarkun> | I don't understand why https://hackage.haskell.org/package/wai-3.2.2.1/docs/Network-Wai.html#t:Request doesn't say more about Request, either about the constructor or the (uh oh I forget what they're called) setters / fields |
| 19:51:08 | <safinaskar> | Hi! A long time ago i wrote my proof checker in haskell. I wanted to be able to interactively see errors (from this prover) in my editor. so i wrote program in c++ (!!!!) (language from hell) using qt. This program was simple text editor. After every keystroke it did run my prover and showed me place of error |
| 19:51:12 | <safinaskar> | all this worked nice |
| 19:52:18 | <dminuoso> | exarkun: Ah that's a haddocks issue. |
| 19:52:27 | <safinaskar> | my question is: how to do the same using language server protocol? (with vscode instead of my qt program?) |
| 19:52:38 | <dminuoso> | exarkun: The package exports the field accessors explicitly, without exporting the data constructor. |
| 19:52:54 | <safinaskar> | is there some example? so far i found none and it seems it is easier to continue with that ugly qt hack |
| 19:52:54 | <xerox> | exarkun: because the module doesn't export those |
| 19:52:54 | <dminuoso> | This is a common trick to preserve PVP compability with packages, while allowing extensibility |
| 19:53:02 | <dminuoso> | xerox: It does. |
| 19:53:17 | <dminuoso> | exarkun: You have to look at the source code to know this. This haddock should *really* document it. |
| 19:53:22 | <xerox> | check out the difference in the module exports between Request and say RequestBodyLength (..) https://hackage.haskell.org/package/wai-3.2.2.1/docs/src/Network.Wai.html |
| 19:53:46 | <exarkun> | requestHeaders is exported, https://hackage.haskell.org/package/wai-3.2.2.1/docs/src/Network.Wai.Internal.html#requestHeaders |
| 19:53:50 | <dminuoso> | exarkun: So you can write `defaultRequest { rawPathInfo = ... }`. There's just no hint whatever in haddock to know that rawPathInfo is an accessor. |
| 19:53:52 | <exarkun> | But ... Request(requestHeaders) is not exported? |
| 19:53:57 | <exarkun> | (but they're the same thing?) |
| 19:54:02 | <dminuoso> | exarkun: Did you read what I just wrote? |
| 19:54:16 | <dminuoso> | Request(requestHeaders) would export both the constructor and the field |
| 19:54:18 | <exarkun> | dminuoso: I did but I might not have understood it |
| 19:54:20 | <dminuoso> | The point is to not export the Constructor. |
| 19:54:28 | <dminuoso> | Okay, so do you know what PVP is? |
| 19:54:38 | <exarkun> | The versioning scheme? |
| 19:54:40 | <dminuoso> | Yes |
| 19:54:55 | <exarkun> | more or less |
| 19:55:10 | <dminuoso> | If you wanted to extend the constructor with an additional field and export the constructor, then that would demand a major version bump |
| 19:55:16 | <dminuoso> | Because suddenly the constructor takes an additional parameter |
| 19:55:30 | awk | is now known as mnrmnaugh |
| 19:55:46 | <dminuoso> | Often that's not necessary, maybe because you have sensible and backwards compatible defaults for newly added fields. It'd be nicer if you could avoid a major version bump |
| 19:56:02 | × | cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.1) |
| 19:56:11 | <dminuoso> | So what you do is: provide a smart constructor to provide a (often empty/useless) default, export all accessors, and then you can use field update syntax |
| 19:56:34 | × | _ht quits (~quassel@82-169-194-8.biz.kpn.net) (Remote host closed the connection) |
| 19:56:34 | <dminuoso> | It's a trick some people have adopted. I think Snoyman popularized it |
| 19:57:06 | <dminuoso> | (But with this trick you absolutely cant export the constructor itself, otherwise your API would have a function that might change when a field gets added) |
| 19:57:50 | <dminuoso> | All of this is oblivious to haddock itself, sadly. You just see a bunch of functions, and dont even know they are accessor functions (which you could use with field update syntax) |
| 19:58:10 | <dminuoso> | exarkun: Your only hint is this section name: https://hackage.haskell.org/package/wai-3.2.2.1/docs/Network-Wai.html#g:3 |
| 19:58:14 | <dminuoso> | "Request accessors" |
| 19:58:31 | <dminuoso> | (Which haddock still does, but it's extremely subtle) |
| 19:59:18 | → | dunkeln joins (~dunkeln@94.129.65.28) |
| 19:59:31 | <dminuoso> | Should correct myself, its not invisible to haddock, it's just very poorly visualized.. |
| 20:01:12 | <dminuoso> | exarkun: https://www.yesodweb.com/blog/2015/03/designing-apis-for-extensibility |
| 20:01:37 | <exarkun> | Okay, I think I get it and maybe now I can be on alert for "accessors" in the future |
| 20:01:38 | <dminuoso> | https://www.snoyman.com/blog/2016/11/designing-apis-for-extensibility/ |
| 20:01:39 | <dminuoso> | Ah that's the one |
| 20:02:10 | <exarkun> | and thanks for that link |
| 20:02:43 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:03:18 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Client Quit) |
| 20:04:42 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:04:45 | × | alphacath quits (~alpha@host-79-36-63-89.retail.telecomitalia.it) (Quit: bye) |
| 20:05:04 | × | juhp quits (~juhp@128.106.188.66) (Ping timeout: 245 seconds) |
| 20:05:41 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Ping timeout: 272 seconds) |
| 20:06:49 | → | juhp joins (~juhp@128.106.188.66) |
| 20:07:23 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:08:06 | → | gumm joins (~user@88.163.231.79) |
| 20:08:19 | × | gumm quits (~user@88.163.231.79) (Remote host closed the connection) |
| 20:08:31 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 20:09:17 | ← | malvo parts (~malvo@malvo.org) () |
| 20:09:21 | × | agumonke` quits (~user@88.163.231.79) (Ping timeout: 252 seconds) |
| 20:09:35 | → | agumonke` joins (~user@88.163.231.79) |
| 20:12:06 | × | wonko quits (~wjc@62.115.229.50) (Ping timeout: 252 seconds) |
| 20:12:47 | × | Katarushisu quits (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat) |
| 20:14:02 | → | Katarushisu joins (~Katarushi@cpc152083-finc20-2-0-cust170.4-2.cable.virginm.net) |
| 20:15:24 | × | reumeth quits (~reumeth@user/reumeth) (Remote host closed the connection) |
| 20:15:55 | → | reumeth joins (~reumeth@user/reumeth) |
| 20:16:54 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 20:20:12 | × | Topsi quits (~Tobias@dyndsl-037-138-065-228.ewe-ip-backbone.de) (Ping timeout: 272 seconds) |
| 20:20:50 | × | reumeth quits (~reumeth@user/reumeth) (Ping timeout: 272 seconds) |
| 20:22:39 | → | tromp joins (~textual@dhcp-077-249-230-040.chello.nl) |
| 20:24:14 | → | MQ-17J joins (~MQ-17J@8.21.10.116) |
| 20:24:31 | ← | safinaskar parts (~safinaska@109-252-90-89.nat.spd-mgts.ru) () |
| 20:24:38 | × | Shaeto quits (~Shaeto@94.25.234.141) (Ping timeout: 272 seconds) |
| 20:24:53 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 272 seconds) |
| 20:25:18 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 20:27:48 | → | Guest50 joins (~Guest50@109-252-90-89.nat.spd-mgts.ru) |
| 20:28:07 | ← | Guest50 parts (~Guest50@109-252-90-89.nat.spd-mgts.ru) () |
| 20:30:01 | × | dut quits (~dut@user/dut) (Quit: Leaving) |
| 20:30:33 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:30:58 | × | hueso_ quits (~root@152.170.216.40) (Read error: Connection reset by peer) |
| 20:32:04 | → | hueso joins (~root@152.170.216.40) |
| 20:32:09 | × | bontaq quits (~user@ool-18e47f8d.dyn.optonline.net) (Ping timeout: 245 seconds) |
| 20:33:18 | × | Deewiant quits (~deewiant@de1.ut.deewiant.iki.fi) (Ping timeout: 264 seconds) |
| 20:33:30 | → | kenran joins (~kenran@200116b82b390f00b0c803a76fadf7bb.dip.versatel-1u1.de) |
| 20:33:38 | → | Deewiant joins (~deewiant@de1.ut.deewiant.iki.fi) |
| 20:36:15 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 20:39:36 | × | gzj quits (~GZJ0X@199.193.127.217.16clouds.com) (Remote host closed the connection) |
| 20:43:10 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 20:43:11 | → | amahl joins (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) |
| 20:46:21 | <kenran> | I'm trying to understand how to use the function `deserialiseIncremental :: ST s (IDecoder s a)` from the serialise library. It's probably due to me not having used the ST monad before. I'm struggling as to how even start. |
| 20:47:47 | → | thyriaen joins (~thyriaen@45.178.73.238) |
| 20:48:10 | <kenran> | I mean, the outline in my head looks like starting with `runST $ do x <- serialiseIncremental`, then I'd have to match x: the cases Fail or Done should be straightforward, but Partial contains a continuation that I'd have to get some ByteString for to apply to. |
| 20:48:55 | <kenran> | The ByteString is something I'm getting by reading from a Handle, but that in turn requires IO, not ST. But I cannot leave the ST monad and "reenter" with runST, can I? |
| 20:50:12 | × | bitmapper quits (uid464869@id-464869.tooting.irccloud.com) (Quit: Connection closed for inactivity) |
| 20:51:28 | <kenran> | (background: there is a Handle (to an UNIX pipe) and lazy bytestrings (gotten from the serialise library) are written to it. But I don't know how to read multiple values in succession, because LBS.hGetContents seems to want to read to the end, and thus it only works once. So I thought maybe using hGet together with the incremental deserialisiation could help. But I'm open to any suggestions.) |
| 20:53:33 | × | Baloo_ quits (~Baloo_@193.138.218.166) (Quit: Leaving) |
| 20:54:21 | → | jolly29 joins (~jolly@208.180.97.158) |
| 20:57:12 | × | jolly quits (~jolly@208.180.97.158) (Ping timeout: 252 seconds) |
| 20:57:20 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 20:57:21 | × | yoctocell quits (~yoctocell@h87-96-130-155.cust.a3fiber.se) (Quit: C-x C-c, Shutting down OS...) |
| 20:57:34 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 272 seconds) |
| 20:57:56 | <nshepperd> | you can convert ST to IO |
| 20:58:01 | <ski> | kenran : hm, <https://downloads.haskell.org/~ghc/latest/docs/html/libraries/base-4.15.0.0/Control-Monad-ST.html#v:stToIO> ? |
| 20:59:23 | jolly29 | is now known as jolly |
| 20:59:37 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 20:59:43 | <kenran> | ohh, I tried that one, but I think I had one too many `runST` calls still in there. Now I'm getting a different error, let me see |
| 21:00:06 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 21:00:41 | <nshepperd> | you won't need to use runST at all |
| 21:00:52 | <kenran> | yeah, I think that does the trick, thanks! |
| 21:01:27 | <kenran> | I'm still very unsure if all that is even going to solve any problem, and whether I even look for the problem in the right place |
| 21:02:26 | <kenran> | I don't understand ByteString.Lazy well, and stuff with Handle even less, so that makes for a potent situation :D |
| 21:05:05 | × | tremon quits (~tremon@217-63-61-89.cable.dynamic.v4.ziggo.nl) (Quit: getting boxed in) |
| 21:07:04 | × | jippiedoe quits (~david@2a02-a44c-e14e-1-6bdc-c755-d41c-84af.fixed6.kpn.net) (Ping timeout: 272 seconds) |
| 21:12:29 | <kenran> | In https://wiki.haskell.org/Dealing_with_binary_data there's written "B.getContents .. will read the whole of stdin into memory". What is "the whole" here? |
| 21:12:56 | <kenran> | Its documentation says that the handle is closed after the operation, so what does that mean for stdin? |
| 21:13:40 | <kenran> | Can I think of it as a file which is consumed by getContents/reading? |
| 21:14:18 | × | chexum quits (~chexum@gateway/tor-sasl/chexum) (Remote host closed the connection) |
| 21:14:28 | → | chexum joins (~chexum@gateway/tor-sasl/chexum) |
| 21:14:32 | <monochrom> | reading and storing into memory until EOF |
| 21:15:01 | × | Erutuon quits (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
| 21:15:09 | <monochrom> | If I feed a whole blu-ray disc to your stdin, you will OOM. |
| 21:15:41 | <nshepperd> | in the case of stdin that means it will block until whoever is writing to stdin closes the pipe |
| 21:16:27 | <kenran> | Flushing should suffice, shouldn't it? (That's what I think I learned by playing around with reading/writing operations on a pipe) |
| 21:16:31 | <nshepperd> | such as by pressing ^D in the terminal |
| 21:16:58 | <monochrom> | suffice for what? |
| 21:17:06 | × | amahl quits (~amahl@dsl-jklbng12-54fbca-64.dhcp.inet.fi) (Remote host closed the connection) |
| 21:17:48 | <monochrom> | and who is flushing? |
| 21:18:42 | <kenran> | Ah nvm, I used LBS.getContents on one end ("left"), hPut some value on the other, flushed, then the left side could read it and responded. Without flushing, it was still blocking on hGetContents |
| 21:19:22 | <monochrom> | But B is not LBS. |
| 21:19:28 | <kenran> | Without the L in LBS there it wouldn't have worked at all IIUC? |
| 21:19:47 | <monochrom> | Not sure what's your definition of "work". |
| 21:19:49 | × | dunkeln quits (~dunkeln@94.129.65.28) (Ping timeout: 268 seconds) |
| 21:20:19 | <kenran> | It would have blocked indefinitely I think, but I'll just try it. |
| 21:21:29 | <kenran> | I need to attack this from the bottom, for instance by understanding what EOF really means |
| 21:21:34 | <kenran> | Thanks for the pointers! |
| 21:21:45 | <nshepperd> | B.getContents promises to return all data that will ever be written to stdin at once as a single bytestring. it blocks until whoever is writing closes the pipe so that no more can be written |
| 21:21:58 | <monochrom> | Yeah, you need a Unix course. |
| 21:22:16 | × | dhil quits (~dhil@195.213.192.47) (Ping timeout: 272 seconds) |
| 21:22:46 | × | thyriaen quits (~thyriaen@45.178.73.238) (Read error: Connection reset by peer) |
| 21:22:47 | → | thyriaen_ joins (~thyriaen@45.178.73.238) |
| 21:23:47 | × | teaSlurper quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 21:24:10 | <kenran> | monochrom: exactly! It might even be worth learning some of that stuff without using Haskell. |
| 21:24:14 | × | BosonCollider quits (~olofs@90-227-86-119-no542.tbcn.telia.com) (Ping timeout: 245 seconds) |
| 21:25:06 | × | Guest97 quits (~Guest9@43.241.144.108) (Quit: Connection closed) |
| 21:27:28 | <maerwald> | unix: we didn't know how to create an API, so we made everything a file |
| 21:28:39 | → | teaSlurper joins (~chris@81.96.113.213) |
| 21:28:54 | <hpc> | man 2 open, man 2 read, man 2 close are a good place to start |
| 21:29:06 | <dminuoso> | kenran: By the way, if you are curious about ST, think of it as a restricted way to use IO in a localized manner. mergesort is from an outside perspective a completely pure operation, right? |
| 21:29:55 | <monochrom> | I think that's false. fork, exec, pipe, sbrk could have been defined through special files too, but not done, and thank God. |
| 21:30:21 | <maerwald> | lol |
| 21:30:45 | <hpc> | i can see it now |
| 21:30:56 | <monochrom> | If you're looking at "echo 1 > /sys/foo/bar/go-to-sleep-now" then sure, but that's a linux invention. |
| 21:31:27 | <hpc> | fork() {pid=$1; cp --recursive /proc/$pid /proc/$(cat /proc/new-pid);} |
| 21:31:46 | × | chomwitt quits (~Pitsikoko@athedsl-20549.home.otenet.gr) (Ping timeout: 272 seconds) |
| 21:32:26 | motherfs1 | is now known as motherfsck |
| 21:32:27 | <kenran> | dminuoso: yes |
| 21:33:01 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 21:33:20 | × | teaSlurper quits (~chris@81.96.113.213) (Ping timeout: 264 seconds) |
| 21:33:29 | <kenran> | I think I saw something like that mentioned on the haskell wiki page for ST |
| 21:33:50 | <dminuoso> | kenran: But would you agree, that an efficient mergesort implementation requires memory manipulations? Or perhaps quicksort is a more motivating example, there the need for in-place partitioning is obvious. |
| 21:34:01 | → | thyriaen__ joins (~thyriaen@45.178.73.238) |
| 21:34:03 | × | merijn quits (~merijn@83-160-49-249.ip.xs4all.nl) (Ping timeout: 252 seconds) |
| 21:34:44 | <monochrom> | I can also be talked into "we didn't know how to create an ABI, so we created software interrupts instead". |
| 21:34:51 | → | dhil joins (~dhil@80.208.56.181) |
| 21:35:03 | × | tromp quits (~textual@dhcp-077-249-230-040.chello.nl) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 21:35:19 | <kenran> | dminuoso: sounds right to me, from the looks of the algorithms, yes |
| 21:36:33 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 21:36:56 | × | thyriaen_ quits (~thyriaen@45.178.73.238) (Ping timeout: 264 seconds) |
| 21:37:08 | <dminuoso> | kenran: So ST gives us mutable references like IORef that we can write to, read from or mutate. Just like mutable stores from other languages (often called variables there). But in a way that you can use this in the middle of pure code. |
| 21:38:09 | <janus> | isn't it better to mention STRef when talking about ST |
| 21:38:21 | × | neceve quits (~quassel@2a02:c7f:607e:d600:a95a:ecd2:e57a:3130) (Ping timeout: 272 seconds) |
| 21:39:08 | <kenran> | dminuoso: that's very interesting. I might even have a piece of code that could use this immediately. It's one part of an algorithm where memory blows up to 1.5 GB (though it's not a space leak, it just requires a lot) and where I though having mutability would help. |
| 21:39:42 | <kenran> | Thanks everyone, time to sleep and tackle this again tomorrow! |
| 21:40:34 | → | pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) |
| 21:41:44 | × | waleee quits (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) (Ping timeout: 245 seconds) |
| 21:42:19 | <dminuoso> | monochrom: Mmm, procfs/sysfs is an odd one. On the one hand, files are a really comfortable API for plumbing things together. But recall that time where `rm -rf /` could irrepably brick your mainboard? |
| 21:42:30 | × | Xe quits (~cadey@tailscale/xe) (Quit: WeeChat 3.1) |
| 21:42:36 | × | kenran quits (~kenran@200116b82b390f00b0c803a76fadf7bb.dip.versatel-1u1.de) (Quit: WeeChat info:version) |
| 21:42:37 | × | tcard quits (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) (Quit: Leaving) |
| 21:42:44 | → | Xe joins (~cadey@tailscale/xe) |
| 21:42:45 | ← | jakalx parts (~jakalx@base.jakalx.net) (Error from remote client) |
| 21:44:55 | <janus> | the term file is so overloaded by now, it is not just one API |
| 21:45:41 | <monochrom> | I think that the motivation for sysfs was shelll scripts. "echo 1 > /sys/foo/bar/power-saving-mode" is very shell-friendly. It would suck to have to write C code for that, even if it's just an ioctl call. |
| 21:46:19 | <maerwald> | monochrom: powershell kinda solved that... where you just call their C# crap and it works |
| 21:46:36 | <janus> | if poettering had had traction earlier, sysfs would never have been necessary ;) |
| 21:46:47 | × | immae quits (~immae@2a01:4f8:141:53e7::) (Ping timeout: 252 seconds) |
| 21:47:02 | <hpc> | or if someone wrote a shell wrapper for ioctl |
| 21:47:20 | <janus> | they did, it is called systemctl :P |
| 21:47:27 | <monochrom> | Yeah. My next thought was "What if Ritchie and Thompson invented Python instead of C?" |
| 21:47:39 | → | immae joins (~immae@2a01:4f8:141:53e7::) |
| 21:49:11 | <hpc> | or if it was like lisp machines, where the shell and the system language are the same |
| 21:49:26 | <janus> | Python without C is not Python, the whole point of Python is that it finds that comfy spot where they have interoperability because they write all the low-level parts in C |
| 21:50:11 | <hpc> | and let's be honest, some of the high-level parts too |
| 21:50:48 | <monochrom> | I am OK with that argument, but if you do that, you may as well say "R&T who invent Python is not R&T" in the first place. |
| 21:51:42 | → | tcard joins (~tcard@p2307053-ipngn17101hodogaya.kanagawa.ocn.ne.jp) |
| 21:51:43 | <janus> | maybe I am missing the point, but the Unix greybeards were trying the best they could to make scripting languages, they called them shells? |
| 21:52:13 | → | mikoto-chan joins (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) |
| 21:52:44 | <janus> | you're suggesting they could have put some typing in their shells instead of leaving it to compiled languages? but performance was so critical, they didn't consider the fact that people would still be using these shells 50 years later |
| 21:53:16 | <boxscape> | it's like the ancient chinese script that was written on turtle shells |
| 21:55:43 | × | yushyin quits (nrX1Axr00h@karif.server-speed.net) (Quit: WeeChat 3.1) |
| 21:56:01 | → | yushyin joins (DqPAekUnN9@karif.server-speed.net) |
| 21:56:43 | × | pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.2-rc1) |
| 21:56:51 | × | Ariakenom quits (~Ariakenom@2001:9b1:efb:fc00:1900:b2bf:db54:db6b) (Quit: Leaving) |
| 21:59:36 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 22:02:44 | × | azeem quits (~azeem@dynamic-adsl-94-34-34-125.clienti.tiscali.it) (Read error: Connection reset by peer) |
| 22:03:05 | bah_ | is now known as bah |
| 22:05:35 | → | killsushi joins (~killsushi@user/killsushi) |
| 22:06:19 | × | thyriaen__ quits (~thyriaen@45.178.73.238) (Remote host closed the connection) |
| 22:06:30 | → | thyriaen__ joins (~thyriaen@45.178.73.238) |
| 22:07:41 | × | michalz quits (~michalz@185.246.204.126) (Remote host closed the connection) |
| 22:07:42 | <hugo> | Hi! Am I correct in my understanding of Lenses that a Prism can't (properly) focus a single element of a list, and I need traversals for that? |
| 22:08:01 | <hugo> | I'm trying to focus the first element of a stack which matches a given predicate |
| 22:09:02 | × | sayola quits (~vekto@dslc-082-082-145-205.pools.arcor-ip.net) (Read error: Connection reset by peer) |
| 22:09:19 | → | Profpatsch joins (~Profpatsc@static.88-198-193-255.clients.your-server.de) |
| 22:09:32 | → | lavaman joins (~lavaman@98.38.249.169) |
| 22:10:06 | <shachaf> | A prism is like a constructor, so it can construct. |
| 22:10:25 | <shachaf> | So something like a traversal is probably what you want. |
| 22:10:29 | × | gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 22:11:07 | <Profpatsch> | Which is more performant: Map.foldMapWithKey (\key val -> Map.singleton (f key) (g val) or Map.foldlWithKey' (\m key val -> Map.insert (f key) (f val) m) |
| 22:11:27 | → | BosonCollider joins (~olofs@90-227-86-119-no542.tbcn.telia.com) |
| 22:11:29 | <Profpatsch> | (typed from the top of my head, so sorry if it doesn’t typechecks |
| 22:11:38 | <hugo> | shachaf: Given the right closue I can construct any list through a given function ;) |
| 22:11:50 | × | codedmart quits (~codedmart@li335-49.members.linode.com) (Quit: ZNC 1.7.5+deb4 - https://znc.in) |
| 22:12:08 | <Profpatsch> | I’d expect the right to build less thunks and be relatively in-place |
| 22:12:12 | → | codedmart joins (codedmart@2600:3c01::f03c:92ff:fefe:8511) |
| 22:12:12 | <shachaf> | Well, what I mean is, if you have a type like data T = Foo A | Bar B | ..., a prism is like Foo or Bar. |
| 22:12:19 | <hugo> | But a traversal (as you say) matches what I have found on my own |
| 22:12:21 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 272 seconds) |
| 22:12:28 | <shachaf> | Which means you have a prism function : A -> T. |
| 22:12:48 | <shachaf> | And if a T matches the Foo prism, then the A is the entirety of the contents of it. |
| 22:13:38 | <hugo> | I think my confusion comes from the description of prisms as focusing "0 or 1 objects", which matches a find ((a -> Bool) -> [a] -> Maybe a) function |
| 22:14:07 | × | lavaman quits (~lavaman@98.38.249.169) (Ping timeout: 244 seconds) |
| 22:14:13 | <shachaf> | I think a lot of people end up with this confusion, so the documentation could maybe be improved. |
| 22:14:15 | <hugo> | But as your last example, that doesn't allow a rewind, since the context is unknown at that point |
| 22:15:16 | <hugo> | Most of the documentation in the different parts of the lens (https://hackage.haskell.org/package/lens-5.0.1/docs/Control-Lens.html) library have been of very little help, due to them expceting that I already understand everything |
| 22:16:18 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 22:16:30 | × | mastarija quits (~mastarija@31.217.22.43) (Quit: Leaving) |
| 22:20:41 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 22:21:20 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 264 seconds) |
| 22:21:24 | × | agumonke` quits (~user@88.163.231.79) (Read error: Connection reset by peer) |
| 22:21:41 | → | jakalx joins (~jakalx@base.jakalx.net) |
| 22:21:49 | → | agumonke` joins (~user@88.163.231.79) |
| 22:24:56 | ← | delYsid parts (~user@84-115-55-45.cable.dynamic.surfer.at) (ERC (IRC client for Emacs 27.1.50)) |
| 22:30:39 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 22:33:33 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 22:34:19 | × | paddymahoney quits (~paddymaho@cpe9050ca207f83-cm9050ca207f80.cpe.net.cable.rogers.com) (Remote host closed the connection) |
| 22:34:31 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 22:36:45 | × | mikoto-chan quits (~mikoto-ch@ip-213-49-189-31.dsl.scarlet.be) (Ping timeout: 252 seconds) |
| 22:37:51 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 252 seconds) |
| 22:38:57 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 252 seconds) |
| 22:40:03 | × | dhil quits (~dhil@80.208.56.181) (Ping timeout: 252 seconds) |
| 22:41:23 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 22:43:22 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 22:43:39 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 22:48:18 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 252 seconds) |
| 22:49:32 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 22:49:40 | × | altern quits (~Sergii@altern.corbina.com.ua) (Ping timeout: 272 seconds) |
| 22:52:46 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 22:53:23 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…) |
| 22:54:03 | <zzz> | the syntax for strict record types is T = T { strict :: !Some , lazy :: Other ... } right? |
| 22:54:26 | <geekosaur> | yes |
| 22:54:26 | <janus> | monochrom: thanks for the link to your Cont monad piece, i am still working through it, very educational |
| 22:55:08 | → | teaSlurper joins (~chris@81.96.113.213) |
| 22:56:17 | × | xff0x_ quits (~xff0x@2001:1a81:5309:4200:5885:4f5d:c0ef:4e6d) (Remote host closed the connection) |
| 22:56:28 | <janus> | is there any point in writing a manual MonadReader MyType instance? i almost always see it derived |
| 22:56:34 | → | xff0x_ joins (~xff0x@2001:1a81:5309:4200:43f:9f66:b597:77c7) |
| 22:57:20 | <geekosaur> | only if you're diretly implementing it (something like ReaderT or RWST) |
| 22:57:38 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 22:57:42 | <janus> | what the alternative to "directly implementing" it? |
| 22:57:51 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 22:57:52 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 268 seconds) |
| 22:57:56 | × | Erutuon quits (~Erutuon@user/erutuon) (Quit: WeeChat 2.8) |
| 22:58:47 | <geekosaur> | usually when it's derived, it's via GND to expose an underlying MonadReader |
| 22:59:50 | <janus> | right. so let's say i have some App context which is a record with a single destructor, then people need GeneralizedNewtypeDeriving to derive MonadReader for that? |
| 23:00:00 | <geekosaur> | there's little point to writing those by hand because they're mechanical and there's only one way to do it |
| 23:00:03 | → | sh9 joins (~sh9@softbank060116136158.bbtec.net) |
| 23:00:48 | <janus> | but why does it say Newtype if it is a record ... hmmm ... does it only work if the App Monad is a newtype and not a record? |
| 23:00:51 | × | eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) (Remote host closed the connection) |
| 23:00:52 | <geekosaur> | right, but GND is one of those extensions that practically everyone turns on (and was even present in other Haskell implementations back when there were others) |
| 23:01:27 | <janus> | how does the record contents need to look for GND to be able to derive MonadReader? |
| 23:01:37 | <geekosaur> | yes, your App would be a newtype over a ReaderT YourAppState |
| 23:01:53 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 23:02:31 | <janus> | but then, if it is a stack of monads, will it still be able to derive it if ReaderT is not the outermost? |
| 23:02:50 | <geekosaur> | if for some reason you got the way of using a data, you would indeed ned to write your own MonadReader instance; there's little point in doing so when you can newtype over the provided one instead |
| 23:03:01 | → | eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:2121:a570:d35e:ba7a) |
| 23:03:22 | <shachaf> | hugo: Yes, I meant to write up a nice introduction a long time ago but I never did. |
| 23:04:48 | <janus> | ok i will try to use a newtype instead, sounds advantageous. |
| 23:06:27 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 252 seconds) |
| 23:07:00 | × | agumonke` quits (~user@88.163.231.79) (Ping timeout: 252 seconds) |
| 23:09:37 | <ski> | janus : would the `App' context be the monad, or the environment that's to be accessed via `MonadReader' ? |
| 23:11:00 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 23:12:50 | <janus> | ski: the when i say App, it is the monad that everything is working in, and that i wish to implement MonadReader for. the data that is read is just a record. so in the signature "MonadReader r m", the r is my record, let's call it MyEnv. and m would be App. When i look at the signature of "ask :: m r", that must be so, because i want ask to return me the MyEnv |
| 23:14:08 | <geekosaur> | that changes the answer a bit |
| 23:14:46 | <janus> | oh, sorry if i have previously answered in a misleading manner |
| 23:14:47 | <geekosaur> | you want ReaderT MyEnv App |
| 23:15:08 | <janus> | right, that should be the contents of the newtype, right? and then i can derive MonadReader |
| 23:15:14 | <geekosaur> | correct |
| 23:15:25 | <geekosaur> | but you'd made it sound like App was the name of the newtype |
| 23:15:41 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 272 seconds) |
| 23:16:31 | <janus> | but wait, if i have ReaderT MyEnv App, then the Reader is outside the App, then MonadReader MyEnv App will not be implemented, or? |
| 23:16:52 | <geekosaur> | ReaderT implements MonadReader |
| 23:17:53 | <janus> | right, but i don't want functions in add to mention ReaderT, they should only require MonadReader |
| 23:18:09 | <janus> | sounds like i am mixing up my monad stack levels somehow... hmm |
| 23:18:16 | → | Erutuon joins (~Erutuon@user/erutuon) |
| 23:18:23 | <janus> | *functions in App |
| 23:18:25 | <geekosaur> | they won't, that's what the newtype gives you |
| 23:19:36 | ← | Profpatsch parts (~Profpatsc@static.88-198-193-255.clients.your-server.de) (WeeChat 3.1) |
| 23:19:44 | <janus> | so this ReaderT, what do people call that? where do i put that? not in the App, because it wraps the App |
| 23:21:22 | <geekosaur> | newtype AppContextM m = MkApp (ReaderT MyEnv m); type AppContext = AppContextM App |
| 23:21:35 | <geekosaur> | which is a pattern you'll see in a number of applications |
| 23:22:17 | <janus> | and a sample function with this model, does it have "(MonadReader AppContext m) => ... -> m Int" for example? |
| 23:22:33 | <janus> | oh no wait |
| 23:22:38 | <janus> | MonadReader MyEnv, surely |
| 23:23:07 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 23:23:11 | <geekosaur> | mosrt of the time it'll be inferred because you're using AppContext directly in your types |
| 23:23:18 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Remote host closed the connection) |
| 23:23:41 | <janus> | intresting! i think i need to experiment a bit. thanks for the responses |
| 23:23:45 | <geekosaur> | and the only importance of MonadReader is it's what enables using ask / asks |
| 23:24:04 | <geekosaur> | oh, and I slightly blew it earlier, you need to derive MonadReader on the newtype |
| 23:24:16 | <janus> | right |
| 23:24:55 | <geekosaur> | and that's close to the only place you mention MonadReader unless you for some reason want something higher level than asks but not restricted to AppContext |
| 23:25:09 | <geekosaur> | which would be rare |
| 23:27:17 | × | pdxleif quits (~leif@75.164.44.108) (Ping timeout: 272 seconds) |
| 23:28:30 | → | qrpnxz joins (~qrpnxz@user/qrpnxz) |
| 23:29:04 | <qrpnxz> | do you guys know how to check within ghci the version of the base package, or some other way to check that? |
| 23:29:15 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 23:30:04 | <hugo> | qrpnxz: https://wiki.haskell.org/Base_package |
| 23:30:16 | <hugo> | Not a built in way, but here's a table |
| 23:30:26 | <maerwald> | ghcup list shows you that table too |
| 23:30:43 | → | merijn joins (~merijn@83-160-49-249.ip.xs4all.nl) |
| 23:30:43 | <qrpnxz> | hugo, think that'll do thanks |
| 23:30:44 | <maerwald> | https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history |
| 23:30:51 | <maerwald> | and this is more up2date probably than the wiki |
| 23:31:37 | <qrpnxz> | ok, for some reason haskell doesn't know about `<&>`, i've got Data.Function imported not sure what the problem is |
| 23:32:01 | <qrpnxz> | using ghc 8.8.4 btw |
| 23:32:27 | <wrunt> | try Data.Functor |
| 23:32:37 | <qrpnxz> | yes one sec |
| 23:32:52 | <qrpnxz> | cheers ty |
| 23:33:10 | <wrunt> | np |
| 23:33:21 | <wrunt> | I often just import Control.Lens.Operators to get that and friends |
| 23:33:41 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 244 seconds) |
| 23:34:23 | <qrpnxz> | lenses seem to be some hot new thing i'll have to look at yeah |
| 23:34:35 | <ski> | janus : hm, ok. the type that you derive `MonadReader MyEnv' for, using, `GeneralizedNewtypeDeriving', has to be a `newtype', but it doesn't matter if it happens to use record syntax or not (in either case, there's just a single data constructor, with a single component). but that's unrelated to `MyEnv' using record syntax |
| 23:34:36 | <maerwald> | hot, yeah... new? barely |
| 23:34:39 | <qrpnxz> | was just trying to get something like F# |> working and looks like i found it |
| 23:35:32 | <qrpnxz> | maerwald, for this kind of thing 5-10 years old is still new, if it's older than that then alright not new ig, but i haven't seen it much used |
| 23:36:15 | <maerwald> | I'm personally not a fan. Whenever I use it, it becomes perl-style code: something you don't understand yourself 2 weeks later |
| 23:36:29 | <maerwald> | And it's so polymorphic that bugs still compile |
| 23:36:42 | × | crazazy quits (~user@130.89.171.203) (Ping timeout: 252 seconds) |
| 23:36:58 | <qrpnxz> | lol |
| 23:37:08 | → | bontaq` joins (~user@ool-18e47f8d.dyn.optonline.net) |
| 23:37:58 | <maerwald> | right... this little Monoid constraint defaulted all the queries to 0 |
| 23:38:00 | <maerwald> | oops |
| 23:38:23 | → | Shaeto joins (~Shaeto@94.25.234.158) |
| 23:38:24 | × | jespada quits (~jespada@90.254.242.55) (Ping timeout: 245 seconds) |
| 23:40:36 | × | Techcable quits (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in) |
| 23:41:09 | → | Techcable joins (~Techcable@168.235.93.147) |
| 23:41:29 | → | jespada joins (~jespada@90.254.242.55) |
| 23:41:58 | → | fendor_ joins (~fendor@77.119.128.240.wireless.dyn.drei.com) |
| 23:42:45 | × | Shaeto quits (~Shaeto@94.25.234.158) (Ping timeout: 252 seconds) |
| 23:42:59 | → | lbseale_ joins (~lbseale@user/ep1ctetus) |
| 23:44:14 | × | fendor quits (~fendor@77.119.128.226.wireless.dyn.drei.com) (Ping timeout: 245 seconds) |
| 23:44:39 | → | ubikium joins (~ubikium@113x43x248x70.ap113.ftth.arteria-hikari.net) |
| 23:44:49 | × | fendor__ quits (~fendor@77.119.128.226.wireless.dyn.drei.com) (Ping timeout: 272 seconds) |
| 23:44:56 | → | fendor joins (~fendor@77.119.128.240.wireless.dyn.drei.com) |
| 23:45:54 | × | lbseale quits (~lbseale@user/ep1ctetus) (Ping timeout: 245 seconds) |
| 23:45:57 | → | fizbin joins (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) |
| 23:46:01 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:47:33 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 23:48:57 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:49:07 | → | hmmmas joins (~chenqisu1@183.217.200.246) |
| 23:49:22 | → | pdxleif joins (~leif@c-24-20-85-226.hsd1.or.comcast.net) |
| 23:51:06 | × | fizbin quits (~fizbin@c-73-33-197-160.hsd1.nj.comcast.net) (Ping timeout: 272 seconds) |
| 23:51:26 | × | zeenk quits (~zeenk@2a02:2f04:a310:b600:b098:bf18:df4d:4c41) (Quit: Konversation terminated!) |
| 23:52:47 | → | econo joins (uid147250@user/econo) |
| 23:53:20 | × | jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Client Quit) |
| 23:53:35 | <hololeap> | microlens is alright sometimes |
| 23:53:40 | → | waleee joins (~waleee@2001:9b0:216:8200:d457:9189:7843:1dbd) |
| 23:53:45 | → | jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) |
| 23:53:57 | × | Techcable quits (~Techcable@168.235.93.147) (Quit: ZNC - https://znc.in) |
| 23:54:26 | <hololeap> | but we really need record dot syntax like in elm and purescript |
| 23:54:35 | → | jaevanko joins (~jaevanko@2600:1700:1330:2bef:2af8:ee9a:b15a:6b86) |
| 23:55:08 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 23:55:16 | → | Techcable joins (~Techcable@168.235.93.147) |
| 23:56:38 | → | Shaeto joins (~Shaeto@94.25.234.158) |
All times are in UTC on 2021-06-10.