Home liberachat/#haskell: Logs Calendar

Logs on 2022-06-08 (liberachat/#haskell)

00:01:47 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:03:29 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
00:04:22 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
00:05:18 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
00:06:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:06:44 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:07:29 × Tuplanolla quits (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) (Quit: Leaving.)
00:12:34 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
00:15:30 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Quit: WeeChat 3.5)
00:24:53 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:25:59 calleum_ joins (~calleum@user/calleum)
00:31:44 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
00:32:52 jmcarthur joins (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net)
00:41:33 liz_ is now known as liz
00:47:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
00:48:03 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 256 seconds)
00:50:03 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:51:34 × DNH quits (~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da) (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:52:37 <dragestil> does anyone know how to build ghc-9.2.2 obtained from `cabal unpack ghc`? I did `cabal new-build` and got problems like `fatal error: primop-vector-uniques.hs-incl: No such file or directory`
00:53:22 <geekosaur> it's only on hackage for the documentation; it can only be built as part of ghc proper
00:53:35 <geekosaur> (it's the public API to ghc internals)
00:54:13 <dragestil> geekosaur: ok, but I was able to build ghc-8.6.5 with `cabal configure -f integer-gmp && cabal new-build`
00:54:39 <dragestil> so something changed with the building method from 8.6.5 to 9.2.2
00:54:52 <geekosaur> the switch to hadrian, maybe
00:55:28 <dragestil> i see. I do want to build just the GHC API though
00:55:30 <geekosaur> but I'd be surprised if that build actually got you something, if it's actually the ghc package from hackage which is *not* the full ghc source
00:56:03 <geekosaur> I think you need to ask in #ghc, but don't be surprised if the answer is "you can't"
00:56:27 <dragestil> yeah it got what I wanted, the built API in some form
00:56:31 <dragestil> ok thanks
00:56:43 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
00:57:56 <geekosaur> also I hope you're doing this with the same version of ghc that it's versioned for; there is very little chance of it working at all right with a different version
00:58:36 <dragestil> yeah, i built 8.6.5 using 8.6.5 and am trying to build 9.2.2 using 9.2.2
00:58:41 <geekosaur> the internals change constantly, and in particular got redesigned again for 9.x (although the intent of that one was to stabilize the API so things might fare better with future versions)
01:00:40 <dragestil> ha, looks like I can cabal build ghc-lib-9.2.2, at least it's not giving me any errors
01:00:45 <dragestil> for now
01:02:00 <dragestil> geekosaur: yeah I know, I just ported an app heavy on ghc api use from 8.x.x to 9.2.2
01:02:56 <dragestil> I'm guessing the ghc-lib build is as good as a ghc build for my use case
01:03:38 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds)
01:03:46 <dragestil> maybe I should just ditch ghc in favour of ghc-lib when using the ghc api
01:03:55 × gurkenglas quits (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de) (Ping timeout: 256 seconds)
01:03:59 × ashln quits (~ashln@98.38.236.123) (Ping timeout: 244 seconds)
01:04:13 Alleria_ joins (~AllahuAkb@68.65.161.35)
01:05:27 × Alleria_ quits (~AllahuAkb@68.65.161.35) (Client Quit)
01:10:00 ashln joins (~ashln@98.38.236.123)
01:10:24 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:10:34 <Bulby[m]> How would I lift this to applicative where the function is `Applicative f => (a -> Bool) -> Map k a -> f (Map k a)`
01:10:34 <Bulby[m]> https://hackage.haskell.org/package/containers-0.6.5.1/docs/Data-Map-Strict.html#v:filter
01:14:50 <EvanR> erm, if you put together a Map filtering function of type Map k a -> Map k a, then you lift it to applicative with pure
01:15:40 <Bulby[m]> oops, I missed something in that type sig
01:15:49 <Bulby[m]> `Applicative f => (a -> f Bool) -> Map k a -> f (Map k a)`
01:16:32 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:16:51 <EvanR> :t asum
01:16:52 <lambdabot> (Foldable t, Alternative f) => t (f a) -> f a
01:17:35 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 255 seconds)
01:17:43 <EvanR> I couldn't sworn that was not Alternative
01:20:17 <EvanR> what is the type you're looking for
01:20:42 <Bulby[m]> I gave you the type
01:20:43 <Bulby[m]> `Applicative f => (a -> f Bool) -> Map k a -> f (Map k a)`
01:22:30 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
01:25:07 × jmcarthur quits (~jmcarthur@c-73-29-224-10.hsd1.nj.comcast.net) (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
01:28:31 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
01:28:33 <EvanR> it's funny that looks very similar to
01:28:49 <EvanR> no...
01:28:51 <EvanR> :t traverse
01:28:53 <lambdabot> (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
01:29:04 <Bulby[m]> it's always traverse 😭
01:29:06 Guest5815 joins (~Guest58@modemcable048.16-160-184.mc.videotron.ca)
01:29:16 <EvanR> it's not, b's don't match
01:29:25 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
01:29:28 × Guest5815 quits (~Guest58@modemcable048.16-160-184.mc.videotron.ca) (Client Quit)
01:29:39 Guest58452222224 joins (~Guest5845@modemcable048.16-160-184.mc.videotron.ca)
01:34:54 <Bulby[m]> witherable basically the function I want, but at this point is it worth it
01:36:58 <c_wraith> :t M.traverseMaybeWithKey
01:36:59 <lambdabot> Applicative f => (k -> a -> f (Maybe b)) -> M.Map k a -> f (M.Map k b)
01:37:20 <c_wraith> it's a bit more general than what you asked for, but it's what does what you want
01:37:21 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
01:37:34 <c_wraith> *it does
01:38:15 <c_wraith> (also, the increased generality nicely sidesteps boolean blindness)
01:43:06 gentauro joins (~gentauro@user/gentauro)
01:43:45 xff0x joins (~xff0x@s5.HtokyoFL1.vectant.ne.jp)
01:45:17 <c_wraith> :t \f -> M.traverseMaybeWithKey (\_ x -> bool (Just x) Nothing <$> f x) -- Bulby[m]: Like so
01:45:18 <lambdabot> Applicative f => (b -> f Bool) -> M.Map k b -> f (M.Map k b)
01:45:21 sebastiandb_ joins (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net)
01:45:32 <Bulby[m]> \o/
01:45:32 andrey_ joins (~andrey@p200300dbcf0a1200fc5b10ce87df1c2d.dip0.t-ipconnect.de)
01:46:23 <c_wraith> Oh. except probably reverse the args to bool
01:46:35 <c_wraith> (that boolean blindness strikes again)
01:47:47 × andrey__ quits (~andrey@p200300dbcf1e5100509bf59e4ea7342a.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
01:50:39 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
01:56:18 × BusConscious quits (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de) (Remote host closed the connection)
01:56:47 <Bulby[m]> yay my baby GC is working
01:58:12 × gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
01:58:38 <Bulby[m]> one issue with the current system is that even with heap clearing, the counter keeps incrementing
01:59:34 <Bulby[m]> which means if more than `maxBound :: Int` vars are assigned then oopsies it crashes
02:02:20 Guest68 joins (~Guest68@186.66.48.125)
02:02:58 <Guest68> Hey qq… best way to use Ghci on a mobile device for studying abroad with no computer?
02:07:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
02:07:13 × Guest68 quits (~Guest68@186.66.48.125) (Quit: Client closed)
02:09:44 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
02:11:42 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
02:13:43 <EvanR> Bulby[m], do you actually want to solve that one
02:18:45 × zebrag quits (~chris@user/zebrag) (Quit: Konversation terminated!)
02:19:17 × td_ quits (~td@muedsl-82-207-238-064.citykom.de) (Ping timeout: 256 seconds)
02:19:29 <DigitalKiwi> i use ghci in nix-on-droid https://github.com/t184256/nix-on-droid
02:20:49 td_ joins (~td@muedsl-82-207-238-024.citykom.de)
02:20:58 × darkling quits (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space) (Ping timeout: 244 seconds)
02:23:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
02:23:45 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
02:26:59 frost joins (~frost@user/frost)
02:39:47 × liz quits (~liz@host86-159-158-175.range86-159.btcentralplus.com) (Quit: Lost terminal)
02:44:24 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:44:24 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:47:00 causal joins (~user@2001:470:ea0f:3:329c:23ff:fe3f:1e0e)
02:47:48 nate3 joins (~nate@98.45.169.16)
02:48:49 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Remote host closed the connection)
02:51:04 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
02:52:30 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
02:53:05 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
02:53:05 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
02:53:05 wroathe joins (~wroathe@user/wroathe)
03:05:39 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
03:06:39 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
03:09:11 × califax quits (~califax@user/califx) (Remote host closed the connection)
03:09:37 × calleum_ quits (~calleum@user/calleum) (Ping timeout: 246 seconds)
03:09:51 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:10:08 califax joins (~califax@user/califx)
03:19:04 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Ping timeout: 246 seconds)
03:22:04 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
03:24:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:41:36 × Me-me quits (~me-me@user/me-me) (Remote host closed the connection)
03:42:15 money joins (~Gambino@user/polo)
03:44:04 Me-me joins (~me-me@tunnel690570-pt.tunnel.tserv12.mia1.ipv6.he.net)
03:44:17 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer)
03:44:40 × sebastiandb_ quits (~sebastian@pool-108-18-101-17.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
03:47:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
03:49:53 vicfred joins (~vicfred@user/vicfred)
03:50:06 king_gs joins (~Thunderbi@2806:103e:29:8d08:4e22:df26:be6a:6f94)
03:56:05 z0k joins (~z0k@206.84.141.105)
03:57:04 × money quits (~Gambino@user/polo) (Quit: money)
03:57:25 × king_gs quits (~Thunderbi@2806:103e:29:8d08:4e22:df26:be6a:6f94) (Quit: king_gs)
03:57:34 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
04:01:08 Polo joins (~Gambino@user/polo)
04:04:31 ec_ joins (~ec@gateway/tor-sasl/ec)
04:06:20 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
04:07:06 × Polo quits (~Gambino@user/polo) (Ping timeout: 276 seconds)
04:09:40 Vajb joins (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi)
04:11:20 Polo joins (~Gambino@user/polo)
04:12:52 × slac74904 quits (~slack1256@186.11.84.227) (Ping timeout: 260 seconds)
04:18:56 × Guest58452222224 quits (~Guest5845@modemcable048.16-160-184.mc.videotron.ca) (Ping timeout: 252 seconds)
04:21:01 × Polo quits (~Gambino@user/polo) (Ping timeout: 246 seconds)
04:24:14 Polo joins (~Gambino@user/polo)
04:25:01 Guest77 joins (~Guest77@2600:1700:6438:2810:2847:a97b:34b7:6321)
04:28:27 Furor joins (~colere@about/linux/staff/sauvin)
04:28:50 × Polo quits (~Gambino@user/polo) (Ping timeout: 240 seconds)
04:31:01 × Colere quits (~sauvin@about/linux/staff/sauvin) (Ping timeout: 258 seconds)
04:38:16 jonathanx_ joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
04:38:17 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
04:44:30 × shapr quits (~user@pool-173-73-44-186.washdc.fios.verizon.net) (Ping timeout: 240 seconds)
04:46:00 × jonathanx_ quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Read error: Connection reset by peer)
04:46:06 jonathanx joins (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se)
04:48:24 × z0k quits (~z0k@206.84.141.105) (Quit: WeeChat 3.5)
04:50:39 coot joins (~coot@213.134.190.95)
04:51:10 Polo joins (~Gambino@user/polo)
04:52:38 × coot quits (~coot@213.134.190.95) (Client Quit)
04:54:33 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
04:56:22 × jonathanx quits (~jonathan@h-178-174-176-109.A357.priv.bahnhof.se) (Ping timeout: 246 seconds)
04:59:16 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
05:00:30 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
05:00:38 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
05:01:29 noteness joins (~noteness@user/noteness)
05:04:52 × Guest77 quits (~Guest77@2600:1700:6438:2810:2847:a97b:34b7:6321) (Quit: Client closed)
05:11:04 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:16:40 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:17:57 × bgamari quits (~bgamari@68.238.49.109) (Ping timeout: 276 seconds)
05:21:59 × Polo quits (~Gambino@user/polo) (Quit: Polo)
05:25:37 Polo joins (~Gambino@user/polo)
05:26:46 yosef`` joins (~user@2409:8955:61c:4510:bc38:4f13:2f21:ed8c)
05:27:41 × yosef`` quits (~user@2409:8955:61c:4510:bc38:4f13:2f21:ed8c) (Client Quit)
05:28:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 256 seconds)
05:29:01 yosef` joins (~user@user/yosef/x-2947716)
05:31:35 bgamari joins (~bgamari@70.16.100.231)
05:32:11 × _xor quits (~xor@72.49.198.103) (Quit: bbiab)
05:34:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
05:40:03 × bgamari quits (~bgamari@70.16.100.231) (Ping timeout: 276 seconds)
05:40:08 chomwitt joins (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4)
05:41:20 odnes joins (~odnes@5-203-158-63.pat.nym.cosmote.net)
05:42:14 × Polo quits (~Gambino@user/polo) (Read error: Connection reset by peer)
05:43:35 Polo joins (~Gambino@user/polo)
05:44:13 × noteness quits (~noteness@user/noteness) (Quit: bye)
05:44:38 noteness joins (~noteness@user/noteness)
05:46:28 × incertia quits (~incertia@d47-69-133-171.try.wideopenwest.com) (Quit: ZNC 1.7.5 - https://znc.in)
05:46:53 incertia joins (~incertia@d47-69-133-171.try.wideopenwest.com)
05:48:32 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
05:52:06 bgamari joins (~bgamari@70.16.104.230)
05:53:03 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
06:04:34 acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de)
06:07:48 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:09:36 × shriekingnoise quits (~shrieking@201.231.16.156) (Quit: Quit)
06:10:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:14:13 × gdown quits (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
06:17:39 × tomjaguarpaw quits (~tom@li367-225.members.linode.com) (Remote host closed the connection)
06:17:47 tomjaguarpaw joins (~tom@li367-225.members.linode.com)
06:20:42 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 244 seconds)
06:20:58 × P1RATEZ quits (piratez@user/p1ratez) (Remote host closed the connection)
06:21:09 motherfsck joins (~motherfsc@user/motherfsck)
06:21:41 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
06:23:01 × Guest3304 quits (~mike@2406:d501::79ae:5f3e) (Quit: WeeChat 3.1)
06:23:10 feetwind joins (~mike@user/feetwind)
06:26:05 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:29:34 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:34:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:34:41 alp joins (~alp@user/alp)
06:35:10 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:35:33 × vicfred quits (~vicfred@user/vicfred) (Quit: Leaving)
06:37:06 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
06:38:41 Pickchea joins (~private@user/pickchea)
06:39:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:42:15 mc47 joins (~mc47@xmonad/TheMC47)
06:45:03 × Furor quits (~colere@about/linux/staff/sauvin) (Ping timeout: 256 seconds)
06:50:09 × Zemyla quits (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com) (Ping timeout: 256 seconds)
06:50:24 Zemyla joins (~ec2-user@ec2-54-80-174-150.compute-1.amazonaws.com)
06:51:02 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
06:51:11 Guest727 joins (Guest72@2600:3c00::f03c:93ff:fee9:e8e2)
06:57:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
06:58:09 Colere joins (~colere@about/linux/staff/sauvin)
06:59:00 cfricke joins (~cfricke@user/cfricke)
07:04:12 lottaquestions_ joins (~nick@104.221.94.126)
07:04:24 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:05:12 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:06:30 × lottaquestions quits (~nick@104.221.94.126) (Ping timeout: 240 seconds)
07:07:11 motherfsck joins (~motherfsc@user/motherfsck)
07:08:29 MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl)
07:08:29 × MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Client Quit)
07:08:57 MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl)
07:12:36 × dextaa quits (~DV@user/dextaa) (Read error: Connection reset by peer)
07:12:59 Infinite joins (~Infinite@49.39.122.221)
07:15:22 dextaa joins (~DV@user/dextaa)
07:18:13 <sloorush> Hello, is the link to the prelude documentation in the wiki(https://wiki.haskell.org/Prelude) supposed to be https://hackage.haskell.org/package/base-4.16.1.0/docs/Prelude.html instead of http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html in the documentation section?
07:19:17 <Axman6> it should probably be https://hackage.haskell.org/package/base-4.16.1.0/docs/Prelude.html if it has any chance of remaining up to date
07:19:19 lortabac joins (~lortabac@2a01:e0a:541:b8f0:c365:1120:4914:7262)
07:19:35 chele joins (~chele@user/chele)
07:26:21 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
07:27:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:28:13 <Axman6> damn, now I'm reading prelude source code and wondering why countLeadingZeros for Bool isn't countLeadingZeros b = Int# (1# - dataToTag# b)
07:28:56 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
07:29:55 × MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Quit: WeeChat 3.5)
07:30:13 MajorBiscuit joins (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl)
07:32:23 darkling joins (~darkling@2001-ba8-1f1-f0e6-0-0-0-2.autov6rev.bitfolk.space)
07:33:39 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
07:36:00 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
07:36:17 × niko quits (niko@libera/staff/niko) (Read error: Connection reset by peer)
07:37:57 × zaquest quits (~notzaques@5.130.79.72) (Remote host closed the connection)
07:38:02 <dragestil> I just tried again, the `all` target does not include test suites. I also took a look at ~/.cabal/config and don't see how I can include it. does anyone know how to invoke `cabal new-build` build absolutely every components of a project?
07:38:55 <dcoutts> dragestil: it includes test suites if you enable test suites by default for that package.
07:39:22 <dcoutts> same for benchmarks
07:39:47 <dcoutts> you can enable them on a per-package basis, or for all packages in the project
07:40:19 zaquest joins (~notzaques@5.130.79.72)
07:40:55 <dragestil> dcoutts: is it possible to override the setting in .cabal files for the projects? I'd like to run a script that run cabal build on a set of projects after cd into the project dirs
07:41:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
07:41:19 <dcoutts> You can set it in the project file.
07:41:48 <dcoutts> It's a "builder role" setting, not an "author role" setting, so it's set in the project file, not the package .cabal files.
07:42:38 <dcoutts> But most such things can also be set on the cabal build command line too. iirc it's just --enable-testsuites --enable-benchmarks
07:42:51 × acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 244 seconds)
07:42:58 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
07:43:13 <dcoutts> It's usually better to put them in the cabal.project (or cabal.project.local) file, so it's not ephemeral
07:43:22 <dcoutts> but ephemeral is doable too]
07:44:23 <dragestil> dcoutts: I see, thanks. --enable-testsuites --enable-benchmarks sounds good as my use case is to run a script to `cabal unpack` a bunch of packages, cd into them, and then `cabal build`
07:45:24 <dragestil> oh but I can't do cabal new-build --enable-testsuites --enable-benchmarks
07:45:39 <dcoutts> oh, use it with cabal configure
07:45:41 <merijn> Also, still calling it "new-build" is a bit dated, considering it's been the default for 3 (soon 4) releases ;)
07:46:33 <dcoutts> dragestil: cabal configure --enable-testsuites --enable-benchmarks will make a cabal.project.local with those two settings, so that a subsequent cabal build all will do what you expect
07:47:00 <dcoutts> (some of these flags also work on build directly, but I was clearly forgetting which ones)
07:47:27 <dragestil> dcoutts: i see, thanks
07:47:41 <dragestil> merijn: ok
07:47:41 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
07:48:45 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 276 seconds)
07:49:46 chreekat2 joins (~b@dys-fmydgp1rbq8l5qb7t-3.rev.dnainternet.fi)
07:49:52 Unicorn_Princess joins (~Unicorn_P@93-103-228-248.dynamic.t-2.net)
07:54:10 × Pickchea quits (~private@user/pickchea) (Ping timeout: 272 seconds)
07:58:03 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
07:58:12 <tomsmeding> Bulby[m]: that's a lot of allocations, 2^63 :p
07:59:39 <tomsmeding> > 2 ^ 63 / 10 ^ 9 / 3600 / 24 / 365
07:59:41 <lambdabot> 292.471208677536
08:00:05 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
08:00:24 <tomsmeding> Bulby[m]: will take you >292 years to overflow that counter if you manage to increment it once per clock cycle on a 5GHz cpu (you won't, unless you do `lab: inc rax ; jmp lab` maybe)
08:00:52 <tomsmeding> > 2 ^ 63 / (5 * 10 ^ 9) / 3600 / 24 / 365
08:00:53 <lambdabot> 58.4942417355072
08:00:57 <tomsmeding> sorry, 58 years
08:01:42 <tomsmeding> this is what Natural in Numeric.Natural is for though :p
08:07:49 zincy joins (~zincy@2a01:cb18:82de:bf00:545d:42c6:141c:ed13)
08:12:07 mbuf joins (~Shakthi@122.174.45.107)
08:14:09 gehmehgeh joins (~user@user/gehmehgeh)
08:14:18 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
08:14:43 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
08:15:31 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
08:20:04 gurkenglas joins (~gurkengla@dslb-084-057-085-111.084.057.pools.vodafone-ip.de)
08:22:15 × Guest727 quits (Guest72@2600:3c00::f03c:93ff:fee9:e8e2) (Quit: Client closed)
08:22:40 Guest7240 joins (~Guest72@240e:341:3834:600:f841:5677:841d:bc80)
08:22:56 × Guest7240 quits (~Guest72@240e:341:3834:600:f841:5677:841d:bc80) (Client Quit)
08:31:17 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
08:33:33 w1gz_ is now known as w1gz
08:35:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
08:43:23 × Polo quits (~Gambino@user/polo) (Quit: Polo)
08:46:31 × zincy quits (~zincy@2a01:cb18:82de:bf00:545d:42c6:141c:ed13) (Remote host closed the connection)
08:49:09 coot joins (~coot@213.134.190.95)
08:49:44 × noteness quits (~noteness@user/noteness) (Remote host closed the connection)
08:50:01 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
08:50:29 noteness joins (~noteness@user/noteness)
08:55:57 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:04:34 alp joins (~alp@user/alp)
09:05:04 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
09:06:13 BusConscious joins (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de)
09:07:02 × Colere quits (~colere@about/linux/staff/sauvin) (Remote host closed the connection)
09:07:20 Colere joins (~colere@about/linux/staff/sauvin)
09:07:26 natechan joins (~nate@98.45.169.16)
09:07:31 × nahcetan quits (~nate@98.45.169.16) (Read error: Connection reset by peer)
09:08:18 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
09:08:24 <BusConscious> hello everyone I have a Q re forkProcess. When I do forkProcess it executes the IO action provided as argument, but then it lingers around as defunct process even after calling exitImmediately?
09:08:36 yosef`` joins (~user@223.73.113.211)
09:08:55 <BusConscious> What's up with that? How do I properly exit my child process?
09:09:46 <BusConscious> oh it must have something to do with my pipe nevermind
09:10:28 × yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 258 seconds)
09:10:31 vgtw_ is now known as vgtw
09:15:57 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
09:20:07 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 240 seconds)
09:21:10 <merijn> BusConscious: forkProcess from the unix package?
09:23:03 <merijn> Gonna go ahead and queue my usual spiel that the correct answer to any of your questions past/future should be: do *not* use forkProcess, it is *wildly* unsafe and it's existence is borderline negligent
09:23:31 <merijn> (although, more concretely, your problem is that terminated child processes will remain zombie processes until the parent wait()'s on them)
09:24:01 <BusConscious> Try programming a unix shell with no unix forks :)
09:24:36 ubert joins (~Thunderbi@2a02:8109:abc0:6434:a6ac:910b:92e7:63a8)
09:24:48 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
09:25:07 <merijn> Easy
09:25:15 <merijn> fork has been deprecated for near 2 decades
09:25:26 <merijn> You should use posix_spawn, even for programming shells
09:26:15 <merijn> fork in single-threaded C code is merely hard to use correctly. fork in multi-threaded processes is borderline (if not literally) impossible to use safely and all Haskell programs (well, those compiled by GHC) are inherently multi-threaded
09:26:34 <maerwald> there's no api for posix_spawn
09:26:45 <merijn> maerwald: Yes, I know. That does not make fork safer, though
09:26:58 <maerwald> that makes your suggestion unrealistic though
09:27:16 <maerwald> forkProcess works fine for me, but I don't use exitImmediately
09:27:26 <merijn> maerwald: Only because you have religious objection to using the process library, which does in fact use posix_spawn internally
09:27:35 <BusConscious> I could try to link to posix_spawn, but is not even half as flexible as traditional forks. I want to clone my Shell environment
09:27:41 <maerwald> merijn: I use the process library on windows and it's a mess
09:27:46 <merijn> maerwald: exitImmediatley is a red herring, you always need to wait on child process to terminate the zombie
09:28:08 <maerwald> posix_spawn is complicated api
09:28:11 <BusConscious> * link to C
09:28:22 <merijn> BusConscious: realistically you want the process library
09:28:26 <merijn> @hackage process
09:28:26 <lambdabot> https://hackage.haskell.org/package/process
09:28:31 <merijn> For spawning sub processes
09:28:40 <merijn> Which simplifies setting up pipes, etc. too
09:28:48 <BusConscious> I will look into that though thanks
09:28:49 <maerwald> weelll.... that depends
09:29:20 <maerwald> https://hackage.haskell.org/package/process-1.6.14.0/docs/System-Process.html#v:readCreateProcessWithExitCode
09:29:26 <maerwald> returns Strings for the handles...
09:29:28 <maerwald> great
09:29:31 GascOwn joins (~gasc_own@151.16.46.77)
09:29:32 × Infinite quits (~Infinite@49.39.122.221) (Quit: Client closed)
09:29:36 <merijn> I would not use the readCreate* stuff at all
09:29:39 <maerwald> now your stuff is garbled with encoding issues
09:29:44 <merijn> but manual CreateProcess and handles
09:29:50 <maerwald> right, I would not use most of process
09:29:53 <merijn> maerwald: Not if your system doesn't have a broken setup
09:29:56 <maerwald> so just don't
09:30:05 <maerwald> merijn: huh?
09:30:37 <merijn> maerwald: If your system is configured correctly, the encoding is set correctly. If you don't want String you should be using the Handle API anyway
09:30:39 <maerwald> conversion to string from CString is not total
09:30:59 <maerwald> even if your encoding is set up correctly
09:31:01 <maerwald> doesn't matter
09:31:02 <merijn> maerwald: Sure, if your subprocess is producing binary data, don't use the String stuff
09:31:11 <maerwald> yeah, shitty api
09:31:18 <GascOwn> join #haskell-web
09:31:44 <merijn> I would support deprecating and/or deleting all of the read* functions from process
09:32:23 <merijn> Or, at least, moving them to separate System.Process.String, System.Process.ByteString, System.Process.Text submodules with similar/identical APIs for read calls
09:32:44 × bliminse quits (~bliminse@host86-132-158-77.range86-132.btcentralplus.com) (Quit: leaving)
09:32:54 <merijn> maerwald: Would that make you happier? Probably not, because that'd change the API and you don't approve of changing APIs on version bumps either :)
09:33:23 <maerwald> if you need windows support, just use Win32 package... then you don't need to wait for the windows IO manager to become default anyway
09:33:34 <maerwald> process by default shoves all windows stuff to this odd posix compat layer
09:33:36 <maerwald> ugh.
09:36:17 <merijn> Anyway, this doesn't affect BusConscious's use case anyway, for a unix shell-like thing he'll want createProcess and/or withCreateProcess which (with appropriate passing of CreatePipe/Inherit/UseHandle) will get back a bunch of handles for the subprocess to do shell-y things with
09:37:25 CiaoSen joins (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de)
09:37:26 <maerwald> BusConscious: using unix package is fine
09:37:36 × alp quits (~alp@user/alp) (Remote host closed the connection)
09:39:08 <maerwald> to wait for child process, you use getProcessStatus
09:40:58 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
09:42:04 <maerwald> merijn: feel free to create a PR https://github.com/haskell/unix/issues/196
09:42:45 <sm> nice discussion! (of Haskell)
09:42:46 <sm> https://news.ycombinator.com/item?id=31658638
09:44:52 × coot quits (~coot@213.134.190.95) (Quit: coot)
09:45:38 × cheater quits (~Username@user/cheater) (Ping timeout: 255 seconds)
09:46:06 cheater joins (~Username@user/cheater)
09:47:02 alp joins (~alp@user/alp)
09:48:46 DNH joins (~DNH@2a02:8108:1100:16d8:e92a:ff3d:d8c7:63da)
09:54:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
09:56:23 Infinite joins (~Infinite@49.39.122.221)
10:01:09 bliminse joins (~bliminse@host86-132-158-77.range86-132.btcentralplus.com)
10:01:18 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:05:58 <maerwald[m]> sm: nix being implemented in Haskell is always a strong sign they don't know what they are talking about :p
10:07:37 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
10:08:33 <merijn> I mean, "HN commenters not knowing what they are talking about" is a pretty safe heuristic in general
10:10:34 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:13:03 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 276 seconds)
10:14:28 <maerwald[m]> But I do think the language extension gold rush and GHC being used as an academic playground field are factors
10:14:45 coot joins (~coot@213.134.190.95)
10:19:05 <kuribas> ugh, people complaining about extensions, yet every languages has them, they just aren't called that.
10:19:12 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 260 seconds)
10:19:12 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
10:19:34 <kuribas> At least being "extensions" you can turn them off.
10:21:04 <kuribas> Every language accumulates features.
10:22:19 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
10:23:33 <maerwald[m]> kuribas: Go has extensions?
10:23:47 <kuribas> I don't know?
10:23:53 × xff0x quits (~xff0x@s5.HtokyoFL1.vectant.ne.jp) (Ping timeout: 255 seconds)
10:23:53 <kuribas> I don't know go.
10:24:33 <maerwald[m]> Pretty sure it doesn't and it also doesn't accumulate features
10:25:26 <kuribas> didn't it acquire generics recently?
10:25:35 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
10:25:58 <maerwald[m]> I think that's discussed for Go2, which is a different language
10:30:06 <yushyin> go1.18 has generics support
10:30:29 <yushyin> 'Go release, version 1.18, is a significant release, including changes to the language'
10:31:00 <maerwald[m]> Ah right, I mixed it up with the union types
10:32:12 <kuribas> maerwald[m]: I didn't say those changes don't come with a version bump, which is a sensible thing to do.
10:32:21 <yushyin> but it's optional/retrofitted, old code should just continue to work without changes
10:34:40 <maerwald[m]> At any rate, no, not all languages randomly add features
10:35:36 <maerwald[m]> Even rust develops at a much slower pace
10:36:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
10:38:08 <Benzi-Junior> I'm trying to write a function that takes an input and depending on case either reads or writes to a TChan, the issue that I'm havingi is that writeTChan has type STM (), what is the right way to change it to STM a, as I don't actually want it to return
10:38:31 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 256 seconds)
10:48:09 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
10:49:16 <tomsmeding> Benzi-Junior: what do you want to do with the read value?
10:49:28 <maerwald[m]> Benzi-Junior: Either () a
10:49:47 <maerwald[m]> Or Maybe
10:51:30 × caubert_ quits (~caubert@136.244.111.235) (Quit: WeeChat 3.4)
10:51:42 caubert joins (~caubert@136.244.111.235)
10:56:39 raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net)
11:04:28 xff0x joins (~xff0x@b133147.ppp.asahi-net.or.jp)
11:11:48 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:13:25 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
11:13:57 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
11:15:36 × yosef`` quits (~user@223.73.113.211) (Read error: Connection reset by peer)
11:15:53 yosef`` joins (~user@223.73.113.211)
11:16:59 lyle joins (~lyle@104.246.145.85)
11:17:50 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
11:18:58 <Benzi-Junior> tomsmeding, just dump it to console
11:19:23 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
11:19:32 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
11:19:48 <Benzi-Junior> so it's a "Show a => STM a"
11:21:38 <tomsmeding> Benzi-Junior: \x -> case x of { ... -> atomically (writeTVar var ...) ; ... -> do { value <- atomically (readTVar var); print value } }
11:21:38 <tomsmeding> ?
11:21:52 <tomsmeding> with newlines instead of { ; }
11:22:19 <tomsmeding> or should the whole case live in STM
11:22:23 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 255 seconds)
11:25:07 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:26:10 × yosef`` quits (~user@223.73.113.211) (Ping timeout: 258 seconds)
11:29:24 bontaq joins (~user@ool-45779fe5.dyn.optonline.net)
11:30:47 ph88 joins (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de)
11:40:29 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 252 seconds)
11:41:17 pottsy joins (~pottsy@129.227.183.244)
11:44:49 × odnes quits (~odnes@5-203-158-63.pat.nym.cosmote.net) (Ping timeout: 246 seconds)
11:45:05 __monty__ joins (~toonn@user/toonn)
11:46:11 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
11:46:28 Pickchea joins (~private@user/pickchea)
11:50:14 littlebo1eep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
11:51:48 <kuribas> IMO a lot of language extensions take like 1 minute to learn.
11:51:49 × GascOwn quits (~gasc_own@151.16.46.77) (Ping timeout: 246 seconds)
11:52:08 <kuribas> For example lambda case, pattern guards, ...
11:53:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
11:55:54 <sm> I think people land on a lot of weak reasons to justify not studying haskell a bit
11:56:28 <sm> I don't really blame them, but there are better reasons
11:57:07 <geekosaur> nobody ever wants to admit they're scared of something…
11:57:47 odnes joins (~odnes@5-203-251-36.pat.nym.cosmote.net)
11:57:53 <sm> k I'll say it, I'm Simon and I'm scared of nix[os]
12:00:04 <sm> actually I should make a list, that'd probably be a useful exercise
12:00:11 <lortabac> I think there is a subjective factor in these discussions that is never going to be solved
12:00:12 <maerwald[m]> kuribas: uh, DataKinds qnd TypeFamilies 1 minute? xR
12:00:47 <lortabac> just as I find Nix crazy and a waste of time, some people have the same opinion about Haskell
12:00:54 <lortabac> that's fair
12:01:07 <lortabac> nobody is right or wrong
12:01:23 <maerwald[m]> I think it's objectively false claiming that most extensions take 1m to learn
12:01:53 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:02:04 × littlebo1eep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
12:02:35 <sm> discussions generally aren't "solvable", but I'm enjoying this one and glad when I see bits of illumination getting out there
12:02:45 <geekosaur> I like the *idea* of Nix. applying it to a different OS/distro strikes me as asking for trouble, but I don't quite have time to learn how NixOS is configured
12:03:01 <sm> and getting in here too, of course!
12:03:32 <geekosaur> I also don't like what I hear about conflicting package configurations, but it also doesn't surprise nme
12:04:32 califax joins (~califax@user/califx)
12:07:31 × califax quits (~califax@user/califx) (Remote host closed the connection)
12:07:48 <maerwald[m]> Took the Haskell community many years to recognize there's a problem with API breaking churn, constantly changing surface language and compiler stability.
12:08:35 <maerwald[m]> And still, many people still believe the way to increase adoption is to push more esoteric features
12:09:15 <sm> it's because of our history and evolutionary path. That creates a huge inertia
12:09:35 <hpc> alternatively, keep pushing the state of the art as much as possible, until someday javascript developers don't realize they're secretly writing haskell98 with funny syntax
12:09:36 <sm> takes time and money to shift
12:10:02 × CiaoSen quits (~Jura@p200300c95738d2002a3a4dfffe84dbd5.dip0.t-ipconnect.de) (Ping timeout: 260 seconds)
12:10:08 califax joins (~califax@user/califx)
12:10:25 <maerwald[m]> sm: yep, tunnel view
12:10:36 <sm> the Haskell community is much more diverse than mainstream languages I think
12:11:31 <sm> it's interesting to more kinds of people
12:12:02 <maerwald[m]> sm: I'm not sure
12:12:46 <maerwald[m]> Java has a lot of engaged researchers too
12:15:41 <sm> perhaps not Java then. But it had the industry focus from the start
12:15:59 <sm> but more than say javascript, go, or python
12:16:19 <maerwald[m]> I'm not really sure how you come to that conclusion honestly
12:16:57 <sm> perhaps I'm being unclear - I mean js/go/python have less in them to interest CS researchers, for example
12:17:11 <kuribas> maerwald: DataKinds is pretty easy if you know what a "kind" is.
12:17:38 <sm> or to interest engineers needing high assurance
12:17:49 <maerwald[m]> JavaScript got TypeScript and Flow. Two huge research projects
12:18:33 <maerwald[m]> And react, revolutionizing the frontend framework space
12:18:41 <sm> huge indeed, but aren't those coming from industry primarily. The diversity isn't quite as extreme
12:19:27 <sm> the academic camp isn't as strong. I could be wrong.
12:19:53 <kuribas> maerwald: and I found type families much less daunting then I expected.
12:20:38 <maerwald[m]> sm: I think that's simply because you're more familiar with the haskell community
12:21:03 zincy joins (~zincy@213.205.194.63)
12:21:32 <maerwald[m]> Also, a lot of research does come from industry
12:21:57 <sm> I mean obviously everything in js world is much bigger than in haskell world, but if you imagine js at same size and stage of growth as haskell is now, I feel haskell has more diverse interests pulling it in different directions. Primarily the academic vs engineering interests. Just my 2c
12:22:27 <geekosaur[m]> I'm not sure Tweag counts as industry
12:22:51 <maerwald[m]> geekosaur: they have industry clients
12:23:56 <lortabac> kuribas: type families are incredibily tricky, I've used them for years and I'm still surprised from time to time
12:24:50 <lortabac> among other things: they are not parametric, they have different variants and they imply MonoLocalBinds
12:24:57 <maerwald[m]> I think kuribas is dramatically oversimplifying
12:26:23 <maerwald[m]> We can't solve issues of we don't recognize them
12:26:48 acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de)
12:27:28 Topsi joins (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de)
12:28:42 <yrlnry> Is there a tool that will dump out the contents of a `.hie` file in a human-readable form?
12:29:08 <sm> maerwald++
12:29:16 × koz quits (~koz@121.99.240.58) (Ping timeout: 246 seconds)
12:29:34 <maerwald[m]> The mixture of stockholm syndrome and "maybe you're not smart enough" sentiment is probably one of the reasons the entry barrier to haskell is still so high. Rust has a lot of very complicated features too, but they make a better job at making it accessible
12:30:18 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
12:30:45 <sm> that has always been a high priority for them, it's not such a widely shared priority for us
12:31:19 <maerwald[m]> "Just learn type families in one minute"
12:31:21 <sm> many (not all) of us say we want it, but it doesn't usually come first
12:31:44 × zincy quits (~zincy@213.205.194.63) (Remote host closed the connection)
12:31:52 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
12:32:02 koz joins (~koz@121.99.240.58)
12:33:46 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Quit: WeeChat 3.5)
12:36:26 <geekosaur> yrlnry, possibly `ghc --show-iface`
12:36:41 <yrlnry> I'll look at that, thanks.
12:37:32 <geekosaur> not sure it'll work with a .hie file and older ghcs, "fat .hi files" are still kinda new
12:39:40 gehmehgeh joins (~user@user/gehmehgeh)
12:44:02 <yrlnry> `--show-iface` is interesting, but for `.hi` files, seems not to work on `.hie`. There's a `hiedb` program which looks like it might be useful.
12:46:12 Topsi1 joins (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de)
12:46:21 <geekosaur> yeh, that was what I was afraid of. there's at least two "hie" file types, one the extended .hi file and one the hie db
12:46:37 <geekosaur> since then the extended hi file was simply merged with normal ones
12:46:53 <geekosaur> don't know how to use hiedb though
12:47:06 <geekosaur> at this point #haskell-language-server might be more helpful
12:49:03 × Topsi quits (~Topsi@dyndsl-095-033-021-202.ewe-ip-backbone.de) (Ping timeout: 276 seconds)
12:51:06 yosef` joins (~user@user/yosef/x-2947716)
12:58:01 × yosef` quits (~user@user/yosef/x-2947716) (Ping timeout: 244 seconds)
12:58:24 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
12:58:50 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
13:00:43 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:03:42 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:03:59 califax joins (~califax@user/califx)
13:06:21 <BusConscious> ok so I made some progress. I was not looking for getProcessStatus directly. Instead I am forking my progress duplicating the writing end of the pipe to stdout in the child process and using hGetContents to read from the reading end in the parent
13:06:26 <BusConscious> so far so good
13:06:58 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
13:07:01 <BusConscious> issue is after reading from the pipe I need to kill my child process, but I am not allowed to kill it before that
13:07:56 <BusConscious> because otherwise my pipe is broken
13:08:07 <geekosaur> the problem there is you don't know when it's done writing
13:08:28 <geekosaur> unless you have some kind of protocol with an end/done packet
13:09:39 <maerwald> BusConscious: https://hackage.haskell.org/package/unix-2.7.2.2/docs/System-Posix-IO-ByteString.html#v:fdRead
13:09:44 <maerwald> are you looking for that?
13:09:53 <maerwald> it throws an exception on EOF
13:10:11 <geekosaur> but you won't get eof from it until the process exits
13:10:18 <BusConscious> geekosaur that may very well be the problem, but when I don't kill the child after reading or exit the child it appears to be working
13:10:32 <BusConscious> except i'm no leaking processes
13:10:40 <geekosaur> and if the process exits you need waitForProcess to reap the zombie
13:11:15 <maerwald> BusConscious: you want the parent to get the child stdout/stderr?
13:11:29 <BusConscious> the parent to get the child stdout
13:11:36 <maerwald> yeah
13:11:41 <geekosaur> there's a potential race condition here, you may need to read output in a separate thread
13:11:44 <BusConscious> and then afterwards the child should terminate
13:11:51 <maerwald> BusConscious: I have an implementation here: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/lib/GHCup/Prelude/Process/Posix.hs#L74-317
13:11:54 <geekosaur> sinceif you're waiting on the child you're not reading
13:12:56 shapr joins (~user@2600:4040:2d31:7100:9163:bb47:6e24:ceed)
13:12:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:13:05 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Ping timeout: 255 seconds)
13:13:05 <maerwald> probably going through captureOutStreams is enough
13:14:07 × raym quits (~raym@user/raym) (Ping timeout: 240 seconds)
13:14:16 califax joins (~califax@user/califx)
13:14:17 <BusConscious> I don't really wait for the child I just read from the pipe using hGetContents which should read until EOF is found, but you're probably right, that I should not rely on the child being faster than the parent
13:14:31 <BusConscious> because most likely it will be the other way around
13:14:38 × frost quits (~frost@user/frost) (Ping timeout: 252 seconds)
13:15:08 raym joins (~raym@user/raym)
13:15:29 <BusConscious> ok thank you now it works
13:16:11 × [Leary] quits (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz) (Ping timeout: 258 seconds)
13:16:26 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
13:17:43 × infinity0 quits (~infinity0@185.112.146.113) (Ping timeout: 258 seconds)
13:17:46 <BusConscious> I really need getProcessStatus
13:18:02 × Pickchea quits (~private@user/pickchea) (Ping timeout: 255 seconds)
13:19:33 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
13:20:05 infinity0 joins (~infinity0@185.112.146.113)
13:22:34 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
13:23:30 × gnyeki quits (~gnyeki@user/gnyeki) (Quit: leaving)
13:23:53 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 255 seconds)
13:24:19 zincy joins (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr)
13:26:20 × zincy quits (~zincy@lfbn-bay-1-105-223.w83-193.abo.wanadoo.fr) (Read error: Connection reset by peer)
13:26:32 zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
13:26:35 × cfricke quits (~cfricke@user/cfricke) (Ping timeout: 255 seconds)
13:28:30 × ashln quits (~ashln@98.38.236.123) (Ping timeout: 244 seconds)
13:29:51 × acowley quits (~acowley@c-68-83-22-43.hsd1.nj.comcast.net) (Quit: ZNC - http://znc.in)
13:35:15 <BusConscious> Why does fork(2) in unistd.h fork the calling thread, but forkProcess in Haskell not?
13:35:28 <BusConscious> I somewhat stumbled upon that earlier today
13:35:38 gnyeki joins (~gnyeki@user/gnyeki)
13:37:01 <geekosaur> forkProcess shuts down the Haskell runtime (including its manager threads, notwithstanding what merijn said earlier) before forking. I think this has to be done in the main thread
13:38:42 <geekosaur> it's best not to rely on thread behavior around fork() anyway; as merijn said, all guarantees go out the window in a threaded program
13:39:07 <geekosaur> because you have no idea what state any other thread is in and threads are *not* copied into the new process
13:39:56 <geekosaur> (nor would othose other threads know they'd been copied, if they were, so things would quickly go awry)
13:40:37 <BusConscious> I don't need multithreading in my shell interpreter .. I think?
13:41:14 <geekosaur> you don't
13:41:17 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:41:24 tromp joins (~textual@dhcp-077-249-230-040.chello.nl)
13:41:48 <geekosaur> shell interpreters are designed and intended to manage processes, not threads
13:44:08 [Leary] joins (~Leary]@122-58-228-205-vdsl.sparkbb.co.nz)
13:44:10 × odnes quits (~odnes@5-203-251-36.pat.nym.cosmote.net) (Ping timeout: 240 seconds)
13:44:16 ashln joins (~ashln@98.38.236.123)
13:44:34 califax joins (~califax@user/califx)
13:44:50 × jgeerds quits (~jgeerds@55d45f48.access.ecotel.net) (Ping timeout: 240 seconds)
13:47:22 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
13:48:19 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
13:48:19 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
13:48:19 wroathe joins (~wroathe@user/wroathe)
13:57:50 × infinity0 quits (~infinity0@185.112.146.113) (Remote host closed the connection)
13:59:04 × califax quits (~califax@user/califx) (Remote host closed the connection)
13:59:53 infinity0 joins (~infinity0@185.112.146.113)
14:01:46 califax joins (~califax@user/califx)
14:01:55 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
14:02:18 Pickchea joins (~private@user/pickchea)
14:15:30 <Benzi-Junior> is there a "sleep" function available in base or the STM package, I'm just not finding anything
14:16:43 × merijn quits (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
14:16:43 × Vajb quits (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
14:16:44 <geekosaur> Control.Concurrent.threadDelay
14:17:14 <Benzi-Junior> ye, that's what I thought
14:18:03 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
14:18:46 <geekosaur> pausing the whole process á la C's sleep() would break the I/O manager, so isn't a thing
14:20:25 <Benzi-Junior> geekosaur, interesting, I was just looking to avoid having to import additional libraries to solve the task I've been set
14:20:34 <geekosaur> be warned that threadDelay is in microseconds
14:20:45 <Benzi-Junior> ye I already discovered that
14:21:14 <geekosaur> afaik Control.Concurrent is in base
14:21:34 <Benzi-Junior> question, why is Control.Concurrent.threadDelay available in ghci without importing it?
14:21:52 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
14:21:58 <Benzi-Junior> geekosaur, well that's what I thought after discovering ^ and that hoogle said so
14:22:02 <geekosaur> ghci is magic, if you use a fully qualified name it implicitly imports it
14:22:38 <geekosaur> runghc does the same, but ghc doesn't
14:23:30 shriekingnoise joins (~shrieking@201.231.16.156)
14:25:31 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
14:26:24 <mrianbloom> tomsmeding: My solution to that problem was to use an injective open type family. https://replit.com/@IanBloom/TestTypeFamilyGADT#Main.hs
14:28:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:31:27 Sgeo joins (~Sgeo@user/sgeo)
14:31:27 califax joins (~califax@user/califx)
14:33:54 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
14:39:08 GascOwn joins (~gasc_own@151.16.46.77)
14:43:19 cfricke joins (~cfricke@user/cfricke)
14:43:42 merijn joins (~merijn@c-001-001-001.client.esciencecenter.eduvpn.nl)
14:47:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
14:48:09 califax joins (~califax@user/califx)
14:49:31 [_] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:49:31 <sm> wow, I didn't know that about ghci
14:51:53 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 252 seconds)
14:52:34 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Quit: WeeChat 2.8)
14:55:06 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
14:57:26 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
14:58:25 vicfred joins (~vicfred@user/vicfred)
15:00:36 × Alleria quits (~textual@user/alleria) (Read error: Connection reset by peer)
15:06:50 × Infinite quits (~Infinite@49.39.122.221) (Ping timeout: 252 seconds)
15:07:30 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
15:07:40 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:a6ac:910b:92e7:63a8) (Remote host closed the connection)
15:09:43 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:c365:1120:4914:7262) (Quit: WeeChat 2.8)
15:09:47 × [_] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
15:10:33 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
15:11:09 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
15:15:10 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Ping timeout: 240 seconds)
15:16:29 Tuplanolla joins (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi)
15:19:12 Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2)
15:19:34 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
15:21:10 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
15:21:20 × son0p quits (~ff@181.136.122.143) (Remote host closed the connection)
15:25:26 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Ping timeout: 252 seconds)
15:29:54 × GascOwn quits (~gasc_own@151.16.46.77) (Read error: Connection reset by peer)
15:33:50 × califax quits (~califax@user/califx) (Remote host closed the connection)
15:34:34 × mjs2600 quits (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net) (Quit: ZNC 1.8.2 - https://znc.in)
15:34:49 mjs2600 joins (~mjs2600@c-24-91-3-49.hsd1.vt.comcast.net)
15:36:48 califax joins (~califax@user/califx)
15:38:36 KCombinator joins (~KCombinat@118.179.211.17)
15:39:19 Infinite joins (~Infinite@49.39.115.183)
15:39:27 <KCombinator> hello folks
15:39:44 <KCombinator> this is an opinion question
15:40:07 <KCombinator> I have been learning haskell on/off for a while now and I feel pretty confident in the basics
15:40:25 <KCombinator> but then I tried to reinforce that understanding by teaching others
15:40:40 <KCombinator> and before that teaching begins, I usually need to sell Haskell
15:40:52 <KCombinator> since usually they're like, "I can just use Python bro"
15:41:25 <tdammers> some wisdom from my own experience:
15:41:28 <KCombinator> which is fine and dandy, but I find that Haskell is in a unique position where the mental framework you need to understand its value is developed while you learn it
15:41:33 <tdammers> - you cannot convince someone against their will
15:41:41 <tdammers> - meditate on the problem-solution ordering
15:42:04 <KCombinator> "- meditate on the problem-solution ordering"
15:42:08 <c_wraith> I don't think I'd try any stronger sell than "learning new stuff is fun, and Haskell is great for learning new stuff."
15:42:09 <KCombinator> could you elaborate on this?
15:42:16 <tdammers> - don't advocate for Haskell on the job until you're way past the beginner stage, because when something doesn't work, you will have to be able to fix it
15:42:29 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
15:42:36 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
15:42:59 <maerwald> I think I've never sold Haskell to someone. Why would you even do that
15:43:05 <tdammers> the problem-solution ordering is a teaching concept, about 100 years old or so, and slowly gaining traction in today's education. the core idea is that you should always present the problem before the solution
15:44:03 <KCombinator> c_wraith: sadly, not everyone is motivated by fun, hence the need for a down-to-earth pitch that goes like "hey you've got a broken tool; here's a better one"
15:44:22 <tdammers> maerwald: for the monies, of course. like the shady guy on Sesame Street: "psst, hey you, wanna buy a haskell?"
15:44:36 <Rembane> MONEY!
15:44:42 <maerwald> if they don't wanna learn Haskell, I wouldn't teach them
15:44:58 <tdammers> anyway, selling people in Blub Valley on a "better" programming language is extremely difficult and usually ends in frustration
15:45:49 <tdammers> I've tried it with PHP folks, Python folks, Clojure folks, Java folks, and the result is always the same - someone who doesn't consider their current situation painful enough will simply not see any benefits
15:45:57 <Rembane> KCombinator: Out of pure curiosity on my part, why do you want to teach Haskell?
15:46:04 <KCombinator> tdammers: ah i see. that makes sense. the question i pose is basically, "what is the problem that haskell solves better than others and how?"
15:46:31 <KCombinator> tdammers: i wouldn't mind standing by the dark alleys at night and dealing some ol' haskpills ;)
15:46:57 <tdammers> the problem Haskell solves better is "most of programming", but explaining the "how" requires quite a lot of elaboration
15:46:57 <KCombinator> Rembane: it's a strategy that's worked for me when I want to make sure I really understand something. I teach it.
15:47:23 <tdammers> what Haskell brings to the table doesn't pay off until your project is reasonably large, complex, and has undergone a fair amount of organic growth
15:48:09 <KCombinator> tdammers: yep, that's the exact trouble I have because with programming-in-the-small it's easy to point to a neat trick in your lang and go, "look ma! no hands"
15:48:20 <tdammers> staying on top of that complexity through compiler-supported certainty is where Haskell shines. Haskell makes it easier to write code that is "obviously bug-free", easy and safe to refactor, easy to read, etc.
15:48:28 <Rembane> KCombinator: That's cool. My hypothesis is that there are people out there who want to learn because they like programming languages, if you find any of those people it should be easier to learn Haskell by teaching them.
15:48:30 <KCombinator> kind of hard to replicate that wow factor with Haskell since small programs just look like an exercise in sadomasochism
15:48:55 <Rembane> I think the area where Haskell shines regardless of size of program is in interpreters and compilers.
15:48:59 <KCombinator> Rembane: hmm..point taken
15:49:08 <geekosaur> <--one of them
15:49:15 <tdammers> indeed. Haskell in the small is not that much greater than most mainstream languages, and coming from an imperative language, you have to make quite a few sacrifices in order to reap the benefits
15:49:18 <KCombinator> @geekos
15:49:18 <lambdabot> Unknown command, try @list
15:49:35 <KCombinator> geekosaur: could you wipe your brain so i can teach you haskell XD
15:50:16 <tdammers> and yeah, compilers, interpreters, transformation tools, DSLs - to the extent that a Haskeller's first instinct with any given problem domain is "let's build a little EDSL that captures the problem domain, and then we'll simply write the solution in that"
15:50:35 <geekosaur> wouldn't help much, I'm also strongly into self-learning
15:50:51 <KCombinator> geekosaur: damn it :/
15:51:35 <KCombinator> tdammers: hmm...while we are on that topic, I think that makes for a pretty strong case for Haskell
15:51:42 <KCombinator> the DSLs
15:52:18 <KCombinator> the way I see it, all programming APIs are basically DSLs
15:52:28 <KCombinator> but Haskell makes writing DSLs fun
15:52:33 <KCombinator> as well as using them
15:52:40 <KCombinator> okay maybe the last part not so much lol
15:52:45 <tdammers> API and DSL are really just two ways of looking at the same thing
15:52:53 <KCombinator> I shudder from the type errors I see sometimes :s
15:53:00 <tdammers> but the "DSL" lens tends to be more useful as a user programmer
15:53:18 cosimone` joins (~user@93-44-186-171.ip98.fastwebnet.it)
15:53:23 <KCombinator> tdammers: right
15:53:56 <geekosaur> Haskell encourages thinking through a problem first and designing a proper solution up front, plus enforcing discipline that is useful in other languages (even untyped ones)
15:54:10 <Rembane> KCombinator: Have you taken a look at Purescript btw?
15:54:12 × cosimone quits (~user@2001:b07:ae5:db26:57c7:21a5:6e1c:6b81) (Ping timeout: 244 seconds)
15:54:31 <maerwald> geekosaur: that's a bit far fetched imo
15:55:39 <KCombinator> Rembane: nope, but i have heard of it
15:57:48 <Rembane> KCombinator: Purescript is Haskell but for frontend web development and with strict semantics. This means that frontend web development can be done in Purescript and might be a smaller jump.
15:58:09 ec_ joins (~ec@gateway/tor-sasl/ec)
15:59:06 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
15:59:17 <KCombinator> Rembane  wow i feel like i was living under a rock lol
15:59:44 <maerwald> Haskell won't make a better engineer per se. It might (for some) cause them to think more precisely about effects, data etc.
16:00:00 <tdammers> geekosaur: IME, Haskell doesn't enforce "upfront design" at all - on the contrary, I find that Haskell makes it much easier to just start typing code and then progressively refining it to approach the correct solution
16:00:07 × yoggurt[m] quits (~yoggurtma@2001:470:69fc:105::2:ba5) (Quit: You have been kicked for being idle)
16:00:19 <KCombinator> Rembane thanks for that. this is actually a good in for me
16:00:20 <tdammers> mainly because refactoring is so ridiculously safe and straightforward
16:00:55 <Rembane> KCombinator: There are many good rocks to live under. :)
16:00:57 <Rembane> KCombinator: No worries!
16:01:00 × Vajb quits (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi) (Read error: Connection reset by peer)
16:01:05 <KCombinator> tdammers i agree. i always feel overwhelmed when using APIs in say, python
16:01:08 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
16:01:08 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
16:01:08 wroathe joins (~wroathe@user/wroathe)
16:01:15 <KCombinator> too much stuff to keep in your head
16:01:25 <KCombinator> Haskell feels idiot proof
16:01:34 <maerwald> python is easy... you just have to remember that your unit tests always have to be 10x the size of your implementation
16:01:44 <Rembane> Haskell makes a worse engineer when I'm not coding in Haskell. I'm like: "I'll just change this little thing here, the typeche... the test suite will catch any regressions!"
16:01:45 <KCombinator> maerwald  lol
16:01:53 <maerwald> no... that's what I actually do in python
16:01:56 <maerwald> and it works well then
16:02:00 Vajb joins (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi)
16:02:31 <KCombinator> sadly unit tests are pretty rare at my work
16:02:57 <tdammers> I have never gotten to the point where unit tests can guide refactorings the way types do in Haskell
16:03:39 <maerwald> if you've a shitton of them... they do. It's just... well, a shitton of work
16:03:58 <KCombinator> tdammers haha yeah i agree. i feel like unit tests often implement a duct-tape type system
16:04:47 <maerwald> but if someone pays you for that nonsense, why not
16:04:47 <KCombinator> i subscribe to the ethos of "dont work if the computer can do it"
16:05:00 <KCombinator> but well, then you meet reality haha
16:05:20 econo joins (uid147250@user/econo)
16:05:47 <KCombinator> i wonder if in the 23rd century our tools will be so advanced that unit tests will look like ancient hieroglyphics level tech
16:06:33 <maerwald> I don't think there's anything that can replace unit tests. QuickCheck certainly can't, unless you're abusing it in ways it wasn't meant for
16:06:33 <KCombinator> we have only been programming since like the 70s or so right so we're pretty much in a neophyte class discipline
16:06:41 <geekosaur> may be there by the 22nd. ask someone born in the early 1900s
16:07:10 <maerwald> but hey... unit tests test for expected regressions, so don't expect anything else
16:07:51 <maerwald> the times they uncover logic bugs is probably zero
16:09:11 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
16:09:27 × acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
16:09:42 × Infinite quits (~Infinite@49.39.115.183) (Quit: Client closed)
16:11:27 Infinite joins (~Infinite@49.39.115.183)
16:20:11 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 258 seconds)
16:34:12 razetime joins (~quassel@49.207.193.240)
16:40:21 gdown joins (~gavin@h69-11-149-231.kndrid.broadband.dynamic.tds.net)
16:42:17 × zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection)
16:42:18 × Vajb quits (~Vajb@n5ar9yynwxqg80e32-2.v6.elisa-mobile.fi) (Read error: Connection reset by peer)
16:43:00 zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
16:43:05 Vajb joins (~Vajb@hag-jnsbng11-58c3a8-176.dhcp.inet.fi)
16:44:55 wonko- joins (~wjc@user/wonko)
16:45:19 × coot quits (~coot@213.134.190.95) (Quit: coot)
16:46:00 <tdammers> unit tests do serve a purpose, but out in the wild, I'd wager that 90% of unit tests would be better rewritten as property checks or types
16:46:31 <tdammers> biggest problem with unit tests is that, unlike types, the don't automatically propagate
16:47:23 × zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Ping timeout: 252 seconds)
16:47:47 <KCombinator> tdammers do you think the new hype around gradual typing provides a nice ramp to transition from only-tests to tests-and-types?
16:50:10 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 240 seconds)
16:50:30 <KCombinator> I'm kind of late to that party. Only started to look into it because I kept seeing it in the pytorch docs (e.g., Union[String, Tensor] in Python for a Haskell Either)
16:51:14 <KCombinator> Basically you need to use these annotations and a separate tool (mypy) to enforce types
16:51:19 <KCombinator> kind of like typescript I guess
16:52:22 <KCombinator> I gotta say though, my understanding of type systems is very rudimentary so the academic research wasn't very easy to get into
16:52:44 <tdammers> I thought the 'gradual typing' hype had already died again
16:52:55 <tdammers> python is just late to the party
16:53:22 <tdammers> but anyway, I think "gradual typing" is kind of misguided and nowhere near as useful as it may seem
16:54:01 <tdammers> the big big win with typed code is that you gain certainty - but that only works if *everything* is typed, or at least, if you can have clear enforced boundaries around the untyped stuff
16:54:18 <tdammers> but if your starting point is "everything is untyped, and now we add some type annotations", you're unlikely to achieve that
16:54:28 <tdammers> in short, type systems should be opt-out, not opt-in
16:56:41 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
16:56:56 × ashln quits (~ashln@98.38.236.123) (Ping timeout: 272 seconds)
16:57:09 ashln joins (~ashln@98.38.236.123)
16:58:01 <sm> https://www.extrema.is/articles/haskell-books/learn-haskell-blog-generator looks nice
17:01:15 × razetime quits (~quassel@49.207.193.240) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:01:35 <maerwald> tdammers: IME, there's only a very small intersection of property tests and unit tests. It's just that people usually understand neither concept
17:02:21 <maerwald> yes, you can always shove custom data into your arbitrary instance
17:02:43 zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
17:02:44 × MajorBiscuit quits (~MajorBisc@c-001-029-035.client.tudelft.eduvpn.nl) (Ping timeout: 258 seconds)
17:03:12 <maerwald> but I'd rather not rely on an arbitrary instance to create (for example) very specific filepaths such as: \\?\C:foo/bar
17:05:31 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
17:06:11 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
17:06:56 <maerwald> and if you have very complex data, it's almost impossible to come up with a good generator that will emit a set with very specific properties
17:07:29 <Benzi-Junior> Hey, if I have a "Monad m => m a" and a function "a -> b -> c" what is the appropriate way to use the output from the monad as the first argument for the function ?
17:08:24 <maerwald> as in: Test.QuickCheck.elements can be abused as unit tests, yeah
17:09:06 <maerwald> but it's a failure, because you have low variance
17:10:36 <dminuoso> Is there a way to share some build-depends constraints between two or more cabal files?
17:10:59 <maerwald> custom templating
17:11:05 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
17:11:56 geekosaur wonders if 3.8's "import" works with files or only urls
17:12:18 <dminuoso> geekosaur: They are not necessarily mutually exclusive
17:12:26 <dminuoso> Given file:/// or the likes
17:12:33 <geekosaur> true
17:12:41 <geekosaur> unless it doesn't handle file:
17:13:06 <geekosaur> rc1's out, so it's relatively easy to test
17:13:22 <maerwald> dminuoso: that's for project files
17:13:25 <maerwald> not cabal files
17:13:43 <dminuoso> Ah I see
17:14:17 werneta joins (~werneta@137.79.206.133)
17:14:22 <maerwald> that would be a disaster if cabal files would allow imports
17:14:29 <Rembane> Benzi-Junior: They aren't really connected, are the a's related in some way?
17:15:22 <Benzi-Junior> Rembane, same a
17:15:31 <geekosaur> maerwald, it was added specifically to support fetching cabal.freeze files from stackage.org corresponding to various resolvers
17:15:38 <geekosaur> so it may have other limitations
17:15:44 <maerwald> geekosaur: I know
17:16:41 <sclv> geekosaur: it handles both files and urls just fine
17:17:03 <Benzi-Junior> I thought it should be >>= but I was wrong
17:17:07 <maerwald> I don't see how that relates to your question though
17:17:20 <sclv> or rather filesystem urls and http urls
17:17:22 <Rembane> :t (>>=) -- Benzi-Junior
17:17:24 <lambdabot> Monad m => m a -> (a -> m b) -> m b
17:17:30 <Rembane> :t fmap -- Benzi-Junior
17:17:32 <lambdabot> Functor f => (a -> b) -> f a -> f b
17:17:41 <geekosaur> Benzi-Junior, the monads have to match so you can't just switch to ((->) e) mid-stream
17:18:09 <sclv> but yeah there's absolutely no way to share build-depends constraints between different cabal files. one option would be merging the two cabal files into a single file with more targets, if the different things are that coupled
17:18:45 <maerwald> I'd probably use dhall or something to generate the cabal files
17:19:06 <dminuoso> I guess that can actually work for us. There's a bunch of executable targets, but we wont publish this on hackage anyway
17:19:12 × zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Ping timeout: 260 seconds)
17:19:42 × mbuf quits (~Shakthi@122.174.45.107) (Quit: Leaving)
17:20:26 <dminuoso> sclv: I guess an added benefit is that a single cabal file tends to behave nicer in HLS as well.
17:21:14 <dminuoso> (If one package A depends on another B, and you modify files from package B, at least on my machine HLS doesnt automatically pick up these changes when switching back to A without restarting the lsp workspace)
17:24:45 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:26:54 × Infinite quits (~Infinite@49.39.115.183) (Ping timeout: 252 seconds)
17:27:29 califax joins (~califax@user/califx)
17:29:28 jakalx joins (~jakalx@base.jakalx.net)
17:29:34 × kjak quits (~kjak@pool-108-45-56-21.washdc.fios.verizon.net) (Ping timeout: 246 seconds)
17:30:06 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:30:36 califax joins (~califax@user/califx)
17:33:32 × califax quits (~califax@user/califx) (Remote host closed the connection)
17:39:01 Simon15 joins (~Simon@2001:4ca0:0:f237:ec6d:7c65:e03a:7bef)
17:39:04 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.5)
17:40:12 sebastiandb_ joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net)
17:40:55 califax joins (~califax@user/califx)
17:44:32 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
17:44:41 × KCombinator quits (~KCombinat@118.179.211.17) (Quit: Client closed)
17:45:08 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
17:46:08 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
17:46:34 nate3 joins (~nate@98.45.169.16)
17:48:50 × werneta quits (~werneta@137.79.206.133) (Ping timeout: 240 seconds)
17:49:01 zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
17:52:22 × Simon15 quits (~Simon@2001:4ca0:0:f237:ec6d:7c65:e03a:7bef) (Quit: Client closed)
17:53:08 × zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection)
17:53:21 zincy joins (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d)
17:53:58 _ht joins (~quassel@231-169-21-31.ftth.glasoperator.nl)
17:54:58 <Benzi-Junior> http://ix.io/3ZHO < at the bottom, is my implementation of the helper function a sensible way to deal with a single agent ?
17:57:47 <Benzi-Junior> and does anyone know of a way to do the "Delay" case without importing Control.Concurrent ?
17:57:59 <dminuoso> What's wrong with importing Control.Concurrent?
17:59:47 <dminuoso> Your atoms function is missing the Pure case,
17:59:50 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
18:00:04 × littlebobeep quits (~alMalsamo@gateway/tor-sasl/almalsamo) (Ping timeout: 240 seconds)
18:01:09 <dminuoso> Also you're not using the msg in the Receive case
18:06:53 × ph88 quits (~ph88@ip5f5af71f.dynamic.kabel-deutschland.de) (Quit: Leaving)
18:07:33 odnes joins (~odnes@5-203-131-121.pat.nym.cosmote.net)
18:08:18 × jrm quits (~jrm@user/jrm) (Quit: ciao)
18:08:22 unit73e joins (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291)
18:09:14 × pottsy quits (~pottsy@129.227.183.244) (Ping timeout: 265 seconds)
18:10:01 jakalx parts (~jakalx@base.jakalx.net) (Error from remote client)
18:10:25 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
18:10:41 <Benzi-Junior> dminuoso, well so far I hadn't had to add additional libs and was wondering if I was missing something in Control.Concurrent.STM
18:11:16 jakalx joins (~jakalx@base.jakalx.net)
18:11:17 <geekosaur[m]> It's in base
18:11:30 × Pickchea quits (~private@user/pickchea) (Ping timeout: 240 seconds)
18:11:40 <dminuoso> Benzi-Junior: These are not separate libraries, they are just modules.
18:15:53 werneta joins (~werneta@137.78.30.207)
18:16:16 × odnes quits (~odnes@5-203-131-121.pat.nym.cosmote.net) (Remote host closed the connection)
18:16:33 odnes joins (~odnes@5-203-131-121.pat.nym.cosmote.net)
18:18:34 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
18:21:42 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
18:23:12 jrm joins (~jrm@user/jrm)
18:26:13 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
18:26:18 × alp quits (~alp@user/alp) (Ping timeout: 258 seconds)
18:26:53 littlebobeep joins (~alMalsamo@gateway/tor-sasl/almalsamo)
18:28:48 alp joins (~alp@user/alp)
18:30:22 × adanwan quits (~adanwan@gateway/tor-sasl/adanwan) (Remote host closed the connection)
18:30:55 adanwan joins (~adanwan@gateway/tor-sasl/adanwan)
18:34:42 × chele quits (~chele@user/chele) (Remote host closed the connection)
18:38:12 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
18:44:19 Pickchea joins (~private@user/pickchea)
18:46:31 gehmehgeh_ joins (~user@user/gehmehgeh)
18:46:45 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:48:04 × gehmehgeh quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds)
18:48:06 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
18:49:11 × odnes quits (~odnes@5-203-131-121.pat.nym.cosmote.net) (Quit: Leaving)
18:49:15 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
18:51:20 × Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed)
18:55:40 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
18:57:55 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
18:58:08 × sebastiandb_ quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 244 seconds)
18:58:19 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
18:58:26 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
18:59:05 ulvarrefr joins (~user@185.24.53.152)
19:00:51 Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2)
19:02:17 <ashln> What's the (!) function in blaze-html? I believe it's operating over monoids (or semigroups?).
19:03:54 coot joins (~coot@213.134.190.95)
19:04:33 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
19:04:35 <geekosaur> https://hackage.haskell.org/package/blaze-markup-0.8.2.3/docs/Text-Blaze.html#v:-33-
19:05:11 <ashln> oh huh, hoogle failed me there - thanks :)
19:07:49 slack1256 joins (~slack1256@186.11.84.227)
19:08:20 <slack1256> I recall there was a tool to generate flame-graphs on memory usage per cost-centre, but I cannot remember the name. Anyone can help me out?
19:09:14 <dminuoso> ghc-prof-flamegraph ?
19:09:55 <slack1256> That probably is!
19:09:56 × chreekat2 quits (~b@dys-fmydgp1rbq8l5qb7t-3.rev.dnainternet.fi) (Ping timeout: 248 seconds)
19:10:46 <slack1256> There was another, saboteur? it was french named. It was like a frontend to this one.
19:12:00 <slack1256> It was profiteur!
19:12:01 <maerwald> baguette?
19:12:03 <maerwald> oh
19:13:43 roboguy joins (~roboguy@user/roboguy)
19:14:50 × Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed)
19:15:14 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
19:17:14 × chomwitt quits (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) (Quit: Leaving)
19:17:37 chomwitt joins (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4)
19:19:18 <slack1256> ghc-prof-flamegraph and profiteur are excelent tools to extend the value we get from .prof files (or their JSON equiv). But that info is only printed at the end of the program. If I want to know the memory usage of my program /while it is running/, I have to rely on manipulating the .hp files as told on here https://downloads.haskell.org/ghc/latest/docs/html/users_guide/profiling.html#manipulating-the-hp-file . Is there a newer alternative to that? may
19:19:18 <slack1256> be using the eventlog or some other tool?
19:27:12 × coot quits (~coot@213.134.190.95) (Quit: coot)
19:28:43 Guest27 joins (~Guest27@2601:281:d47f:1590::59a2)
19:31:48 sebastiandb_ joins (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net)
19:33:09 <geekosaur> I think you can run the eventlog to a socket and use that, but iirc ghc-eventlog-socket isn't too stable as yet (it's a hack)
19:34:16 × ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal)
19:34:29 slac16641 joins (~slack1256@191.125.99.201)
19:35:49 gehmehgeh_ is now known as gehmehgeh
19:36:22 × slack1256 quits (~slack1256@186.11.84.227) (Ping timeout: 244 seconds)
19:37:00 acidjnk_new joins (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de)
19:39:01 <dminuoso> Where can I find the documentation on the Paths_ api?
19:39:46 money joins (~Gambino@user/polo)
19:40:37 × money quits (~Gambino@user/polo) (Client Quit)
19:40:46 pavonia joins (~user@user/siracusa)
19:40:57 <geekosaur> https://cabal.readthedocs.io/en/3.6/cabal-package.html#accessing-data-files-from-package-code is the best there is currently, I think
19:41:27 <dminuoso> Thanks! How did you even find that? That full text search refused to yield fruitful results with `Paths_`?
19:42:08 <geekosaur> I remembered that it wss part of the "Package description" chapter
19:44:18 <geekosaur> right. Paths_ doesn't work but Paths_pkgname does
19:44:26 <geekosaur> kinda not helpful
19:45:06 <__monty__> It's like how GitHub's search wordsplits on _ and makes the code search useless if the search term is common words separated by _'s.
19:45:13 <dminuoso> Im sure writing a full text search that is both accurate enough when you want it to be, but fuzzy enough when you dont know what you're looking for, is a very complicated business.
19:45:29 <dminuoso> But still frustrating.
19:45:48 <dminuoso> __monty__: That's okay, source code is not github's strength.
19:46:25 <dminuoso> Im being almost serious even, the product does not revolve around code, but all the coordination ardount i
19:48:26 pretty_dumm_guy joins (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655)
19:48:52 Guest77 joins (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2)
19:48:58 <Guest27> Also feeding all of it to copilot :P
19:51:25 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
19:53:28 × Feuermagier_ quits (~Feuermagi@84.17.49.18) (Remote host closed the connection)
19:54:07 ashln joins (~ashln@98.38.236.123)
19:54:59 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
19:55:38 dschrempf joins (~dominik@070-207.dynamic.dsl.fonira.net)
20:00:52 × Guest27 quits (~Guest27@2601:281:d47f:1590::59a2) (Quit: Client closed)
20:02:02 Guest27 joins (~Guest27@2601:281:d47f:1590::59a2)
20:03:02 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:03:43 × _ht quits (~quassel@231-169-21-31.ftth.glasoperator.nl) (Remote host closed the connection)
20:05:20 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
20:06:15 × zincy quits (~zincy@2a01:cb18:82de:bf00:7c30:ae5d:9b9b:c61d) (Remote host closed the connection)
20:07:23 × ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal)
20:07:34 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Remote host closed the connection)
20:08:14 agumonkey joins (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7)
20:09:52 slac16641 is now known as slack1256
20:11:41 kjak joins (~kjak@pool-108-31-68-111.washdc.fios.verizon.net)
20:12:22 ashln joins (~ashln@98.38.236.123)
20:18:25 <slack1256> Is there an eventlog alternative to .hp files?
20:18:51 <slack1256> Some tools to generate diagrams from it would be great
20:21:37 × lyle quits (~lyle@104.246.145.85) (Quit: WeeChat 3.5)
20:22:04 dcoutts__ joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
20:23:21 <geekosaur> I think you'll have to ask in #ghc. eventlogs are still evolving and, while my understanding is that they're supposed to replace the other stuff at some point, I don't know how far along they are
20:24:24 × dschrempf quits (~dominik@070-207.dynamic.dsl.fonira.net) (Quit: WeeChat 3.5)
20:24:25 × dcoutts_ quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds)
20:24:25 × dcoutts quits (~duncan@host86-144-78-203.range86-144.btcentralplus.com) (Ping timeout: 244 seconds)
20:25:14 stackdroid18 joins (14094@user/stackdroid)
20:25:29 dcoutts joins (~duncan@host86-144-78-203.range86-144.btcentralplus.com)
20:29:12 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
20:30:31 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Client Quit)
20:35:10 × haskl quits (~haskl@user/haskl) (Ping timeout: 240 seconds)
20:35:10 haskl[error] joins (~haskl@user/haskl)
20:36:47 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 255 seconds)
20:38:53 × fjmorazan quits (~quassel@user/fjmorazan) (Quit: fjmorazan)
20:38:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
20:39:29 fjmorazan joins (~quassel@user/fjmorazan)
20:41:11 zeenk joins (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806)
20:42:36 × califax quits (~califax@user/califx) (Remote host closed the connection)
20:43:16 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
20:45:45 nate3 joins (~nate@98.45.169.16)
20:46:09 × sebastiandb_ quits (~sebastian@pool-108-31-128-56.washdc.fios.verizon.net) (Ping timeout: 276 seconds)
20:47:34 trisolaran joins (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr)
20:49:07 trillp joins (~trillp@69.233.98.238)
20:50:42 × nate3 quits (~nate@98.45.169.16) (Ping timeout: 276 seconds)
20:50:42 × slack1256 quits (~slack1256@191.125.99.201) (Read error: Connection reset by peer)
20:51:11 slack1256 joins (~slack1256@186.11.84.227)
20:51:39 × _73 quits (~user@pool-173-76-102-248.bstnma.fios.verizon.net) (Remote host closed the connection)
20:57:38 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:59:55 califax joins (~califax@user/califx)
21:08:07 × agumonkey quits (~user@2a01:e0a:8f9:d3e0:b117:81a8:33f6:93e7) (Ping timeout: 240 seconds)
21:08:11 <Bulby[m]> I know for a fact that my toy lang will crash if it _makes_ more than `maxBound :: Int` variables. not has at one time, makes.
21:08:26 <Bulby[m]> would there be a way to free up unused ids as a resource?
21:08:59 <geekosaur[m]> you are now looking at garbage collection and possibly a free list
21:09:26 <Bulby[m]> I sort of garbage collect already when exiting blocks and functions, but that doesn't free the ids because of my Counter effect
21:09:58 <geekosaur[m]> right, that's where the free list comes in
21:10:44 <geekosaur[m]> your `Counter` would become more complex because you'd have to feed ids or ranges back to it and it would allocate from those first before generating a new id
21:11:15 <Bulby[m]> that means it couldn't run as an Input anymore... and would require a lot of work on it
21:11:21 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/rewrite/src/Polysemy/Counter.hs
21:11:29 <tomsmeding> Bulby[m]: use Natural?
21:11:38 <Bulby[m]> the general idea of my Counter effect rn
21:11:45 <tomsmeding> https://hackage.haskell.org/package/base-4.16.0.0/docs/Numeric-Natural.html#t:Natural
21:11:58 <tomsmeding> all nonnegative integers
21:12:44 <tomsmeding> slightly less efficient than Int, but solves all problems
21:12:47 <Bulby[m]> that still feels wasteful - wouldn't that mean as time goes on, the size of the id gets bigger and bigger?
21:12:57 <tomsmeding> I mean, yes, but suuuuuper slowly
21:13:11 × ashln quits (~ashln@98.38.236.123) (Quit: Lost terminal)
21:13:20 <monochrom> Is that not better than crashing?
21:13:24 <tomsmeding> sure, after 40-odd years you can run out of Int if you allocate like crazy, but you aren't going to run out of twice 64-bits
21:13:33 <monochrom> Good, fast, cheap --- pick two.
21:13:36 <geekosaur[m]> yes, it'd be wasteful over time but garbage collecting Ints is the only other approach
21:13:36 <Bulby[m]> yes 😄
21:13:45 <tomsmeding> > 2 ^ 64 * 40 -- years
21:13:46 trillp parts (~trillp@69.233.98.238) (Leaving)
21:13:46 <lambdabot> 737869762948382064640
21:13:55 <tomsmeding> I think humanity doesn't exist anymore at that point
21:14:11 <tomsmeding> and after that many years you start having a counter that is _three_ machine words long!
21:14:13 <Bulby[m]> 40-odd years with Int?
21:14:34 × matijja quits (~matijja@193.77.181.201) (Quit: ZNC 1.8.2 - https://znc.in)
21:14:45 <tomsmeding> yesterday I computed that if you generate 1 new ID per CPU clock cycle, on a 5GHz processor, then it takes something like 45 years to overflow Int
21:14:50 matijja joins (~matijja@193.77.181.201)
21:14:55 <geekosaur[m]> tomsmeding is suggesting a 128-bit integer
21:15:05 <geekosaur[m]> I think
21:15:17 <Bulby[m]> ... does a toy program need to be running for 45 years
21:15:18 <tomsmeding> > 2 ^ 63 / (5 * 10 ^ 9) / 3600 / 24 / 365
21:15:20 <lambdabot> 58.4942417355072
21:15:25 <tomsmeding> ah, 58 years
21:15:33 <tomsmeding> geekosaur[m]: no, I'm suggesting Natural
21:15:49 <tomsmeding> and disproving that these IDs will get large that way
21:16:08 <monochrom> Let's spread some myth.
21:16:09 <Bulby[m]> if it takes that long I think it will be a non issue
21:16:13 <tomsmeding> Bulby[m]: even if you want it to run for 58 years, you're not going to allocate one ID per clock cycle
21:16:27 <monochrom> Natural is wasteful because each Natural allocates infinite memory.
21:16:32 × matijja quits (~matijja@193.77.181.201) (Client Quit)
21:16:40 <Bulby[m]> be quiet
21:17:19 matijja joins (~matijja@193.77.181.201)
21:17:19 <tomsmeding> just https://downloadmoreram.com/
21:17:33 Pickchea joins (~private@user/pickchea)
21:18:38 yrlnry joins (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net)
21:18:51 <tomsmeding> monochrom: does Integer then allocate twice infinite memory?
21:18:54 kenaryn joins (~aurele@89-88-44-27.abo.bbox.fr)
21:19:10 <Bulby[m]> 😱
21:19:16 <tomsmeding> we need a Turing machine with a bidirectional tape then!
21:19:16 <monochrom> This is where Hilbert's Hotel fits in.
21:20:11 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
21:20:29 <Bulby[m]> is haskell even capable of running my vardecl stmt in one clock cycle
21:20:50 <monochrom> This is where Hugs fits in.
21:20:57 <Bulby[m]> WHAT
21:20:59 <tomsmeding> Bulby[m]: no
21:21:07 <DigitalKiwi> in 58 years they're going to come back and yell at us
21:21:08 <monochrom> Hugs runs slower.
21:21:20 <monochrom> If you can run Haskell quickly, you can run Haskell slowly!
21:21:29 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 258 seconds)
21:21:51 jgeerds joins (~jgeerds@55d45f48.access.ecotel.net)
21:22:09 <tomsmeding> Bulby[m]: https://ircbrowse.tomsmeding.com/day/lchaskell/2022/06/08?id=579269#trid579269
21:22:27 <tomsmeding> not even yesterday, this morning!
21:25:11 <int-e> @time tomsmeding
21:25:11 <lambdabot> Local time for tomsmeding is Wed, 08 Jun 2022 23:25:11 +0200
21:25:21 × Guest27 quits (~Guest27@2601:281:d47f:1590::59a2) (Quit: Client closed)
21:25:35 <tomsmeding> where do you think ircbrowse's timezone comes from lol
21:25:40 <tomsmeding> but @time is cool
21:26:03 <int-e> though it relies on your client to be truthful...
21:26:18 <monochrom> I actually set my client to lie. :)
21:26:35 <int-e> tomsmeding: I don't know. I have this server set to UTC and a timezone configured for just this user.
21:26:42 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:27:02 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
21:27:21 <tomsmeding> int-e: I should probably change ircbrowse to serve logs in a consistent timezone as well. Currently it takes the system timezone of my server, which happens to be my own. :)
21:27:31 <int-e> eh. the real thing is, I didn't look closely at the timestamps in ircbrowse
21:28:17 <geekosaur> my client lies as well, since I run it in utc so logs etc. are more useful given that others are in different timezones
21:33:56 × Tuplanolla quits (~Tuplanoll@91-159-69-1.elisa-laajakaista.fi) (Quit: Leaving.)
21:34:29 × waleee quits (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340) (Ping timeout: 252 seconds)
21:35:17 × acidjnk_new quits (~acidjnk@p200300d0c7068b36d8e1b90c13cd8a15.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
21:35:58 waleee joins (~waleee@2001:9b0:213:7200:cc36:a556:b1e8:b340)
21:39:46 × roboguy quits (~roboguy@user/roboguy) ()
21:45:53 × Guest77 quits (~Guest77@2600:1700:6438:2810:65fe:5bd2:205c:e7f2) (Quit: Client closed)
21:47:02 × Unicorn_Princess quits (~Unicorn_P@93-103-228-248.dynamic.t-2.net) (Remote host closed the connection)
21:49:12 × trisolaran quits (~ye@roc37-h01-176-170-197-243.dsl.sta.abo.bbox.fr) (Ping timeout: 276 seconds)
21:50:31 <EvanR> Bulby[m], for your purposes pretending Int is unlimited might be practical. One data point here is sqlite's ROW_IDs. If they ever reach maxInt, then it will try some number of random Ints to try to find one that's not used
21:50:39 <EvanR> if that doesn't work "soon" it crashes
21:51:25 × stackdroid18 quits (14094@user/stackdroid) (Quit: hasta la vista... tchau!)
21:52:04 <EvanR> I find it hard to believe this has ever happened without intentionally skipping most of the Intspace
21:54:47 <EvanR> if you think about it, it sounds hard to get that strategy to actually crash. You'd need to have a LOT of IDs in use
21:55:31 stackdroid18 joins (~stackdroi@user/stackdroid)
21:55:51 <monochrom> But we are talking about s/in use/was used/
21:56:14 × jao quits (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net) (Read error: Connection reset by peer)
21:56:18 <geekosaur> test 1: forcibly set max id, test "random id"
21:56:21 <EvanR> Bulby[m] has a garbage collection algorithm to clear the heap of unused objects, which I assume means clearing the key
21:56:39 <geekosaur> test 2: write a db with every ID in use (presumably the table contains only a rowid)
21:56:42 <monochrom> No, the key is not cleared.
21:56:49 <EvanR> why not...
21:57:02 <monochrom> I don't know.
21:57:03 <Bulby[m]> it doesn't clear the key... the counter counts up oblivious to what is happening in the heap
21:57:07 × BusConscious quits (~martin@ip5f5acfd5.dynamic.kabel-deutschland.de) (Remote host closed the connection)
21:57:14 <EvanR> what bearing does this have on the strategy xD
21:57:18 <Bulby[m]> because polysemy effects 🙂
21:57:20 <monochrom> "I respect your decision."
21:58:00 <EvanR> anyway, this is similar to storing the runtime timer in a double... how many angels can dance at maxInt
21:59:05 <Bulby[m]> https://github.com/TheDrawingCoder-Gamer/lox-hs/blob/rewrite/src/Polysemy/Counter.hs it counts up til maxInt
21:59:27 <EvanR> geekosaur do you think it will crash, maybe because of birthday issues
21:59:30 <Bulby[m]> iirc [0..] implicitly adds upper bound if it is an instance of Bounded also
21:59:57 <EvanR> wat
22:00:23 <EvanR> > [2^63 - 5 ..]
22:00:25 <lambdabot> [9223372036854775803,9223372036854775804,9223372036854775805,922337203685477...
22:00:41 <EvanR> > [2^63 - 3 ..]
22:00:43 <lambdabot> [9223372036854775805,9223372036854775806,9223372036854775807,922337203685477...
22:00:58 × kenaryn quits (~aurele@89-88-44-27.abo.bbox.fr) (Quit: leaving)
22:01:07 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
22:01:07 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
22:01:07 wroathe joins (~wroathe@user/wroathe)
22:01:15 <Bulby[m]> > [2^63 -2 :: Int..]
22:01:16 <EvanR> something must be wrong with my coffee
22:01:16 <Bulby[m]> i can't do it on matrix lol
22:01:18 <lambdabot> <hint>:1:13: error: Operator applied to too few arguments: Int..
22:01:23 <monochrom> Perhaps use Word instead of Int to delay the "inevitable".
22:01:42 <Bulby[m]> """"inevitable""""
22:02:08 <geekosaur> Prelude> last [(maxBound::Int) - 10 ..]
22:02:08 <geekosaur> 9223372036854775807
22:02:21 kenaryn joins (~aurele@cre71-h03-89-88-44-27.dsl.sta.abo.bbox.fr)
22:02:54 <EvanR> so your list is finite
22:03:03 <geekosaur> also I'm surprised about not being able to do it on matrix, I was able to pm lambdabot with stuff earlier from my phone
22:03:05 <Bulby[m]> idk why we needed to test that, it says it in the description of Enum
22:03:15 <Bulby[m]> I was able to, just took a bit
22:03:34 <EvanR> if you wear an ultrafinitist hat, then the problem ... is not a problem xD
22:03:52 <EvanR> this list is as infinite as anything else
22:04:34 <monochrom> This fibonacci list is as infinite as the previous two fibonacci lists combined. :)
22:04:48 × wonko- quits (~wjc@user/wonko) (Ping timeout: 258 seconds)
22:06:02 × jbrechtel quits (~Srain@162-226-201-119.lightspeed.tukrga.sbcglobal.net) (Remote host closed the connection)
22:07:27 wonko- joins (~wjc@user/wonko)
22:07:28 × yrlnry quits (~yrlnry@pool-108-2-150-109.phlapa.fios.verizon.net) (Remote host closed the connection)
22:07:29 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:09:12 zebrag joins (~chris@user/zebrag)
22:11:18 × raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 276 seconds)
22:14:49 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:16:19 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
22:25:58 <zzz> its also as finite
22:26:55 <EvanR> yeah a quotienting of concepts into one
22:27:25 × gehmehgeh quits (~user@user/gehmehgeh) (Quit: Leaving)
22:32:54 × sagax quits (~sagax_nb@user/sagax) (Excess Flood)
22:33:04 jao joins (~jao@cpc103048-sgyl39-2-0-cust502.18-2.cable.virginm.net)
22:33:05 × Pickchea quits (~private@user/pickchea) (Ping timeout: 256 seconds)
22:38:12 × zeenk quits (~zeenk@2a02:2f04:a013:9000:e45d:7fb3:ec71:e806) (Quit: Konversation terminated!)
22:43:16 × unit73e quits (~emanuel@2001:818:e8dd:7c00:32b5:c2ff:fe6b:5291) (Ping timeout: 248 seconds)
22:43:32 × pretty_dumm_guy quits (trottel@gateway/vpn/protonvpn/prettydummguy/x-88029655) (Ping timeout: 260 seconds)
22:43:57 × eggplantade quits (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595) (Remote host closed the connection)
22:48:53 × forell quits (~forell@user/forell) (Ping timeout: 258 seconds)
22:49:40 forell joins (~forell@user/forell)
22:54:12 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
23:03:15 dextaa2 joins (~DV@user/dextaa)
23:03:23 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:04:31 × jespada quits (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net) (Ping timeout: 246 seconds)
23:04:31 × dextaa quits (~DV@user/dextaa) (Ping timeout: 246 seconds)
23:04:31 dextaa2 is now known as dextaa
23:04:36 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 258 seconds)
23:07:39 jespada joins (~jespada@cpc121022-nmal24-2-0-cust171.19-2.cable.virginm.net)
23:11:04 × ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
23:13:27 × chomwitt quits (~chomwitt@2a02:587:dc1f:5600:d683:3d28:fc15:22d4) (Ping timeout: 240 seconds)
23:14:19 × andrey_ quits (~andrey@p200300dbcf0a1200fc5b10ce87df1c2d.dip0.t-ipconnect.de) (Read error: Connection reset by peer)
23:16:34 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds)
23:18:04 eggplantade joins (~Eggplanta@2600:1700:bef1:5e10:b5bc:25b:5256:1595)
23:18:51 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:19:57 × HotblackDesiato quits (~HotblackD@gateway/tor-sasl/hotblackdesiato) (Remote host closed the connection)
23:19:57 × califax quits (~califax@user/califx) (Remote host closed the connection)
23:19:57 Katarushisu joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
23:20:23 HotblackDesiato joins (~HotblackD@gateway/tor-sasl/hotblackdesiato)
23:20:35 califax joins (~califax@user/califx)
23:33:25 Katarushisu8 joins (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net)
23:34:02 × Katarushisu quits (~Katarushi@cpc147334-finc20-2-0-cust27.4-2.cable.virginm.net) (Ping timeout: 244 seconds)
23:34:02 Katarushisu8 is now known as Katarushisu
23:39:02 × motherfsck quits (~motherfsc@user/motherfsck) (Ping timeout: 255 seconds)
23:48:20 wroathe joins (~wroathe@206-55-188-8.fttp.usinternet.com)
23:48:20 × wroathe quits (~wroathe@206-55-188-8.fttp.usinternet.com) (Changing host)
23:48:20 wroathe joins (~wroathe@user/wroathe)
23:52:24 × werneta quits (~werneta@137.78.30.207) (Ping timeout: 272 seconds)
23:54:42 × alp quits (~alp@user/alp) (Ping timeout: 260 seconds)
23:57:56 × xff0x quits (~xff0x@b133147.ppp.asahi-net.or.jp) (Ping timeout: 255 seconds)

All times are in UTC on 2022-06-08.