2022/06/08

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