2024/07/10

2024-07-10 00:02:25 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 00:04:17 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-07-10 00:04:45 +0200rvalue(~rvalue@user/rvalue)
2024-07-10 00:05:42 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 00:19:55 +0200acidjnk_new(~acidjnk@p200300d6e72cfb57c19ed6e10438e1d8.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
2024-07-10 00:23:00 +0200mikess(~mikess@user/mikess) (Ping timeout: 268 seconds)
2024-07-10 00:25:35 +0200mikess(~mikess@user/mikess)
2024-07-10 00:30:36 +0200cpressey(~weechat@176.254.71.203) (Quit: WeeChat 4.3.0)
2024-07-10 00:31:18 +0200xdminsy(~xdminsy@117.147.70.227)
2024-07-10 00:42:28 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-07-10 00:49:57 +0200gmg(~user@user/gehmehgeh) (Remote host closed the connection)
2024-07-10 01:01:05 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-07-10 01:06:21 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667) (Server closed connection)
2024-07-10 01:06:31 +0200TimWolla(~timwolla@2a01:4f8:150:6153:beef::6667)
2024-07-10 01:07:11 +0200mikess(~mikess@user/mikess) (Ping timeout: 272 seconds)
2024-07-10 01:09:10 +0200mikess(~mikess@user/mikess)
2024-07-10 01:15:10 +0200 <jackdk> Does there exist some kind of magic horrid low-level function that can test whether of not I'm looking at a thunk or not? I am trying to track down a possible laziness bug
2024-07-10 01:18:42 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-10 01:18:51 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-07-10 01:19:17 +0200tomku(~tomku@user/tomku) (Ping timeout: 240 seconds)
2024-07-10 01:19:20 +0200 <yin> jackdk: what have you tried so far?
2024-07-10 01:19:34 +0200tomku(~tomku@user/tomku)
2024-07-10 01:19:51 +0200 <yin> you can force evaluation with bang patterns, `seq`, or Debug.Trace
2024-07-10 01:21:13 +0200 <yin> a more complex alternative is to compile with profiling enabled and generate a profiling report, if you're comfortable with that
2024-07-10 01:21:24 +0200 <ncf> https://stackoverflow.com/questions/28687384/test-if-a-value-has-been-evaluated-to-weak-head-norma…
2024-07-10 01:21:26 +0200 <jackdk> yin: mostly "look at the code and think really hard", which lead to https://github.com/snoyberg/http-client/issues/538 . But the PR linked to it doesn't show an improvement in the heap profile. (If it were a fix, I would expect it to reduce the heap growth but not resolve it completely - we have another PR coming to fix responses being retained by resourcet
2024-07-10 01:22:06 +0200dsrt^(dnfh@c-98-242-74-66.hsd1.ga.comcast.net)
2024-07-10 01:22:14 +0200 <jackdk> Thank you both, there's some good stuff in that SO ilnk
2024-07-10 01:30:22 +0200chexum(~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
2024-07-10 01:30:22 +0200stiell(~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection)
2024-07-10 01:30:22 +0200chiselfuse(~chiselfus@user/chiselfuse) (Write error: Connection reset by peer)
2024-07-10 01:30:37 +0200chexum(~quassel@gateway/tor-sasl/chexum)
2024-07-10 01:30:49 +0200stiell(~stiell@gateway/tor-sasl/stiell)
2024-07-10 01:31:10 +0200chiselfuse(~chiselfus@user/chiselfuse)
2024-07-10 01:31:54 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
2024-07-10 01:32:19 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 01:36:51 +0200Square(~Square@user/square) (Ping timeout: 252 seconds)
2024-07-10 01:40:14 +0200dysthesis(~dysthesis@user/dysthesis)
2024-07-10 01:58:29 +0200peutri(~peutri@bobo.desast.re) (Server closed connection)
2024-07-10 01:58:38 +0200peutri(~peutri@bobo.desast.re)
2024-07-10 02:18:23 +0200 <Axman6> there was something about this on the well-typed blog
2024-07-10 02:18:53 +0200 <Axman6> https://www.well-typed.com/blog/2020/09/nothunks/
2024-07-10 02:32:23 +0200 <jackdk> Axman6: neat, that's probably worth a look
2024-07-10 02:33:54 +0200dysthesis(~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-07-10 02:48:41 +0200gmg(~user@user/gehmehgeh)
2024-07-10 02:57:46 +0200euleritian(~euleritia@dynamic-176-000-200-190.176.0.pool.telefonica.de) (Ping timeout: 246 seconds)
2024-07-10 02:58:09 +0200euleritian(~euleritia@dynamic-176-001-220-133.176.1.pool.telefonica.de)
2024-07-10 02:58:13 +0200 <jle`> yeah if it exists it's probably at well-typed lol
2024-07-10 03:03:38 +0200pointlessslippe1(~pointless@212.82.82.3) (Ping timeout: 268 seconds)
2024-07-10 03:06:13 +0200 <haskellbridge> <iqubic (she/her)> Is there a way to take a point free expression and make it not point free?
2024-07-10 03:06:43 +0200 <haskellbridge> <iqubic (she/her)> I'm looking at the function "f = (!! .) . iterate"
2024-07-10 03:07:01 +0200 <geekosaur> @unpl f = (!! .) . iterate
2024-07-10 03:07:01 +0200 <lambdabot> <unknown>.hs:1:3:Parse error: =
2024-07-10 03:07:07 +0200 <geekosaur> @unpl (!! .) . iterate
2024-07-10 03:07:07 +0200 <lambdabot> <unknown>.hs:1:5:Parse error: .
2024-07-10 03:07:07 +0200 <haskellbridge> <iqubic (she/her)> Erm... "f = ((!!) . ) . iterate"
2024-07-10 03:07:19 +0200 <haskellbridge> <iqubic (she/her)> It needs the extra brackets.
2024-07-10 03:07:22 +0200 <geekosaur> @unpl ((!!) .) . iterate
2024-07-10 03:07:22 +0200 <lambdabot> (\ x x0 -> (!!) (iterate x x0))
2024-07-10 03:07:35 +0200pointlessslippe1(~pointless@212.82.82.3)
2024-07-10 03:07:59 +0200 <geekosaur> I believe lambdabot is using a utility you can install locally from Hackage
2024-07-10 03:08:13 +0200 <haskellbridge> <iqubic (she/her)> I would like that.
2024-07-10 03:08:22 +0200 <geekosaur> https://hackage.haskell.org/package/pointfree
2024-07-10 03:09:36 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-07-10 03:11:45 +0200 <geekosaur> hm, not for pointful, though
2024-07-10 03:11:55 +0200 <geekosaur> https://hackage.haskell.org/package/lambdabot-haskell-plugins-5.3.1/docs/src/Lambdabot.Plugin.Hask…
2024-07-10 03:12:32 +0200 <Leary> I mean, it /is/ the trivial direction. Basically just inline (.)?
2024-07-10 03:15:21 +0200Square2(~Square4@user/square)
2024-07-10 03:15:26 +0200 <haskellbridge> <iqubic (she/her)> What does calling a function as infix do when it has three arguments?
2024-07-10 03:16:08 +0200 <geekosaur> same as calling a prefix function that way does: it's partially applied
2024-07-10 03:16:15 +0200nicole(ilbelkyr@libera/staff/ilbelkyr) (Read error: Software caused connection abort)
2024-07-10 03:16:38 +0200 <haskellbridge> <iqubic (she/her)> Wait... a -> b -> c -> d = a -> b ->( c -> d)
2024-07-10 03:17:19 +0200nicole(ilbelkyr@libera/staff/ilbelkyr)
2024-07-10 03:18:25 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
2024-07-10 03:18:56 +0200 <Axman6> a -> b -> c -> d === a -> (b -> (c -> d))
2024-07-10 03:20:22 +0200 <geekosaur> contemplate
2024-07-10 03:20:25 +0200 <geekosaur> :t on
2024-07-10 03:20:26 +0200 <lambdabot> (b -> b -> c) -> (a -> b) -> a -> a -> c
2024-07-10 03:20:36 +0200mikess(~mikess@user/mikess) (Ping timeout: 268 seconds)
2024-07-10 03:20:53 +0200 <Axman6> > let (!!!) :: a -> b -> c -> (a,b,c); (a !!! b) c = (a,b,c) in (1 !!! True) "wow"
2024-07-10 03:20:54 +0200 <lambdabot> (1,True,"wow")
2024-07-10 03:21:36 +0200 <geekosaur> recalling that it's usually used as e.g. `` compare `on` snd ``
2024-07-10 03:25:25 +0200aforemny_(~aforemny@i59F516F8.versanet.de) (Ping timeout: 246 seconds)
2024-07-10 03:25:42 +0200aforemny(~aforemny@2001:9e8:6cdc:fe00:c401:62ea:26d2:61dd)
2024-07-10 03:27:46 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-07-10 03:29:30 +0200FinnElija(~finn_elij@user/finn-elija/x-0085643)
2024-07-10 03:31:10 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 264 seconds)
2024-07-10 03:34:05 +0200xff0x(~xff0x@2405:6580:b080:900:d43c:fb27:30d6:fcc3) (Ping timeout: 240 seconds)
2024-07-10 03:36:56 +0200 <haskellbridge> <thirdofmay18081814goya> what are some open-source web frontends (actual frontends, not frameworks) written in haskell?
2024-07-10 03:37:07 +0200biberu(~biberu@user/biberu) (Server closed connection)
2024-07-10 03:37:29 +0200biberu(~biberu@user/biberu)
2024-07-10 03:40:12 +0200emmanuelux(~emmanuelu@user/emmanuelux) (Quit: au revoir)
2024-07-10 03:44:22 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex)
2024-07-10 03:44:57 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 03:47:24 +0200mikess(~mikess@user/mikess)
2024-07-10 03:48:01 +0200 <jackdk> Does a web search turn up any promising candidates? I'm not really in that space
2024-07-10 03:52:17 +0200machinedgod(~machinedg@173.183.246.216)
2024-07-10 03:52:56 +0200 <yin> is it me or lambdabot needs to update its dependencies?
2024-07-10 03:54:10 +0200 <geekosaur> if you were looking at the page I pasted earlier, it's for an old version because there's no docs for the newer ones
2024-07-10 03:54:34 +0200 <geekosaur> that said, there is one dependency that hasn't been updated and lambdabot's current maintainer is trying to get them to update it
2024-07-10 03:55:28 +0200 <geekosaur> and hasn't updated past that point yet
2024-07-10 03:55:42 +0200 <geekosaur> I don't really know the current status though
2024-07-10 03:56:05 +0200ystael(~ystael@user/ystael) (Ping timeout: 240 seconds)
2024-07-10 03:56:46 +0200 <geekosaur> aside from the updated documentation PR based on the docs I wrote back when I ran it in the early-mid 2000s, I haven't touched it since
2024-07-10 04:02:31 +0200rosco(~rosco@175.136.155.137)
2024-07-10 04:08:07 +0200acidsys(~crameleon@openSUSE/member/crameleon) (Server closed connection)
2024-07-10 04:08:23 +0200acidsys(~crameleon@openSUSE/member/crameleon)
2024-07-10 04:10:02 +0200 <yin> i just tried to install it a while ago with cabal install and was unable due to oeis i think
2024-07-10 04:12:34 +0200euleritian(~euleritia@dynamic-176-001-220-133.176.1.pool.telefonica.de) (Ping timeout: 264 seconds)
2024-07-10 04:12:48 +0200euleritian(~euleritia@dynamic-176-002-137-117.176.2.pool.telefonica.de)
2024-07-10 04:15:50 +0200dysthesis(~dysthesis@user/dysthesis)
2024-07-10 04:20:34 +0200Moyst(~moyst@user/moyst) (Ping timeout: 256 seconds)
2024-07-10 04:21:05 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
2024-07-10 04:27:12 +0200euleritian(~euleritia@dynamic-176-002-137-117.176.2.pool.telefonica.de) (Ping timeout: 268 seconds)
2024-07-10 04:27:32 +0200euleritian(~euleritia@dynamic-176-001-133-022.176.1.pool.telefonica.de)
2024-07-10 04:32:22 +0200td_(~td@i53870918.versanet.de) (Ping timeout: 264 seconds)
2024-07-10 04:33:57 +0200td_(~td@i5387093F.versanet.de)
2024-07-10 04:37:10 +0200machinedgod(~machinedg@173.183.246.216) (Ping timeout: 264 seconds)
2024-07-10 04:38:21 +0200euleritian(~euleritia@dynamic-176-001-133-022.176.1.pool.telefonica.de) (Ping timeout: 252 seconds)
2024-07-10 04:39:17 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 04:40:53 +0200 <Axman6> @where pcph
2024-07-10 04:40:53 +0200 <lambdabot> "Parallel and Concurrent Programming in Haskell" by Simon Marlow in 2013 at <http://community.haskell.org/~simonmar/pcph/>,<http://chimera.labs.oreilly.com/books/1230000000929/>,<https://web.archive.
2024-07-10 04:40:53 +0200 <lambdabot> org/web/20180117194842/http://chimera.labs.oreilly.com/books/1230000000929>,<https://www.oreilly.com/library/view/parallel-and-concurrent/9781449335939/>
2024-07-10 04:44:26 +0200gmg(~user@user/gehmehgeh) (Quit: Leaving)
2024-07-10 04:46:52 +0200Batzy(~quassel@user/batzy) (Server closed connection)
2024-07-10 04:47:08 +0200Batzy(~quassel@user/batzy)
2024-07-10 05:12:39 +0200dsrt^(dnfh@c-98-242-74-66.hsd1.ga.comcast.net) (Remote host closed the connection)
2024-07-10 05:16:30 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-07-10 05:22:42 +0200tabaqui(~root@87.200.123.114) (Ping timeout: 268 seconds)
2024-07-10 05:27:21 +0200tcard__(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2024-07-10 05:32:42 +0200tcard__(~tcard@2400:4051:5801:7500:1e90:74c3:2754:ce8a)
2024-07-10 05:36:34 +0200tabaqui(~root@87.200.123.114)
2024-07-10 05:42:54 +0200segfaultfizzbuzz(~segfaultf@23-93-79-84.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
2024-07-10 05:45:17 +0200yin(~yin@user/zero) (Ping timeout: 240 seconds)
2024-07-10 05:52:36 +0200yin(~yin@user/zero)
2024-07-10 05:55:48 +0200Xe(~cadey@perl/impostor/xe) (Ping timeout: 255 seconds)
2024-07-10 05:57:00 +0200yin(~yin@user/zero) (Ping timeout: 252 seconds)
2024-07-10 05:59:39 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 05:59:56 +0200euleritian(~euleritia@77.22.252.56)
2024-07-10 06:01:44 +0200aforemny_(~aforemny@i59F516EB.versanet.de)
2024-07-10 06:02:34 +0200aforemny(~aforemny@2001:9e8:6cdc:fe00:c401:62ea:26d2:61dd) (Ping timeout: 246 seconds)
2024-07-10 06:04:41 +0200mauke(~mauke@user/mauke) (Server closed connection)
2024-07-10 06:04:50 +0200mauke(~mauke@user/mauke)
2024-07-10 06:13:24 +0200biberu(~biberu@user/biberu) (Read error: Connection reset by peer)
2024-07-10 06:23:27 +0200biberu(~biberu@user/biberu)
2024-07-10 06:29:45 +0200cln_(cln@wtf.cx) (Server closed connection)
2024-07-10 06:30:02 +0200cln_(cln@wtf.cx)
2024-07-10 06:39:05 +0200arkeet(~arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in)
2024-07-10 06:42:09 +0200landonf(landonf@mac68k.info) (Server closed connection)
2024-07-10 06:42:17 +0200landonf(landonf@mac68k.info)
2024-07-10 06:46:33 +0200Moyst(~moyst@user/moyst)
2024-07-10 06:52:25 +0200mulk(~mulk@p5b2dc1a2.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2024-07-10 06:58:56 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk) (Server closed connection)
2024-07-10 06:59:11 +0200barrucadu(~barrucadu@carcosa.barrucadu.co.uk)
2024-07-10 07:03:26 +0200arkeet(~arkeet@moriya.ca)
2024-07-10 07:05:12 +0200rvalue(~rvalue@user/rvalue) (Read error: Connection reset by peer)
2024-07-10 07:05:29 +0200Square(~Square@user/square)
2024-07-10 07:05:51 +0200rvalue(~rvalue@user/rvalue)
2024-07-10 07:07:46 +0200Square2(~Square4@user/square) (Ping timeout: 256 seconds)
2024-07-10 07:10:37 +0200euleritian(~euleritia@77.22.252.56) (Ping timeout: 268 seconds)
2024-07-10 07:10:49 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 07:13:37 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 07:13:54 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 07:16:19 +0200mulk(~mulk@p5b2dc1a2.dip0.t-ipconnect.de)
2024-07-10 07:21:34 +0200acidjnk_new(~acidjnk@p200300d6e72cfb08c14fbc96bb9a0d8c.dip0.t-ipconnect.de)
2024-07-10 07:22:46 +0200dysthesis(~dysthesis@user/dysthesis) (Ping timeout: 260 seconds)
2024-07-10 07:44:01 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-10 07:53:14 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-07-10 08:00:27 +0200forell(~forell@user/forell) (Ping timeout: 255 seconds)
2024-07-10 08:03:55 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Ping timeout: 272 seconds)
2024-07-10 08:18:27 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 08:19:19 +0200euleritian(~euleritia@77.22.252.56)
2024-07-10 08:19:25 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se) (Ping timeout: 246 seconds)
2024-07-10 08:21:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 08:31:33 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-07-10 08:31:40 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 08:34:05 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-07-10 08:42:10 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 08:42:53 +0200Square(~Square@user/square) (Ping timeout: 240 seconds)
2024-07-10 08:42:53 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 08:43:46 +0200Square(~Square@user/square)
2024-07-10 08:48:03 +0200mikess(~mikess@user/mikess) (Ping timeout: 260 seconds)
2024-07-10 08:48:59 +0200rosco(~rosco@175.136.155.137)
2024-07-10 08:49:09 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Ping timeout: 252 seconds)
2024-07-10 08:50:11 +0200mikess(~mikess@user/mikess)
2024-07-10 08:52:09 +0200phma(phma@2001:5b0:212a:e8b8:9807:a029:7b5e:a865) (Read error: Connection reset by peer)
2024-07-10 08:52:17 +0200rosco(~rosco@175.136.155.137) (Client Quit)
2024-07-10 08:52:53 +0200phma(~phma@host-67-44-208-42.hnremote.net)
2024-07-10 08:53:42 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
2024-07-10 08:56:07 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 08:56:44 +0200polux(~polux@51-15-169-172.rev.poneytelecom.eu) (Server closed connection)
2024-07-10 08:56:57 +0200polux(~polux@51-15-169-172.rev.poneytelecom.eu)
2024-07-10 08:59:22 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 264 seconds)
2024-07-10 09:00:22 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 09:01:04 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Ping timeout: 256 seconds)
2024-07-10 09:04:27 +0200comonad(~comonad@p200300d027032c0082816d0f21936a9a.dip0.t-ipconnect.de) (Ping timeout: 264 seconds)
2024-07-10 09:05:19 +0200mud(~mud@user/kadoban) (Ping timeout: 268 seconds)
2024-07-10 09:05:57 +0200comonad(~comonad@p200300d027307200d9dc300e6085cadf.dip0.t-ipconnect.de)
2024-07-10 09:06:43 +0200Square(~Square@user/square) (Ping timeout: 260 seconds)
2024-07-10 09:11:40 +0200sord937(~sord937@gateway/tor-sasl/sord937)
2024-07-10 09:12:21 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 09:12:32 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 09:12:50 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 09:17:22 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Ping timeout: 264 seconds)
2024-07-10 09:22:54 +0200 <haskellbridge> <sss1222> good morning and hello :) hope y'all doing well
2024-07-10 09:23:56 +0200 <Axman6> We* are so well (*for some subset of 'We')
2024-07-10 09:28:31 +0200 <haskellbridge> <sss1222> can the we-subset include itself?
2024-07-10 09:29:17 +0200fernando-basso(~fernando-@2a01:4f9:c012:63d3::1) (Server closed connection)
2024-07-10 09:29:35 +0200fernando-basso(~fernando-@2a01:4f9:c012:63d3::1)
2024-07-10 09:30:35 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 09:31:06 +0200cross(~cross@spitfire.i.gajendra.net) (Server closed connection)
2024-07-10 09:31:39 +0200cross(~cross@spitfire.i.gajendra.net)
2024-07-10 09:33:15 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 09:33:59 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 09:34:12 +0200kritzefitz(~kritzefit@debian/kritzefitz) (Server closed connection)
2024-07-10 09:34:27 +0200kritzefitz(~kritzefit@debian/kritzefitz)
2024-07-10 09:35:21 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Ping timeout: 252 seconds)
2024-07-10 09:35:46 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 09:35:52 +0200bliminse(~bliminse@user/bliminse) (Quit: leaving)
2024-07-10 09:37:18 +0200kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca) (Server closed connection)
2024-07-10 09:37:41 +0200kronicmage(~kronicmag@neotame.csclub.uwaterloo.ca)
2024-07-10 09:41:26 +0200tomku(~tomku@user/tomku) (Remote host closed the connection)
2024-07-10 09:41:40 +0200tomku(~tomku@user/tomku)
2024-07-10 09:51:42 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com)
2024-07-10 09:52:06 +0200econo_(uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
2024-07-10 09:52:25 +0200YoungFrog(~youngfrog@2a02:a03f:c9db:fc00:d00c:2e8b:63d8:afbe) (Quit: ZNC 1.7.x-git-3-96481995 - https://znc.in)
2024-07-10 09:52:46 +0200YoungFrog(~youngfrog@39.129-180-91.adsl-dyn.isp.belgacom.be)
2024-07-10 09:53:04 +0200ft(~ft@p4fc2ab80.dip0.t-ipconnect.de) (Quit: leaving)
2024-07-10 09:56:40 +0200yin(~yin@user/zero)
2024-07-10 09:57:35 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-07-10 10:03:04 +0200rosco(~rosco@175.136.155.137)
2024-07-10 10:07:08 +0200michalz(~michalz@185.246.207.217)
2024-07-10 10:09:03 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
2024-07-10 10:10:09 +0200danse-prigionier(~danse-pri@93-34-6-146.ip47.fastwebnet.it)
2024-07-10 10:11:22 +0200danse-prigionierdanse-prisonnier
2024-07-10 10:11:26 +0200kuribas(~user@2a02:1808:8:dbfe:ec2a:b9af:7d30:2ea3)
2024-07-10 10:12:57 +0200APic(apic@apic.name) (Server closed connection)
2024-07-10 10:13:09 +0200APic(apic@apic.name)
2024-07-10 10:13:15 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 10:13:26 +0200danse-prisonnierdanse-prison
2024-07-10 10:14:36 +0200kraftwerk28(~kraftwerk@164.92.219.160)
2024-07-10 10:14:45 +0200kraftwerk28(~kraftwerk@164.92.219.160) (Remote host closed the connection)
2024-07-10 10:15:26 +0200chele(~chele@user/chele)
2024-07-10 10:17:43 +0200bliminse(~bliminse@user/bliminse)
2024-07-10 10:27:42 +0200tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de) (Quit: ZNC 1.9.0 - https://znc.in)
2024-07-10 10:28:48 +0200 <kuribas> I don't understand test fetishes. I get you want a few integration tests, maybe some unit tests on code that has complicated logic, or a difficult (highly optimized) implementation. But it looks to me that full coverage testing is mostly an artifact of the frailty of most programming languages.
2024-07-10 10:28:59 +0200 <kuribas> Especially dynamic languages.
2024-07-10 10:29:50 +0200 <danse-prison> "full test coverage" is something like an unicorn. Of course the extreme case makes little sense to most of us
2024-07-10 10:30:22 +0200 <kuribas> IMO real full coverage means a formal proof.
2024-07-10 10:30:37 +0200 <kuribas> But the reason for "full test coverage" is just how easy it is to break dynamic programs.
2024-07-10 10:31:02 +0200 <danse-prison> if you mean that correctness can be achieved in better ways, i agree. But tests provide something else than correctness as a side effect, good interfaces
2024-07-10 10:31:06 +0200tomsmeding(~tomsmedin@static.21.109.88.23.clients.your-server.de)
2024-07-10 10:32:04 +0200dhil(~dhil@2001:8e0:2014:3100:d824:2bdc:f538:dd26)
2024-07-10 10:32:15 +0200 <danse-prison> and are more accessible to newcomers than other means. Considering that stuff like .* is frowned upon because "too abstract"... i don't think many arguments stand
2024-07-10 10:36:45 +0200rosco(~rosco@175.136.155.137) (Quit: Lost terminal)
2024-07-10 10:43:11 +0200mikess(~mikess@user/mikess) (Ping timeout: 256 seconds)
2024-07-10 10:45:21 +0200mikess(~mikess@user/mikess)
2024-07-10 10:48:36 +0200opqdonut(opqdonut@pseudo.fixme.fi) (Server closed connection)
2024-07-10 10:48:46 +0200opqdonut(opqdonut@pseudo.fixme.fi)
2024-07-10 10:50:03 +0200ircbrowse_tom(~ircbrowse@user/tomsmeding/bot/ircbrowse-tom)
2024-07-10 10:50:04 +0200Server+Cnt
2024-07-10 10:50:20 +0200cfricke(~cfricke@user/cfricke)
2024-07-10 10:50:22 +0200yahb2(~yahb2@user/tomsmeding/bot/yahb2) (Remote host closed the connection)
2024-07-10 10:50:47 +0200yahb2(~yahb2@user/tomsmeding/bot/yahb2)
2024-07-10 10:50:47 +0200ChanServ+v yahb2
2024-07-10 10:52:59 +0200bsima1(9d7e39c8ad@2a03:6000:1812:100::dd) (Server closed connection)
2024-07-10 10:53:05 +0200bsima1(9d7e39c8ad@2a03:6000:1812:100::dd)
2024-07-10 10:59:27 +0200finsternis(~X@23.226.237.192) (Server closed connection)
2024-07-10 10:59:48 +0200finsternis(~X@23.226.237.192)
2024-07-10 11:01:34 +0200gehmehgeh(~user@user/gehmehgeh)
2024-07-10 11:01:47 +0200gehmehgehgmg
2024-07-10 11:05:23 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 11:05:30 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 11:08:25 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-07-10 11:10:44 +0200lxsameer(~lxsameer@Serene/lxsameer)
2024-07-10 11:17:28 +0200zmt01(~zmt00@user/zmt00)
2024-07-10 11:20:39 +0200zmt00(~zmt00@user/zmt00) (Ping timeout: 260 seconds)
2024-07-10 11:21:35 +0200 <kuribas> True, sometimes tests can serve as documentation on how to use the API.
2024-07-10 11:22:13 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-07-10 11:23:01 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 11:23:25 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 11:23:44 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 11:26:32 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:c640:cbb1:10f1:eac6)
2024-07-10 11:29:38 +0200gmg(~user@user/gehmehgeh) (Ping timeout: 260 seconds)
2024-07-10 11:30:04 +0200 <haskellbridge> <sm> They sometimes help force a good API and good internal structure, as types sometimes do
2024-07-10 11:30:46 +0200 <haskellbridge> <sm> And sometimes they're just cost effective when types/proofs aren't
2024-07-10 11:31:06 +0200 <haskellbridge> <sm> They're a tool in the software engineer's toolbox
2024-07-10 11:34:40 +0200 <mreh> unfortunately most developers don't see it that way
2024-07-10 11:36:11 +0200gmg(~user@user/gehmehgeh)
2024-07-10 11:37:35 +0200 <kuribas> haskellbridge: yeah, tests are a good engineering tool, they are not the catch-all of quality control IMO.
2024-07-10 11:38:38 +0200 <mreh> > Stack failed to create project-level YAML configuration, as it was unable to download the index of available snapshots.
2024-07-10 11:38:39 +0200 <lambdabot> <hint>:1:56: error: parse error on input ‘,’
2024-07-10 11:38:42 +0200 <mreh> hmm
2024-07-10 11:39:39 +0200 <kuribas> You have (in no particular order): tests, static types, manual testing, code reviews, just wel structured and readable codebases, good documentation, etc...
2024-07-10 11:39:53 +0200 <kuribas> But in so many places all the effort seems to go to tests.
2024-07-10 11:40:06 +0200 <danse-prison> those are not the worst places in my opinion
2024-07-10 11:40:20 +0200 <danse-prison> is there any similar project you can mention?
2024-07-10 11:40:33 +0200 <mreh> where can I report stackage outages?
2024-07-10 11:40:53 +0200 <danse-prison> first you should verify it's their outage probably
2024-07-10 11:40:56 +0200 <mreh> https://haddock.stackage.org/snapshots.json = 404
2024-07-10 11:41:04 +0200 <kuribas> danse-prison: you mean "extreme go horse" places?
2024-07-10 11:41:08 +0200 <mreh> Connection time out
2024-07-10 11:41:15 +0200 <danse-prison> huh?
2024-07-10 11:41:18 +0200danse-prison(~danse-pri@93-34-6-146.ip47.fastwebnet.it) (Quit: Client closed)
2024-07-10 11:41:25 +0200 <kuribas> https://medium.com/@dekaah/22-axioms-of-the-extreme-go-horse-methodology-xgh-9fa739ab55b4
2024-07-10 11:41:31 +0200danse-prigionier(~danse-pri@93-34-6-146.ip47.fastwebnet.it)
2024-07-10 11:41:44 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 11:41:59 +0200mikess(~mikess@user/mikess) (Ping timeout: 256 seconds)
2024-07-10 11:43:07 +0200danse-prigionierdanse-prison
2024-07-10 11:43:13 +0200 <mreh> I'm pretty sure stackage is having some kind of outage
2024-07-10 11:44:22 +0200 <mreh> their reverse proxy sez so
2024-07-10 11:45:59 +0200 <kuribas> this works for me: https://www.stackage.org/snapshots
2024-07-10 11:46:00 +0200forell(~forell@user/forell)
2024-07-10 11:46:32 +0200 <mreh> okay, but the command line tool `stack` doesn't use that
2024-07-10 11:46:52 +0200 <mreh> It's trying to fetch this https://haddock.stackage.org/snapshots.json
2024-07-10 11:46:52 +0200 <danse-prison> >> XGH is a fictional methodology that mocks the worst practices of Agile development. It involves doing the first thing that comes to mind, ignoring quality, schedules, tests, and refactoring, and blaming others when things go wrong.
2024-07-10 11:46:59 +0200 <danse-prison> "ignoring tests"
2024-07-10 11:47:04 +0200 <danse-prison> no, i did not mean that
2024-07-10 11:48:34 +0200 <mreh> I always test, every time I run my programs
2024-07-10 11:48:48 +0200 <mreh> (not parodying you)
2024-07-10 11:49:03 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Remote host closed the connection)
2024-07-10 11:49:18 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 11:50:36 +0200krjst(~krjst@2604:a880:800:c1::16b:8001) (Server closed connection)
2024-07-10 11:50:36 +0200 <danse-prison> and you let your users test for you as well! That's the rule nowadays
2024-07-10 11:51:03 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 256 seconds)
2024-07-10 11:51:15 +0200 <danse-prison> (parodying you)
2024-07-10 11:51:44 +0200krjst(~krjst@2604:a880:800:c1::16b:8001)
2024-07-10 11:52:16 +0200 <mreh> I make user interfaces, it's natural fit!
2024-07-10 11:53:12 +0200 <danse-prison> yeah, there is so much into a test than just catching errors
2024-07-10 11:55:32 +0200 <haskellbridge> <sm> mreh: you can report in the #haskell-stack:matrix.org (https://matrix.to/#/#haskell-stack:matrix.org) matrix room or in https://github.com/commercialhaskell/stack/issues or comment on threads like https://discourse.haskell.org/t/ann-stack-2-15-3-and-earliers-default-source-for-list-of-stackage-… and...
2024-07-10 11:55:36 +0200 <haskellbridge> ... https://discourse.haskell.org/t/solved-stack-new-and-stack-init-failing-missing-aws-asset-nosuchbu… (if it's the same issue). There's a recent rash of failures due to infrastructure migration breaking urls
2024-07-10 11:55:52 +0200 <mreh> sm: thank you
2024-07-10 11:56:01 +0200 <haskellbridge> <sm> well "rash" is overstating it, but there's a bit of a problem not yet resolved
2024-07-10 11:58:54 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 268 seconds)
2024-07-10 12:00:56 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Remote host closed the connection)
2024-07-10 12:02:06 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 12:02:06 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 12:02:39 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 12:04:58 +0200mud(~mud@user/kadoban)
2024-07-10 12:06:24 +0200xff0x(~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 256 seconds)
2024-07-10 12:06:30 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Remote host closed the connection)
2024-07-10 12:07:58 +0200kmein(~weechat@user/kmein) (Ping timeout: 246 seconds)
2024-07-10 12:09:47 +0200danse-prison(~danse-pri@93-34-6-146.ip47.fastwebnet.it) (Quit: Client closed)
2024-07-10 12:10:09 +0200danse-prison(~danse-pri@93-34-6-146.ip47.fastwebnet.it)
2024-07-10 12:11:32 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-07-10 12:12:26 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 12:12:49 +0200Xe(~cadey@perl/impostor/xe)
2024-07-10 12:14:00 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 12:14:17 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 12:14:38 +0200tcard__(~tcard@2400:4051:5801:7500:1e90:74c3:2754:ce8a) (Quit: Leaving)
2024-07-10 12:16:21 +0200czy(~user@fortigate.wolfson.cam.ac.uk)
2024-07-10 12:17:36 +0200bah(~bah@l1.tel) (Quit: leaving)
2024-07-10 12:19:47 +0200ggb(a62ffbaf4f@2a03:6000:1812:100::3ac) (Server closed connection)
2024-07-10 12:19:55 +0200ggb(a62ffbaf4f@2a03:6000:1812:100::3ac)
2024-07-10 12:21:19 +0200czy(~user@fortigate.wolfson.cam.ac.uk) (Ping timeout: 260 seconds)
2024-07-10 12:24:31 +0200cfricke(~cfricke@user/cfricke)
2024-07-10 12:25:40 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 256 seconds)
2024-07-10 12:26:27 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 12:27:24 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-07-10 12:29:10 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 12:29:29 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 12:36:25 +0200 <danse-prison> hmm does this https://vaibhavsagar.com/blog/2024/07/03/ghci-in-the-browser/ work for you? It does not seem to work for me
2024-07-10 12:38:36 +0200 <haskellbridge> <vaibhavsagar> what browser are you using?
2024-07-10 12:39:39 +0200 <haskellbridge> <vaibhavsagar> and how long did you give it to boot up etc.?
2024-07-10 12:40:59 +0200 <davean> danse-prison: It works for me, its just so slow that I only noticed it infact worked because I walked away and came back.
2024-07-10 12:41:19 +0200 <davean> danse-prison: I can't even type in it effectively.
2024-07-10 12:41:55 +0200 <davean> danse-prison: Talking 30 seconds to register a keypress
2024-07-10 12:43:05 +0200 <haskellbridge> <vaibhavsagar> davean: is that on every keypress or is it erratic?
2024-07-10 12:43:25 +0200 <haskellbridge> <vaibhavsagar> because I'm trying it right now and it's inconsistent for me
2024-07-10 12:44:46 +0200 <danse-prison> i'll try opening the page and leaving it sitting for a while then
2024-07-10 12:45:00 +0200 <haskellbridge> <vaibhavsagar> very open to suggestions to make it perform better if you have any, it's more of a proof-of-concept than anything else
2024-07-10 12:45:07 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 260 seconds)
2024-07-10 12:45:24 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 12:45:38 +0200 <haskellbridge> <vaibhavsagar> while GHCi.js is being worked on
2024-07-10 12:45:44 +0200 <danse-prison> yeah it's an hack with great potentialities, thanks for that!
2024-07-10 12:46:52 +0200 <danse-prison> which type of "container" is this?
2024-07-10 12:47:33 +0200 <davean> vaibhavsagar: Not every keypress, but most?
2024-07-10 12:48:46 +0200 <haskellbridge> <vaibhavsagar> danse-prison: it's a Docker image compiled to WASM using "container2wasm"
2024-07-10 12:49:17 +0200 <danse-prison> huh why do you need to compile a whole docker image?
2024-07-10 12:49:17 +0200 <haskellbridge> <vaibhavsagar> here's the source if you're curious: https://github.com/vaibhavsagar/amd64-ghc-wasi-demo
2024-07-10 12:50:10 +0200 <haskellbridge> <vaibhavsagar> my understanding is that GHCi assumes that it is installed on an operating system, otherwise it can't import anything
2024-07-10 12:50:23 +0200 <danse-prison> i see
2024-07-10 12:50:42 +0200 <danse-prison> that's how this works then. Maybe i will not download the ~1G
2024-07-10 12:50:53 +0200 <haskellbridge> <vaibhavsagar> it's more like 220MB
2024-07-10 12:50:59 +0200 <haskellbridge> <vaibhavsagar> but that's fair enough
2024-07-10 12:51:05 +0200 <danse-prison> said 700M in the intro
2024-07-10 12:51:15 +0200 <haskellbridge> <vaibhavsagar> I have since updated it
2024-07-10 12:51:40 +0200 <haskellbridge> <vaibhavsagar> it's ~700MB uncompressed
2024-07-10 12:51:48 +0200 <danse-prison> nice. I didn't know my browser could download a full docker image nowadays
2024-07-10 12:52:20 +0200lukec(9dfd4d094e@2a03:6000:1812:100::10e) (Server closed connection)
2024-07-10 12:52:26 +0200lukec(9dfd4d094e@2a03:6000:1812:100::10e)
2024-07-10 12:52:33 +0200 <haskellbridge> <vaibhavsagar> it can download arbitrarily large bundles of WASM, so pretty much the same thing
2024-07-10 12:53:04 +0200 <danse-prison> yeah but didn't know a docker image would be small enough and virtualisable that way
2024-07-10 12:53:43 +0200 <danse-prison> what do you use for an incremental download of "arbitrary" sizes? Websockets?
2024-07-10 12:53:54 +0200 <haskellbridge> <vaibhavsagar> you might enjoy the other demos: https://ktock.github.io/container2wasm-demo
2024-07-10 12:54:18 +0200 <danse-prison> hmm i'm curious but not sure i "enjoy" dockers in my browser just yet ;)
2024-07-10 12:54:36 +0200 <haskellbridge> <vaibhavsagar> it's fun to think of the possibilities
2024-07-10 12:54:41 +0200 <haskellbridge> <vaibhavsagar> I'm more of a Nix guy myself
2024-07-10 12:55:17 +0200 <haskellbridge> <vaibhavsagar> danse-prison: I meant in the same way that you'd download a large .iso, you can download a large file that happens to be WASM
2024-07-10 12:55:19 +0200 <danse-prison> i find lightweight solutions more fun by yeah, i see your points. Having an interpreter in hackage pages is a brilliant idea
2024-07-10 12:55:33 +0200 <haskellbridge> <vaibhavsagar> also in blog posts
2024-07-10 12:56:02 +0200 <haskellbridge> <vaibhavsagar> or academic papers
2024-07-10 12:56:06 +0200 <danse-prison> haskell's blogs don't even have engagement logic nowadays so the hackage one seems more likely to happen
2024-07-10 12:56:14 +0200 <danse-prison> academics hate javascript
2024-07-10 12:56:25 +0200 <haskellbridge> <vaibhavsagar> ah but my blog does have nonzero engagement
2024-07-10 12:56:36 +0200 <haskellbridge> <vaibhavsagar> as evidenced by us having this conversation :)
2024-07-10 12:57:01 +0200xff0x(~xff0x@ai068022.d.east.v6connect.net)
2024-07-10 12:57:04 +0200 <danse-prison> it's just because i like to hack dead community infrastructure
2024-07-10 12:57:33 +0200 <haskellbridge> <vaibhavsagar> not sure what you mean by that, but it sounds interesting
2024-07-10 12:57:46 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 12:58:02 +0200 <danse-prison> speaking of which...
2024-07-10 12:59:00 +0200 <davean> vaibhavsagar: I mean GHCJS is pretty fast, and there are the microinterpriters. Probably more work, but if it did work it would be a lot faster.
2024-07-10 12:59:14 +0200 <davean> Like the thing lambdabot runs off, etc, I forget their names
2024-07-10 13:00:05 +0200 <haskellbridge> <vaibhavsagar> davean: I'd be over the moon if we got GHCi.js working so I could have a Haskell interpreter in the browser
2024-07-10 13:00:39 +0200 <haskellbridge> <vaibhavsagar> but IMHO that's a long way away, and I'm not aware of anyone who is actively working on it right now
2024-07-10 13:01:41 +0200 <haskellbridge> <vaibhavsagar> I've gotten some pretty dismissive answers when I've asked about this exact thing on IRC in the past
2024-07-10 13:01:52 +0200 <haskellbridge> <vaibhavsagar> people telling me it's not possible
2024-07-10 13:02:08 +0200 <haskellbridge> <vaibhavsagar> hence my demonstration that it is
2024-07-10 13:02:22 +0200 <tomsmeding> everything is possible if you will badly enough, and you don't care much about the size of the bundle
2024-07-10 13:02:33 +0200 <tomsmeding> whether it's _practical_ is another matter
2024-07-10 13:02:49 +0200 <tomsmeding> was the idea of GHCi.js that GHCi would be compiled to JS via ghcjs/the JS backend/whatever ?
2024-07-10 13:03:21 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 13:03:39 +0200 <tomsmeding> I mean, one could even imagine extending an alternative implementation like microhaskell enough that it can compile GHC and associated libraries, and then interpreting the resulting combinators in JS
2024-07-10 13:03:48 +0200 <tomsmeding> nobody said anything about _performance_, after all
2024-07-10 13:05:06 +0200 <haskellbridge> <vaibhavsagar> the roadmap explicitly says "haskell code interpreter in the browser" https://gitlab.haskell.org/ghc/ghc/-/wikis/javascript-backend/#roadmap
2024-07-10 13:05:09 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-07-10 13:05:24 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 13:06:43 +0200danse-prison(~danse-pri@93-34-6-146.ip47.fastwebnet.it) (Ping timeout: 250 seconds)
2024-07-10 13:07:53 +0200 <davean> vaibhavsagar: ghcjs has been working for years. Its just a fork of GHC. Its used to staticize some of my stuff by moving all the logic to the frontend without code updates.
2024-07-10 13:07:57 +0200Inst_(~Inst@user/Inst)
2024-07-10 13:08:44 +0200Moyst(~moyst@user/moyst) (Ping timeout: 252 seconds)
2024-07-10 13:08:46 +0200 <davean> now, if it supports enough to make any of the haskell sandbox libs turn over is a different matter.
2024-07-10 13:08:53 +0200 <davean> GHC is very much not standard Haskell code.
2024-07-10 13:10:32 +0200CiaoSen(~Jura@2a05:5800:2b5:3f00:e6b9:7aff:fe80:3d03)
2024-07-10 13:11:42 +0200 <Axman6> vaibhavsagar: I haven't read back through all the chat above on GHCi in the browser, but on Safari I get "Promise Rejection: RangeError: Maximum call stack size exceeded."
2024-07-10 13:12:50 +0200 <haskellbridge> <vaibhavsagar> davean: I've used GHCJS a bunch myself, I'm familiar with it. What it does _not_ provide is an interpreter I can run in the browser
2024-07-10 13:15:03 +0200 <Inst_> EvanR: There's the QQ chat, which I can't seem to get in because my QQ keeps on getting "awaiting verification"
2024-07-10 13:15:15 +0200 <Inst_> the Wechat for Chinese Haskell apparently popcorns every time Anduril gets brought up
2024-07-10 13:19:12 +0200 <davean> vaibhavsagar: Correct, hence all the other stuff I was saying about how you'd have to use it
2024-07-10 13:20:33 +0200rosco(~rosco@175.136.155.137)
2024-07-10 13:24:51 +0200rosco(~rosco@175.136.155.137) (Client Quit)
2024-07-10 13:25:53 +0200 <haskellbridge> <vaibhavsagar> oh, I see
2024-07-10 13:26:28 +0200 <haskellbridge> <vaibhavsagar> I wasn't sure what you meant by "sandbox libs"
2024-07-10 13:26:39 +0200 <davean> like hint, etc
2024-07-10 13:26:47 +0200 <davean> There are a number of them
2024-07-10 13:26:58 +0200 <haskellbridge> <vaibhavsagar> yeah, I maintain IHaskell, which also qualifies
2024-07-10 13:27:48 +0200 <davean> Does it? I don't know about its internals
2024-07-10 13:28:03 +0200 <davean> Most of the ones I've seen relie on ghc-lib which is where the challenges would start
2024-07-10 13:28:21 +0200 <haskellbridge> <vaibhavsagar> yup, IHaskell shares a lot of code with GHCi
2024-07-10 13:28:34 +0200 <davean> Never looked at it.
2024-07-10 13:28:40 +0200 <haskellbridge> <vaibhavsagar> and also uses the GHC API directly
2024-07-10 13:31:56 +0200 <davean> Well IIRC GHCJS contains a modified GHC library that runs in JS
2024-07-10 13:32:20 +0200 <davean> SO *if* one could link against *that* well ... but I don't know how cleanly it would work, or if it would be a lot
2024-07-10 13:32:31 +0200 <davean> Its been many years since I looked closely
2024-07-10 13:40:45 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be)
2024-07-10 13:41:04 +0200kuribas(~user@2a02:1808:8:dbfe:ec2a:b9af:7d30:2ea3) (Ping timeout: 246 seconds)
2024-07-10 13:43:29 +0200whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4) (Server closed connection)
2024-07-10 13:43:36 +0200whereiseveryone(206ba86c98@2a03:6000:1812:100::2e4)
2024-07-10 13:47:08 +0200[exa](~exa@user/exa/x-3587197) (Ping timeout: 268 seconds)
2024-07-10 13:54:57 +0200simendsjo(~user@c-cd76e253.197152-0-69706f6e6c79.bbcust.telenor.se)
2024-07-10 13:58:23 +0200tomku(~tomku@user/tomku) (Ping timeout: 260 seconds)
2024-07-10 13:59:51 +0200tomku(~tomku@user/tomku)
2024-07-10 14:04:12 +0200laxmik(~user@pc192b.fzu.cz)
2024-07-10 14:07:11 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 256 seconds)
2024-07-10 14:15:30 +0200rvalue(~rvalue@user/rvalue) (Ping timeout: 268 seconds)
2024-07-10 14:15:32 +0200rvalue-(~rvalue@user/rvalue)
2024-07-10 14:16:11 +0200lxsameer(~lxsameer@Serene/lxsameer) (Quit: WeeChat 4.2.2)
2024-07-10 14:19:31 +0200rvalue-rvalue
2024-07-10 14:33:21 +0200hololeap(~quassel@user/hololeap) (Server closed connection)
2024-07-10 14:33:36 +0200hololeap(~quassel@user/hololeap)
2024-07-10 14:34:32 +0200phaazonhadronized
2024-07-10 14:39:44 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-07-10 14:41:08 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 252 seconds)
2024-07-10 14:43:51 +0200[exa](~exa@user/exa/x-3587197)
2024-07-10 14:44:51 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 14:48:35 +0200jmcantrell(644f1bed9a@user/jmcantrell) (Server closed connection)
2024-07-10 14:48:45 +0200jmcantrell(644f1bed9a@user/jmcantrell)
2024-07-10 14:49:32 +0200JimL(~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-07-10 14:49:49 +0200JimL(~quassel@89.162.16.26)
2024-07-10 14:52:32 +0200 <bwe> does hpack support referencing git refs as dependency? I can't find anything on the docs of it.
2024-07-10 14:54:50 +0200 <bwe> like https://cabal.readthedocs.io/en/3.4/cabal-project.html?highlight=github#specifying-packages-from-r…
2024-07-10 14:54:56 +0200 <tomsmeding> bwe: doesn't hpack simply compile to a .cabal file? .cabal files don't support git dependencies
2024-07-10 14:55:05 +0200 <tomsmeding> the link you pasted is for a cabal.project, which is like stack.yaml
2024-07-10 14:55:13 +0200 <tomsmeding> and, indeed, stack.yaml does support git dependencies
2024-07-10 14:55:21 +0200 <bwe> it's a mess
2024-07-10 14:55:34 +0200 <bwe> tooling, tooling, tooling…
2024-07-10 14:55:42 +0200 <tomsmeding> a .cabal file defines the build configuration and the names of the dependencies for the package
2024-07-10 14:55:51 +0200 <tomsmeding> the cabal.project / stack.yaml file defines where to get all of that _from_
2024-07-10 14:56:20 +0200sus(1b7af6299f@user/zeromomentum) (Server closed connection)
2024-07-10 14:56:29 +0200sus(1b7af6299f@user/zeromomentum)
2024-07-10 14:56:38 +0200 <tomsmeding> it is indeed a bit complicated if you're new to this tooling
2024-07-10 14:57:02 +0200 <tomsmeding> the naming (*.cabal vs "cabal.project") doesn't help :p
2024-07-10 14:57:38 +0200 <tomsmeding> something like "package.cabal" + "configuration.cabal" might have been clearer in retrospect
2024-07-10 14:58:02 +0200bitdex(~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
2024-07-10 14:58:07 +0200 <tomsmeding> bwe: are you using stack, or are you using hpack with cabal?
2024-07-10 14:58:18 +0200 <bwe> hpack with cabal
2024-07-10 14:58:25 +0200 <tomsmeding> that is... unusual :)
2024-07-10 14:58:49 +0200 <tomsmeding> but yes, a source-repository-package stanza in a cabal.project is what you're looking for
2024-07-10 15:00:17 +0200 <tomsmeding> bwe: a way to think about this is perhaps that the *.cabal file is the thing that Hackage reads; Hackage does not read cabal.project files
2024-07-10 15:00:41 +0200 <tomsmeding> and packages on Hackage must refer to other Hackage packages only (and external system dependencies); they cannot refer to git dependencies
2024-07-10 15:01:10 +0200 <tomsmeding> thus if you want to do that, you'll need to specify such git dependencies in an additional configuration file that cabal interprets on top of the normal package description
2024-07-10 15:01:16 +0200 <tomsmeding> and that file is cabal.project
2024-07-10 15:01:28 +0200 <bwe> ah that makes sense to me now, thanks for explaining this
2024-07-10 15:01:36 +0200 <tomsmeding> yay!
2024-07-10 15:01:43 +0200 <tomsmeding> I learnt this by osmosis
2024-07-10 15:01:57 +0200 <tomsmeding> *learned?
2024-07-10 15:02:03 +0200 <haskellbridge> <mauke> ... and, unlike in Perl, you cannot depend on modules, only packages
2024-07-10 15:02:23 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 15:02:40 +0200 <tomsmeding> ah no, learnt is fine
2024-07-10 15:03:51 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 15:04:09 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 15:05:41 +0200 <bwe> it fetches the repo now fine on `cabal repl`; however the mess is now in version conflicts that are unresolvable :*
2024-07-10 15:06:05 +0200 <tomsmeding> the tooling is not quite clever enough to do that automatically :)
2024-07-10 15:07:11 +0200jleightcap(7bc4014b62@user/jleightcap) (Server closed connection)
2024-07-10 15:07:19 +0200jleightcap(7bc4014b62@user/jleightcap)
2024-07-10 15:07:24 +0200cpressey(~weechat@176.254.71.203) (Quit: WeeChat 4.3.0)
2024-07-10 15:07:48 +0200JimL(~quassel@89.162.16.26) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
2024-07-10 15:08:06 +0200JimL(~quassel@89.162.16.26)
2024-07-10 15:09:23 +0200soverysour(~soverysou@81.196.150.219)
2024-07-10 15:09:23 +0200soverysour(~soverysou@81.196.150.219) (Changing host)
2024-07-10 15:09:23 +0200soverysour(~soverysou@user/soverysour)
2024-07-10 15:11:15 +0200JimL(~quassel@89.162.16.26) (Client Quit)
2024-07-10 15:11:34 +0200JimL(~quassel@89.162.16.26)
2024-07-10 15:13:28 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 268 seconds)
2024-07-10 15:14:23 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 268 seconds)
2024-07-10 15:14:38 +0200JimL(~quassel@89.162.16.26) (Client Quit)
2024-07-10 15:14:49 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de)
2024-07-10 15:15:00 +0200JimL(~quassel@89.162.16.26)
2024-07-10 15:15:02 +0200cfricke(~cfricke@user/cfricke)
2024-07-10 15:18:18 +0200danse-nr3(~danse-nr3@host-95-230-160-3.business.telecomitalia.it)
2024-07-10 15:29:43 +0200kmein(~weechat@user/kmein)
2024-07-10 15:35:59 +0200euleritian(~euleritia@dynamic-176-000-197-069.176.0.pool.telefonica.de) (Ping timeout: 264 seconds)
2024-07-10 15:36:39 +0200euleritian(~euleritia@dynamic-176-006-176-108.176.6.pool.telefonica.de)
2024-07-10 15:38:15 +0200 <bwe> ok, I've resolved the conflict now. only missing bit seems to be that repl can't find the module itself. I've removed the package names from .cabal file since it tries to get them from hackage then. what's the right approach then?
2024-07-10 15:40:31 +0200 <bwe> nvm, I needed to add them to .cabal file; it pulls them from the local path I've specified in the cabal.project file! wow, it works!
2024-07-10 15:41:27 +0200laxmik(~user@pc192b.fzu.cz) (Quit: ERC 5.5.0.29.1 (IRC client for GNU Emacs 29.4))
2024-07-10 15:50:29 +0200 <tomsmeding> right, the packages need to be in the .cabal file as usual; the cabal.project file just overrides where they come from
2024-07-10 15:51:01 +0200 <tomsmeding> I hope you never run into this, but this overriding does _not_ work for dependencies of `build-tool` dependencies of your package
2024-07-10 15:51:24 +0200 <tomsmeding> finding this out cost me a bit of time recently
2024-07-10 15:52:51 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net)
2024-07-10 15:59:49 +0200ystael(~ystael@user/ystael)
2024-07-10 16:00:55 +0200noumenon(~noumenon@113.51-175-156.customer.lyse.net) (Quit: Leaving)
2024-07-10 16:06:19 +0200cfricke(~cfricke@user/cfricke) (Ping timeout: 246 seconds)
2024-07-10 16:09:34 +0200Moyst(~moyst@user/moyst)
2024-07-10 16:18:29 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7) (Server closed connection)
2024-07-10 16:18:36 +0200fn_lumi(3d621153a5@2a03:6000:1812:100::df7)
2024-07-10 16:21:58 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-07-10 16:32:49 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:c640:cbb1:10f1:eac6) (Quit: ubert)
2024-07-10 16:40:40 +0200danse-nr3(~danse-nr3@host-95-230-160-3.business.telecomitalia.it) (Quit: Leaving)
2024-07-10 16:49:04 +0200soverysour(~soverysou@user/soverysour)
2024-07-10 16:51:02 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df) (Server closed connection)
2024-07-10 16:51:09 +0200arcadewise(52968ed80d@2a03:6000:1812:100::3df)
2024-07-10 16:53:59 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 264 seconds)
2024-07-10 17:05:36 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 256 seconds)
2024-07-10 17:07:35 +0200Inst_Inst
2024-07-10 17:08:05 +0200infinity0(~infinity0@pwned.gg)
2024-07-10 17:08:51 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 17:10:31 +0200cfricke(~cfricke@user/cfricke)
2024-07-10 17:15:31 +0200soverysour(~soverysou@user/soverysour)
2024-07-10 17:17:23 +0200JuanDaugherty(~juan@user/JuanDaugherty)
2024-07-10 17:24:22 +0200 <cheater> how are you, fellow cult members?
2024-07-10 17:24:47 +0200cheaterputs on a spiky pink hat with a green ponpon
2024-07-10 17:33:04 +0200 <int-e> Nono, you want Rust. This here is a cabal.
2024-07-10 17:34:01 +0200 <int-e> (In this picture, Rust is the cargo cult.)
2024-07-10 17:37:47 +0200mikess(~mikess@user/mikess)
2024-07-10 17:40:15 +0200CiaoSen(~Jura@2a05:5800:2b5:3f00:e6b9:7aff:fe80:3d03) (Ping timeout: 272 seconds)
2024-07-10 17:40:28 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 246 seconds)
2024-07-10 17:42:01 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 17:43:21 +0200JuanDaughertyis just a rank opportunist
2024-07-10 17:48:45 +0200hugo(znc@quicksilver.lysator.liu.se) (Ping timeout: 256 seconds)
2024-07-10 17:50:37 +0200_0xa_(~user@2001:19f0:5001:2ba8:5400:1ff:feda:88fc) (Server closed connection)
2024-07-10 17:50:48 +0200_0xa(~user@2001:19f0:5001:2ba8:5400:1ff:feda:88fc)
2024-07-10 17:50:48 +0200_0xa(~user@2001:19f0:5001:2ba8:5400:1ff:feda:88fc) (Changing host)
2024-07-10 17:50:48 +0200_0xa(~user@user/0xa/x-3134607)
2024-07-10 17:52:25 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:c640:cbb1:10f1:eac6)
2024-07-10 17:55:27 +0200kuribas`(~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
2024-07-10 17:56:23 +0200simendsjo(~user@c-cd76e253.197152-0-69706f6e6c79.bbcust.telenor.se) (Ping timeout: 264 seconds)
2024-07-10 17:58:37 +0200 <EvanR> time to rewrite cabal in rust
2024-07-10 17:59:11 +0200 <EvanR> hell rewrite GHC in rust!
2024-07-10 18:00:21 +0200 <int-e> glhf
2024-07-10 18:00:39 +0200cfricke(~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
2024-07-10 18:05:16 +0200 <mauke> hell: rewrite ghc in rust
2024-07-10 18:08:57 +0200 <cheater> int-e: oh, you missed the wired article?
2024-07-10 18:10:38 +0200 <cheater> https://www.wired.com/story/inside-the-cult-of-the-haskell-programmer/
2024-07-10 18:11:01 +0200 <int-e> cheater: I did but I'd maintain my stance regardless. Words matter.
2024-07-10 18:11:26 +0200 <cheater> oh, you're of the "WORDS have MEANING" bent?
2024-07-10 18:11:41 +0200 <int-e> ...why is the code on the title image cut off
2024-07-10 18:12:19 +0200 <cheater> i'm more of the "surfaces and essences by hofstadter" bent. words have no meaning. words have multiple meanings. the meaning depends on the context.
2024-07-10 18:12:20 +0200 <int-e> it's offensive because it's like 6 more characters.
2024-07-10 18:12:30 +0200 <cheater> maybe he copypasted wrong
2024-07-10 18:12:30 +0200 <systemfault> They really don't want us to read the article.... Do you also have that awful neon yellow background on that page?
2024-07-10 18:13:02 +0200 <int-e> I do. I'm about to disable CSS
2024-07-10 18:13:16 +0200 <cheater> it's meant for your average gophers, they're famously color blind
2024-07-10 18:13:34 +0200 <mauke> that reminds me. brb, listening to https://www.youtube.com/watch?v=Tv2l0nrBQ74&list=PL5coPQ2CQKeHq6nZRgLsLMeSbN089wrCa
2024-07-10 18:13:52 +0200 <int-e> and it does not do the thing where you have to scroll down half a mile to skip over the social media icons that are scaled to 100% of the viewport width. yay.
2024-07-10 18:14:51 +0200 <cheater> i love it when that happens
2024-07-10 18:16:50 +0200 <int-e> Hmm no mention of Miranda.
2024-07-10 18:18:07 +0200econo_(uid147250@id-147250.tinside.irccloud.com)
2024-07-10 18:20:33 +0200 <int-e> This is so shallow, I thought we were going to dive inside the cabal?
2024-07-10 18:22:53 +0200__monty__(~toonn@user/toonn)
2024-07-10 18:24:33 +0200 <int-e> This is like a deep dive on Scientology that gives a bunch of third party opinions and concludes with "people find Elron Hubbub's theories appealing."
2024-07-10 18:26:19 +0200mechap(~mechap@user/mechap) (Ping timeout: 246 seconds)
2024-07-10 18:27:10 +0200mechap(~mechap@user/mechap)
2024-07-10 18:27:25 +0200 <int-e> cheater: Anyway, I don't think I had missed anything at all. :-P
2024-07-10 18:36:26 +0200duncan(c6181279e3@user/meow/duncan) (Server closed connection)
2024-07-10 18:36:38 +0200duncan(c6181279e3@user/meow/duncan)
2024-07-10 18:38:56 +0200 <cheater> speaking of cults
2024-07-10 18:39:18 +0200 <cheater> one of the mods on the sub just quit because the other mods are turning it into a welcoming party for trolls
2024-07-10 18:39:35 +0200 <EvanR> words have no meaning, only consequences
2024-07-10 18:39:41 +0200 <cheater> lol
2024-07-10 18:39:53 +0200 <cheater> you forgot to crack the whip at the end of that sentence
2024-07-10 18:40:00 +0200 <EvanR> lol
2024-07-10 18:40:10 +0200Moyst_(~moyst@user/moyst)
2024-07-10 18:41:03 +0200 <EvanR> orwellian wittgenstein
2024-07-10 18:41:27 +0200 <cheater> thinking more of that old german ad that goes "RUF! MICH! AN!"
2024-07-10 18:41:32 +0200ubert(~Thunderbi@2a02:8109:ab8a:5a00:c640:cbb1:10f1:eac6) (Remote host closed the connection)
2024-07-10 18:43:42 +0200Moyst(~moyst@user/moyst) (Ping timeout: 252 seconds)
2024-07-10 18:49:16 +0200Natch(~natch@c-9e07225c.038-60-73746f7.bbcust.telenor.se)
2024-07-10 18:58:08 +0200akspecs(00cc8321af@sourcehut/user/akspecs) (Server closed connection)
2024-07-10 18:58:16 +0200akspecs(00cc8321af@sourcehut/user/akspecs)
2024-07-10 18:59:22 +0200chele(~chele@user/chele) (Remote host closed the connection)
2024-07-10 19:07:26 +0200samhh_(7569f027cf@2a03:6000:1812:100::e4) (Server closed connection)
2024-07-10 19:07:36 +0200samhh_(7569f027cf@2a03:6000:1812:100::e4)
2024-07-10 19:12:21 +0200xstill_(xstill@fimu/xstill) (Server closed connection)
2024-07-10 19:12:40 +0200xstill_(xstill@fimu/xstill)
2024-07-10 19:20:51 +0200pavonia(~user@user/siracusa) (Quit: Bye!)
2024-07-10 19:31:37 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 19:38:21 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-07-10 19:41:11 +0200jpyamamoto(~jpyamamot@2806:2f0:92e5:a4e7:7db3:fca:c65b:c605)
2024-07-10 19:42:00 +0200euleritian(~euleritia@dynamic-176-006-176-108.176.6.pool.telefonica.de) (Ping timeout: 256 seconds)
2024-07-10 19:43:00 +0200euleritian(~euleritia@dynamic-176-001-136-166.176.1.pool.telefonica.de)
2024-07-10 19:43:25 +0200 <jpyamamoto> Hey, I had a question regarding linear haskell. Do you know how it interacts with list comprehensions?
2024-07-10 19:43:25 +0200 <jpyamamoto> I have the following code, which to my understanding shouldn't compile, since I'm using the argument non-linearly, but it does compile. So I'm not entirely sure what's going on behind the scenes.
2024-07-10 19:43:26 +0200 <jpyamamoto> ```haskell
2024-07-10 19:43:26 +0200 <jpyamamoto> weird :: Int %1 -> [Int]
2024-07-10 19:43:27 +0200 <jpyamamoto> weird x = [x | _ <- [(1 :: Integer) .. 5]]
2024-07-10 19:43:27 +0200 <jpyamamoto> ```
2024-07-10 19:44:42 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com)
2024-07-10 19:45:48 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 19:48:30 +0200 <EvanR> list comprehension syntax is translated to core haskell through a set of rules https://www.haskell.org/onlinereport/exps.html#sect3.11
2024-07-10 19:48:55 +0200euleritian(~euleritia@dynamic-176-001-136-166.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
2024-07-10 19:49:13 +0200euleritian(~euleritia@77.22.252.56)
2024-07-10 19:52:00 +0200 <mauke> @undo [x | _ <- [(1 :: Integer) .. 5]]
2024-07-10 19:52:00 +0200 <lambdabot> concatMap (\ _ -> [x]) [(1 :: Integer) .. 5]
2024-07-10 19:52:21 +0200 <EvanR> undo undoes list comprehensions, cool
2024-07-10 19:52:45 +0200 <jpyamamoto> Whoah that undo command is nice, didn't know about it
2024-07-10 19:53:59 +0200peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
2024-07-10 19:54:07 +0200 <jpyamamoto> That's weird, because when I actually use concatMap, it no longer typechecks
2024-07-10 19:54:08 +0200 <jpyamamoto> ```
2024-07-10 19:54:08 +0200 <jpyamamoto> weird' :: Int %1 -> [Int]
2024-07-10 19:54:09 +0200 <jpyamamoto> weird' x = concatMap (\_ -> [x]) [(1 :: Integer) .. 5]
2024-07-10 19:54:09 +0200 <jpyamamoto> ```
2024-07-10 19:55:58 +0200 <jle`> that does seem like a bug then
2024-07-10 19:56:53 +0200 <EvanR> maybe list comprehensions do something else in the face of linear types
2024-07-10 19:57:01 +0200 <jle`> what if you moved the let back out like in the direct desugaring
2024-07-10 19:57:22 +0200 <jle`> weird' x = let f _ = [x] in concatMap f [1..5]
2024-07-10 20:02:52 +0200Square(~Square@user/square)
2024-07-10 20:02:59 +0200 <jpyamamoto> It doesn't typecheck, though the problem seems to be because of the function `f`, it is inferred to be non-linear
2024-07-10 20:04:07 +0200 <cheater> i had no idea undo did that
2024-07-10 20:04:11 +0200 <cheater> does hls have undo?
2024-07-10 20:07:22 +0200 <jpyamamoto> `f` does not typecheck when using concatMap from base-linear. If I use concatMap from prelude, `x` is not used linearly and doesn't typecheck
2024-07-10 20:10:50 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 20:10:59 +0200zlqrvx(~zlqrvx@user/zlqrvx) (Server closed connection)
2024-07-10 20:11:20 +0200zlqrvx(~zlqrvx@user/zlqrvx)
2024-07-10 20:12:32 +0200tessier(~treed@ec2-184-72-149-67.compute-1.amazonaws.com) (Server closed connection)
2024-07-10 20:12:56 +0200tessier(~treed@ec2-184-72-149-67.compute-1.amazonaws.com)
2024-07-10 20:14:12 +0200 <cheater> jpyamamoto: what is the type of concatMap from base-linear?
2024-07-10 20:16:24 +0200 <cheater> ugh. whytf doesn't hackage have linear-base
2024-07-10 20:17:06 +0200 <cheater> you have to select it from the dropdown
2024-07-10 20:17:07 +0200 <cheater> that's stupid
2024-07-10 20:17:14 +0200 <cheater> concatMap :: (a % 1 -> [b]) -> [a] % 1 -> [b]
2024-07-10 20:17:25 +0200 <cheater> :t concatMap
2024-07-10 20:17:26 +0200 <lambdabot> Foldable t => (a -> [b]) -> t a -> [b]
2024-07-10 20:18:46 +0200 <cheater> jpyamamoto: so when you compile that list comprehension, what core output do you get?
2024-07-10 20:18:52 +0200dyniec(~dyniec@dybiec.info)
2024-07-10 20:22:08 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 252 seconds)
2024-07-10 20:23:06 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2024-07-10 20:23:59 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 264 seconds)
2024-07-10 20:24:59 +0200Square(~Square@user/square) (Read error: Connection reset by peer)
2024-07-10 20:26:17 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 256 seconds)
2024-07-10 20:28:17 +0200tzh(~tzh@c-76-115-131-146.hsd1.or.comcast.net)
2024-07-10 20:30:04 +0200Square(~Square@user/square)
2024-07-10 20:32:13 +0200target_i(~target_i@user/target-i/x-6023099)
2024-07-10 20:35:28 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2024-07-10 20:36:02 +0200superbil(~superbil@114-32-231-70.hinet-ip.hinet.net) (Quit: WeeChat 4.3.3)
2024-07-10 20:38:51 +0200superbil(~superbil@114-32-231-70.hinet-ip.hinet.net)
2024-07-10 20:42:12 +0200 <jpyamamoto> cheater Took me a while, didn't know how to compile to core. But here is the output:
2024-07-10 20:42:12 +0200 <jpyamamoto> weird :: Int %1 -> [Int]
2024-07-10 20:42:13 +0200 <jpyamamoto> [GblId,
2024-07-10 20:42:13 +0200 <jpyamamoto>  Arity=1,
2024-07-10 20:42:14 +0200 <jpyamamoto>  Str=<L>,
2024-07-10 20:42:14 +0200 <jpyamamoto>  Unf=Unf{Src=<vanilla>, TopLvl=True,
2024-07-10 20:42:15 +0200 <jpyamamoto>          Value=True, ConLike=True, WorkFree=True, Expandable=True,
2024-07-10 20:42:15 +0200 <jpyamamoto>          Guidance=IF_ARGS [0] 211 0}]
2024-07-10 20:42:16 +0200 <jpyamamoto> weird
2024-07-10 20:42:16 +0200 <jpyamamoto>   = \ (x1_a1gj :: Int) ->
2024-07-10 20:42:17 +0200 <jpyamamoto>       letrec {
2024-07-10 20:42:17 +0200 <jpyamamoto>         go3_X1E [Occ=LoopBreaker, Dmd=SCS(L)] :: Integer -> [Int]
2024-07-10 20:42:18 +0200 <jpyamamoto>         [LclId, Arity=1, Str=<1L>, Unf=OtherCon []]
2024-07-10 20:42:18 +0200 <jpyamamoto>         go3_X1E
2024-07-10 20:42:19 +0200 <jpyamamoto>           = \ (x2_a2te :: Integer) ->
2024-07-10 20:42:19 +0200 <jpyamamoto>               case x2_a2te of wild_a2tk {
2024-07-10 20:42:20 +0200 <jpyamamoto>                 GHC.Num.Integer.IS x3_a2tl ->
2024-07-10 20:42:20 +0200 <jpyamamoto>                   case ghc-prim:GHC.Prim.># x3_a2tl 5# of {
2024-07-10 20:42:28 +0200 <cheater> homie don't paste shit in here
2024-07-10 20:42:33 +0200 <cheater> use a pastebin pleeeease
2024-07-10 20:43:06 +0200 <EvanR> esp since it's incomplete and the suspense is killing me
2024-07-10 20:43:07 +0200 <cheater> look in the topic for one: /topic
2024-07-10 20:43:34 +0200 <cheater> EvanR: i'm holding my breath and my face is turning purple
2024-07-10 20:44:22 +0200 <jpyamamoto> Sorry, here's the pastebin: https://pastebin.com/FVbH5Abm
2024-07-10 20:44:43 +0200 <cheater> no worries lol
2024-07-10 20:46:28 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 268 seconds)
2024-07-10 20:48:32 +0200 <cheater> i suggest translating that back to haskell and seeing how that fails if at all
2024-07-10 20:53:32 +0200 <cheater> honestly it sounds like a bug
2024-07-10 20:53:36 +0200 <cheater> i'd report it on haskell-cafe
2024-07-10 20:56:01 +0200yin(~yin@user/zero) (Ping timeout: 268 seconds)
2024-07-10 20:56:05 +0200dhil(~dhil@2001:8e0:2014:3100:d824:2bdc:f538:dd26) (Ping timeout: 240 seconds)
2024-07-10 20:59:19 +0200 <jpyamamoto> yeah, at first I thought it was because Int implements the Dupable typeclass, but i just tried using a type that does not implement Dupable, and still works. I think it's a bug
2024-07-10 21:01:01 +0200emmanuelux(~emmanuelu@user/emmanuelux)
2024-07-10 21:04:27 +0200 <jle`> congrats
2024-07-10 21:12:29 +0200mechap(~mechap@user/mechap) (Ping timeout: 240 seconds)
2024-07-10 21:22:45 +0200 <int-e> desugaring list comprehensions doesn't actually use concatMap... instead it generates ad-hoch recursive functions
2024-07-10 21:22:53 +0200 <int-e> -h
2024-07-10 21:24:09 +0200 <int-e> Or direct foldr/build things if optimization is enabled.
2024-07-10 21:27:56 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net)
2024-07-10 21:38:44 +0200 <int-e> So instead of that you get ad-hoc generation of constraints for list comprehension here, and evidently that doesn't account for loss of linearity. No clue how that would work :). https://gitlab.haskell.org/ghc/ghc/-/blob/master/compiler/GHC/Tc/Gen/Match.hs?ref_type=heads#L493-…
2024-07-10 21:38:54 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com)
2024-07-10 21:51:54 +0200bilegeek(~bilegeek@2600:1008:b019:7537:8fbb:bca3:6ac1:6fb0)
2024-07-10 21:58:38 +0200smalltalkman(uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2024-07-10 22:09:07 +0200jpyamamoto(~jpyamamot@2806:2f0:92e5:a4e7:7db3:fca:c65b:c605) (Quit: Client closed)
2024-07-10 22:11:40 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 22:14:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 22:15:04 +0200soverysour(~soverysou@81.196.150.219)
2024-07-10 22:15:04 +0200soverysour(~soverysou@81.196.150.219) (Changing host)
2024-07-10 22:15:04 +0200soverysour(~soverysou@user/soverysour)
2024-07-10 22:22:15 +0200yin(~yin@user/zero)
2024-07-10 22:27:23 +0200tmr(~tamer@5.2.74.82) (Server closed connection)
2024-07-10 22:27:40 +0200tmr(~tamer@5.2.74.82)
2024-07-10 22:33:35 +0200andrea_r(~user@93-49-96-212.ip366.fastwebnet.it) (Server closed connection)
2024-07-10 22:33:53 +0200andrea_r(~user@93-49-96-212.ip366.fastwebnet.it)
2024-07-10 22:36:47 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-07-10 22:49:05 +0200machinedgod(~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
2024-07-10 22:55:44 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 23:00:32 +0200cpressey(~weechat@176.254.71.203) (Ping timeout: 252 seconds)
2024-07-10 23:05:16 +0200yin(~yin@user/zero) (Ping timeout: 246 seconds)
2024-07-10 23:19:41 +0200euleritian(~euleritia@77.22.252.56) (Read error: Connection reset by peer)
2024-07-10 23:20:25 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-07-10 23:20:51 +0200takuan(~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
2024-07-10 23:21:54 +0200JuanDaugherty(~juan@user/JuanDaugherty) (Quit: JuanDaugherty)
2024-07-10 23:23:14 +0200cpressey(~weechat@176.254.71.203)
2024-07-10 23:23:24 +0200tomku(~tomku@user/tomku) (Ping timeout: 268 seconds)
2024-07-10 23:23:38 +0200tomku(~tomku@user/tomku)
2024-07-10 23:25:09 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-07-10 23:25:13 +0200soverysour(~soverysou@user/soverysour) (Ping timeout: 256 seconds)
2024-07-10 23:25:16 +0200ft(~ft@p4fc2ab80.dip0.t-ipconnect.de)
2024-07-10 23:25:46 +0200visilii(~visilii@213.24.125.33) (Quit: ZNC - https://znc.in)
2024-07-10 23:28:02 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2024-07-10 23:31:27 +0200pavonia(~user@user/siracusa)
2024-07-10 23:32:02 +0200jpyamamoto(~jpyamamot@2806:2f0:92e5:a4e7:7db3:fca:c65b:c605)
2024-07-10 23:32:47 +0200michalz(~michalz@185.246.207.217) (Quit: ZNC 1.9.0 - https://znc.in)
2024-07-10 23:33:31 +0200jpyamamoto(~jpyamamot@2806:2f0:92e5:a4e7:7db3:fca:c65b:c605) (Client Quit)
2024-07-10 23:36:14 +0200cpressey(~weechat@176.254.71.203) (Quit: WeeChat 4.3.0)
2024-07-10 23:40:39 +0200CiaoSen(~Jura@2a05:5800:2b5:3f00:e6b9:7aff:fe80:3d03)
2024-07-10 23:42:11 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net) (Quit: ZNC 1.8.2+cygwin2 - https://znc.in)
2024-07-10 23:43:03 +0200erisco(~erisco@d24-141-66-165.home.cgocable.net)
2024-07-10 23:45:45 +0200target_i(~target_i@user/target-i/x-6023099) (Quit: leaving)
2024-07-10 23:49:39 +0200dysthesis(~dysthesis@user/dysthesis)
2024-07-10 23:50:48 +0200yin(~yin@user/zero)
2024-07-10 23:58:47 +0200mreh(~matthew@host86-160-168-12.range86-160.btcentralplus.com) (Ping timeout: 264 seconds)