Home liberachat/#haskell: Logs Calendar

Logs on 2023-10-25 (liberachat/#haskell)

00:00:07 <monochrom> in which case "selectable" would be what I called "Selective".
00:00:43 × Square3 quits (~Square4@user/square) (Ping timeout: 260 seconds)
00:01:38 sansk joins (~sansk@072-238-128-073.res.spectrum.com)
00:06:17 <davean> EvanR: Absolutely
00:06:32 <EvanR> how do you make a custom selectable
00:06:36 <davean> monochrom: Oh I meant POSIX "select" callable
00:06:47 <davean> EvanR: pipe/socket or any filehandle
00:07:04 <davean> This is how the RTS even talks to its self
00:07:11 <EvanR> so make a custom pipe, socket, filehandle, like hack the kernel?
00:07:22 <davean> No? There is no hacking here?
00:07:28 <davean> This is basic POSIX
00:07:36 <EvanR> make a custom fd... and do what with it
00:08:00 <Inst> there, finally figured it out
00:08:06 <geekosaur> give it to the IO manager. C writes to it, the IO manager wakes up the associated thread
00:08:29 <EvanR> what is the true name of this IO manager so I may access it
00:08:33 <geekosaur> look at `threadWaitRead`
00:08:51 <monochrom> It is just called "the IO manager" :)
00:09:10 <EvanR> > \fd -> (the IO manager) fd
00:09:11 <lambdabot> error:
00:09:11 <lambdabot> Variable not in scope: the :: t0 -> t1 -> t -> t2error: Data constructor...
00:09:15 <Inst> after backporting the Haskell into Python, the answer, it seems, for this problem, is just use a lambda that injects values into a list
00:09:22 <monochrom> But you can find it in https://github.com/takenobu-hs/haskell-ghc-illustrated
00:09:27 <Inst> then use applicative functions to apply it to the random generator
00:09:31 <Inst> so the lambda is essentially pure
00:10:02 <geekosaur> https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/base-4.16.4.0/GHC-Event.html is the lowest level implementation, but threadWaitRead and threadWaitWrite are the lowest levels you would find in a normal Haskell program
00:10:10 <monochrom> But yeah the high-level thing to do is threadWaitRead.
00:10:39 <EvanR> GHC.Conc.IO.threadWaitRead
00:10:41 <jackdk> EvanR: https://hackage.haskell.org/package/gdp-0.0.3.0/docs/Data-The.html#v:the
00:11:28 <EvanR> hahaha
00:17:47 × sansk quits (~sansk@072-238-128-073.res.spectrum.com) (Quit: WeeChat 4.0.4)
00:18:05 × Square quits (~Square@user/square) (Ping timeout: 240 seconds)
00:18:05 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Ping timeout: 240 seconds)
00:19:53 <jackdk> Ghosts of departed proofs is such a cool paper
00:22:32 Umeaboy joins (~Umeaboy@94-255-145-133.cust.bredband2.com)
00:24:27 <Umeaboy> Hi! This might sound very stupid, but row/line 146 in this spec file clearly says to place the resulting files in /opt/, but when I reach to the end of the build it fails to create the package due to finding installed but unpackaged files which is NOT in /opt/
00:24:42 <Umeaboy> Am I stupid or is this spec file wrongly written?
00:24:52 <Umeaboy> https://build.opensuse.org/package/view_file/openSUSE:Factory/ghc-bootstrap/ghc-bootstrap.spec?expand=1
00:25:26 <Umeaboy> I have compared to other spec files and they say the same under the %files part which is /opt/
00:25:43 <Umeaboy> I could use some help correcting this.
00:26:14 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
00:27:17 <geekosaur> shouldn't that be asked of SuSE package developers, rather than Haskellers?
00:27:50 <geekosaur> I mean, I'm probably the only one here who knows about SuSE's version of spec files, and that knowledge is 15 years out of date
00:28:21 <Umeaboy> geekosaur: I just asked in #opensuse as well.
00:28:24 <Umeaboy> :)
00:28:33 <Umeaboy> So already a step ahead of you there.
00:29:15 <Inst> EvanR: the solution you were expecting was a lambda to list, then applicative methods to imbue state, right? I got it fixed that way
00:30:05 <Inst> no IsString, no pures everywhere, just lambda that generates a list being fmapped and <*>-ed into State StdGen
00:35:00 × qqq quits (~qqq@92.43.167.61) (Read error: Connection reset by peer)
00:35:38 <monochrom> jackdk: That is interesting. Thanks.
00:35:43 qqq joins (~qqq@92.43.167.61)
00:38:06 <jackdk> monochrom: I wish ocharles had written more about GDP-for-authz, because https://blog.ocharles.org.uk/blog/posts/2019-08-09-who-authorized-these-ghosts.html was really promising
00:42:26 sansk joins (~sansk@072-238-128-073.res.spectrum.com)
00:42:56 × sansk quits (~sansk@072-238-128-073.res.spectrum.com) (Quit: WeeChat 4.0.4)
00:48:46 sansk joins (~sansk@user/sansk)
01:00:10 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 255 seconds)
01:01:27 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
01:05:48 × otto_s quits (~user@p4ff279af.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
01:07:49 otto_s joins (~user@p5b044b0d.dip0.t-ipconnect.de)
01:17:26 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd)
01:17:54 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
01:22:59 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
01:26:39 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Ping timeout: 240 seconds)
01:29:38 o-90 joins (~o-90@gateway/tor-sasl/o-90)
01:32:04 sansk parts (~sansk@user/sansk) (WeeChat 4.0.4)
01:44:07 × leah2 quits (~leah@vuxu.org) (Ping timeout: 264 seconds)
01:50:50 × o-90 quits (~o-90@gateway/tor-sasl/o-90) (Remote host closed the connection)
01:59:07 × xff0x quits (~xff0x@ai101218.d.east.v6connect.net) (Ping timeout: 255 seconds)
02:03:05 × waleee quits (~waleee@h-176-10-137-138.NA.cust.bahnhof.se) (Ping timeout: 240 seconds)
02:09:13 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:09:13 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:09:13 finn_elija is now known as FinnElija
02:14:24 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:15:55 danza_ joins (~francesco@151.37.134.36)
02:18:16 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 260 seconds)
02:19:42 danse-nr3 joins (~francesco@151.37.134.36)
02:19:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd)
02:22:19 × danse-nr3 quits (~francesco@151.37.134.36) (Remote host closed the connection)
02:22:42 danse-nr3 joins (~francesco@151.37.134.36)
02:23:06 lisbeths joins (uid135845@id-135845.lymington.irccloud.com)
02:30:19 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
02:30:56 <lockywolf> Can someone point me toward vendored builds with Cabal?
02:31:03 <lockywolf> without network
02:35:03 <sclv> you can use project files to point to local repos
02:35:29 <sclv> either source repos or local file system repos that collect tarballs
02:36:05 <sclv> cf https://cabal.readthedocs.io/en/3.6/installing-packages.html#local-no-index-repositories
02:42:00 × danza_ quits (~francesco@151.37.134.36) (Ping timeout: 258 seconds)
02:44:05 × Inst quits (~Inst@120.244.192.250) (Read error: Connection reset by peer)
02:44:36 × td_ quits (~td@i53870938.versanet.de) (Ping timeout: 240 seconds)
02:44:42 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:46:50 td_ joins (~td@i5387090F.versanet.de)
02:54:20 Inst joins (~Inst@120.244.192.250)
02:55:39 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:58:56 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
02:58:59 sunflower joins (~sunflower@2603-9001-620a-2e31-cc67-ccf1-c1a1-4821.inf6.spectrum.com)
02:59:19 sunflower parts (~sunflower@2603-9001-620a-2e31-cc67-ccf1-c1a1-4821.inf6.spectrum.com) ()
02:59:30 sm joins (~sm@plaintextaccounting/sm)
03:00:03 × sm quits (~sm@plaintextaccounting/sm) (Client Quit)
03:00:07 L29Ah joins (~L29Ah@wikipedia/L29Ah)
03:00:58 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
03:12:29 aforemny_ joins (~aforemny@2001:9e8:6ce8:9900:f5fb:12e8:3754:e64f)
03:13:49 × aforemny quits (~aforemny@2001:9e8:6cc2:e900:a0d4:78f3:5fb4:bb3c) (Ping timeout: 258 seconds)
03:14:41 billchenchina joins (~billchenc@113.57.152.160)
03:16:27 billchenchina- joins (~billchenc@2a0c:b641:7a2:230::10)
03:19:14 × billchenchina quits (~billchenc@113.57.152.160) (Ping timeout: 245 seconds)
03:24:04 × dnb^ quits (~cd@76.145.193.217) (Remote host closed the connection)
03:28:18 <lockywolf> sclv: but how do I find out which tarballs I need do download?
03:28:51 <sclv> while you’re online you can inspect the cabal.plan
03:29:24 <sclv> also note that once you have a working env, you can go offline and it still works as long as you don’t add new deps
03:32:51 azimut joins (~azimut@gateway/tor-sasl/azimut)
03:39:12 Jackneill_ joins (~Jackneill@20014C4E1E03DB0044BF7609ADF864E0.dsl.pool.telekom.hu)
03:41:56 × Jackneill quits (~Jackneill@20014C4E1E0E6F00C66CC838C6CE2C28.dsl.pool.telekom.hu) (Ping timeout: 255 seconds)
03:44:22 leah2 joins (~leah@vuxu.org)
03:44:35 × m5zs7k quits (aquares@web10.mydevil.net) (Quit: m5zs7k)
03:46:48 × danse-nr3 quits (~francesco@151.37.134.36) (Read error: Connection reset by peer)
03:47:00 m5zs7k joins (aquares@web10.mydevil.net)
03:47:12 danse-nr3 joins (~francesco@151.37.177.170)
03:51:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 256 seconds)
03:58:15 × Umeaboy quits (~Umeaboy@94-255-145-133.cust.bredband2.com) (Quit: Leaving)
04:00:53 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
04:01:35 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
04:02:29 narutoman joins (~narutoman@189.172.116.173)
04:03:02 <narutoman> Naruto Has Ninja Sex with Nuevo Leon Governor Samuel Garcia Naruto Uzumaki visits Monterrey and meets Governor Samuel Garcia and starts a romantic escapade with him. https://tinyurl.com/Narutosass
04:04:19 × narutoman quits (~narutoman@189.172.116.173) (K-Lined)
04:06:14 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:08:39 phma_ joins (~phma@host-67-44-208-107.hnremote.net)
04:10:18 × phma quits (phma@2001:5b0:210f:1b08:8de9:836f:9645:4508) (Read error: Connection reset by peer)
04:11:24 × phma_ quits (~phma@host-67-44-208-107.hnremote.net) (Read error: Connection reset by peer)
04:11:50 phma_ joins (phma@2001:5b0:211c:95b8:542a:48a6:f6ef:c911)
04:17:54 × jbalint_ quits (~jbalint@071-090-119-177.res.spectrum.com) (Read error: Connection reset by peer)
04:20:11 jbalint joins (~jbalint@071-090-119-177.res.spectrum.com)
04:31:05 phma_ is now known as phma
04:33:56 × danse-nr3 quits (~francesco@151.37.177.170) (Ping timeout: 258 seconds)
04:45:54 <haskellbridge> <I​nst> Matrix mods, cleanup?
04:46:07 <haskellbridge> <I​nst> I guess someone is using my script
04:46:26 <haskellbridge> <I​nst> with different initial parameters
04:55:33 danse-nr3 joins (~francesco@151.37.177.170)
05:12:04 michalz joins (~michalz@185.246.207.215)
05:15:15 × g quits (g@libera/staff/glguy) (Remote host closed the connection)
05:15:18 g joins (g@libera/staff/glguy)
05:17:44 random-jellyfish joins (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
05:17:44 × random-jellyfish quits (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
05:17:44 random-jellyfish joins (~tiber@user/random-jellyfish)
05:19:25 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
05:21:25 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:23:43 × rgw quits (~R@2605:a601:a0df:5600:15e8:6c08:c6f6:7379) (Read error: Connection reset by peer)
05:23:51 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
05:29:19 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:33:24 × dsrt^ quits (~cd@76.145.193.217) (Ping timeout: 245 seconds)
05:36:32 dsrt^ joins (~cd@76.145.193.217)
05:39:40 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:55:27 <dminuoso> lockywolf: davean did some work working with cabal-install in an offline fashion as well.
05:55:39 <dminuoso> It would be really nice if `cabal-install` had some `vendor-deps` command.
06:02:13 <danse-nr3> by "vendor" you mean "offline", or does it entail anything more?
06:04:52 <danse-nr3> i will interpret it as "local"
06:13:56 chele joins (~chele@user/chele)
06:18:12 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 258 seconds)
06:27:44 idgaen joins (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
06:43:14 <danse-nr3> .oO( maybe in haskell the practice of having a private managing a fork of the dependencies for you is so common that haskellers like "vendor" more )
06:44:59 ubert joins (~Thunderbi@91.141.40.172.wireless.dyn.drei.com)
06:45:07 CO2 joins (CO2@gateway/vpn/protonvpn/co2)
06:46:38 <lockywolf> dminuoso: so far this is my best attempt: https://paste.debian.net/1296115/
06:47:05 × monochrom quits (trebla@216.138.220.146) (Ping timeout: 240 seconds)
06:49:32 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
06:54:22 sord937 joins (~sord937@gateway/tor-sasl/sord937)
06:57:34 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:58:00 notzmv joins (~zmv@user/notzmv)
07:05:36 monochrom joins (trebla@216.138.220.146)
07:07:16 × lottaquestions quits (~nick@2607:fa49:503d:b200:641c:fc5a:8196:c097) (Remote host closed the connection)
07:07:41 lottaquestions joins (~nick@2607:fa49:503d:b200:1016:8a55:beca:b71d)
07:10:58 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 255 seconds)
07:18:54 × phma quits (phma@2001:5b0:211c:95b8:542a:48a6:f6ef:c911) (Read error: Connection reset by peer)
07:19:53 phma joins (~phma@2001:5b0:211f:8338:4e4a:1088:5969:f228)
07:21:34 sm joins (~sm@plaintextaccounting/sm)
07:26:32 lortabac joins (~lortabac@2a01:e0a:541:b8f0:1f7:634d:7013:a344)
07:35:35 × danse-nr3 quits (~francesco@151.37.177.170) (Remote host closed the connection)
07:35:58 danse-nr3 joins (~francesco@151.37.177.170)
07:38:23 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
07:39:22 × billchenchina- quits (~billchenc@2a0c:b641:7a2:230::10) (Ping timeout: 272 seconds)
07:43:33 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:484c:e1ac:4235:81cd) (Remote host closed the connection)
07:47:00 danse-nr3_ joins (~francesco@151.35.191.48)
07:47:27 × danse-nr3 quits (~francesco@151.37.177.170) (Read error: Connection reset by peer)
07:52:26 fendor joins (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021)
07:54:53 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
08:05:01 mmhat joins (~mmh@p200300f1c7190756ee086bfffe095315.dip0.t-ipconnect.de)
08:05:22 × mmhat quits (~mmh@p200300f1c7190756ee086bfffe095315.dip0.t-ipconnect.de) (Client Quit)
08:09:45 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
08:16:51 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
08:20:45 vglfr joins (~vglfr@88.155.140.136)
08:23:07 × tzh quits (~tzh@c-71-193-181-0.hsd1.or.comcast.net) (Quit: zzz)
08:26:12 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
08:28:04 <lockywolf> Is there some straightforward way to trim the giant 01-index.tar file and its pals to the packages already downloaded?
08:33:33 <dminuoso> lockywolf: Like I said, dig into what davean built.
08:34:05 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
08:34:40 <dminuoso> Dont have my old IRC logs anymore, so I cant figure out the project name
08:34:57 rosco joins (~rosco@yp-150-69.tm.net.my)
08:35:06 × dhruvasagar1 quits (~dhruvasag@37.19.205.196) (Ping timeout: 260 seconds)
08:38:48 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
08:40:10 × danse-nr3_ quits (~francesco@151.35.191.48) (Ping timeout: 272 seconds)
08:40:35 dhruvasagar joins (~dhruvasag@37.19.205.196)
08:42:36 × vglfr quits (~vglfr@88.155.140.136) (Remote host closed the connection)
08:43:11 vglfr joins (~vglfr@88.155.140.136)
08:43:35 × migas4 quits (~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds))
08:44:31 gehmehgeh joins (~user@user/gehmehgeh)
08:44:47 migas4 joins (~migas@astra4961.startdedicated.net)
08:45:16 <mauke> uh oh. I think I just discovered string gaps in Perl
08:46:03 × vglfr quits (~vglfr@88.155.140.136) (Remote host closed the connection)
08:46:16 __monty__ joins (~toonn@user/toonn)
08:46:39 vglfr joins (~vglfr@88.155.140.136)
08:49:47 × fendor quits (~fendor@2a02:8388:1640:be00:aab:1226:f274:5021) (Remote host closed the connection)
08:50:06 fendor joins (~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b)
08:51:02 danse-nr3 joins (~francesco@151.35.191.48)
08:53:20 × migas4 quits (~migas@astra4961.startdedicated.net) (Quit: Ping timeout (120 seconds))
08:53:42 <mauke> https://paste.tomsmeding.com/trEpgZqb - gaps.pl.lhs
08:54:24 Square3 joins (~Square4@user/square)
08:55:38 × vglfr quits (~vglfr@88.155.140.136) (Remote host closed the connection)
08:57:07 migas4 joins (~migas@astra4961.startdedicated.net)
08:57:48 vglfr joins (~vglfr@88.155.140.136)
09:00:35 × rosco quits (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
09:04:38 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:04:58 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
09:07:11 × ubert quits (~Thunderbi@91.141.40.172.wireless.dyn.drei.com) (Ping timeout: 260 seconds)
09:10:20 Pickchea joins (~private@user/pickchea)
09:11:36 ubert joins (~Thunderbi@91.141.40.172.wireless.dyn.drei.com)
09:20:57 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
09:25:48 ubert1 joins (~Thunderbi@178.165.198.50.wireless.dyn.drei.com)
09:26:02 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 258 seconds)
09:27:19 × ubert quits (~Thunderbi@91.141.40.172.wireless.dyn.drei.com) (Ping timeout: 255 seconds)
09:27:19 ubert1 is now known as ubert
09:27:21 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
09:27:36 × incertia quits (~incertia@209.122.71.127) (Quit: ZNC 1.8.2 - https://znc.in)
09:27:42 vglfr joins (~vglfr@185-177-124-194.hosted-by-worldstream.net)
09:28:27 incertia joins (~incertia@209.122.71.127)
09:29:21 × dhruvasagar quits (~dhruvasag@37.19.205.196) (Ping timeout: 260 seconds)
09:29:36 acidjnk joins (~acidjnk@p200300d6e72b930390f6e959e0858704.dip0.t-ipconnect.de)
09:31:48 dhruvasagar joins (~dhruvasag@37.19.205.196)
09:37:01 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:47:13 <lockywolf> seemingly, cracked it
09:48:16 × vglfr quits (~vglfr@185-177-124-194.hosted-by-worldstream.net) (Ping timeout: 258 seconds)
09:48:39 × hippoid quits (~hippoid@c-98-213-162-40.hsd1.il.comcast.net) (Ping timeout: 240 seconds)
09:50:46 hippoid joins (~hippoid@c-98-213-162-40.hsd1.il.comcast.net)
09:54:39 vglfr joins (~vglfr@88.155.140.136)
09:55:43 × random-jellyfish quits (~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
09:58:58 random-jellyfish joins (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
09:58:58 × random-jellyfish quits (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
09:58:58 random-jellyfish joins (~tiber@user/random-jellyfish)
10:08:02 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
10:11:19 arahael joins (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net)
10:12:38 × elkcl quits (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru) (Ping timeout: 272 seconds)
10:16:57 × ft quits (~ft@p4fc2a529.dip0.t-ipconnect.de) (Quit: leaving)
10:18:34 elkcl joins (~elkcl@broadband-95-84-226-240.ip.moscow.rt.ru)
10:30:01 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
10:46:36 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
10:47:03 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 240 seconds)
10:49:16 × puke quits (~puke@user/puke) (Quit: puke)
10:53:27 puke joins (~puke@user/puke)
11:03:01 kwii joins (~kwii@193.19.203.71)
11:03:47 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Ping timeout: 258 seconds)
11:06:12 snowsauce joins (~snowsauce@pa9-84-91-207-96.netvisao.pt)
11:06:38 chomwitt joins (~chomwitt@2a02:587:7a01:8f00:1ac0:4dff:fedb:a3f1)
11:08:43 sansk joins (~sansk@user/sansk)
11:10:39 xff0x joins (~xff0x@2405:6580:b080:900:b408:5b9a:5100:323d)
11:12:33 hpc joins (~juzz@ip98-169-35-163.dc.dc.cox.net)
11:13:20 CiaoSen joins (~Jura@2a05:5800:2bd:d400:664b:f0ff:fe37:9ef)
11:15:18 kwii parts (~kwii@193.19.203.71) ()
11:17:52 Guest|60 joins (~Guest|60@91.187.138.52)
11:17:58 <Guest|60> hi
11:18:10 <Guest|60> is there anyonoe
11:18:18 <Guest|60> i cant installiram mrtvi huskel
11:18:28 × Guest|60 quits (~Guest|60@91.187.138.52) (Client Quit)
11:28:04 sm joins (~sm@plaintextaccounting/sm)
11:31:47 accord joins (uid568320@id-568320.hampstead.irccloud.com)
11:36:37 × danse-nr3 quits (~francesco@151.35.191.48) (Ping timeout: 255 seconds)
11:37:41 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
11:40:18 sansk parts (~sansk@user/sansk) ()
11:40:31 × xff0x quits (~xff0x@2405:6580:b080:900:b408:5b9a:5100:323d) (Ping timeout: 264 seconds)
11:41:59 xff0x joins (~xff0x@ai101218.d.east.v6connect.net)
11:58:19 rosco joins (~rosco@yp-150-69.tm.net.my)
12:04:14 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 255 seconds)
12:05:31 naruto69 joins (~naruto69@189.172.34.154)
12:09:19 × dhruvasagar quits (~dhruvasag@37.19.205.196) (Ping timeout: 264 seconds)
12:12:09 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
12:24:54 kwii joins (~kwii@193.19.203.71)
12:25:09 <naruto69> Read about it! Naruto Has Ninja Sex with Nuevo Leon Governor Samuel Garcia ------ Naruto grinned and formed the seals for a new jutsu he had been working on. "It's called the Ketsuryugan," he explained, "It's like a rasengan, but instead of spinning chakra, it's a concentrated blast of pleasure that stimulates the rectum and prostate." Samuel Garcia's eyebrows shot up in surprise, but he was clearly intrigued. "Sounds interesting. Can you show me
12:25:10 <naruto69> how it works?" https://justpaste.it/Naruto_Makes_Love_Samuel_Garcia
12:25:16 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
12:25:24 kwii parts (~kwii@193.19.203.71) ()
12:27:02 <mauke> @where ops
12:27:02 <lambdabot> byorgey Cale conal copumpkin dcoutts dibblego dolio edwardk geekosaur glguy jmcarthur johnw mniip monochrom quicksilver shachaf shapr ski
12:28:47 danse-nr3 joins (~francesco@151.35.150.119)
12:31:57 ChanServ sets mode +o dibblego
12:32:19 dibblego sets mode +b *!*@189.172.34.154
12:32:26 naruto69 is kicked by dibblego (naruto69)
12:32:40 × lisbeths quits (uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
12:38:07 × hpc quits (~juzz@ip98-169-35-163.dc.dc.cox.net) (Ping timeout: 264 seconds)
12:42:47 billchenchina- joins (~billchenc@2a0c:b641:7a2:230::10)
12:45:27 × billchenchina- quits (~billchenc@2a0c:b641:7a2:230::10) (Remote host closed the connection)
12:45:42 billchenchina- joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
12:46:41 stuu22 joins (~stuuu@2a01:c22:8cfe:e300:a9aa:ead8:c4c6:1a2f)
12:50:10 <stuu22> hi, i have the ominous error ld.lld undefined symbol when trying to compile with cabal on windows (i know, but it has to..). i tried ghc 9.6.2, 9.4.7 and 9.8.1. it works on mac and linux tho. anybody knows about this? the web does not give too much info about this
12:52:26 <stuu22> happens as soon as i try to use aeson in the code. on mac it helped to update to ghc 9.6.2. looks like a linking clang error, but i am not really firm with C/gcc and/or whatever.
12:53:17 Inst joins (~Inst@120.244.192.250)
12:53:39 fendor_ joins (~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b)
12:54:13 × fendor quits (~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b) (Ping timeout: 260 seconds)
12:56:39 dhruvasagar joins (~dhruvasag@37.19.205.196)
12:59:06 <danse-nr3> stuu22, i am using WSL on windows. It sucks but i would not change it for "no linux at all"
12:59:38 <danse-nr3> i think the linker is missing? So some dependency that is not tracked by haskell. Did you install with ghcup?
13:00:36 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:00:50 <[exa]> stuu22: which symbol is undefined? (maybe pastebin the whole log)
13:00:59 <mauke> if you're getting an "undefined symbol" error from the linker, then the linker is not missing
13:01:02 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
13:03:16 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 256 seconds)
13:03:27 <danse-nr3> true sorry
13:03:45 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
13:05:41 <danse-nr3> start of the sprint = skimming through stuff faster! :P
13:08:37 waleee joins (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c)
13:10:26 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
13:10:58 <stuu22> yes, i installed with ghcup. i like the WSL idea (which i use most of the time on my personal machine), but this one has to run native.
13:11:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Ping timeout: 260 seconds)
13:11:02 sm joins (~sm@plaintextaccounting/sm)
13:11:15 × stiell_ quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
13:11:19 <stuu22> here is the full log: https://privatebin.net/?1d95cc51613ef84e#Fj4Rpie9nKfZuLkxAk9bQChSZZftiiz9uj4jEM9Fiyor
13:11:57 stiell_ joins (~stiell@gateway/tor-sasl/stiell)
13:13:44 × waleee quits (~waleee@2001:9b0:21c:e600:f2f3:f744:435d:137c) (Ping timeout: 258 seconds)
13:18:39 <lockywolf> Is there a way to request an improvement to hackage?
13:19:27 <lockywolf> I want to have a link like https://hackage.haskell.org/package/semigroupoids-6.0.0.1/revision/semigroupoids-6.0.0.1-1.cabal
13:20:17 <lockywolf> instead of https://hackage.haskell.org/package/semigroupoids-6.0.0.1/revision/1.cabal
13:22:27 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
13:25:48 × stuu22 quits (~stuuu@2a01:c22:8cfe:e300:a9aa:ead8:c4c6:1a2f) (Ping timeout: 240 seconds)
13:26:15 stuu22 joins (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
13:27:17 vglfr joins (~vglfr@88.155.140.136)
13:27:29 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
13:28:12 × koz quits (~koz@121.99.240.58) (Ping timeout: 248 seconds)
13:30:05 × danse-nr3 quits (~francesco@151.35.150.119) (Remote host closed the connection)
13:30:29 danse-nr3 joins (~francesco@151.35.150.119)
13:30:45 koz joins (~koz@121.99.240.58)
13:32:12 × arahael quits (~arahael@119-18-2-212.771202.syd.nbn.aussiebb.net) (Ping timeout: 240 seconds)
13:32:51 ChanServ sets mode +o litharge
13:32:52 litharge sets mode -bo *!*@189.172.34.154 litharge
13:35:18 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
13:35:57 × sm quits (~sm@plaintextaccounting/sm) (Quit: sm)
13:40:42 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
13:43:30 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:45:33 × koz quits (~koz@121.99.240.58) (Ping timeout: 258 seconds)
13:46:34 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
13:49:31 × stuu22 quits (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Ping timeout: 264 seconds)
13:50:25 koz joins (~koz@121.99.240.58)
13:50:32 × mcfrdy quits (~mcfrdy@user/mcfrdy) (Quit: quit)
13:50:52 mcfrdy joins (~mcfrdy@user/mcfrdy)
13:51:55 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
13:53:33 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
13:53:53 qqq joins (~qqq@92.43.167.61)
13:57:43 × Square3 quits (~Square4@user/square) (Remote host closed the connection)
13:57:44 <Unicorn_Princess> how is cabal repl --repl-options supposed to be used? --ghc-options '-ghci-script "/path/to/script.ghci"' works, but the same with repl-options instead of ghc-options doesn't (no error, just doesn't load the script)
13:58:13 ddb joins (ddb@tilde.club)
13:58:23 Square3 joins (~Square4@user/square)
13:59:18 <Unicorn_Princess> i could be doing path quoting wrong - i'm pretty bad at it
14:00:14 × CO2 quits (CO2@gateway/vpn/protonvpn/co2) (Quit: WeeChat 4.1.0)
14:05:43 × lambdap2371 quits (~lambdap@static.167.190.119.168.clients.your-server.de) (Quit: Ping timeout (120 seconds))
14:06:04 lambdap2371 joins (~lambdap@static.167.190.119.168.clients.your-server.de)
14:12:58 × califax quits (~califax@user/califx) (Ping timeout: 256 seconds)
14:13:38 califax joins (~califax@user/califx)
14:16:35 sm joins (~sm@plaintextaccounting/sm)
14:21:34 <danse-nr3> not familiar with those sorry
14:24:23 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
14:24:53 <Inst> in record syntax, I can't apply a function to specify the source, right?
14:25:21 CO2 joins (CO2@gateway/vpn/protonvpn/co2)
14:27:45 <Unicorn_Princess> i don't understand - elaborate
14:27:56 × nyc quits (~nyc@user/nyc) (Ping timeout: 248 seconds)
14:28:43 <lortabac> Inst: what is the source?
14:29:13 <Inst> say, data Foo = MkFoo {hello :: Int, goodbye :: Int}
14:29:24 <Inst> u :: Foo
14:29:38 <Inst> synonynm = hello
14:29:50 <geekosaur> lockywolf, probably file an issue against hackage-server, it's on cabal and on github
14:29:56 <Inst> synonym = hello
14:30:02 <geekosaur> Inst, no
14:30:04 <Inst> u {hello = 3}
14:30:06 <Inst> derp
14:30:07 <Inst> erm
14:30:13 <Inst> u {synonym = 3}
14:31:06 <geekosaur> field selectors can't be used that way. # syntax or RecordDotSyntax can, by defining the appropriate constraint
14:31:17 sm_ joins (~sm@plaintextaccounting/sm)
14:31:38 <Inst> # syntax? ?:(
14:31:50 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
14:31:51 <geekosaur> foo #"xxx" or foo #xxx
14:32:02 <Inst> wait, when was this added?
14:32:26 nyc joins (~nyc@2603-7000-a106-2fb5-0000-0000-0000-1f21.res6.spectrum.com)
14:32:44 <dminuoso> Inst: Do you mean you want to dynamically resolve the record accessor?
14:32:50 <Inst> yeah
14:33:04 <geekosaur> it's been around a while but I don';t recall when it was added
14:33:05 <dminuoso> TemplateHaskell, or `lens/optics` are your friends then.
14:33:23 <dminuoso> fsvo "friends"
14:33:52 <Inst> "makeLenses" ugh
14:34:18 <dminuoso> Inst: You can also just write out a tag based writer `writeProperty :: FooTag -> Foo -> Int -> Foo` with `data FooTag = TagHello | TagGoodbye`
14:34:27 <dminuoso> Well, you can also write out the lenses manually if you like
14:34:48 vglfr joins (~vglfr@88.155.140.136)
14:35:09 <dminuoso> `lens/optics` is the far more elaborate and generalized approach to aboves `writeProperty`
14:36:56 <Inst> i guess i'll miss this silliness
14:37:09 <Inst> remember why ; was put into C syntax?
14:37:39 <geekosaur> https://downloads.haskell.org/ghc/9.8.1/docs/users_guide/exts/hasfield.html#virtual-record-fields
14:38:14 <dminuoso> Inst: B had it, ALGOL had it, PL/I had it.
14:38:14 <geekosaur> seems to be the only place where # syntaxc is mentioned any more, they're trying really hard to push OverloadedRecordDot instead
14:38:24 <dminuoso> So the semicolon predates C.
14:38:49 <Inst> iirc the point was to avoid copy errors during network transmission in, what, I forget what came even before 14.4kbps modems?
14:39:11 <geekosaur> 110 baud modems with BAUDOT, if you go back far enough
14:39:30 <dminuoso> Im going out on a limb to say that ALGOL 60 is probably the earliest widely adopted language that used the semicolon as statement separation.
14:39:31 <geekosaur> but the avoiding copy errors was done with parity bits, not extra syntax
14:39:59 <geekosaur> sorry, there were 75 baud modems early on too
14:40:08 <dminuoso> Ah, or whatever ALGOL came before that.
14:40:37 <geekosaur> there wasn't an earlier one?
14:40:57 <geekosaur> it's distinguished from ALGOL 68
14:41:16 <dminuoso> There was ALGOL 58 as well.
14:41:25 <geekosaur> oh
14:42:30 <dminuoso> Found one earlier than that.
14:42:30 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
14:42:32 <dminuoso> https://en.wikipedia.org/wiki/FLOW-MATIC
14:42:54 <dminuoso> Though Im fairly certain whatever language this was burrowed from was forgotten in time.
14:43:06 <Unicorn_Princess> like tears
14:43:09 <Unicorn_Princess> in
14:43:11 <Unicorn_Princess> rain
14:43:14 <Inst> i mean the code reduplication to an extent is relaxing :(
14:50:46 vglfr joins (~vglfr@88.155.140.136)
14:57:42 × aljazmc quits (~aljazmc@user/aljazmc) (Quit: Leaving)
15:08:33 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:1f7:634d:7013:a344) (Quit: WeeChat 2.8)
15:10:22 Lycurgus joins (~georg@user/Lycurgus)
15:14:41 <EvanR> "repeat your code" not the kind of unpythonic style I was thinking of xD
15:16:12 <Inst> i'm just happy it works, i'm annoyed that even with a lot of time, i'm only dumping 200 lines of trivial (and probably badly written) code per day
15:19:13 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f)
15:19:47 Inst_ joins (~Inst@120.244.192.250)
15:20:07 × danse-nr3 quits (~francesco@151.35.150.119) (Ping timeout: 255 seconds)
15:20:14 ski joins (~ski@88.131.7.247)
15:21:50 dhruvasagar1 joins (~dhruvasag@49.207.194.211)
15:22:18 <EvanR> lens gets all the attention now, but at one point there was this https://github.com/haskellcats/semantic-editor-combinators
15:22:20 × Inst quits (~Inst@120.244.192.250) (Ping timeout: 248 seconds)
15:22:21 × dhruvasagar1 quits (~dhruvasag@49.207.194.211) (Client Quit)
15:22:33 <EvanR> that was for Inst
15:22:39 <EvanR> R.I.P.
15:22:45 <yushyin> :D
15:23:08 <geekosaur> fclabels predated them all, I think?
15:23:36 <geekosaur> although they quickly migrated to van Laarhoven after lens came out
15:23:56 × dhruvasagar quits (~dhruvasag@37.19.205.196) (Ping timeout: 248 seconds)
15:25:30 sabino joins (~sabino@user/sabino)
15:26:52 × acidjnk quits (~acidjnk@p200300d6e72b930390f6e959e0858704.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
15:28:19 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:28:23 <Inst_> is it possible to test games?
15:28:30 <exarkun> of course
15:28:31 <Inst_> i mean, of course it is, but it's significantly more difficult
15:28:39 <Inst_> to test games, since there's so many valid and obtainable states, no?
15:28:40 <exarkun> more difficult than what
15:28:51 <Inst_> other applications
15:28:58 <Inst_> i'm testing a tower of hanoi i built
15:29:15 <exarkun> what's hard about testing that
15:29:28 <Inst_> I'm trying to test the exit screen when I set N = 9 as default.
15:29:33 acidjnk joins (~acidjnk@p200300d6e72b93039c291881441b2222.dip0.t-ipconnect.de)
15:30:18 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
15:30:19 <haskellbridge> <s​m> sometimes you need to build in testability features. Eg a mode where it logs each screen to a readable log file, which you can compare with past runs
15:31:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:7058:6d5c:2ab:360f) (Remote host closed the connection)
15:31:04 <haskellbridge> <s​m> there's also tools like `expect` for automating interactive terminal I/O (usually not worth the trouble I feel)
15:31:05 <Inst_> I'm more asking about the state of the art in formally verifying games
15:31:10 <EvanR> many games have a debug tool, debug room, cheats, and if you defined a "save" properly you can easily restore the circumstances you're trying to test
15:31:18 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:31:21 <Inst_> because when you're looking at a complex state machine like this, ummm
15:31:24 <exarkun> "games" as a category are barely more specified than "programs", or maybe not any more specified
15:31:30 <exarkun> so the question is as hard as "how do you test programs"
15:31:35 <EvanR> and of course the more pieces of your game that are purely functional, the easier is it to test that
15:31:50 haskellbridge <s​m> ponders formally verify the exit screen...
15:31:53 <EvanR> putting it all in IO will exclude that
15:33:09 <haskellbridge> <s​m> quickcheck & co might help
15:33:32 <EvanR> if your game involves floating point maths and physical models, you might need to use more brain to "verify" whatever it's supposed to do. But many games don't attempt it, leading to glitches
15:34:19 <Inst_> that's an interesting point, i.e, i probably should make this hanoi more purely functional, use a smaller loop and pass execution purely, instead of closure abuse
15:34:34 <EvanR> yes simple games can usually be functionalized
15:34:39 <Inst_> i'm not sure if you'd call this bad advice, but I told someone who, for some bizarre reason, liked Haskell's laziness but not its purity
15:34:48 <Inst_> just to abuse closures
15:35:04 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Quit: WeeChat 4.0.2)
15:35:15 <Inst_> everything in IO, only FP is in where clauses
15:36:05 <EvanR> that person is free to insert unsafePerformIOs everywhere and see how they like it
15:36:18 danse-nr3 joins (~francesco@151.35.150.119)
15:36:24 <Inst_> i think they're trolling because it's such a bizarre response
15:37:21 stuu22 joins (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
15:38:03 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
15:38:05 <Inst_> i think in the future, for reasonably complex games, it'd be better to feature a more complex record type
15:38:44 <Inst_> IO layer only gets data, outputs data, then passes state enclosing data to a pure function instead
15:38:49 <Inst_> this is just way too tightly coupled
15:38:54 <Inst_> i mean, the way i'm doing it now
15:39:58 <EvanR> :t interact
15:39:59 <lambdabot> (String -> String) -> IO ()
15:40:08 <EvanR> ok that one doesn't allow state.
15:40:42 <EvanR> (String -> s -> (String, s)) -> String -> s -> IO ()
15:40:55 <EvanR> now zork can be purely functional
15:41:11 <EvanR> that's the only IO action
15:41:21 stuu22 is now known as ash3en
15:42:12 <Inst_> brb, smoke, but would be interested in the record signature
15:44:43 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 264 seconds)
15:46:26 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
15:46:46 hrberg joins (~quassel@171.79-160-161.customer.lyse.net)
15:47:42 danse-nr3_ joins (~francesco@151.35.202.181)
15:49:32 × danse-nr3 quits (~francesco@151.35.150.119) (Read error: Connection reset by peer)
15:49:41 × Maxdamantus quits (~Maxdamant@user/maxdamantus) (Ping timeout: 255 seconds)
15:51:04 <EvanR> play :: Display -> Color -> Int -> s -> (s -> Picture) -> (Event -> s -> s) -> (Float -> s -> s) -> IO () -- now you have a purely graphical game (with no sound), this is from the gloss package
15:51:16 <EvanR> purely functional graphical game
15:51:22 Maxdamantus joins (~Maxdamant@user/maxdamantus)
15:52:03 × ubert quits (~Thunderbi@178.165.198.50.wireless.dyn.drei.com) (Ping timeout: 258 seconds)
15:55:22 tzh joins (~tzh@c-71-193-181-0.hsd1.or.comcast.net)
15:55:56 <ski> EvanR : is that supposed to be something `unfoldr'y ?
15:56:12 <ski> (your penultimate signature)
15:57:45 <ski> let loop state0 input = ..(loop state remainingInput).. in interact (loop initState) -- this does state, btw
16:01:12 <ski> also, you could refactor `play' into
16:01:17 × Inst_ quits (~Inst@120.244.192.250) (Ping timeout: 255 seconds)
16:01:19 <ski> play :: Display -> Color -> Int -> Stuff -> IO ()
16:01:20 <EvanR> penultimate f msg state0 = do { putStrLn msg; input <- getLine; (response, state1) <- f input state0; penultimate f response state1 }
16:01:21 <ski> data Stuff = MkStuff Picture (Event -> Foo) (Float -> Foo)
16:01:40 <ski> (er, s/Foo/Stuff/)
16:01:48 × Buliarous quits (~gypsydang@46.232.210.139) (Ping timeout: 248 seconds)
16:02:35 × CiaoSen quits (~Jura@2a05:5800:2bd:d400:664b:f0ff:fe37:9ef) (Ping timeout: 240 seconds)
16:03:39 <EvanR> @src interact
16:03:40 <lambdabot> interact f = do s <- getContents; putStr (f s)
16:05:46 <EvanR> I see, lazy list I/O
16:07:27 <ski> penultimate f msg = interact . loop where loop state0 instream = msg ++ '\n' : case break ('\n' ==) instream of (input,rest) -> let (response,state1) = f input state0 in loop response state1
16:08:03 <ski> (changing `f' back to non-`IO', as in your original signature)
16:09:42 <Unicorn_Princess> (correct me if i'm wrong) library source code goes in myproject/src/, executable source goes in app/MyExe.hs, non-code data files a project needs goes in data/ - but where do random development convenience/install scripts go? dev/? scripts/? tools/?
16:10:16 <Unicorn_Princess> (i know it's all subjective, asking for how it's usually done. guidelines)
16:10:46 aljazmc joins (~aljazmc@user/aljazmc)
16:10:48 <ski> EvanR : anyway, i just wanted to offer a riposte to "ok that one doesn't allow state."
16:11:13 <EvanR> yeah I got that. Now I'm internalizing the consequences for the style you suggested xD
16:11:13 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 258 seconds)
16:11:31 ski smiles
16:13:10 <ski> (should i expand on my refactoring of `play', or is it obvious how i arrived at it ?)
16:14:01 <EvanR> if you implement play with just lambda calculus I'll be impressed
16:14:28 <ski> well, `IO's in the type, presumably it's going to use some `IO' primitives
16:14:30 <int-e> . o O ( main :: [Reply] -> [Request] )
16:15:03 ski offers a dialogue as final answer
16:15:54 <EvanR> [Reply] -> [Request] makes my brain explode
16:16:06 <yin> is there a cabal command to add a package as a dependency automatically with version constraints?
16:16:13 <ski> it's related to TyingTheKnot
16:16:46 <int-e> EvanR: I mean it's really the same idea as `interact` except there you have Reply = Request = Char so it's easier to miss the flow when glancing at the type.
16:16:48 × danse-nr3_ quits (~francesco@151.35.202.181) (Remote host closed the connection)
16:17:09 × shapr quits (~user@2600:1700:c640:3100:70ed:821a:ab80:9f0d) (Remote host closed the connection)
16:17:10 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:17:11 danse-nr3_ joins (~francesco@151.35.202.181)
16:17:15 <Unicorn_Princess> yin, don't know, but cabal can automatically give you the version bounds: https://cabal.readthedocs.io/en/3.4/cabal-package.html#generating-dependency-version-bounds
16:17:22 shapr joins (~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1)
16:17:26 <ski> @wiki Tying the Knot
16:17:26 <lambdabot> https://wiki.haskell.org/Tying_the_Knot
16:17:30 <EvanR> interact seems to have a more causal behavior
16:18:10 <ski> EvanR : `type Dialogue = [Reply] -> [Request]' is how Haskell originally did I/O
16:18:16 <EvanR> yeah
16:18:33 <EvanR> 1 reply per request
16:18:44 Inst_ joins (~Inst@120.244.192.250)
16:18:45 <ski> that tends to make things simpler, yea
16:19:23 <yin> Unicorn_Princess: ty. it seems like a very small step from this to having it update the cabal file automatically
16:20:07 <ski> the original design for pre-Mercury (Ptah), used a similar idea : `main([Response|Reponses],[Request|Requests]) :- ...', where you'd instantiate `Request' to the action you wanted to perform, and the run-time system would then perform the I/O and instantiation `Response' back with the result
16:20:32 <monochrom> I don't know what "auto add dependency" means. How does it know that I want random-fu?
16:20:34 <ski> Zoltan Somogyi has some paper which talks about this .. i forgot which exact one
16:20:56 <yin> monochrom: cabal add random-fu
16:21:12 <yin> would be a command
16:21:37 <monochrom> OK I think people on the haskell discourse are still talking about that.
16:21:55 <EvanR> is that a command that basically edits your cabal file
16:22:03 <monochrom> I think I have never wanted it.
16:22:10 <yin> EvanR: yes
16:22:14 <EvanR> these kind of commands creep me out
16:22:25 <EvanR> I would run the command then check the file to make sure it worked
16:22:33 × qqq quits (~qqq@92.43.167.61) (Remote host closed the connection)
16:22:52 <EvanR> or see what it did
16:22:57 <EvanR> so I'm in the file already
16:23:14 <monochrom> At the time I am want to add random-fu, I am not at a shell prompt, I am already at an editor. It is actually more trivial to go change the *.cabal file directly.
16:24:08 <monochrom> Switching context to a terminal just to use a "convenience" command is actually a path of higher resistance.
16:24:40 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Remote host closed the connection)
16:25:01 <monochrom> Indeed already the newest version of "cabal init" adds things I need to delete.
16:25:04 <Inst_> EvanR: or you could go all the way to ponies, which is intended to provide a GUI for editing cabal files :)
16:25:14 sord937 joins (~sord937@gateway/tor-sasl/sord937)
16:26:14 <EvanR> Inst_, did you get any inspiration from these canned IO functions which takes non-IO "callbacks"
16:26:23 <EvanR> like interact or play
16:26:32 <Inst_> wait, play is in Gloss or System.IO?
16:26:44 <EvanR> gloss, it's more involved because graphics and timing
16:27:04 <Inst_> https://hoogle.haskell.org/?hoogle=play
16:27:17 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
16:27:21 <Inst_> see, that's more my complaint about Haskell libs being confusing :(
16:27:39 <monochrom> Would "cabal add random-fu" have a million options and knobs that let me customize how it's indented? >:)
16:27:40 <EvanR> um gloss is the first result on hoogle for what it's worth
16:27:46 <Inst_> interact I get, your (String -> s -> (String, s)) -> (String -> s -> IO () ) I get
16:27:48 <EvanR> what are you confused about
16:28:10 <Inst_> the type of play, ummm, how am I supposed to use it? :(
16:28:13 <EvanR> what I typed was stripped of its documentation https://hackage.haskell.org/package/gloss-1.13.2.2/docs/Graphics-Gloss.html#v:play
16:28:16 <Inst_> I mean I can look it up, it just takes time to get
16:28:18 <int-e> I don't know, aren't all libraries confusing, regardless of the language?
16:28:26 <EvanR> you can also click the link that hoogle gives you
16:28:42 <Inst_> yeah i know
16:28:53 <int-e> There's also https://hackage.haskell.org/package/gloss-1.13.2.2/docs/doc-index-P.html
16:28:57 <monochrom> Um, libraries that I wrote are not confusing. :)
16:29:01 <Inst_> If I can successfully work on Cabal (and have a good shot at doing the exact parser)
16:29:11 <Inst_> I'd probably be qualified to work Haddock
16:29:14 <EvanR> libraries I recommend are not confusing, tautology? xD
16:29:19 <Inst_> then I'd try to figure out how to improve Haddock
16:29:27 <int-e> monochrom: Even those that you wrote 10 years ago?
16:29:41 <sclv> a good use case for add-like functionality would be an IDE that knew to add containers if I imported Data.Map for example
16:30:24 <Inst_> groan, I can't even get ponies to the maturity level where it gives GUI hud for all of the cabal commands
16:30:42 <int-e> monochrom: (Assuming you've stopped using them of course. I'm trying to make a point about familiarity here.)
16:30:56 <Inst_> wait, that's IDE...
16:31:37 <monochrom> I think since 10-15 years ago I developed the habit of writing good docs.
16:32:32 <ski> monochrom : heh, was about to say that libraries that oneself has written are (sometimes) not confusing ;)
16:32:47 <Rembane> monochrom: How do you write good docs?
16:32:57 <Rembane> monochrom: Or, how does one write good docs? <- in case of math
16:33:18 <monochrom> I had developed good teaching experience, so I write like I'm teaching it.
16:34:23 <monochrom> And in the special case of teaching my future forgetful self, I kind of already know what I will easily figure out and what I will find non-obvious.
16:34:44 × shapr quits (~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1) (Read error: Connection reset by peer)
16:35:13 <Rembane> monochrom: That sounds like a very good way to write docs
16:35:33 <Rembane> monochrom: The catch is that teaching experience is required to copy your doc writing style.
16:36:13 <Rembane> I was hoping for shortcuts. :)
16:37:03 <monochrom> For example, in my own study notes on measure theory. let u be the unit Dirac delta measure, i.e., u(x)(A) = 1 if x in A, 0 o/w. There is a cute theorem "for a measurable predicate P, P holds almost everywhere iff P holds at x"
16:37:35 <monochrom> Now, I know that I am proud of an insider joke I made about "but it has measure zero so it doesn't matter".
16:37:41 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Quit: oo_miguel)
16:37:53 <monochrom> So in my notes, my proof just says that. :)
16:37:59 <Rembane> Good stuff! :D
16:38:28 <EvanR> "NB: you are proud of an insider joke you made about 'but it has measure zero so it doesn't matter'"
16:38:39 <monochrom> Here is the insider joke.
16:39:08 <monochrom> My real analysis prof announced "midterm test: next Wednesday 12am".
16:39:32 <int-e> midnight euphoria
16:39:38 <monochrom> So we were all like "don't you mean 12pm? noon?". He said oh yeah.
16:40:00 <monochrom> Then he explained why. In his opinion, noon should be called 12am, midnight should be called 12pm.
16:40:27 <int-e> . o O ( 12m )
16:40:34 ski always confuses those
16:40:38 <int-e> since it's nether before nor after
16:41:00 <int-e> But then I'm not sure what to use for midnight :-P
16:41:07 <monochrom> Now, this being in the context of a measure theory course, (and I also thought about it previously), one must not pass up the pun opportunity to say, "but it ({noon, midnight}) is a set of measure zero, so it doesn't matter". :)
16:41:18 <monochrom> The whole class ROFL.
16:41:41 ski grinns
16:41:49 × chele quits (~chele@user/chele) (Remote host closed the connection)
16:42:10 <int-e> y'all should switch to a 24 hour clock
16:42:32 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
16:43:07 <Inst_> is there a possible pun between Hanuman and Haskell?
16:43:36 <Inst_> An acquaintance agreed to start a github org for me to dump stuff like porting The Big Book of Small Python Projects to Haskell
16:44:37 rgw joins (~R@2605:a601:a0df:5600:e03b:6bd1:41db:b9ff)
16:46:44 × danse-nr3_ quits (~francesco@151.35.202.181) (Ping timeout: 245 seconds)
16:48:36 × random-jellyfish quits (~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
16:50:47 × dcoutts_ quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 246 seconds)
16:53:37 kwii30 joins (~kwii@193.19.203.71)
16:54:59 × kwii30 quits (~kwii@193.19.203.71) (Client Quit)
16:56:17 danse-nr3_ joins (~francesco@151.35.202.181)
16:56:21 <dminuoso> "Scheduled delivery 11:00-12:00pm"
16:56:38 <dminuoso> Resolve into a timerange of UTC timepoints. How's that for a riddle?
16:57:16 danse-nr3 joins (~francesco@151.79.204.38)
16:59:24 <EvanR> use swatch internet time dotbeats
16:59:39 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:01:26 × danse-nr3_ quits (~francesco@151.35.202.181) (Ping timeout: 258 seconds)
17:03:24 × Square3 quits (~Square4@user/square) (Ping timeout: 245 seconds)
17:05:54 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
17:14:55 × tv quits (~tv@user/tv) (Read error: Connection reset by peer)
17:15:29 random-jellyfish joins (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60)
17:15:29 × random-jellyfish quits (~tiber@2a02:2f04:11e:c600:3081:413f:53c6:da60) (Changing host)
17:15:29 random-jellyfish joins (~tiber@user/random-jellyfish)
17:16:56 × ridcully quits (~ridcully@p57b5294c.dip0.t-ipconnect.de) (Quit: WeeChat 4.0.5)
17:17:14 ridcully joins (~ridcully@p57b5294c.dip0.t-ipconnect.de)
17:23:58 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
17:28:35 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
17:29:23 akyv13 joins (~akyv13@2409:4060:39a:b61c:9c09:9c6f:b032:9005)
17:31:08 × rosco quits (~rosco@yp-150-69.tm.net.my) (Quit: Lost terminal)
17:31:42 <yin> why am i getting ` Module ‘Network.WebSockets’ does not export ‘Connection’. `?
17:31:55 <yin> when it clearly does?
17:31:58 tv joins (~tv@user/tv)
17:32:29 × ash3en quits (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Ping timeout: 258 seconds)
17:35:51 × random-jellyfish quits (~tiber@user/random-jellyfish) (Ping timeout: 260 seconds)
17:36:17 <int-e> how did you import it?
17:37:43 <yin> import Network.WebSockets
17:38:00 <yin> import Network.WebSockets ( Connection ) -- this gives an error
17:38:57 <EvanR> it actually doesn't export the constructors
17:39:07 <int-e> It used to though.
17:39:35 <EvanR> did it?
17:39:49 <EvanR> import Network.WebSockets.Connection
17:39:56 <int-e> 0.9.x did, I have not checked between 0.9 and 0.12.
17:40:26 <EvanR> in 0.9.0.0 it didn't (from Network.WebSockets)
17:40:56 <int-e> Oh.
17:41:09 <int-e> You're right, I was looking at Network.WebSockets.Connection
17:41:47 <int-e> (Which still exports the constructor. But that's not the issue here.)
17:42:27 <int-e> Or maybe it is? That import shouldn't give an error... I imagine it's somewhere else in the code?
17:43:08 <yin> something's funky
17:43:23 <yin> Could not find module ‘Network.WebSockets.Connection’.
17:43:59 <int-e> Okay, maybe you have to check which package you're getting Network.WebSockets from
17:44:17 <yin> and i can't seem to get the correct version which should be 0.12
17:45:06 <yin> how do i check that?
17:45:22 <int-e> It looks like ancient versions didn't have a Connection type.
17:45:34 × sm_ quits (~sm@plaintextaccounting/sm) (Quit: sm_)
17:46:37 <int-e> But I mean ancient... it was added in websockets-0.8.0.0 as far as I can see, which is from 2013
17:46:38 dcoutts_ joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
17:47:00 <int-e> On October 22nd, so pretty much exactly 10 years old.
17:48:51 <int-e> "how do I check that"... uh. I tend to check install plans (cabal install --dry-run). You could also add `--constraint 'websockets >= 0.12'` and see whether that fails and if so, how.
17:52:21 <yin> this is my .freeze https://paste.jrvieira.com/1698256307711
17:54:18 <int-e> Well that lists websockets as 0.3.0.0, which is indeed way too old.
17:54:30 <int-e> don't ask me why though
17:54:31 <yin> https://paste.jrvieira.com/1698256455577
17:54:57 <yin> oh wait
17:55:00 <int-e> rename the .freeze file and try again?
17:55:04 <yin> yeah
17:55:12 <int-e> (or remove it... since whatever is in there will never work anyway)
17:56:24 <yin> https://paste.jrvieira.com/1698256568625
17:56:30 <yin> something to do with text i think
17:57:39 <yin> nope
17:57:46 <int-e> But ultimately it's base, so your ghc is too new. You can *try* `--allow-newer=base`
17:58:56 <yin> ah
17:59:28 <yin> ty
17:59:52 <yin> i guess i should keep with ghcup's recommended versions
18:01:56 × akyv13 quits (~akyv13@2409:4060:39a:b61c:9c09:9c6f:b032:9005) (Ping timeout: 272 seconds)
18:03:17 L29Ah joins (~L29Ah@wikipedia/L29Ah)
18:06:18 × danse-nr3 quits (~francesco@151.79.204.38) (Ping timeout: 260 seconds)
18:06:26 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 256 seconds)
18:07:51 ubert joins (~Thunderbi@178.165.198.50.wireless.dyn.drei.com)
18:12:33 <yin> well that was a good half hour list
18:12:35 <yin> *lost
18:14:47 simendsjo joins (~user@84.211.91.241)
18:27:55 × dcoutts_ quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 264 seconds)
18:32:24 pavonia joins (~user@user/siracusa)
18:33:15 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:36:16 <Inst_> what is wrong with forever?
18:36:27 <Inst_> if I use it to infinite loop, but have button presses accessed by a different thread
18:36:35 <Inst_> erm, forkIO
18:36:39 <int-e> ?!
18:36:39 <lambdabot> Maybe you meant: v @ ? .
18:36:41 <Inst_> the exception calling doesn't kick in
18:36:50 <Inst_> okay, my program goes
18:37:02 <Inst_> thread <- forkIO . forever $ putStrLn "Hello"
18:37:06 <Inst_> getChar
18:37:10 <Inst_> killThread thread
18:37:32 <Inst_> only way I get the expected behavior is to run on prog -threaded +RTS -N
18:37:34 <EvanR> if an exception is not caught in a non-main thread, it just kills the thread
18:37:56 <EvanR> unless you set something up to connect threads together, which async does
18:38:49 <Inst_> iirc forkIO is considered smelly
18:38:53 <EvanR> ...
18:39:32 <geekosaur> you need -threaded or for the thread to allocate (or maybe -fno-omit-yields) for that to work with the non-threaded runtime
18:39:33 <EvanR> any supporting arguments for that
18:40:07 <mauke> I'd be surprised if putStrLn doesn't allocate
18:40:30 <EvanR> putStrLn also interacts with the IO manager, so should cooperate
18:40:36 <Inst_> i can get it working with ghci -threaded +RTS -N
18:40:51 <mauke> do you need that +RTS option?
18:41:20 <geekosaur> ghci is always -threaded
18:41:32 <Inst_> hmmm, it's a stdin behavior i think
18:41:58 <mauke> ... actually, what is the expected behavior and what do you see instead?
18:42:17 <Inst_> if i set hSetBuffering stdin NoBuffering the detect will work
18:42:56 <Inst_> no threaded necessary
18:43:21 <EvanR> what are you even trying.
18:43:28 <John_Ivan_> What does the "m" constructor in the monad >>= stand for? I know it's "Monad" but what exactly is it? "m a -> (a -> m b) -> m b"
18:43:33 <EvanR> e.g. if you press backspace, you won't see a char with buffering
18:43:38 <geekosaur> EvanR, see https://downloads.haskell.org/ghc/9.2.5/docs/html/libraries/base-4.16.4.0/Control-Concurrent.html#v:throwTo at "safe point"
18:43:47 <John_Ivan_> farshot guess, is it "IO" ?
18:44:03 <geekosaur> (`killThread` is `\tid -> throwTo tid ThreadKilled`)
18:44:15 <Inst_> I'm trying to pimp this program right now
18:44:17 <Inst_> https://inventwithpython.com/bigbookpython/project15.html
18:44:21 <geekosaur> John_Ivan_, it's any monad
18:44:30 <geekosaur> every monad has its own definition of (>>=)
18:44:42 <geekosaur> @src Maybe (>>=)
18:44:42 <lambdabot> (Just x) >>= k = k x
18:44:42 <lambdabot> Nothing >>= _ = Nothing
18:44:49 <Inst_> i'm trying to implement exit on any keyrpress behavior, whereas the py original requires ctrl c
18:44:50 <geekosaur> @src IO (>>=)
18:44:51 <lambdabot> m >>= k = bindIO m k
18:44:55 <John_Ivan_> geekosaur, any monad being... any instance of class Monad?
18:44:59 <geekosaur> yes
18:45:02 <John_Ivan_> gotcha.
18:45:04 <John_Ivan_> thanks
18:45:30 santiagopim joins (~user@90.167.66.131)
18:45:42 <Inst_> the behaviors I'm trying to add is probably via ansi-terminal, i.e, build a buffer to display, then display the buffer between calls
18:46:10 <geekosaur> inst_, if you want any keys to be passed back before a newline you must use hSetBuffering
18:47:13 × santiagopim quits (~user@90.167.66.131) (Remote host closed the connection)
18:48:02 <Inst_> yeah I switched to hSetBuffering stdin NoBuffering
18:48:37 <EvanR> and then you still might not see anything if you press half of a unicode character? xD
18:48:38 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:49:08 × ski quits (~ski@88.131.7.247) (Ping timeout: 255 seconds)
18:49:10 <EvanR> ok that's probably getting too far into the weeds
18:52:17 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:55:51 <Inst_> how would you press half of a unicode character? ?:(
18:55:55 <Inst_> oh
18:56:23 <Inst_> I think, maybe Japanese keyboards migth have this mode
18:56:33 <Inst_> wherein they input Japanese directly via mode switch
18:56:56 <Inst_> Chinese is IDE-based, iirc, there might be direct wubi inputs
18:57:02 Pickchea joins (~private@user/pickchea)
18:57:08 <Inst_> not sure about Arabic keyboards
18:58:08 <Inst_> arabic and hebrew keyboards exist, I'd think Indian keyboards would be more circumspect and just abuse the fact that English is a national language
18:58:31 danza_ joins (~francesco@151.35.202.181)
18:59:26 <EvanR> ISCII
18:59:52 <Inst_> devanagari keyboards exist, nad I assume for the wide variety of scripts
19:00:02 <Inst_> end of the day, Haskell's direct console story is mediocre
19:00:36 <EvanR> yeah haskell should come with powershell built-in
19:00:45 <Inst_> well, it's okay, but the default show insstance sucks
19:01:38 <Inst_> putStrLn "世界,你好!“
19:01:52 <Inst_> works, direct string literal ends up being gibberish (unicode points)
19:02:28 <Inst_> print also returns unicode points
19:02:39 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
19:02:43 <EvanR> no this is gibberish: £
19:03:21 <c_wraith> print calls show. show encodes strings as very conservative ascii literals
19:03:25 wootehfoot joins (~wootehfoo@user/wootehfoot)
19:04:01 <c_wraith> importantly, as Haskell source literals.
19:04:47 <Inst_> damnit, I'm guessing there's a long story as to why Vitaly Bragilevsky's unicode show doesn't work :(
19:05:21 <EvanR> show is basically for debugging and not pretty printing
19:05:29 <Unicorn_Princess> is it ok/appropriate to put my local noindex repository into ~/.cabal/packages/myrepo?
19:05:49 <Inst_> now this is interesting!
19:06:03 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:7473:6047:87f6:c0b2)
19:06:34 <Inst_> if I build a data constructor in unicode, then derive show, it'll show respecting unicode
19:06:44 <Inst_> string literal, fuggedabutit
19:08:32 <int-e> > length "!"
19:08:33 <lambdabot> 1
19:12:47 × billchenchina- quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Remote host closed the connection)
19:13:01 Square joins (~Square@user/square)
19:13:03 <Inst_> is there an arbitrary symbol that is counted as uppercase for Haskell's purposes?
19:13:10 <EvanR> A
19:13:16 <EvanR> oh, symbol
19:19:51 <EvanR> > find (\c -> isSymbol c && isUpper c) ['\0'..]
19:19:53 <lambdabot> Nothing
19:20:28 <Unicorn_Princess> but is '\0' really the first one?
19:20:38 <EvanR> > toEnum 0 :: Char
19:20:40 <lambdabot> '\NUL'
19:20:58 <Unicorn_Princess> is there a more principled way to get every char?
19:21:14 × danza_ quits (~francesco@151.35.202.181) (Remote host closed the connection)
19:21:31 <[exa]> kinda wondering how to get more principled than ['\0'..]
19:21:33 <EvanR> > [minBound .. maxBound] :: String
19:21:35 <lambdabot> "\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SY...
19:21:36 danza_ joins (~francesco@151.35.202.181)
19:21:59 <Unicorn_Princess> beautiful
19:22:04 dcoutts_ joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
19:22:35 <EvanR> relying on the principles of the per who defines the Enum instance
19:22:38 <EvanR> person
19:22:57 ash3en joins (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47)
19:23:00 <EvanR> and Bounded
19:23:45 falafel joins (~falafel@62.175.113.194.dyn.user.ono.com)
19:23:49 <ash3en> me again.. sorry, but any chance someone dealt with ld.lld errors on windows? full log here: https://privatebin.net/?1d95cc51613ef84e#Fj4Rpie9nKfZuLkxAk9bQChSZZftiiz9uj4jEM9Fiyor
19:23:58 <EvanR> is there a way principled or not to get every Float
19:24:59 <Inst_> > minBound :: Char
19:25:01 <lambdabot> '\NUL'
19:25:31 <Unicorn_Princess> bitwise hackery? afaik every bit pattern is a valid float (valid includes Nan).. but i'm not 100%
19:26:37 <EvanR> > map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
19:26:39 <lambdabot> error:
19:26:39 <lambdabot> Variable not in scope: unsafeCoerce :: Word32 -> Float
19:26:49 <EvanR> % map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
19:26:49 <yahb2> <interactive>:25:46: error: ; Not in scope: type constructor or class ‘Word32’ ; Perhaps you meant ‘Word’ (imported from Prelude)
19:27:09 <Unicorn_Princess> I think default haskell float is 64 bits?
19:27:16 <EvanR> Double is
19:27:20 <Unicorn_Princess> ah
19:27:24 × danza_ quits (~francesco@151.35.202.181) (Ping timeout: 240 seconds)
19:27:30 <Unicorn_Princess> must be thinking of python
19:28:34 <int-e> % import Data.Word
19:28:34 <yahb2> <no output>
19:28:54 <EvanR> % map unsafeCoerce ([minBound .. maxBound] :: [Word32]) :: [Float]
19:28:55 <yahb2> <interactive>:29:5: error: ; Variable not in scope: unsafeCoerce :: Word32 -> Float
19:29:11 <int-e> % import Unsafe.Coerce
19:29:11 <yahb2> <no output>
19:29:13 <EvanR> it's not meant to be done
19:32:42 jmdaemon joins (~jmdaemon@user/jmdaemon)
19:33:41 <EvanR> ash3en, cabal file?
19:39:02 <ash3en> https://privatebin.net/?a0805c6c7cb6313d#8DuPDNrQ6RrWjt4B8B2SpAB9ryTL53Nv5GH831GTEskk :) here
19:39:19 × dcoutts_ quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 264 seconds)
19:42:13 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
19:44:20 shapr joins (~user@2600:1700:c640:3100:5fc7:fa6:a4a8:54f1)
19:52:36 × idgaen quits (~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.5)
19:54:40 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 256 seconds)
19:56:04 johnw joins (~johnw@69.62.242.138)
19:56:53 sansk_ joins (~sansk@072-238-128-073.res.spectrum.com)
19:58:23 × whatsupdoc quits (uid509081@id-509081.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
19:58:35 ChaiTRex joins (~ChaiTRex@user/chaitrex)
19:59:10 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
20:00:29 × ubert quits (~Thunderbi@178.165.198.50.wireless.dyn.drei.com) (Ping timeout: 245 seconds)
20:02:13 × vglfr quits (~vglfr@88.155.140.136) (Read error: Connection reset by peer)
20:10:09 sansk joins (~sansk@user/sansk)
20:12:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:15:06 × falafel quits (~falafel@62.175.113.194.dyn.user.ono.com) (Ping timeout: 260 seconds)
20:15:11 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
20:16:05 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
20:16:35 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:22:14 phma_ joins (phma@2001:5b0:211b:d548:ffd5:bf9a:b80f:c063)
20:22:57 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:23:01 × phma quits (~phma@2001:5b0:211f:8338:4e4a:1088:5969:f228) (Read error: Connection reset by peer)
20:31:25 × sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x)
20:33:08 × ash3en quits (~stuuu@2a01:c22:8cfe:e300:1d0c:2eb2:7792:5e47) (Quit: Leaving)
20:38:26 sabino joins (~sabino@user/sabino)
20:44:53 × simendsjo quits (~user@84.211.91.241) (Ping timeout: 255 seconds)
20:47:17 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
20:48:24 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
20:48:51 dcoutts_ joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
20:49:29 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:50:46 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Ping timeout: 256 seconds)
20:51:20 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:53:44 × sympt quits (~sympt@user/sympt) (Quit: Ping timeout (120 seconds))
20:54:23 ChaiTRex joins (~ChaiTRex@user/chaitrex)
20:54:37 sympt joins (~sympt@user/sympt)
20:55:38 × fendor_ quits (~fendor@2a02:8388:1640:be00:dc89:8d8:5d44:854b) (Remote host closed the connection)
20:57:10 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:00:45 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
21:23:50 johnw joins (~johnw@69.62.242.138)
21:24:22 phma_ is now known as phma
21:24:31 × jjhoo quits (~jahakala@user/jjhoo) (Ping timeout: 252 seconds)
21:24:42 emmanuelux joins (~emmanuelu@user/emmanuelux)
21:25:28 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
21:26:43 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 264 seconds)
21:27:33 hpc joins (~juzz@ip98-169-35-163.dc.dc.cox.net)
21:28:44 × michalz quits (~michalz@185.246.207.215) (Remote host closed the connection)
21:30:28 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 255 seconds)
21:31:08 jmdaemon joins (~jmdaemon@user/jmdaemon)
21:35:58 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
21:36:16 × yoyofreeman quits (~yoyofreem@176.97.76.178) (Read error: Connection reset by peer)
21:36:23 jjhoo joins (~jahakala@user/jjhoo)
21:36:58 yoyofreeman joins (~yoyofreem@176.97.76.178)
21:41:12 Lycurgus joins (~georg@user/Lycurgus)
21:46:31 <Inst_> question: is this outdated?
21:46:33 <Inst_> https://chrisdone.com/posts/whats-wrong-with-implicitparams/
21:48:38 <c_wraith> Nah, that's all correct.
21:48:47 <c_wraith> Also, they just don't solve the problems that I'd like them to
21:51:51 <Inst_> okay, reproduced it
21:52:23 <Inst_> not my problem short-term, was thinking about -XBraceArguments which desugars to implicit params and gives defaulting ability
21:52:53 <Inst_> as well as varargs
21:53:19 <Inst_> varargs are just great when you're designing an API, since you can hide everything behind a single function
21:53:45 <geekosaur> we like types though, and varargs plays havoc with typing
21:55:34 <Inst_> could not reproduce behavior described in ChrisDone's post
21:55:40 <Inst_> on GHCI, could with a cabal script
21:57:13 <Inst_> geekosaur: well, tbh, mid-term, it's a question of what a potential haddock overhaul might look like
21:57:57 <geekosaur> ghci's scoping rules differ enough that things might well not reproduce
21:59:25 <Inst_> and maybe it's just a lib design issue, i.e, people seem much less oriented on writing, say, a "how to write a lib api" vs a "how to use type families" tutorial
21:59:59 <Inst_> btw, lucid can supersede https://hackage.haskell.org/package/html-parse this except for speed, right?
22:00:46 <Inst_> welp, looks like lucid doesn't provide parsing
22:00:49 × sansk_ quits (~sansk@072-238-128-073.res.spectrum.com) (Ping timeout: 258 seconds)
22:00:51 <Inst_> and html-parse is dead for 9.6, afaik
22:01:45 <c_wraith> that doesn't look like a dependency set that would break on higher GHC versions
22:01:51 × sansk quits (~sansk@user/sansk) (Ping timeout: 260 seconds)
22:02:06 <c_wraith> It just looks like the base constraint is unnecessarily tight
22:02:40 <Inst_> attempting build with --allow-newer
22:03:19 <EvanR> implicit params is great, except for the implicit part
22:03:22 <Inst_> tagsoup also installs
22:03:28 <probie> Inst_: If you want varargs, you can always use a list. You lose currying though, and there's a potential performance hit
22:03:28 sansk joins (~sansk@user/sansk)
22:03:42 <Inst_> i know there's old libraries that do it via varargs
22:03:43 <EvanR> great idea number 17 which is easier to pull off by just passing a parameter
22:04:45 × aljazmc quits (~aljazmc@user/aljazmc) (Quit: Leaving)
22:06:23 <c_wraith> yeah... html-parse tries to use older versions of libraries that aren't compatible with the newest ghc. But compiling it with --allow-newer will build with only a warning about the import of Data.Monoid being redundant
22:06:46 <c_wraith> It could use an update fixing some bounds, but the code is fine.
22:08:29 × Jackneill_ quits (~Jackneill@20014C4E1E03DB0044BF7609ADF864E0.dsl.pool.telekom.hu) (Ping timeout: 258 seconds)
22:13:33 <Inst_> no reason to bug ben gamari about it
22:13:56 <Inst_> > import Network.HTTP.Conduit
22:13:58 <lambdabot> <hint>:1:1: error: parse error on input ‘import’
22:14:09 <Inst_> @import Network.HTTP.Conduit
22:14:09 <lambdabot> Unknown command, try @list
22:14:34 <Inst_> % import Network.HTTP.Conduit
22:14:35 <yahb2> <no location info>: error: ; Could not find module ‘Network.HTTP.Conduit’ ; It is not a module in the current program, or in any known package.
22:14:43 <Inst_> % :set -package http-conduit
22:14:43 <yahb2> cannot satisfy -package http-conduit ; (use -v for more information)
22:14:49 <Inst_> smart move :)
22:21:04 <Inst_> I'm probably a reprobate for using global env
22:21:16 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
22:21:23 <Inst_> but still love being able to call any package i want on ghci via ghci -package foo
22:27:37 <nyc> Is there something better than a Data.Set from containers for moderate-sized fixed-width/size data structures e.g. 256-bit multiple precision integers? I've got a vague idea that things should exist for this.
22:29:19 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:42:31 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:42:37 × sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x)
22:42:42 <sansk> What's the difference between Data.Map and Data.HashMap?
22:43:21 <Inst_> map is a treemap, hashmap is a hashmap
22:44:34 <sansk> So hashmap is more performant?
22:45:39 <Inst_> depends on usecase, no?
22:46:28 <sansk> For mainly insertion and lookup, which is better then?
22:46:40 <EvanR> Word256 is a thing in some crypto packages
22:47:08 <EvanR> I don't know what a 256-bit multiple precision integer is
22:47:40 <EvanR> sansk, HashMap requires keys to be Hashable, Map requires keys to be Ord
22:48:04 <EvanR> if hashing is cheaper than comparing, maybe HashMap is better
22:48:33 <EvanR> if the key is Int, then IntMap is probably better
22:48:36 <sansk> To be honest, I am not quite sure what hashing means exactly EvanR
22:48:54 <sansk> I've only ever dealt with Map
22:48:57 <EvanR> a hash function maps your key to a number
22:49:32 <EvanR> a good hash function maps different keys to different numbers with high probability
22:49:35 <sansk> so it's an abstraction over an array?
22:49:48 <EvanR> HashMap and Map have the same API
22:50:14 <EvanR> you can think of an array as a map from 0..N to values
22:50:28 <EvanR> but in Map the keys don't need to be continguous
22:50:35 <EvanR> contiguous
22:51:41 <sansk> What do you mean by contiguous?
22:52:05 <EvanR> no holes between the min and max key
22:52:38 <EvanR> you could have (0,'a') (1,'b') (7,'c') in your map and that's it, unlike an array
22:53:09 <sansk> would a hashmap hash it as 0, 1, 2?
22:53:14 <EvanR> no
22:53:37 <EvanR> since Int is an instance of Hashable you can just use Int keys if you want
22:53:42 <EvanR> it works
22:54:09 <sansk> so basically HashMap just converts your map to IntMap?
22:54:30 <EvanR> I don't think so, no, but you can think of it like that if you want
22:54:42 <EvanR> it uses hash array-mapped tries
22:55:56 <sansk> what are the practical performance differences though between hashmap and map? ie what usecase would you use each for?
22:56:25 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 255 seconds)
22:56:50 <EvanR> I've never used a HashMap for anything. aeson used to? use it for the string-like keys of json objects
22:57:33 <EvanR> you can find benchmarks of the various container structures around if you search, but they are benchmarks so have many grains of salt to eat while looking at
22:58:06 <EvanR> because of the Ord container on Map you can treat the contents as being ordered by key which is nice. Not so with HashMap
22:58:10 <EvanR> Ord constraint*
22:58:45 <sansk> well im using a Map to store variables in an interpreter i am writing
22:59:10 <EvanR> what type of key
22:59:15 <sansk> Text
22:59:51 <EvanR> Map is a good default container, if you wanted more performance you might want to not use Text as variable keys
23:00:20 <EvanR> just because I know it's possible to use Int keys for that
23:01:34 <sansk> i guess performance doesn't matter too much, i will probably continue using Map since its convenient
23:01:44 <EvanR> it's pretty great
23:04:11 <sansk> yeah, and very intuitive
23:06:12 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:06:30 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
23:07:08 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Ping timeout: 258 seconds)
23:09:26 Square3 joins (~Square4@user/square)
23:11:05 Sgeo joins (~Sgeo@user/sgeo)
23:12:05 × Square quits (~Square@user/square) (Ping timeout: 240 seconds)
23:13:04 × connrs quits (~connrs@user/connrs) (Ping timeout: 255 seconds)
23:16:32 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:17:21 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:17:27 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
23:17:55 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:18:05 × Noinia quits (~Frank@77-162-168-71.fixed.kpn.net) (Ping timeout: 240 seconds)
23:18:42 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:19:59 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:20:34 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:23:22 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:24:13 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:26:24 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:27:12 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
23:27:12 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:27:16 sansk is now known as filipe
23:27:45 filipe is now known as Guest4104
23:28:06 Guest4104 is now known as sansk
23:31:34 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 252 seconds)
23:31:52 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:32:07 connrs joins (~connrs@user/connrs)
23:32:07 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:32:43 emmanuelux_ joins (~emmanuelu@user/emmanuelux)
23:34:39 × ddellacosta quits (~ddellacos@ool-44c738de.dyn.optonline.net) (Ping timeout: 240 seconds)
23:35:42 ddellacosta joins (~ddellacos@ool-44c738de.dyn.optonline.net)
23:35:58 ft joins (~ft@p4fc2a529.dip0.t-ipconnect.de)
23:46:21 × ystael quits (~ystael@user/ystael) (Quit: Lost terminal)
23:49:08 _leo___ joins (~emmanuelu@user/emmanuelux)
23:49:22 × emmanuelux_ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:50:15 <yin> is there a reason to prefer shared mutable state explicitly with MVar etc to passing state around in true functional style?
23:50:25 × _leo___ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:51:00 _leo___ joins (~emmanuelu@user/emmanuelux)
23:51:15 <jackdk> You might want multiple concurrent threads sharing the state
23:52:41 <geekosaur> or shared with callbacks, which can't receive the current value (only the value when the callback was registered) in pure functional style, and certainly can't update it
23:53:23 × _leo___ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:54:13 _leo___ joins (~emmanuelu@user/emmanuelux)
23:54:24 × _leo___ quits (~emmanuelu@user/emmanuelux) (Read error: Connection reset by peer)
23:55:12 _leo___ joins (~emmanuelu@user/emmanuelux)
23:57:04 × sansk quits (~sansk@user/sansk) (Quit: WeeChat 4.0.4)

All times are in UTC on 2023-10-25.