Home liberachat/#haskell: Logs Calendar

Logs on 2023-06-06 (liberachat/#haskell)

00:04:05 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
00:04:51 cheater joins (~Username@user/cheater)
00:12:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:13:57 × segfaultfizzbuzz quits (~segfaultf@23.93.74.212) (Ping timeout: 250 seconds)
00:14:09 ec_ joins (~ec@gateway/tor-sasl/ec)
00:23:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:25:22 ec_ joins (~ec@gateway/tor-sasl/ec)
00:29:34 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:581a:6724:1eaa:89a2)
00:33:28 × xff0x_ quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds)
00:33:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:35:47 ec_ joins (~ec@gateway/tor-sasl/ec)
00:39:00 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
00:45:07 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds)
00:45:26 nate2 joins (~nate@98.45.169.16)
00:54:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
00:55:25 ec_ joins (~ec@gateway/tor-sasl/ec)
00:57:22 × boukenshaou quits (~Boukensha@223.178.84.62) (Remote host closed the connection)
01:04:31 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
01:06:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:09:58 ec_ joins (~ec@gateway/tor-sasl/ec)
01:10:41 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:24 wroathe joins (~wroathe@207.153.38.140)
01:13:24 × wroathe quits (~wroathe@207.153.38.140) (Changing host)
01:13:24 wroathe joins (~wroathe@user/wroathe)
01:16:48 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:16:53 xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
01:16:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:21:40 ec_ joins (~ec@gateway/tor-sasl/ec)
01:31:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:34:29 ec_ joins (~ec@gateway/tor-sasl/ec)
01:41:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:42:34 ec_ joins (~ec@gateway/tor-sasl/ec)
01:43:02 reach joins (~reach@2607:fea8:4c0:990:399a:69de:44e1:1e42)
01:44:27 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1021:1d21:ada2:fc1d)
01:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:48:37 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
01:48:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1021:1d21:ada2:fc1d) (Ping timeout: 250 seconds)
01:49:11 × reach quits (~reach@2607:fea8:4c0:990:399a:69de:44e1:1e42) (Remote host closed the connection)
01:51:07 ec_ joins (~ec@gateway/tor-sasl/ec)
01:56:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:57:00 ec_ joins (~ec@gateway/tor-sasl/ec)
01:58:48 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:00:11 × telser quits (~quassel@user/telser) (Ping timeout: 246 seconds)
02:01:46 telser joins (~quassel@user/telser)
02:02:43 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:581a:6724:1eaa:89a2) (Ping timeout: 250 seconds)
02:02:48 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
02:03:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:03:31 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
02:03:56 [_] is now known as [itchyjunk]
02:05:06 ec_ joins (~ec@gateway/tor-sasl/ec)
02:06:41 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:9507:927b:4547:5b8e)
02:09:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:11:01 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
02:12:45 ec_ joins (~ec@gateway/tor-sasl/ec)
02:17:03 zaquest joins (~notzaques@5.130.79.72)
02:19:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:21:33 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:21:33 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:21:33 finn_elija is now known as FinnElija
02:23:16 ec_ joins (~ec@gateway/tor-sasl/ec)
02:32:22 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
02:33:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:33:44 ec_ joins (~ec@gateway/tor-sasl/ec)
02:36:46 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:1021:1d21:ada2:fc1d)
02:39:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:40:36 × mei quits (~mei@user/mei) (Ping timeout: 265 seconds)
02:41:17 ec_ joins (~ec@gateway/tor-sasl/ec)
02:44:57 mei joins (~mei@user/mei)
02:52:07 × td_ quits (~td@i53870929.versanet.de) (Ping timeout: 240 seconds)
02:54:15 td_ joins (~td@i53870912.versanet.de)
02:55:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:58:40 ec_ joins (~ec@gateway/tor-sasl/ec)
03:09:01 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:9507:927b:4547:5b8e) (Remote host closed the connection)
03:10:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:10:33 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 256 seconds)
03:12:21 rekahsoft joins (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
03:12:57 × rekahsoft quits (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Remote host closed the connection)
03:14:56 ec_ joins (~ec@gateway/tor-sasl/ec)
03:22:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:25:29 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 250 seconds)
03:26:20 ec_ joins (~ec@gateway/tor-sasl/ec)
03:26:49 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
03:30:11 motherfs1 joins (~motherfsc@user/motherfsck)
03:32:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:36:05 ec_ joins (~ec@gateway/tor-sasl/ec)
03:42:49 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
03:43:12 ec_ joins (~ec@gateway/tor-sasl/ec)
03:45:45 nate2 joins (~nate@98.45.169.16)
03:50:12 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds)
03:52:48 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Ping timeout: 250 seconds)
03:57:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
03:59:07 tzh joins (~tzh@24.21.73.154)
03:59:17 ec_ joins (~ec@gateway/tor-sasl/ec)
04:00:51 <Clinton[m]> When I do the following:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/d0727032e48f0dc9c105d3ca3f03de625deee9d6>)
04:01:26 <Clinton[m]> * When I do the following:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/6c08f15f23b34f431d785a044a3021412e1c5eda>)
04:06:19 <c_wraith> That mostly comes down to m being fully unconstrained. I realize it's a simplified example, but why do you have that?
04:07:05 <c_wraith> like, the only value of type `forall m. m a' is bottom
04:07:32 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 250 seconds)
04:09:32 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
04:11:06 <Clinton[m]> c_wraith: I was just simplifying the example. This has the same problem:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/743a6c888ed6b108b797bf2f5b638f922265d73e>)
04:12:22 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
04:12:31 <Clinton[m]> * c_wraith: I was just simplifying the example. This has the same problem:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/e089360c81e5d13d15554b5712cb82044c28750a>)
04:12:40 <Clinton[m]> * c_wraith: I was just simplifying the example. This has the same problem, with no bottoms:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/930dc762294d5a2f9a5590d6fe082360991312fd>)
04:13:30 <EvanR> Clinton your matrix bridge has a serious echo effect now
04:14:18 <Clinton[m]> EvanR: Sorry? My matrix bridge?
04:14:56 <Clinton[m]> * matrix bridge? I didn't know I had one.
04:15:15 <EvanR> https://i.imgur.com/gxtk9Jc.png
04:15:37 <glguy> when you edit your message it retransmits
04:20:16 chromoblob joins (~user@37.113.158.8)
04:26:27 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 265 seconds)
04:26:35 × m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 250 seconds)
04:26:44 <c_wraith> Clinton[m]: what you really want is some way of putting a Representational role on m, but I don't know how to do that for something that's used only inside another definition
04:27:02 m5zs7k joins (aquares@web10.mydevil.net)
04:27:59 <c_wraith> or rather, on m's argument.
04:28:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
04:29:12 ec_ joins (~ec@gateway/tor-sasl/ec)
04:30:25 <sm> Clinton: in other words, editing and quoting previous messages is noisy for the native IRC users here, so best to do those sparingly
04:31:21 <jackdk> May be possible to adapt the QuantifiedConstraints trick in https://ryanglscott.github.io/2018/03/04/how-quantifiedconstraints-can-let-us-put-join-back-in-monad/ but I can't figure out how to do it with `m` not being the typeclass parameter
04:32:26 × myxos quits (~myxos@cpe-65-28-251-121.cinci.res.rr.com) (Ping timeout: 246 seconds)
04:36:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
04:37:15 × bliminse quits (~bliminse@user/bliminse) (Remote host closed the connection)
04:37:29 × motherfsck quits (~motherfsc@user/motherfsck) (Quit: quit)
04:39:53 ec_ joins (~ec@gateway/tor-sasl/ec)
04:42:29 falafel joins (~falafel@cpe-70-93-29-179.natsow.res.rr.com)
04:44:00 myxos joins (~myxos@cpe-65-28-251-121.cinci.res.rr.com)
04:47:26 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:9507:927b:4547:5b8e)
04:51:58 <Clinton[m]> Here's the answer, I actually used this trick in a library I wrote 5 years ago when I was trying to learn Haskell (properly): https://hackage.haskell.org/package/map-classes... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/58a21be0f37d792ef99a477a366ea2936d4981c6>)
04:54:31 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:58:54 <c_wraith> ah, that's nice. I was looking for something in that direction, but Coyoneda is a nice touch.
05:00:55 trev joins (~trev@user/trev)
05:00:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:01:08 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 246 seconds)
05:03:53 ec_ joins (~ec@gateway/tor-sasl/ec)
05:10:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:12:05 ec_ joins (~ec@gateway/tor-sasl/ec)
05:13:20 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
05:15:58 bliminse joins (~bliminse@user/bliminse)
05:19:03 coot joins (~coot@89.69.206.216)
05:20:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:24:08 ec_ joins (~ec@gateway/tor-sasl/ec)
05:24:39 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Ping timeout: 250 seconds)
05:24:44 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
05:26:25 × thegeekinside quits (~thegeekin@189.217.90.138) (Ping timeout: 240 seconds)
05:26:47 thegeekinside joins (~thegeekin@189.217.90.138)
05:29:58 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
05:30:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:33:52 ec_ joins (~ec@gateway/tor-sasl/ec)
05:39:08 titibandit joins (~titibandi@user/titibandit)
05:51:53 michalz joins (~michalz@185.246.207.197)
05:56:40 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
05:56:57 chromoblob joins (~user@37.113.158.8)
06:03:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:04:42 jonathan_ joins (~jonathan@83.177.239.48)
06:07:07 ec_ joins (~ec@gateway/tor-sasl/ec)
06:08:55 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:1021:1d21:ada2:fc1d) (Ping timeout: 265 seconds)
06:11:27 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
06:12:11 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:24fa:d550:62e1:3add)
06:12:48 oo_miguel joins (~Thunderbi@77.252.47.84)
06:13:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:16:51 ec_ joins (~ec@gateway/tor-sasl/ec)
06:17:08 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 265 seconds)
06:19:03 × jonathan_ quits (~jonathan@83.177.239.48) (Read error: Connection reset by peer)
06:23:17 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
06:25:45 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 240 seconds)
06:28:19 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
06:32:09 × forell quits (~forell@user/forell) (Ping timeout: 265 seconds)
06:42:00 dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net)
06:42:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:43:02 ec_ joins (~ec@gateway/tor-sasl/ec)
06:44:01 acidjnk joins (~acidjnk@p200300d6e7072f266d84e9375f346e43.dip0.t-ipconnect.de)
06:45:07 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
06:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:48:52 ec_ joins (~ec@gateway/tor-sasl/ec)
06:51:12 cfricke joins (~cfricke@user/cfricke)
06:53:01 × paddymahoney quits (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com) (Remote host closed the connection)
06:56:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:57:48 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Ping timeout: 240 seconds)
06:59:21 ec_ joins (~ec@gateway/tor-sasl/ec)
06:59:34 paddymahoney joins (~paddymaho@cpe883d24bcf597-cmbc4dfb741f80.cpe.net.cable.rogers.com)
07:01:07 taupiqueur3 joins (~taupiqueu@2a02:842a:8180:4601:5472:ee1d:5e4f:9dc7)
07:03:01 × taupiqueur2 quits (~taupiqueu@2a02-842a-8180-4601-d889-32cf-7779-fb04.rev.sfr.net) (Ping timeout: 240 seconds)
07:04:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:04:45 titibandit joins (~titibandi@user/titibandit)
07:04:55 gensyst joins (~gensyst@user/gensyst)
07:06:59 ec_ joins (~ec@gateway/tor-sasl/ec)
07:09:17 <gensyst> Can forkOn be used as an alternative to forkOS? I.e., does a **capability** also stick to one OS thread for foreign calls?
07:10:59 <dminuoso> gensyst: No, a capability can have multiple OS threads.
07:12:37 <gensyst> dminuoso, do you know where i could find this in documentation?
07:12:51 <dminuoso> https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/rts/scheduler#capabilities
07:13:05 <dminuoso> A capability is more like a virtual CPU.
07:13:37 <dminuoso> Note in this section `A list of worker threads [is one of the important components of a Capability]`
07:14:18 <gensyst> nice
07:14:30 <dminuoso> Or maybe think of it as an STG cpu
07:14:41 × falafel quits (~falafel@cpe-70-93-29-179.natsow.res.rr.com) (Ping timeout: 265 seconds)
07:14:58 perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
07:15:15 <dminuoso> It's Tasks that have a 1-to-1 corresponce to OS threads.
07:16:24 chele joins (~chele@user/chele)
07:16:41 <dminuoso> I dont quite understand when forkOn is really useful, its haddock documentation is somewhat lacking.
07:16:55 <gensyst> I didn't even know about this wiki.
07:17:18 <dminuoso> Yeah GHC has a very extensive wiki.
07:19:59 <gensyst> dminuoso, is it possible to keep a forkOS bound thread alive for future use? so: A. ask the system to "keep thread alive". B. execute normal things on the bound thread. C. install a handler (GC finalizer) that gets (potentially sometime later) called on the *same* bound thread. D. after normal termination of my code, i uninstall the handler.
07:20:22 <gensyst> s/uninstall the handler/uninstall the handler and ask system to "no longer keep thread alive"
07:20:56 <dminuoso> gensyst: Of course. Use an MVar or TVar to communicate runnable things with that thread.
07:21:08 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 240 seconds)
07:21:25 <dminuoso> Keeping it alive amounts to just reading off that MVar/TVar in an infinite loop.
07:22:13 kmein_ is now known as kmein
07:22:26 <dminuoso> And a "handler" would amount to just some `finally` or an exit branch in `readTVarIO \case Exit -> ...`
07:23:31 <gensyst> dminuoso, i tried doing a channel for this but this has too much overhead (we're talking crazy tens of microseconds per call). Therefore I want to have my normal ordinary code (non-finalizer) just be on the same fixed bound thread (no MVars involved). It would be OK though if the finalizer only had to involve MVars.
07:24:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:24:56 <gensyst> so, it turned out that switching between threads in a tight loop is a no-go. so that sort of thing won't work for me for the *normal code*.
07:25:04 <dminuoso> gensyst: So in principle attaching a finalizer could be done with a simple IO wrapper.
07:25:15 <dminuoso> There
07:26:26 forell joins (~forell@user/forell)
07:26:58 ec_ joins (~ec@gateway/tor-sasl/ec)
07:27:51 <dminuoso> Say some equivalent of a `newtype IOKeep t a = IOKeep { runIOKeep :: ReaderT t (IO a) } deriving MonadIO`
07:29:17 mc47 joins (~mc47@xmonad/TheMC47)
07:29:32 <dminuoso> Alternatively you could perhaps use qualified do-notation/rebindable syntax/manual (>>=)/(>>)/fmap/(<*>) replacement that uses touch# everywhere.
07:29:46 <dminuoso> But I would go with that IOKeep first maybe
07:30:07 × ddellacosta quits (~ddellacos@146.70.171.100) (Ping timeout: 240 seconds)
07:30:22 <dminuoso> As for a something better than a TChan.. I dont know.
07:31:17 zaidhaan joins (~zai@2001:f40:960:1c54:3c0f:370:d2d1:4fb9)
07:31:24 <dminuoso> Ah you could even use https://hackage.haskell.org/package/base-4.18.0.0/docs/System-Mem-Weak.html#v:addFinalizer instead of touch#
07:31:28 <dminuoso> Is probably more comfortable
07:31:50 × zaidhaan quits (~zai@2001:f40:960:1c54:3c0f:370:d2d1:4fb9) (Client Quit)
07:32:06 ddellacosta joins (~ddellacos@143.244.47.72)
07:34:03 <gensyst> dminuoso, the finalizer i mentioned was indeed done with mkWeakIORef, but the problem is there was no guarantee it would execute on the same original bound thread
07:34:13 gmg joins (~user@user/gehmehgeh)
07:34:18 <dminuoso> Mmm
07:34:18 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
07:34:35 <gensyst> (this was btw my motivation to ask about forkOn - whether i could somehow execute the thing on the original thread (after keeping the original thread alive somehow))
07:34:35 <dminuoso> Well, you can forkOS a finalizer thread that waits on an MVar.
07:34:37 <dminuoso> Ohh
07:34:40 <dminuoso> Hold on, that's what you had.
07:34:46 <dminuoso> I recall the previous discussion
07:35:13 <dminuoso> No actually, you should be able to do *that*
07:35:28 <dminuoso> forkOS a thread that waits on an MVar, and in the finalizer you just put a token into the MVar.
07:36:03 <gensyst> dminuoso, but i still have to execute the normal code on that thread first..
07:36:14 <dminuoso> gensyst: You can have multiple bound threads.
07:36:28 <gensyst> it needs to be the same (due to c ffi)
07:36:44 <gensyst> (thread local state stuff)
07:37:20 <dminuoso> Mmm
07:37:41 merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
07:37:55 <Profpatsch> I can lift an Applicative into a Monoid with Ap, but can I get a Monoid instance out of an Applicative somehow? Does that even make sense?
07:38:56 <Profpatsch> Probably not
07:38:58 <dminuoso> Profpatsch: In a categorical sense applicatives are monoids
07:39:05 <dminuoso> If you're just after something monoidy looking.
07:39:38 <dminuoso> Profpatsch: Though whats wrong with Ap.
07:39:59 <Profpatsch> In particular, I want to define a thingy that combines a parser and a json schema encoding
07:40:48 <Profpatsch> My parser is a normal applicative, and my schema encoder was a Map [Text] Encoding before, which is Monoid so the full type is isomorphic to (Map [Text] Encoding, Parser a) which is Applicative
07:41:33 × srk quits (~sorki@user/srk) (Remote host closed the connection)
07:41:52 srk joins (~sorki@user/srk)
07:42:16 <Profpatsch> But turning the Map [Text] into a nested schema is kind of a bore, and I can’t easily add more fields to the recursive “layers” (it’s a tree of objects with annotations and encodings at the leaves), so I thought about using Free AnnF Encoding instead
07:42:22 <Profpatsch> but that’s not Monoid
07:42:42 hisa380 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
07:43:15 × lewisje quits (~lewisje@74.215.20.3) (Quit: Leaving)
07:43:19 <dminuoso> gensyst: So Im just staring at the RTS, and it seems that if you forkOS inside a bound thread, the implementation currently will put it on the same OS thread.
07:43:42 <dminuoso> Look at how forkOS_createThread just calls phread_create(&tid, NULL, forkOS_createThreadWrapper, (void*)entry);
07:44:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:44:16 <dminuoso> So if Im right, you should be able to double forkOS (such that you can kick off a finalizer worker that waits on an MVar in the main thread)
07:44:31 × hisa38 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 240 seconds)
07:44:31 hisa380 is now known as hisa38
07:45:06 ec_ joins (~ec@gateway/tor-sasl/ec)
07:45:13 <Profpatsch> gensyst: like https://hackage.haskell.org/package/unagi-chan for example
07:45:38 <gensyst> dminuoso, interesting! but after doing forkOS, can i always just keep running subsequent code, even if the previous forkOS is just waiting? (I'm guessing that's fine because normall Haskell code, including an infinite mvar waiting.) just runs normally on any haskell thread and only the C FFI run on the os thread. So there's no OS thread that's blocking.
07:46:08 <gensyst> s/waiting,)/waiting,
07:46:33 <dminuoso> gensyst: the forkOS itself is not waiting.
07:46:54 <dminuoso> But honestly I dont know what the RTS is *supposed* to do here.
07:46:59 nate2 joins (~nate@98.45.169.16)
07:47:13 <dminuoso> Given that double forkOS does not give you a documented guarantee
07:48:26 <gensyst> dminuoso, that might call for a new "forkOSSame ::"? might be worth asking for?
07:48:51 <dminuoso> gensyst: No clue, this type of discussion is better held in #ghc, the mailing list or the GHC issue tracker.
07:50:04 <dminuoso> gensyst: Most of the code surrounding this is very old and was written by Simon Marlow.
07:50:12 <dminuoso> Might want to ping him perhaps
07:50:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
07:51:31 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
07:52:11 <dminuoso> gensyst: Note when I say `double forkOS` I mean it in a nested fashion of course.
07:52:35 <dminuoso> `forkOS f >> forkOS f` gives you no guarantees (since there could be preemption in between them, with the second IO action being executed in another Taskj)
07:53:00 <dminuoso> So something like `forkOS (forkOS f >> f)`
07:53:11 ec_ joins (~ec@gateway/tor-sasl/ec)
07:54:24 <dminuoso> It largely boils down to what rts_evalStableIO does really
07:55:36 <Profpatsch> gensyst: why are you trying to cross the C/Haskell FFI interface in a tight loop in the first place anyway?
07:55:46 <Profpatsch> Nothing good can come of this
07:56:21 <Profpatsch> Chunk it up to bigger things on the C side, something that’s a few ms of work at least
07:57:04 <Profpatsch> I think even if you get past this MVar problem, you will probably notice that C FFI is not free in that it also takes a considerable amount of time to context switch (at least iirc)
07:57:24 <Profpatsch> Maybe I’m wrong, but I’d be surprised
07:59:02 <dminuoso> gensyst: It's relatively crazy that forkOS isnt built upon haskell threads.
07:59:28 <merijn> dminuoso: It is? Unless I misunderstand what you mean?
07:59:31 <dminuoso> Ah but hold on -> no now that I understand how it works, nested forkOS wont work.
07:59:38 CiaoSen joins (~Jura@145.224.74.19)
07:59:53 <ncf> monochrom: your insight appears in the beginning of chapter 4 in Escardó's "Synthetic topology of data types and classical spaces" (i am reading it now)
08:00:22 <dminuoso> merijn: Its not. Its a bare bone pthread_create that directly calls into rts_evalStableIO
08:00:39 <dminuoso> Which is a variant of rts_evalStableIOMain
08:00:55 <merijn> dminuoso: Which is a Haskell threat? :p
08:00:59 <merijn> *thread
08:01:08 <dminuoso> mmm
08:01:56 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 268 seconds)
08:04:20 <dminuoso> merijn: How is forkOS pinned to a particular OS thread then?
08:05:37 × m5zs7k quits (aquares@web10.mydevil.net) (Ping timeout: 240 seconds)
08:05:42 <dminuoso> Is it rts_lock()?
08:06:03 m5zs7k joins (aquares@web10.mydevil.net)
08:06:08 <merijn> dminuoso: Keep in mind I haven't looked at the actual implementation, but afaik the only way threads move from capabilities is via work stealing
08:06:17 <merijn> so I imagine they just have a flag set that prevents stealing
08:06:23 <dminuoso> merijn: No, there's no such flag.
08:06:46 <dminuoso> There's virtually no difference between rts_evalStableIO and rts_evalStableIOMain other than some top level handler stuff
08:06:59 <dminuoso> However, forkOS surrounds its rts_evalStableIO call with rts_lock and rts_unlock
08:08:12 <dminuoso> Ahh.. indeed.
08:08:18 <dminuoso> rts_lock bounds the current task
08:08:38 <int-e> dminuoso: https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/Schedule.c#L341-356 is one possible alternative starting point for digging deeper
08:10:17 chromoblob joins (~user@37.113.158.8)
08:10:40 <dminuoso> int-e: Okay yeah that fits my findings. So rts_lock() bounds the current task, then the rts_eval* stuff can run which puts it on the runqueue.
08:12:45 MQ-17J joins (~MQ-17J@104.28.248.165)
08:12:49 × MQ-17J quits (~MQ-17J@104.28.248.165) (Client Quit)
08:13:29 titibandit joins (~titibandi@user/titibandit)
08:14:16 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
08:15:04 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 265 seconds)
08:15:40 <dminuoso> Ah shame
08:15:42 <dminuoso> do mv <- newEmptyMVar; forkOS (forkIO (putMVar mv =<< isCurrentThreadBound) >> pure ()); print =<< readMVar mv
08:15:44 <dminuoso> Gives me a `False`.
08:16:31 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
08:16:33 <int-e> as it should, otherwise all threads forked from `main` would be bound.
08:16:47 <dminuoso> Why would they? Is main bound?
08:16:50 <int-e> yes
08:17:48 <int-e> (if you use the threaded RTS)
08:18:04 <dminuoso> That's interesting
08:19:07 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
08:19:33 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
08:23:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
08:26:31 ec_ joins (~ec@gateway/tor-sasl/ec)
08:27:26 × tzh quits (~tzh@24.21.73.154) (Quit: zzz)
08:31:32 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds)
08:31:50 × jargon quits (~jargon@184.101.71.62) (Remote host closed the connection)
08:38:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
08:39:31 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds)
08:39:52 ec_ joins (~ec@gateway/tor-sasl/ec)
08:42:47 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
08:45:28 machinedgod joins (~machinedg@93-136-136-2.adsl.net.t-com.hr)
08:49:25 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
08:50:24 cheater joins (~Username@user/cheater)
08:51:16 × shriekingnoise_ quits (~shrieking@186.137.175.87) (Ping timeout: 268 seconds)
08:51:49 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:24fa:d550:62e1:3add) (Remote host closed the connection)
08:54:51 chomwitt joins (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1)
09:00:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:02:36 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:02:38 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
09:04:37 ec_ joins (~ec@gateway/tor-sasl/ec)
09:05:20 Lord_of_Life_ is now known as Lord_of_Life
09:05:27 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:10:39 chromoblob joins (~user@37.113.158.8)
09:15:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:19:17 mmhat joins (~mmh@p200300f1c7066881ee086bfffe095315.dip0.t-ipconnect.de)
09:19:20 ec_ joins (~ec@gateway/tor-sasl/ec)
09:21:26 random-jellyfish joins (~random-je@user/random-jellyfish)
09:22:32 dcoutts joins (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
09:24:04 × chomwitt quits (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
09:33:42 × MasseR46 quits (thelounge@2001:bc8:62c:1e19::1) (Quit: The Lounge - https://thelounge.chat)
09:34:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:36:00 __monty__ joins (~toonn@user/toonn)
09:36:13 MasseR46 joins (thelounge@2001:bc8:62c:1e19::1)
09:36:58 ec_ joins (~ec@gateway/tor-sasl/ec)
09:41:12 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
09:44:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:45:06 ec_ joins (~ec@gateway/tor-sasl/ec)
09:45:07 bitmapper joins (uid464869@id-464869.lymington.irccloud.com)
09:52:43 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455)
09:53:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
09:54:07 ec_ joins (~ec@gateway/tor-sasl/ec)
09:54:15 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
09:54:38 × thegeekinside quits (~thegeekin@189.217.90.138) (Remote host closed the connection)
09:56:27 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
09:57:14 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Ping timeout: 250 seconds)
10:08:05 phma_ joins (phma@2001:5b0:2143:8e68:6bbc:8a93:7b53:3876)
10:08:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:09:25 × phma quits (phma@2001:5b0:2144:22d8:cadc:c651:310f:c9a8) (Read error: Connection reset by peer)
10:11:07 × xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
10:11:28 <gensyst> dminuoso, so nested forkOS solution is out of the question? :(
10:11:36 <gensyst> (sorry stepped out for a while)
10:12:14 <gensyst> looking at the implementation, do you think it would be a hard thing to add a "forkOS_SAME" to GHC?
10:12:14 ec_ joins (~ec@gateway/tor-sasl/ec)
10:12:19 <dminuoso> gensyst: After some more careful research, yes.
10:12:33 <dminuoso> gensyst: Mmm, well you would rather need a fork# primop variant
10:12:44 <dminuoso> I suspect it wouldnt be hard
10:12:50 user____3 joins (~user@dynamic-046-114-177-202.46.114.pool.telefonica.de)
10:13:37 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:15:18 <dminuoso> See rts/PrimOps.cmm
10:15:25 zer0bitz joins (~zer0bitz@user/zer0bitz)
10:16:08 <dminuoso> A version of createThread in rts/Threads.c
10:16:12 <dminuoso> Fed all the way into a primop
10:16:34 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:16:35 <dminuoso> Say forkBound#
10:17:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:18:48 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Ping timeout: 265 seconds)
10:20:57 zer0bitz_ joins (~zer0bitz@user/zer0bitz)
10:21:03 ec_ joins (~ec@gateway/tor-sasl/ec)
10:21:37 × zer0bitz quits (~zer0bitz@user/zer0bitz) (Ping timeout: 240 seconds)
10:30:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:34:04 ec_ joins (~ec@gateway/tor-sasl/ec)
10:38:11 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 246 seconds)
10:39:08 × CiaoSen quits (~Jura@145.224.74.19) (Ping timeout: 265 seconds)
10:45:11 thegeekinside joins (~thegeekin@189.217.90.138)
10:47:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
10:51:10 ec_ joins (~ec@gateway/tor-sasl/ec)
10:51:24 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds)
10:53:30 chomwitt joins (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1)
10:53:50 xff0x_ joins (~xff0x@ai098135.d.east.v6connect.net)
11:01:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:01:33 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
11:03:05 × YoungFrog quits (~youngfrog@2a02:a03f:ca07:f900:3990:663b:be50:9418) (Ping timeout: 250 seconds)
11:04:18 ec_ joins (~ec@gateway/tor-sasl/ec)
11:04:20 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
11:08:26 CiaoSen joins (~Jura@145.224.74.19)
11:10:01 taupiqueur4 joins (~taupiqueu@2a02-842a-8180-4601-fc1a-de08-4257-8549.rev.sfr.net)
11:10:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:11:19 × taupiqueur3 quits (~taupiqueu@2a02:842a:8180:4601:5472:ee1d:5e4f:9dc7) (Ping timeout: 250 seconds)
11:13:01 robosexual joins (~robosexua@5.167.244.138)
11:17:41 ec_ joins (~ec@gateway/tor-sasl/ec)
11:21:07 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
11:21:44 × zxrom quits (~zxrom@mm-26-33-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 268 seconds)
11:22:14 <merijn> gensyst: I mean, at this point I think (assuming this is still the same issue) it's literally easier to fix the RTS to support the functionality you want, rather than this kinda hacky Haskell side implementation :p
11:22:23 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
11:23:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:25:15 × extor quits (~extor@ns3018124.ip-149-202-82.eu) (Ping timeout: 256 seconds)
11:26:57 ec_ joins (~ec@gateway/tor-sasl/ec)
11:31:28 <merijn> (assuming this is still somehow related to the finalizer problem)
11:32:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
11:34:17 ec_ joins (~ec@gateway/tor-sasl/ec)
11:38:59 titibandit joins (~titibandi@user/titibandit)
11:47:02 user____3 is now known as gurkenglas
11:48:30 nate2 joins (~nate@98.45.169.16)
11:48:39 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
11:52:01 × gurkenglas quits (~user@dynamic-046-114-177-202.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
11:53:07 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
12:00:35 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
12:01:47 freeside joins (~mengwong@103.252.202.189)
12:01:47 × jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds)
12:04:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:04:55 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
12:06:54 ec_ joins (~ec@gateway/tor-sasl/ec)
12:07:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
12:13:11 jero98772 joins (~jero98772@2800:484:1d7f:5d36::1)
12:13:16 cheater joins (~Username@user/cheater)
12:18:55 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
12:21:11 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:24:09 cheater joins (~Username@user/cheater)
12:24:44 freeside joins (~mengwong@103.252.202.189)
12:27:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:29:11 ec_ joins (~ec@gateway/tor-sasl/ec)
12:30:47 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
12:33:12 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 265 seconds)
12:33:21 <maerwald[m]> merijn: you at Zurihac?
12:35:16 <merijn> maerwald[m]: No, my life calendar during June/July is already more than overfull for me to fit it in this year :)
12:37:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:38:51 cheater joins (~Username@user/cheater)
12:40:56 ec_ joins (~ec@gateway/tor-sasl/ec)
12:45:19 × dminuoso quits (~dminuoso@user/dminuoso) (Quit: ZNC 1.8.2 - https://znc.in)
12:46:30 Nikopol joins (nikopol@user/astrorigin)
12:46:55 dminuoso joins (~dminuoso@user/dminuoso)
12:47:32 user____3 joins (~user@dynamic-046-114-177-202.46.114.pool.telefonica.de)
12:47:35 user____3 is now known as gurkenglas
12:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
12:48:12 × Alex_test quits (~al_test@178.34.162.37) (Quit: ;-)
12:48:55 × AlexZenon quits (~alzenon@178.34.162.37) (Quit: ;-)
12:49:17 × AlexNoo quits (~AlexNoo@178.34.162.37) (Quit: Leaving)
12:49:23 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
12:50:15 <maerwald[m]> booo
12:50:55 ec_ joins (~ec@gateway/tor-sasl/ec)
12:51:17 zxrom joins (~zxrom@37.212.22.227)
12:52:11 <merijn> maerwald[m]: Why? What's up?
12:53:22 mc47 joins (~mc47@xmonad/TheMC47)
12:53:28 <maerwald[m]> Nothing
12:54:47 × machinedgod quits (~machinedg@93-136-136-2.adsl.net.t-com.hr) (Ping timeout: 256 seconds)
12:58:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:01:13 ec_ joins (~ec@gateway/tor-sasl/ec)
13:01:31 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
13:06:07 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 256 seconds)
13:06:56 cheater joins (~Username@user/cheater)
13:12:30 × bonz060 quits (~quassel@2001:bc8:47a4:a23::1) (Quit: No Ping reply in 180 seconds.)
13:19:21 cheater_ joins (~Username@user/cheater)
13:22:28 × cheater quits (~Username@user/cheater) (Ping timeout: 265 seconds)
13:23:21 cheater__ joins (~Username@user/cheater)
13:23:21 cheater__ is now known as cheater
13:24:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:25:07 × cheater_ quits (~Username@user/cheater) (Ping timeout: 240 seconds)
13:26:24 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
13:26:45 AlexNoo joins (~AlexNoo@178.34.162.37)
13:26:54 AlexZenon joins (~alzenon@178.34.162.37)
13:28:17 ec_ joins (~ec@gateway/tor-sasl/ec)
13:29:54 Alex_test joins (~al_test@178.34.162.37)
13:30:42 × Yumemi quits (~Yumemi@chamoin.net) (Quit: .)
13:32:32 Yumemi joins (~Yumemi@chamoin.net)
13:36:29 × vandita quits (~vandit@87-97-88-195.pool.digikabel.hu) (Ping timeout: 265 seconds)
13:38:01 <gensyst> merijn, adding a new forkOSSame e.g. would require RTS changes right?
13:38:09 vandita joins (~vandit@91-83-10-39.pool.digikabel.hu)
13:38:10 <gensyst> or mkWeakRefSame
13:38:16 freeside joins (~mengwong@103.252.202.189)
13:38:18 <gensyst> (same as in, same as original bound thread)
13:38:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
13:38:44 <gensyst> (i.e. i'm wondering, the ideas we were floating earlier, weren't they already RTS changes?)
13:38:56 <merijn> gensyst: Probably? Is this still related to your finalizer changes
13:39:22 <merijn> gensyst: yes, but changing the RTS to have better functionality wrt finalizers is probably more generally useful :)
13:39:25 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
13:39:38 <gensyst> yeah it is
13:40:25 × dcoutts quits (~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 240 seconds)
13:42:40 <merijn> And I don't think 1 is much easier than the other, so you'd be better off doing the more useful thing
13:43:17 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 265 seconds)
13:45:13 × cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds)
13:46:55 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
13:56:20 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455)
13:58:09 × mei quits (~mei@user/mei) (Ping timeout: 250 seconds)
14:00:27 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
14:00:45 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Ping timeout: 250 seconds)
14:01:53 thegeekinside joins (~thegeekin@189.217.90.138)
14:02:33 mei joins (~mei@user/mei)
14:03:30 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
14:15:49 × CiaoSen quits (~Jura@145.224.74.19) (Ping timeout: 256 seconds)
14:17:31 ec_ joins (~ec@gateway/tor-sasl/ec)
14:17:52 shriekingnoise joins (~shrieking@186.137.175.87)
14:20:42 cheater joins (~Username@user/cheater)
14:22:03 end\ joins (~end@2001:470:69fc:105::3:673f)
14:22:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:23:52 ec_ joins (~ec@gateway/tor-sasl/ec)
14:23:57 thegeekinside joins (~thegeekin@189.217.90.138)
14:29:51 captnemo joins (~captnemo@193.32.127.239)
14:34:47 × cheater quits (~Username@user/cheater) (Ping timeout: 246 seconds)
14:35:38 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
14:35:44 end\ is now known as end`
14:35:56 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
14:36:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:37:14 cheater joins (~Username@user/cheater)
14:38:38 end` is now known as end|
14:39:15 end| is now known as end_
14:39:36 end_ is now known as end-
14:39:49 ec_ joins (~ec@gateway/tor-sasl/ec)
14:40:35 × end- quits (~end@2001:470:69fc:105::3:673f) (Changing host)
14:40:35 end- joins (~end@user/end/x-0094621)
14:40:41 × captnemo quits (~captnemo@193.32.127.239) (Quit: WeeChat 3.8)
14:46:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:47:05 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 240 seconds)
14:49:07 ec_ joins (~ec@gateway/tor-sasl/ec)
14:52:23 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
14:56:29 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Ping timeout: 246 seconds)
14:58:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
14:59:42 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
15:00:48 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
15:02:09 × gensyst quits (~gensyst@user/gensyst) (Quit: Leaving)
15:06:26 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
15:08:56 random-jellyfish joins (~random-je@user/random-jellyfish)
15:09:07 ec_ joins (~ec@gateway/tor-sasl/ec)
15:11:59 simendsjo joins (~user@84.211.91.241)
15:14:37 × random-jellyfish quits (~random-je@user/random-jellyfish) (Quit: Client closed)
15:17:58 × kmein quits (~weechat@user/kmein) (Quit: ciao kakao)
15:18:10 motherfs1 is now known as motherfsck
15:20:29 kmein joins (~weechat@user/kmein)
15:21:51 × simendsjo quits (~user@84.211.91.241) (Ping timeout: 265 seconds)
15:23:49 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 265 seconds)
15:24:29 mauke joins (~mauke@user/mauke)
15:28:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:30:19 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
15:31:03 ec_ joins (~ec@gateway/tor-sasl/ec)
15:36:35 le_ka joins (~l_k@213.24.134.106)
15:38:56 AlexNoo_ joins (~AlexNoo@178.34.160.87)
15:39:00 vglfr joins (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua)
15:41:06 syminical joins (~quassel@2601:406:8481:950:2083:c0dd:fbbb:ef04)
15:41:37 × Alex_test quits (~al_test@178.34.162.37) (Ping timeout: 240 seconds)
15:41:48 × AlexZenon quits (~alzenon@178.34.162.37) (Ping timeout: 240 seconds)
15:42:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:42:31 × AlexNoo quits (~AlexNoo@178.34.162.37) (Ping timeout: 256 seconds)
15:43:56 ripspin joins (~chatzilla@1.145.216.252)
15:44:12 ec_ joins (~ec@gateway/tor-sasl/ec)
15:44:49 dcoutts joins (~duncan@ip-185-104-136-57.ptr.icomera.net)
15:46:21 Alex_test joins (~al_test@178.34.160.87)
15:47:03 AlexZenon joins (~alzenon@178.34.160.87)
15:48:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:49:29 ec_ joins (~ec@gateway/tor-sasl/ec)
15:50:01 nate2 joins (~nate@98.45.169.16)
15:50:43 le__ka joins (~l_k@213.24.134.106)
15:52:29 × le_ka quits (~l_k@213.24.134.106) (Ping timeout: 246 seconds)
15:53:04 × vandita quits (~vandit@91-83-10-39.pool.digikabel.hu) (Ping timeout: 248 seconds)
15:53:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
15:54:37 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
15:55:17 vandita joins (~vandit@79.120.162.139)
16:00:14 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Remote host closed the connection)
16:00:17 <jade[m]> hm, I seem to be getting an unused-imports warning even though I do use the imports and removing them breaks my program?
16:00:34 YoungFrog joins (~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
16:01:10 ec_ joins (~ec@gateway/tor-sasl/ec)
16:01:15 <jade[m]> app/Style.hs:8:1: warning: [-Wunused-imports]... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/97b04b63b05acfd0ab00c8f7bd9a67af5527154f>)
16:01:36 <jade[m]> removing the line in question I get a big error with all of them missing
16:01:54 <jade[m]> oh fuck im so stupid
16:03:00 <jade[m]> for some reason it marked the whole line both with hlint and ghc, but it only referred to some of them
16:03:22 <[exa]> another problem successfully rubberducked. next!
16:03:45 <jade[m]> oddly enough it does mark only the one in question if it's just one
16:03:55 <jade[m]> but with more it shows the entire line as redundant
16:03:55 × neohtetxyz[m] quits (~neohtetxy@2001:470:69fc:105::3:314c) (Remote host closed the connection)
16:03:56 <[exa]> jade[m]: yeah combining error locations sensibly is kinda hard
16:04:39 <[exa]> you'd say that just highlighting the "shortest span" would be helpful, but that confuses people for being a little misleadingly specific to the whole given span
16:05:25 <jade[m]> makes sense
16:05:47 notzmv joins (~zmv@user/notzmv)
16:06:14 <[exa]> others may freak out if they get a separate message for each extra identifier
16:06:29 <[exa]> kinda guess this was the easiest minimal-questionable-effort soluton
16:07:57 × chomwitt quits (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
16:08:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:09:28 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
16:11:28 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
16:11:51 ec_ joins (~ec@gateway/tor-sasl/ec)
16:18:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:18:40 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:20:15 __monty__ joins (~toonn@user/toonn)
16:21:34 ec_ joins (~ec@gateway/tor-sasl/ec)
16:22:46 × dsrt^ quits (~dsrt@c-71-204-38-59.hsd1.ga.comcast.net) (Remote host closed the connection)
16:23:05 × dcoutts quits (~duncan@ip-185-104-136-57.ptr.icomera.net) (Ping timeout: 240 seconds)
16:25:33 econo joins (uid147250@user/econo)
16:26:12 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455)
16:26:37 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
16:26:54 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
16:27:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:28:07 × cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds)
16:32:08 ec_ joins (~ec@gateway/tor-sasl/ec)
16:32:42 × coot quits (~coot@89.69.206.216) (Quit: coot)
16:35:15 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
16:41:37 × __monty__ quits (~toonn@user/toonn) (Ping timeout: 240 seconds)
16:43:34 <probie> Can I get GHC to call foreign code with GHC's own calling convention?
16:45:51 × vandita quits (~vandit@79.120.162.139) (Ping timeout: 250 seconds)
16:48:30 oac joins (~oac@72-50-214-210.fttp.usinternet.com)
16:48:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
16:48:44 cheater joins (~Username@user/cheater)
16:48:59 × _koolazer quits (~koo@user/koolazer) (Remote host closed the connection)
16:49:16 koolazer joins (~koo@user/koolazer)
16:51:36 ec_ joins (~ec@gateway/tor-sasl/ec)
16:52:21 <carbolymer> is `cabal get` able to reach to custom repository, besides hackage? it returns `There is no package` when I try to do that
16:52:54 vandita joins (~vandit@193-110-63-33.cable-modem.hdsnet.hu)
16:52:55 <[exa]> hm, any ideas on terse way sto write a condition that "the list is exactly someGivenList++aSingleExtraElement"?
16:53:55 <carbolymer> [exa]: (`==` aSingleExtraElement) . head . reverse
16:53:55 <carbolymer> ?
16:54:01 <probie> and that single extra element is always at the end?
16:54:11 <carbolymer> [exa]: plus account for empty lists etc
16:54:14 <[exa]> ohhhh reverse
16:54:57 <[exa]> anyway yeah the extra element is exactly at the end
16:55:10 <[exa]> thx carbolymer that was the hint I needed :D
16:55:25 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:9507:927b:4547:5b8e) (Remote host closed the connection)
16:55:30 <carbolymer> [exa]: yw
16:55:42 <mauke> list == someGivenList ++ [aSingleExtraElement]
16:57:43 <[exa]> mauke: yeah that would be the other way, list == someGiveList ++ [last list]
16:58:35 captnemo joins (~captnemo@193.32.127.239)
16:58:59 × ripspin quits (~chatzilla@1.145.216.252) (Remote host closed the connection)
16:59:11 <mauke> take (length list - 1) list, but that doesn't stream well
16:59:29 <[Leary]> Use `init`?
16:59:44 <mauke> ah, right
17:00:01 AlexNoo_ is now known as AlexNoo
17:00:04 <mauke> init list == someGivenList
17:00:59 <[exa]> oh yeah, true
17:01:15 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
17:02:50 mokee joins (~mokee@37.228.215.134)
17:02:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:04:35 ec_ joins (~ec@gateway/tor-sasl/ec)
17:06:24 freeside joins (~mengwong@103.252.202.189)
17:06:50 chomwitt joins (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1)
17:07:13 simendsjo joins (~user@84.211.91.241)
17:10:59 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
17:12:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:13:17 Vajb joins (~Vajb@2001:999:584:b338:66d5:8cec:693:8212)
17:16:05 dcoutts joins (~duncan@212.221.20.36)
17:16:19 ec_ joins (~ec@gateway/tor-sasl/ec)
17:17:34 mi7 joins (~mi7@76.132.133.207)
17:21:23 × zer0bitz_ quits (~zer0bitz@user/zer0bitz) (Read error: Connection reset by peer)
17:22:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:24:28 zer0bitz joins (~zer0bitz@user/zer0bitz)
17:25:20 syminical_ joins (~quassel@2601:406:8481:950:2083:c0dd:fbbb:ef04)
17:25:51 tcard_ joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
17:25:59 ec_ joins (~ec@gateway/tor-sasl/ec)
17:26:11 × emergence quits (thelounge@2607:5300:60:5910:dcad:beff:feef:5bc) (Remote host closed the connection)
17:26:12 eggplant_ joins (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455)
17:27:55 × rubin55 quits (sid175221@id-175221.hampstead.irccloud.com) (Ping timeout: 256 seconds)
17:28:20 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Ping timeout: 250 seconds)
17:28:20 × robobub quits (uid248673@id-248673.uxbridge.irccloud.com) (Ping timeout: 250 seconds)
17:28:29 × econo quits (uid147250@user/econo) (Ping timeout: 256 seconds)
17:28:29 × NemesisD quits (sid24071@id-24071.lymington.irccloud.com) (Ping timeout: 256 seconds)
17:28:29 × edmundnoble quits (sid229620@id-229620.helmsley.irccloud.com) (Ping timeout: 256 seconds)
17:28:46 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Ping timeout: 250 seconds)
17:28:46 × syminical quits (~quassel@2601:406:8481:950:2083:c0dd:fbbb:ef04) (Ping timeout: 250 seconds)
17:29:12 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 250 seconds)
17:29:50 econo joins (uid147250@user/econo)
17:30:31 emergence joins (thelounge@2607:5300:60:5910:dcad:beff:feef:5bc)
17:31:44 edmundnoble joins (sid229620@id-229620.helmsley.irccloud.com)
17:31:44 rubin55 joins (sid175221@id-175221.hampstead.irccloud.com)
17:31:44 × simendsjo quits (~user@84.211.91.241) (Read error: Connection reset by peer)
17:31:50 NemesisD joins (sid24071@id-24071.lymington.irccloud.com)
17:32:04 shapr joins (~user@2600:1700:c640:3100:a42a:82d6:7ced:1441)
17:32:52 __monty__ joins (~toonn@user/toonn)
17:32:59 robobub joins (uid248673@id-248673.uxbridge.irccloud.com)
17:36:18 × zxrom quits (~zxrom@37.212.22.227) (Quit: Leaving)
17:38:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:38:15 × eggplant_ quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Remote host closed the connection)
17:38:47 <shapr> Has anyone hit the problem with connection and the fork from cryptonite to crypton?
17:38:56 <shapr> Is there a known fix for the connection library?
17:39:08 ec_ joins (~ec@gateway/tor-sasl/ec)
17:40:54 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
17:43:28 × syminical_ quits (~quassel@2601:406:8481:950:2083:c0dd:fbbb:ef04) (Ping timeout: 248 seconds)
17:44:31 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
17:45:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
17:47:17 × Me-me quits (~me-me@user/me-me) (Quit: Disconnecting on purpose.)
17:47:24 × acidjnk quits (~acidjnk@p200300d6e7072f266d84e9375f346e43.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
17:47:43 Guest36 joins (~Guest26@2401:4900:60f3:fecd:d446:76fc:8aa7:e5e)
17:47:47 acidjnk joins (~acidjnk@p200300d6e7072f266d84e9375f346e43.dip0.t-ipconnect.de)
17:48:01 Me-me joins (~me-me@2602:ff16:3:0:1:dc:beef:d00d)
17:48:18 × EvanR quits (~EvanR@user/evanr) (Remote host closed the connection)
17:48:38 EvanR joins (~EvanR@user/evanr)
17:48:46 × fr33domlover quits (~fr33domlo@towards.vision) (Quit: Ping timeout (120 seconds))
17:48:49 ec_ joins (~ec@gateway/tor-sasl/ec)
17:48:50 × beaky quits (~beaky@2a03:b0c0:0:1010::1e:a001) (Read error: Connection reset by peer)
17:48:59 × amir quits (sid22336@user/amir) (Read error: Connection reset by peer)
17:49:06 × Franciman quits (~Franciman@mx1.fracta.dev) (Read error: Connection reset by peer)
17:49:08 amir joins (sid22336@user/amir)
17:49:08 beaky joins (~beaky@2a03:b0c0:0:1010::1e:a001)
17:49:09 fr33domlover joins (~fr33domlo@towards.vision)
17:49:14 × siers quits (~ij@user/ij) (Quit: ZNC 1.8.2 - https://znc.in)
17:49:27 × delyan quits (sid523379@id-523379.hampstead.irccloud.com) (Ping timeout: 256 seconds)
17:49:27 × JSharp quits (sid4580@id-4580.lymington.irccloud.com) (Ping timeout: 256 seconds)
17:49:32 × darkling quits (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (Remote host closed the connection)
17:49:35 siers joins (~ij@user/ij)
17:49:41 Franciman joins (~Franciman@2a02:c207:2044:6185::1)
17:49:42 darkling joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space)
17:49:46 × h2t quits (~h2t@user/h2t) (Quit: ZNC - https://znc.in)
17:49:46 × srk quits (~sorki@user/srk) (Quit: ZNC 1.8.1 - https://znc.in)
17:49:46 × pierrot quits (~pi@user/pierrot) (Quit: ZNC 1.8.2 - http://znc.in)
17:49:48 × nurupo quits (~nurupo.ga@user/nurupo) (Quit: nurupo.ga)
17:50:00 h2t joins (~h2t@user/h2t)
17:50:03 nurupo joins (~nurupo.ga@user/nurupo)
17:50:05 srk joins (~sorki@user/srk)
17:50:39 delyan joins (sid523379@id-523379.hampstead.irccloud.com)
17:50:46 JSharp joins (sid4580@id-4580.lymington.irccloud.com)
17:51:08 pierrot joins (~pi@user/pierrot)
17:54:36 × bitmapper quits (uid464869@id-464869.lymington.irccloud.com) (Quit: Connection closed for inactivity)
17:59:56 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:01:09 × Guest36 quits (~Guest26@2401:4900:60f3:fecd:d446:76fc:8aa7:e5e) (Quit: Client closed)
18:02:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:03:10 <shapr> Perhaps I should be consistently using cabal.freeze files?
18:03:13 shapr grumbles
18:06:09 ec_ joins (~ec@gateway/tor-sasl/ec)
18:09:38 × vglfr quits (~vglfr@cli-188-239-201-89.bbn.slav.dn.ua) (Remote host closed the connection)
18:09:52 <Vq> shapr: Is that like a flake.lock?
18:10:34 vglfr joins (~vglfr@188.239.201.89)
18:10:51 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
18:11:03 <sm> or something like a stackage snapshot ?
18:11:18 <sm> anyway yes, it sounds like you should be doing something like that in the face of crypton* chaos
18:11:43 <sm> life is too short for non-reproducible build plans
18:11:49 <jean-paul[m]> cabal freeze dumps the versions it has right now, so you're isolated from future cabal updates
18:12:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:12:31 <jean-paul[m]> it's been unclear to me whether it's a good idea to have these in version control or not, but now it is clear that not having them is definitely worse
18:13:08 <sclv> i think you need to constrain the version for tls: https://github.com/haskell-tls/hs-tls/issues/455
18:14:02 ec_ joins (~ec@gateway/tor-sasl/ec)
18:14:20 <jean-paul[m]> and warp-tls and http-client-tls and maybe some other stuff
18:14:48 <shapr> Vq: haha, it's kinda like that, yeah. But only if I were using haskell.nix which I'm not
18:15:07 <shapr> sclv: Tried that, it's not enough
18:16:21 <shapr> I hit a problem with WarpTLS picking up crypton-x509 when I was depending on x509 in the rest of the package
18:17:13 Vq hasn't looked into haskell.nix yet
18:18:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:19:15 ec_ joins (~ec@gateway/tor-sasl/ec)
18:24:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:24:55 × captnemo quits (~captnemo@193.32.127.239) (Quit: WeeChat 3.8)
18:25:08 ec_ joins (~ec@gateway/tor-sasl/ec)
18:29:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:30:40 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
18:32:49 ec_ joins (~ec@gateway/tor-sasl/ec)
18:38:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:39:32 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
18:40:04 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:43:34 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
18:43:55 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 265 seconds)
18:47:40 Sgeo joins (~Sgeo@user/sgeo)
18:48:21 ec_ joins (~ec@gateway/tor-sasl/ec)
18:51:30 × shapr quits (~user@2600:1700:c640:3100:a42a:82d6:7ced:1441) (Remote host closed the connection)
18:52:16 shapr joins (~user@2600:1700:c640:3100:a42a:82d6:7ced:1441)
18:53:05 gmg joins (~user@user/gehmehgeh)
18:53:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
18:57:00 ec_ joins (~ec@gateway/tor-sasl/ec)
18:57:48 × Vajb quits (~Vajb@2001:999:584:b338:66d5:8cec:693:8212) (Ping timeout: 240 seconds)
18:59:02 × ddellacosta quits (~ddellacos@143.244.47.72) (Quit: WeeChat 3.8)
18:59:17 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
19:00:16 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:04:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
19:05:19 ec_ joins (~ec@gateway/tor-sasl/ec)
19:06:55 × czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
19:07:34 Vajb joins (~Vajb@2001:999:250:2079:66be:70d5:dda1:734b)
19:07:46 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
19:14:28 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
19:16:43 × Vajb quits (~Vajb@2001:999:250:2079:66be:70d5:dda1:734b) (Ping timeout: 256 seconds)
19:17:10 elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net)
19:17:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
19:21:04 ec_ joins (~ec@gateway/tor-sasl/ec)
19:22:01 tzh_ joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
19:22:07 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Ping timeout: 268 seconds)
19:22:29 Vajb joins (~Vajb@2001:999:484:a37d:e618:9886:4843:f5d8)
19:24:25 × gurkenglas quits (~user@dynamic-046-114-177-202.46.114.pool.telefonica.de) (Read error: Connection reset by peer)
19:32:53 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
19:33:14 × mi7 quits (~mi7@76.132.133.207) (Read error: Connection reset by peer)
19:35:32 <eugenrh> Hello! I keep reading that foldr works on infinite lists.. and I'm frustrated because I fail to understand how that's possible..
19:36:10 <geekosaur> because it can produce results before reaching the end of the list, as it works lazily
19:36:23 <geekosaur> so it's only as infinite as what is demanded of it
19:36:36 <eugenrh> an example, please?
19:36:48 <dolio> > foldr (:) [] [1..]
19:36:49 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,...
19:37:25 <mauke> > foldr (\x z -> x) 42 [0..]
19:37:27 <lambdabot> 0
19:38:07 <mauke> z is the result of folding the rest of the infinite list. we don't use it, so nothing happens
19:38:14 <geekosaur> note that this requires a lazy operation as well; if it is strict then it will demand the whole list, which obviously doesn't work for infinite lists
19:38:32 <geekosaur> as mauke just showed
19:38:44 zxrom joins (~zxrom@mm-163-23-212-37.vitebsk.dynamic.pppoe.byfly.by)
19:38:52 <geekosaur> (more specifically strict in its second parameter)
19:38:59 <eugenrh> ok, I read about that short-circuiting..
19:39:29 czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net)
19:39:31 <dolio> Oh yeah.
19:39:53 <dolio> > foldr (\n b -> n > 10 || b) False [0..]
19:39:55 <lambdabot> True
19:40:53 moet joins (~moet@mobile-166-171-249-181.mycingular.net)
19:41:22 <mauke> > foldr f z [0 ..]
19:41:23 <lambdabot> f 0 (f 1 (f 2 (f 3 (f 4 (f 5 (f 6 (f 7 (f 8 (f 9 (f 10 (f 11 (f 12 (f 13 (f ...
19:41:47 <mauke> as long as f doesn't use its second argument too much, we'll terminate :-)
19:41:52 <jade[m]> lambdabot foes that?
19:41:55 <jade[m]> that's cool
19:42:07 <jade[m]> s/foes/does
19:42:12 <moet> hi, what is a good way to monitor/poll sysfs nodes for changes in haskell? the documentation i've found says that sysfs can be monitored with poll/select (not with inotify), so I'm trying to use GHC's Control.Concurrent.threadWaitRead or GHC.Event.registerFd, but both seem to continuiously signal "ready to read"
19:42:13 <geekosaur> you can, too; look at the `simple-reflect` package
19:42:13 <mauke> we're cheating, of course
19:43:17 user____3 joins (~user@dynamic-046-114-177-202.46.114.pool.telefonica.de)
19:43:26 <eugenrh> it seems like all those examples don't have too much practicality...
19:43:34 <moet> i wonder if maybe these facilities (threadWaitRead and registerFd) are only good when it's a file stream which is continually appended (ie. not a node for which you seek 0 before reads)
19:44:17 <jade[m]> eugenrh: the one dealing with booleans is actually really interesting
19:45:10 <dolio> > any (> 10) [0..]
19:45:11 <lambdabot> True
19:45:14 <geekosaur> simple examples do tend to be too simple to be practical, though. the interesting ones tend to be harder to tease apart / have too many moving parts
19:45:37 <mauke> you asked how it's possible. these are just proofs of concept
19:45:51 <mauke> we can do a lazy map in terms of foldr
19:45:54 <jean-paul[m]> zip [0..] something is simple but also plenty practical and useful
19:46:13 <mauke> zip in terms of foldr? that sounds non-trivial
19:46:24 <dolio> Yeah, zip is tricky.
19:46:55 <jean-paul[m]> oh, I missed the foldr context.
19:47:14 <mauke> :t let xmap f xs = foldr (\x z -> f x : z) [] xs in xmap
19:47:15 <lambdabot> Foldable t1 => (t2 -> a) -> t1 t2 -> [a]
19:47:58 <mauke> > let xmap f xs = foldr (\x z -> f x : z) [] xs in take 5 (xmap show [0 ..])
19:48:00 <lambdabot> ["0","1","2","3","4"]
19:48:11 <mauke> > let xmap f xs = foldr (\x z -> f x : z) [] xs in xmap show [0 ..]
19:48:12 <lambdabot> ["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",...
19:48:37 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
19:48:50 <merijn> moet: pretty sure sysfs *is* always read to read, that's why polling is suggested
19:49:13 <eugenrh> thanks, lot's of answers.. I'll check them carefully.
19:50:49 <merijn> eugenrh: A tried and tested method is: grab a pen and paper and do step by step substitution of function definitions into expressions (which is basically what people were showing with lambdabot)
19:51:30 nate2 joins (~nate@98.45.169.16)
19:51:54 <moet> merijn: polling as in poll() or polling as in just read it over and over
19:52:43 <merijn> moet: Depends on where you read that :p
19:52:54 <merijn> moet: I would interpret it as "reading over and over"
19:53:22 <merijn> moet: the RTS uses epoll/kqueue internally, so it's notion of "readable" is "whenever epoll/kqueue signal it's readable"
19:54:07 <ncf> > let zip = foldr (\x f ys -> foldr (\y z -> (x,y) : f (tail ys)) [] ys) (const []) in zip [0..5] [6..15]
19:54:08 <lambdabot> [(0,6),(1,7),(2,8),(3,9),(4,10),(5,11)]
19:54:19 <ncf> ugly
19:54:28 <merijn> I still find simple-reflect the simplest example to ponder :p
19:54:33 <merijn> > foldr f z [a,b,c]
19:54:35 <lambdabot> f a (f b (f c z))
19:56:23 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
19:57:13 <moet> merijn: ok, thanks.. i was searching hard for a wrong answer I guess :)
19:58:04 <merijn> moet: I mean, it's possible the RTS happens to be wrong in this specific case, but seems unlikely compared to "sysfs is always readable and therefore threadWaitRead always immediately returns ready"
20:02:19 <jade[m]> <lambdabot> " [(0,6),(1,7),(2,8),(3,9),(4,10)..." <- where's the code for this? the bridge might have dropped it
20:02:34 <moet> yes, merijn, i think you are right; i was expecting sysfs nodes to behave like sockets, but it seems they are just always ready
20:03:59 <ncf> jade[m]: <ncf> > let zip = foldr (\x f ys -> foldr (\y z -> (x,y) : f (tail ys)) [] ys) (const []) in zip [0..5] [6..15]
20:04:15 <ncf> (use an irc client i'm BEGGING you)
20:04:35 <jade[m]> thanks, I probably should
20:06:38 <ncf> i can recommend thelounge if you don't like terminals
20:08:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
20:08:33 <jade[m]> I do like terminals very much actually haha
20:08:46 <jade[m]> thanks flr the suggestion, I'm currently on mobile (android)
20:08:53 <jade[m]> s/flr/for
20:09:25 <ncf> then the reference is weechat (there's an android relay client thing)
20:09:54 <ncf> alternatively glguy has an irc client written in haskell
20:10:05 <jade[m]> thanks! what about RevolutionIRC? That one is mentioned on the libera chat website
20:10:11 ec_ joins (~ec@gateway/tor-sasl/ec)
20:11:52 × thegeekinside quits (~thegeekin@189.217.90.138) (Remote host closed the connection)
20:12:15 <ncf> if you only need a client for android, sure. note however that you will have to set up some kind of bouncer if you want to have persistent sessions
20:12:32 <ncf> (similarly to how you'd set up a matrix instance, or use someone else's)
20:13:03 <jade[m]> ah, yeah my main use case is desktop, so I might just keep being on the bridge here and get a proper irc client for desktop
20:13:22 × robosexual quits (~robosexua@5.167.244.138) (Quit: WeeChat 3.8)
20:13:46 <probie> As far as an android client goes, I've had a good experience with Goguma. It probably doesn't hurt that the bouncer I'm using is Soju, which is written by the same author
20:14:57 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455)
20:15:07 × merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
20:15:29 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:18:58 Jade128 joins (~Jade128@ip-178-200-061-149.um45.pools.vodafone-ip.de)
20:19:10 <Jade128> I think I made it?
20:19:30 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Ping timeout: 250 seconds)
20:19:32 <ncf> yes
20:19:44 <Jade128> very cool, thank you
20:20:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
20:22:43 × Jade128 quits (~Jade128@ip-178-200-061-149.um45.pools.vodafone-ip.de) (Remote host closed the connection)
20:24:08 Jade128 joins (~Jade128@ip-178-200-061-149.um45.pools.vodafone-ip.de)
20:24:28 × trev quits (~trev@user/trev) (Quit: trev)
20:24:43 × Jade128 quits (~Jade128@ip-178-200-061-149.um45.pools.vodafone-ip.de) (Remote host closed the connection)
20:24:51 ec_ joins (~ec@gateway/tor-sasl/ec)
20:25:05 chromoblob joins (~user@37.113.158.8)
20:28:40 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:28:58 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
20:30:25 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
20:31:38 chromoblob joins (~user@37.113.158.8)
20:32:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
20:34:38 ec_ joins (~ec@gateway/tor-sasl/ec)
20:42:14 comerijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:42:31 powenz9dn2d joins (~tux@77.234.193.84)
20:45:24 Pickchea joins (~private@user/pickchea)
20:45:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
20:46:36 jinsun joins (~jinsun@user/jinsun)
20:46:38 jinsun_ joins (~jinsun@user/jinsun)
20:46:38 jinsun is now known as Guest5469
20:46:38 jinsun_ is now known as jinsun
20:46:56 × Guest5469 quits (~jinsun@user/jinsun) (Client Quit)
20:48:58 zeenk joins (~zeenk@2a02:2f04:a106:3c00::7fe)
20:49:11 ec_ joins (~ec@gateway/tor-sasl/ec)
20:50:22 pavonia joins (~user@user/siracusa)
20:53:15 × le__ka quits (~l_k@213.24.134.106) (Quit: Leaving)
20:53:49 × chomwitt quits (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) (Remote host closed the connection)
20:55:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
20:59:27 × moet quits (~moet@mobile-166-171-249-181.mycingular.net) (Quit: thanks)
20:59:44 × dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 265 seconds)
21:05:47 ec_ joins (~ec@gateway/tor-sasl/ec)
21:07:35 freeside joins (~mengwong@103.252.202.189)
21:11:08 × mechap quits (~mechap@user/mechap) (Ping timeout: 240 seconds)
21:12:18 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 265 seconds)
21:12:29 mechap joins (~mechap@user/mechap)
21:12:31 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:13:04 emmanuelux joins (~emmanuelu@user/emmanuelux)
21:15:14 powenz9dn2d parts (~tux@77.234.193.84) (Konversation terminated!)
21:16:45 × comerijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
21:22:20 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:9507:927b:4547:5b8e)
21:29:05 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
21:30:06 comerijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
21:34:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
21:34:59 × comerijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds)
21:36:00 ec_ joins (~ec@gateway/tor-sasl/ec)
21:36:53 × vandita quits (~vandit@193-110-63-33.cable-modem.hdsnet.hu) (Ping timeout: 246 seconds)
21:39:13 vandita joins (~vandit@178-164-208-246.pool.digikabel.hu)
21:39:29 × elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:41:39 AlexNoo_ joins (~AlexNoo@178.34.160.87)
21:41:39 × AlexNoo quits (~AlexNoo@178.34.160.87) (Read error: Connection reset by peer)
21:41:43 phma_ is now known as phma
21:47:20 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
21:48:34 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Quit: leaving)
21:50:27 zero joins (~z@user/zero)
21:50:59 ec_ joins (~ec@gateway/tor-sasl/ec)
21:53:31 × yin quits (~z@user/zero) (Ping timeout: 250 seconds)
21:58:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
21:59:27 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
22:00:33 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
22:00:53 ec_ joins (~ec@gateway/tor-sasl/ec)
22:03:18 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:05:45 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: Textual IRC Client: www.textualapp.com)
22:08:25 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 256 seconds)
22:11:41 DustinStiles[m] joins (~duwstiles@2001:470:69fc:105::3:699b)
22:18:32 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
22:19:01 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:20:26 chromoblob joins (~user@37.113.158.8)
22:20:54 × cheater quits (~Username@user/cheater) (Read error: Connection reset by peer)
22:20:56 ec_ joins (~ec@gateway/tor-sasl/ec)
22:21:31 merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl)
22:23:31 × acidjnk quits (~acidjnk@p200300d6e7072f266d84e9375f346e43.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
22:24:32 cheater joins (~Username@user/cheater)
22:28:13 cheater_ joins (~Username@user/cheater)
22:28:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
22:30:48 × cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds)
22:30:49 cheater_ is now known as cheater
22:31:28 × mmhat quits (~mmh@p200300f1c7066881ee086bfffe095315.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
22:31:50 mmhat joins (~mmh@p200300f1c70668f3ee086bfffe095315.dip0.t-ipconnect.de)
22:35:30 ec_ joins (~ec@gateway/tor-sasl/ec)
22:36:37 shinjipf4 joins (~shinjipf@137.184.4.49)
22:36:58 × czy quits (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
22:37:18 czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net)
22:37:22 × shinjipf quits (~shinjipf@137.184.4.49) (Read error: Connection reset by peer)
22:37:22 shinjipf4 is now known as shinjipf
22:37:53 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 256 seconds)
22:40:00 × zeenk quits (~zeenk@2a02:2f04:a106:3c00::7fe) (Quit: Konversation terminated!)
22:41:13 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
22:42:49 d34df00d joins (~d34df00d@2600:1702:4f1b:7c10::e)
22:42:51 <d34df00d> Hi!
22:43:01 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:43:06 × ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
22:43:11 <d34df00d> It's more of a tooling question, but is it possible to have a version of ghc (as managed by ghcup) local to a project?
22:43:19 ddellacosta joins (~ddellacos@143.244.47.100)
22:43:30 ec_ joins (~ec@gateway/tor-sasl/ec)
22:43:37 <d34df00d> I have a cabal project that builds successfully after `ghcup set 8.10`, say, but I don't want to have ghc 8.10 as the global default.
22:44:01 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
22:44:30 <DustinStiles[m]> I'm a noob, so take my answer with a grain of salt, but I know that you can do this in stack, either by setting the ghc version in the new command, or by telling stack to depend on whatever ghcup is using.
22:44:48 <DustinStiles[m]> Unfortunately I'm not as familiar with cabal proper 😶
22:44:55 <yushyin> d34df00d: see the with-compiler option for cabal.project
22:45:01 <d34df00d> Yep, writing a simple stack.yaml that sets resolver to the right ghc version is my fallback.
22:46:19 <ddellacosta> you can also do this with nix pretty easily, but, then you are getting involved with nix https://serokell.io/blog/practical-nix-flakes#potential-modifications-and-troubleshooting
22:46:21 <yushyin> ghcup has symlinks to versioned filenames for every compilerversion, you can use that with `with-compiler'
22:46:36 <d34df00d> yushyin: that seems right what I need! Just curious, can I do that in cabal.project.local? Other folks building this project might have slightly different ghc versions they prefer, so I don't want to force my choices on anybody else.
22:47:50 <yushyin> i guess? you'll have to try it out ^^
22:47:57 <glguy> Yes, it goes into the cabal.project.local; you can make that file with: cabal configure -w ghc-X.y.z
22:48:25 <yushyin> ^ there you go ;)
22:48:42 <d34df00d> Also, I'm fairly new to ghcup stuff, so how do I get the right hls version that works with this ghc version? Or do I just ghcup install hls and it does the rest for all ghc versions installed?
22:48:47 <d34df00d> glguy: yay nice!
22:48:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
22:49:01 <glguy> ghcup tui will show you which GHC's have HLS support
22:49:13 <glguy> so once you install hls, those are the versions that will be supported
22:49:23 <glguy> installing hls installs support for all the supported versions at once
22:49:38 <d34df00d> Nice, that's much easier than building hls manually.
22:49:40 <yushyin> and hls has a wrapper binary that selects the correct versioned hls binary
22:51:23 ec_ joins (~ec@gateway/tor-sasl/ec)
22:54:56 × merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
22:58:08 × mei quits (~mei@user/mei) (Remote host closed the connection)
22:58:17 × nckx quits (~nckx@tobias.gr) (Ping timeout: 256 seconds)
22:58:41 <eugenrh> Ok, so now, after more studying, I think I understand the folding on infinite lists. First, foldl never works on them, since it calls itself recursively -- no matter what -- for each element in the list:
22:58:58 <eugenrh> @src foldl
22:58:58 <lambdabot> foldl f z [] = z
22:58:58 <lambdabot> foldl f z (x:xs) = foldl f (f z x) xs
22:59:25 <eugenrh> By contrast, foldr calls the folding function f:
22:59:45 <eugenrh> @src foldr
22:59:45 <lambdabot> foldr f z [] = z
22:59:45 <lambdabot> foldr f z (x:xs) = f x (foldr f z xs)
23:00:13 <eugenrh> Here, the recursion happens *only* when that 2nd argument of f needs to be evaluated. So, we can implement the function f (\x z -> ...) in such a way that, at some point, we stop refering to the accumulator z -- "short-circuting", like this:
23:00:33 mei joins (~mei@user/mei)
23:00:37 nckx joins (~nckx@tobias.gr)
23:00:43 <eugenrh> > foldr (\x z -> if mod x 10==0 then 0 else ( x `mod` 10)*z) undefined [1..]
23:00:44 <lambdabot> 0
23:01:12 <eugenrh> ^ Example adopted from https://wiki.haskell.org/Foldr_Foldl_Foldl' where it also suggests using 'undefined' as initial value when working only with infinite lists.
23:01:40 <eugenrh> Thanks everybody for the previous disscusion and help!
23:02:56 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
23:05:53 × michalz quits (~michalz@185.246.207.197) (Remote host closed the connection)
23:06:33 ec_ joins (~ec@gateway/tor-sasl/ec)
23:10:24 mauke_ joins (~mauke@user/mauke)
23:11:17 abrantesasf joins (~abrantesa@177.137.232.92)
23:12:00 × mei quits (~mei@user/mei) (Remote host closed the connection)
23:12:08 × mauke quits (~mauke@user/mauke) (Ping timeout: 268 seconds)
23:12:08 mauke_ is now known as mauke
23:19:48 mei joins (~mei@user/mei)
23:20:53 × zxrom quits (~zxrom@mm-163-23-212-37.vitebsk.dynamic.pppoe.byfly.by) (Remote host closed the connection)
23:21:17 zxrom joins (~zxrom@mm-163-23-212-37.vitebsk.dynamic.pppoe.byfly.by)
23:23:45 × chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds)
23:24:08 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
23:24:27 × gabiruh quits (~gabiruh@vps19177.publiccloud.com.br) (Quit: ZNC 1.7.5 - https://znc.in)
23:25:09 gabiruh joins (~gabiruh@191.252.222.55)
23:25:39 <juri_> hmm. where's the quickcheck maintainer? i'd like to punch them in the face, and then buy them a beer.
23:26:12 ec_ joins (~ec@gateway/tor-sasl/ec)
23:26:16 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:27:07 <sm> lol
23:27:18 AlexNoo_ is now known as AlexNoo
23:28:15 <geekosaur> @remember juri_ <juri_> hmm. where's the quickcheck maintainer? i'd like to punch them in the face, and then buy them a beer.
23:28:15 <lambdabot> Done.
23:30:12 <juri_> quickcheck got a lot better at feeding my program values that break everything (on a minor release, bad!). so i just spent the last week fixing up property tests, and have actually found a bug in my engine, that was hiding behing all of the flakiness.
23:30:38 <sm> awesome
23:30:49 <sm> maybe the violence is not justified after all
23:31:14 <juri_> major change on a minor release.. boo. :)
23:31:36 <sm> ah.. unfortunate
23:32:06 <juri_> still, good job. poked holes in all kinds of thing. i had to learn new math, just to make my tests green.
23:32:16 jmd_ joins (~jmdaemon@user/jmdaemon)
23:35:01 <hpc> if that counts as a breaking change, i don't know what to think anymore :P
23:35:53 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds)
23:37:10 <sm> generating harder tests, for a test generator .. sounds a bit breakingish ?
23:37:26 <sm> maybe not breaking, but not minor either
23:39:10 <hpc> it doesn't make you change your test suite though, which is arguably the user of that api here
23:39:17 <hpc> it just makes the runtime behavior better :D
23:46:36 <sm> ...QuickCheck maintainer looks for an exit while drunken devs continue their loud debate ... :)
23:51:44 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
23:52:07 freeside joins (~mengwong@103.252.202.189)
23:53:02 nate2 joins (~nate@98.45.169.16)
23:54:54 ec_ joins (~ec@gateway/tor-sasl/ec)
23:56:28 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
23:57:00 Square joins (~Square@user/square)
23:57:28 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
23:58:07 × forell quits (~forell@user/forell) (Ping timeout: 240 seconds)

All times are in UTC on 2023-06-06.