Home liberachat/#haskell: Logs Calendar

Logs on 2023-07-02 (liberachat/#haskell)

00:00:05 × troydm quits (~troydm@user/troydm) (*.net *.split)
00:00:05 × robertm quits (robertm@lattice.rojoma.com) (*.net *.split)
00:00:05 × tabemann quits (~tabemann@2600:1700:7990:24e0:cd08:c5bb:9d2b:dbaa) (*.net *.split)
00:00:05 × oo_miguel quits (~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (*.net *.split)
00:00:05 × leah2 quits (~leah@vuxu.org) (*.net *.split)
00:00:05 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (*.net *.split)
00:00:05 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (*.net *.split)
00:00:05 × pieguy128_ quits (~pieguy128@bras-base-mtrlpq5031w-grc-54-65-92-160-253.dsl.bell.ca) (*.net *.split)
00:00:05 × mrmr quits (~mrmr@user/mrmr) (*.net *.split)
00:00:05 × sunarch quits (~sunarch@user/sunarch) (*.net *.split)
00:00:05 × ubert quits (~Thunderbi@p548c89d1.dip0.t-ipconnect.de) (*.net *.split)
00:00:05 × Lears quits (~Leary]@user/Leary/x-0910699) (*.net *.split)
00:00:05 × Hafydd quits (~Hafydd@user/hafydd) (*.net *.split)
00:00:05 × Xe quits (~cadey@tailscale/xe) (*.net *.split)
00:00:05 × drdo quits (~drdo@bl8-153-185.dsl.telepac.pt) (*.net *.split)
00:00:05 × tomboy64 quits (~tomboy64@user/tomboy64) (*.net *.split)
00:00:05 × urdh quits (~urdh@user/urdh) (*.net *.split)
00:00:05 × aku quits (~aku@65.108.245.241) (*.net *.split)
00:00:05 × tomjaguarpaw quits (~tom@172-104-25-182.ip.linodeusercontent.com) (*.net *.split)
00:00:05 × lexi-lambda quits (sid92601@hampstead.irccloud.com) (*.net *.split)
00:00:05 × ryantrinkle quits (~ryantrink@204.2.90.61) (*.net *.split)
00:00:05 × p3n quits (~p3n@217.198.124.246) (*.net *.split)
00:00:05 × ralu1 quits (~ralu@static.211.245.203.116.clients.your-server.de) (*.net *.split)
00:00:05 × quintasan quits (~quassel@quintasan.pl) (*.net *.split)
00:00:05 × mhatta quits (~mhatta@www21123ui.sakura.ne.jp) (*.net *.split)
00:00:05 × forell quits (~forell@user/forell) (*.net *.split)
00:00:05 × Putonlalla quits (~Putonlall@it-cyan.it.jyu.fi) (*.net *.split)
00:00:05 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split)
00:00:05 × hnOsmium0001 quits (~hnosm@user/hnOsmium0001) (*.net *.split)
00:00:05 × Everything quits (~Everythin@static.208.206.21.65.clients.your-server.de) (*.net *.split)
00:00:17 tomjaguarpaw joins (~tom@172.104.25.182)
00:00:20 ralu1 joins (~ralu@static.211.245.203.116.clients.your-server.de)
00:00:25 tabemann joins (~tabemann@2600:1700:7990:24e0:cd08:c5bb:9d2b:dbaa)
00:00:25 quintasan joins (~quassel@188.226.239.107)
00:00:29 troydm joins (~troydm@host-176-37-53-238.b025.la.net.ua)
00:00:31 aku joins (~aku@65.108.245.241)
00:00:38 Hafydd joins (~Hafydd@2001:41d0:305:2100::31aa)
00:00:38 tomboy64 joins (~tomboy64@37.120.27.183)
00:00:38 robertm joins (robertm@lattice.rojoma.com)
00:00:39 leah2 joins (~leah@vuxu.org)
00:00:43 Xe joins (~cadey@bras-base-orlnon0609w-grc-19-142-112-175-96.dsl.bell.ca)
00:01:03 × troydm quits (~troydm@host-176-37-53-238.b025.la.net.ua) (Changing host)
00:01:03 troydm joins (~troydm@user/troydm)
00:01:11 × tomboy64 quits (~tomboy64@37.120.27.183) (Changing host)
00:01:11 tomboy64 joins (~tomboy64@user/tomboy64)
00:01:13 Putonlalla joins (~Putonlall@it-cyan.it.jyu.fi)
00:01:14 × Xe quits (~cadey@bras-base-orlnon0609w-grc-19-142-112-175-96.dsl.bell.ca) (Changing host)
00:01:14 Xe joins (~cadey@tailscale/xe)
00:01:15 lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com)
00:01:16 iphy joins (sid67735@id-67735.lymington.irccloud.com)
00:01:17 ryantrinkle joins (~ryantrink@204.2.90.61)
00:01:53 oo_miguel joins (~Thunderbi@78-11-179-96.static.ip.netia.com.pl)
00:02:03 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:02:23 pieguy128 joins (~pieguy128@bras-base-mtrlpq5031w-grc-54-65-92-160-253.dsl.bell.ca)
00:02:25 mhatta joins (~mhatta@www21123ui.sakura.ne.jp)
00:02:28 p3n joins (~p3n@2a00:19a0:3:7c:0:d9c6:7cf6:1)
00:02:31 ubert joins (~Thunderbi@p200300ecdf0b57ae588ba3eb26214d5f.dip0.t-ipconnect.de)
00:02:56 <ski> "bottom is hidden constructor" -- no
00:03:28 × leah2 quits (~leah@vuxu.org) (Client Quit)
00:03:40 leah2 joins (~leah@vuxu.org)
00:03:56 hnOsmium0001 joins (~hnosm@user/hnOsmium0001)
00:03:57 sunarch joins (~sunarch@user/sunarch)
00:04:05 <ski> anyway, i was reminded of a distinction between errors and faults, where error means that there's a problem in the program, while fault means there's a problem in the language implementation (out-of-memory, other implementation limits exceeded, ..)
00:04:30 urdh joins (~urdh@user/urdh)
00:05:14 Everything joins (~Everythin@static.208.206.21.65.clients.your-server.de)
00:05:25 <chromoblob> i believe that with a good computer and language design the set of faults could be reduced to empty
00:06:24 forell joins (~forell@user/forell)
00:06:28 <geekosaur> doubt
00:08:00 <geekosaur> in particular, out of memory will always be constrained by what else the computer is doing, and if you try to "solve" that by making a fixed container part of the RTS you will find that allowing that container to communicate with anything else brings back all the faults the container is supposed to prevent
00:08:32 × acidjnk quits (~acidjnk@p200300d6e7072f917cbb145f44358b06.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
00:08:36 <geekosaur> you may also find yourself having ana rgument with the halting problem
00:08:58 <geekosaur> (it'll win)
00:09:05 <chromoblob> failure to halt is not a fault
00:09:58 <geekosaur> knowing precisely whether a program will OOM or not may (I have not checked this) reduce to having an oracle for program halting
00:10:21 barrucadu joins (~barrucadu@carcosa.barrucadu.co.uk)
00:11:04 <geekosaur> note also that the halting problem doesn't make the distinction you want to, so may sneak in the back door of your design
00:12:49 <chromoblob> "making a fixed container part of the RTS" please clarify, what does this mean?
00:12:52 califax joins (~califax@user/califx)
00:13:12 <geekosaur> oh dear. and you think you have any chance at all of constraining OOM
00:14:10 <geekosaur> either your program executes in a container (docker, xen, whatever) by itself with known memory constraints, or you have no knowledge of externally-caused lack of memory until it happens
00:15:39 <chromoblob> why does allowing to communicate bring back the fauls?
00:17:21 <chromoblob> "may reduce to having an oracle" i think you're wrong, just enumerate all states of the program until it exceeds bound, and the number of states is also limited by the bound
00:17:42 <geekosaur> you can't know that bound unless you use a container as I said
00:18:11 <geekosaur> otherwise (a) the OS sets the bound (b) dynamically based on its own needs and those of other programs on the system
00:18:27 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
00:18:35 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 264 seconds)
00:18:52 <geekosaur> and "its own needs" is why allowing holes in your container brings back indeterminacy
00:19:20 <chromoblob> the OS and the program can agree on the bound beforehand
00:19:30 drdo joins (~drdo@bl8-153-185.dsl.telepac.pt)
00:19:50 <chromoblob> it can vary over time
00:20:16 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
00:20:20 Guest14 joins (~Guest14@c-71-202-12-4.hsd1.ca.comcast.net)
00:20:24 <chromoblob> be dependent on input
00:23:35 <geekosaur> glwt
00:24:30 <chromoblob> the most precise bound is the ideal case, but people will do the best thing that is practical
00:24:32 lamnou[m] joins (~lamnoumat@2001:470:69fc:105::3:7a7e)
00:24:49 <chromoblob> go as bad as you want
00:24:58 <geekosaur> "practical" here means not counting on the OS to play along with your language
00:25:03 jakky joins (sid360637@id-360637.lymington.irccloud.com)
00:25:23 <chromoblob> well that precludes the good design doesn't it?
00:25:41 <chromoblob> if the OS is stupider...
00:25:56 <geekosaur> once you finish thinking this through, ask yourself why this has never been done before
00:26:40 <geekosaur> "stupider" is not a constraint. "vendors are willing to put in the effort just for you" is a constraint
00:27:07 <geekosaur> (this includes linus vs. a patch which touches practically every part of the kernel that allocates memory)
00:27:35 <chromoblob> oh so by OS you really mean Linux.....
00:27:49 <nyc> geekosaur: That sounds like a very broad sweep.
00:27:54 <geekosaur> no, by OS I mean linux and *BSD are the only chances you have
00:28:10 <geekosaur> because neither Apple nor Microsoft will see any profit in playing along with you
00:28:10 <nyc> geekosaur: What was it changing memory allocation to do?
00:28:28 <chromoblob> when did people start programming in dependent types? i think not ages ago
00:28:34 <geekosaur> nyc: the claim is that the language can know whether any program will run out of memory or not, if the OS plays along
00:29:32 <chromoblob> geekosaur: do you know that i'm making a processor architecture for real-time programs and a language for it where you can specify time constraints in the type system?
00:29:37 <geekosaur> I am unconvinced even if you can get the OS to play along, and I think the chances of accomplishing that much are slim to none
00:29:41 <chromoblob> same with memory
00:30:05 <geekosaur> I think you'll still run into limits
00:30:08 <nyc> geekosaur: Non-overcommit?
00:30:13 <chromoblob> the chance of achieving *the best practical thing* is 100%.
00:30:42 <chromoblob> excluding research and illness.
00:31:13 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
00:32:01 <geekosaur> best possible background, ok. IF you also insist that only one program runs at a time, including the OS
00:32:24 <chromoblob> which time
00:32:27 <chromoblob> you can parallelize
00:32:46 <nyc> I still haven't figured out how to read ticky ticky profiles.
00:32:53 <geekosaur> uh, no
00:33:36 <geekosaur> I mean, sure you can, but you just lost all possibility of constraining any resources because anything else running can choose to gobble them all up with no advance warning
00:33:45 <geekosaur> unless you are not turning complete
00:33:49 <geekosaur> *turing
00:34:51 <geekosaur> as soon as you have general looping/recursion, you cannot determine resource usage beforehand and therefore can't coordinate it between instances
00:35:07 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
00:36:05 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
00:37:14 × kosmikus[m] quits (~andresloe@2001:470:69fc:105::95d) (Server closed connection)
00:37:18 <nyc> I think the idea that kernels want to have is mostly that the kernel won't crash in a disorderly fashion instead of just delivering -ENOMEM errors.
00:37:29 kosmikus[m] joins (~andresloe@2001:470:69fc:105::95d)
00:42:18 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
00:43:41 cafkafk joins (~cafkafk@fsf/member/cafkafk)
00:44:16 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
00:47:59 dibblego joins (~dibblego@116.255.1.157)
00:47:59 × dibblego quits (~dibblego@116.255.1.157) (Changing host)
00:48:00 dibblego joins (~dibblego@haskell/developer/dibblego)
00:54:26 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
00:54:50 cafkafk joins (~cafkafk@fsf/member/cafkafk)
00:56:13 <chromoblob> geekosaur: resource usage can't be determined only if it in principle is unbounded. the system is bounded by total memory and compute amount
00:57:17 <chromoblob> unless you consider a galactic computer that expands more quickly than its programs grow
00:57:35 <chromoblob> even then there may be models
00:58:11 [Leary] joins (~Leary]@user/Leary/x-0910699)
00:59:59 × sm[i] quits (~smi]@plaintextaccounting/sm) (Ping timeout: 246 seconds)
01:04:56 <chromoblob> for a given memory usage, set of states is finite, so for every memory usage can check if it will grow further
01:06:46 <chromoblob> although simply enumerating all the states is not real
01:06:58 <geekosaur> so you have disallowed general recursion?
01:07:18 <chromoblob> but if the programmer writes code explicitly with bounds, we can easily go much further
01:07:27 <chromoblob> geekosaur: no real computer is Turing-complete
01:08:42 <geekosaur> but they require something bigger than the computer to determine that, so it's irrelevant in practice
01:10:25 <geekosaur> more to the point, it has to be observed from outside. how do you plan to do that?
01:10:45 aforemny joins (~aforemny@2001:9e8:6cfc:6e00:63a1:e62a:573a:a005)
01:11:02 × aforemny_ quits (~aforemny@2001:9e8:6cec:3100:d473:753c:6494:4f21) (Ping timeout: 245 seconds)
01:11:05 <chromoblob> i can't parse your two messages
01:11:20 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:11:21 <chromoblob> "they", "it" - what
01:13:19 Inst joins (~Inst@2601:6c4:4081:2fc0:40cd:5042:4636:845b)
01:13:20 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::a8c) (Ping timeout: 260 seconds)
01:14:46 <geekosaur> "they" = "all real computers", reason being that each state's representation is too large to fit inside the computer so the computer cannot enumerate its own states. thus the state of each computer ("it") can only be observed from outside
01:15:01 <geekosaur> which is the primary reason I brought up containers earlier, so there would be an outside
01:15:44 <geekosaur> otherwise you must limit to finite states that fit within the computer and therefore can not support general recursion
01:16:45 <geekosaur> but it's getting to ve nmy bedtime, if you must discover this the hard way then have fun
01:17:27 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:19:06 <chromoblob> thank you for clarifying the problem
01:20:39 × nek0 quits (~nek0@2a01:4f8:222:2b41::12) (Quit: The Lounge - https://thelounge.chat)
01:23:00 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
01:28:10 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
01:28:25 mjt128 joins (~user@2604:3d09:3e79:f200:fe0b:333e:2b63:efd2)
01:29:40 monix joins (~quassel@a85-138-255-115.cpe.netcabo.pt)
01:30:34 monix is now known as festerdam
01:31:02 × festerdam quits (~quassel@a85-138-255-115.cpe.netcabo.pt) (Client Quit)
01:31:25 festerdam joins (~quassel@a85-138-255-115.cpe.netcabo.pt)
01:32:08 festerdam parts (~quassel@a85-138-255-115.cpe.netcabo.pt) ()
01:43:52 × dmenz quits (~dmenz@2804:14d:5cd4:85fb:176f:8705:81c:687a) (Ping timeout: 240 seconds)
01:43:57 × chromoblob quits (~user@37.113.180.121) (Ping timeout: 245 seconds)
02:01:10 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
02:01:52 × smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
02:03:58 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
02:05:28 bratwurst joins (~dfadsva@2604:3d09:207f:f650::a8c)
02:06:26 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
02:17:20 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
02:18:44 finn_elija joins (~finn_elij@user/finn-elija/x-0085643)
02:18:44 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
02:18:44 finn_elija is now known as FinnElija
02:23:30 × td_ quits (~td@i5387090D.versanet.de) (Ping timeout: 250 seconds)
02:25:35 td_ joins (~td@i5387090A.versanet.de)
02:28:31 × phma quits (phma@2001:5b0:211f:cfc8:7811:e29d:8e4:daa2) (Read error: Connection reset by peer)
02:28:55 phma joins (phma@2001:5b0:211f:cfc8:7811:e29d:8e4:daa2)
02:33:18 azimut joins (~azimut@gateway/tor-sasl/azimut)
02:35:23 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
02:40:59 cafkafk joins (~cafkafk@fsf/member/cafkafk)
02:46:11 × waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 264 seconds)
02:51:40 × stonebridge quits (~stronebri@bcdcac82.skybroadband.com) (Quit: Connection error?!)
02:52:13 marvel83 joins (~marvel83@bcdcac82.skybroadband.com)
02:59:14 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
02:59:33 <monochrom> There are some questions known to be in EXPTIME. This also means exponentially many distinct states the best algorithm must go through. Therefore, an observer that keeps tabs on which states have been visited needs exponentially more space.
03:00:43 <monochrom> To keep tabs on a 8GB-RAM computer requires 2^(8GB) space. I don't have that much space. Do you?
03:01:16 <monochrom> To be sure, it still "qualifies" as "O(1)" space. >:D
03:03:21 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
03:04:10 <monochrom> And perhaps s/EXPTIME/EXPTIME-complete/
03:06:24 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
03:08:27 barzo joins (~hd@31.223.41.197)
03:09:47 chromoblob joins (~user@37.113.180.121)
03:18:46 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 260 seconds)
03:23:32 × chromoblob quits (~user@37.113.180.121) (Ping timeout: 240 seconds)
03:27:46 trev joins (~trev@user/trev)
03:31:27 fweht joins (uid404746@id-404746.lymington.irccloud.com)
03:31:27 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::a8c) (Ping timeout: 245 seconds)
03:32:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:38:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
03:46:24 aforemny_ joins (~aforemny@2001:9e8:6ccc:3300:341b:150:2961:d57a)
03:47:17 × aforemny quits (~aforemny@2001:9e8:6cfc:6e00:63a1:e62a:573a:a005) (Ping timeout: 245 seconds)
04:09:14 × Clinton[m] quits (~clintonme@2001:470:69fc:105::2:31d4) (Server closed connection)
04:09:28 Clinton[m] joins (~clintonme@2001:470:69fc:105::2:31d4)
04:13:14 × aerc[m] quits (~aercmatri@2001:470:69fc:105::3:67b9) (Server closed connection)
04:13:28 aerc[m] joins (~aercmatri@2001:470:69fc:105::3:67b9)
04:25:27 thegeekinside joins (~thegeekin@189.217.90.138)
04:28:23 × thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer)
04:37:26 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
04:37:50 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds)
04:37:58 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
04:45:32 notzmv joins (~zmv@user/notzmv)
04:45:37 cafkafk joins (~cafkafk@fsf/member/cafkafk)
04:47:50 × Guest14 quits (~Guest14@c-71-202-12-4.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
04:48:14 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 250 seconds)
04:50:06 xff0x joins (~xff0x@2405:6580:b080:900:722b:d772:7870:6a8e)
04:51:42 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 250 seconds)
05:01:01 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
05:01:47 × ddellacosta quits (~ddellacos@143.244.47.100) (Ping timeout: 264 seconds)
05:03:33 ddellacosta joins (~ddellacos@146.70.166.245)
05:05:59 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 264 seconds)
05:07:23 × ddellacosta quits (~ddellacos@146.70.166.245) (Client Quit)
05:08:04 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Remote host closed the connection)
05:08:40 jpds joins (~jpds@gateway/tor-sasl/jpds)
05:10:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
05:11:57 azimut joins (~azimut@gateway/tor-sasl/azimut)
05:17:10 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
05:17:33 cafkafk joins (~cafkafk@fsf/member/cafkafk)
05:35:14 × Las[m]1 quits (~lasmatrix@2001:470:69fc:105::74e) (Server closed connection)
05:35:29 Las[m]1 joins (~lasmatrix@2001:470:69fc:105::74e)
05:36:19 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
05:43:37 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
05:44:16 ec joins (~ec@gateway/tor-sasl/ec)
05:48:44 × xff0x quits (~xff0x@2405:6580:b080:900:722b:d772:7870:6a8e) (Ping timeout: 240 seconds)
05:49:08 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
05:56:38 <mauke> in practice, all problems are O(1) because numbers are finite
06:14:47 × mstksg quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 245 seconds)
06:16:56 mstksg joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
06:17:42 × fweht quits (uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
06:19:31 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
06:20:02 cafkafk joins (~cafkafk@fsf/member/cafkafk)
06:26:57 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:29:40 Inst_ joins (~Inst@2601:6c4:4081:2fc0:4ce0:dbb4:3e84:48a2)
06:32:12 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
06:33:07 × Inst quits (~Inst@2601:6c4:4081:2fc0:40cd:5042:4636:845b) (Ping timeout: 245 seconds)
06:33:28 gmg joins (~user@user/gehmehgeh)
06:36:56 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
06:37:18 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
06:39:26 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
06:42:32 × dtman34 quits (~dtman34@2601:447:d000:93c9:6f54:cf51:938d:ead5) (Ping timeout: 246 seconds)
06:45:25 cafkafk joins (~cafkafk@fsf/member/cafkafk)
06:46:24 dtman34 joins (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net)
06:49:31 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
06:52:41 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Read error: Connection reset by peer)
06:55:49 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
06:55:57 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
06:56:38 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
06:58:12 <jade[m]> <monochrom> "To keep tabs on a 8GB-RAM..." <- just make a 256GB swap :P
07:01:02 takuan joins (~takuan@178-116-218-225.access.telenet.be)
07:03:11 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
07:03:34 cafkafk joins (~cafkafk@fsf/member/cafkafk)
07:04:18 × TheCoffeMaker quits (~TheCoffeM@user/thecoffemaker) (Quit: So long and thanks for all the fish)
07:07:05 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:11:52 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 245 seconds)
07:12:25 chromoblob joins (~user@37.113.180.121)
07:15:01 Feuermagier_ joins (~Feuermagi@user/feuermagier)
07:15:01 Feuermagier is now known as Guest8860
07:15:01 × Guest8860 quits (~Feuermagi@user/feuermagier) (Killed (molybdenum.libera.chat (Nickname regained by services)))
07:15:02 Feuermagier_ is now known as Feuermagier
07:15:05 × notzmv quits (~zmv@user/notzmv) (Ping timeout: 240 seconds)
07:16:13 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
07:16:46 × chromoblob quits (~user@37.113.180.121) (Ping timeout: 260 seconds)
07:20:53 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
07:24:25 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 240 seconds)
07:26:42 Techcable joins (~Techcable@user/Techcable)
07:34:10 titibandit joins (~titibandi@user/titibandit)
07:41:21 × titibandit quits (~titibandi@user/titibandit) (Read error: Connection reset by peer)
07:42:08 titibandit joins (~titibandi@user/titibandit)
07:42:26 hisa3873 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
07:43:38 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
07:44:20 × hisa387 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 240 seconds)
07:44:20 hisa3873 is now known as hisa387
07:47:17 fendor joins (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
07:48:26 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:bd12:aba9:a757:ddbd) (Remote host closed the connection)
07:49:47 TheCoffeMaker joins (~TheCoffeM@user/thecoffemaker)
07:56:57 × mjt128 quits (~user@2604:3d09:3e79:f200:fe0b:333e:2b63:efd2) (Remote host closed the connection)
07:58:10 <probie> If I have a cabal file that defines an internal library, but nothing depends on the internal library, will the internal library's dependencies still be built or will it just be completely ignored?
08:04:36 acidjnk joins (~acidjnk@p200300d6e7072f177cbb145f44358b06.dip0.t-ipconnect.de)
08:05:11 Pickchea joins (~private@user/pickchea)
08:05:16 <arahael> probie: Why does it matter? (Just curious)
08:11:01 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
08:11:14 <probie> because the internal library may not even have a satisfiable set of dependencies in the event that nothing depends on it. In the worst case I can stick a conditional in front of the internal library's dependencies so it simply doesn't have any dependencies in the event that nothing depends on it
08:13:01 <probie> I'm currently away from my dev machine, so I unfortunately have a hundred questions going through my head, but without the ability to simply try it (for the next few hours, anyway)
08:16:12 × barzo quits (~hd@31.223.41.197) (Quit: Leaving)
08:18:22 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
08:19:32 <probie> what I was working on (and I guess, am still thinking about) is (ab)using backpack to solve my "typeclass dependency" problem - namely, that I don't want a mandatory dependency on a package like comonad to have comonads, but if I actually depend on comonad, I want my `Comonad` class to be the one from the comonad pacakge
08:23:29 <arahael> Oh that's way too abstract for me right now but my thinking is that if there's a formal dependency on the package, it should get built. Whether it then remains in the application is another question.
08:23:45 <arahael> If there's no dependency specified, however, then that's when I would ask "Why does it matter?"
08:27:15 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
08:27:20 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
08:31:23 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
08:33:10 × econo_ quits (uid147250@id-147250.tinside.irccloud.com) (Quit: Connection closed for inactivity)
08:37:30 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 260 seconds)
08:39:00 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
08:42:17 × infinity0 quits (~infinity0@pwned.gg) (Ping timeout: 245 seconds)
08:43:25 infinity0 joins (~infinity0@pwned.gg)
08:48:56 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:bd12:aba9:a757:ddbd)
08:52:30 × tackleton quits (~tackleton@user/tackleton) (Quit: Bouncer down)
08:53:17 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:bd12:aba9:a757:ddbd) (Ping timeout: 246 seconds)
09:04:03 gurkenglas joins (~gurkengla@dynamic-046-114-181-031.46.114.pool.telefonica.de)
09:05:24 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
09:11:00 chromoblob joins (~user@37.113.180.121)
09:12:11 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
09:15:58 wootehfoot joins (~wootehfoo@user/wootehfoot)
09:22:45 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
09:24:30 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
09:24:31 Lord_of_Life_ is now known as Lord_of_Life
09:30:57 × tzh quits (~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
09:37:02 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
09:40:01 alexherbo2 joins (~alexherbo@2a02-8440-2441-3d48-490c-814f-aeeb-9af8.rev.sfr.net)
09:41:14 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
09:56:01 × ormaaaj quits (~ormaaj@user/ormaaj) (Remote host closed the connection)
09:56:20 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
09:56:47 ormaaaj joins (~ormaaj@user/ormaaj)
09:56:49 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
09:57:33 ormaaaj is now known as ormaaj
10:00:59 × Cheery quits (~cheery@server-239-7.tentacle.cloud) (Quit: leaving)
10:04:16 xff0x_ joins (~xff0x@2405:6580:b080:900:722b:d772:7870:6a8e)
10:07:12 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds)
10:09:17 × alexherbo2 quits (~alexherbo@2a02-8440-2441-3d48-490c-814f-aeeb-9af8.rev.sfr.net) (Remote host closed the connection)
10:12:52 <Axman6> Anyone know why ghcup wouldn't let me run the tui? I'm running (aarch64) ubuntu, with version 0.1.19.3
10:13:47 <Axman6> the option doesn't show up in the help (and running ghcup tui just prints the help)
10:26:37 <maerwald> Axman6: I'm fixing that right now
10:26:41 <maerwald> will be another release
10:26:52 <maerwald> wasn't aware we have so many linux aarch64 users, in fact
10:27:17 <maerwald> binaries are already built, so will take half an hour
10:27:22 <Axman6> maerwald: <3
10:28:04 <Axman6> Well, I'm only one of them because I want to do some work on the aarch64 NCG... but I don't have any aarch64 machines so I'm using an EC2 instance
10:28:49 <Axman6> what's stopping it from working there?
10:29:20 <maerwald> issues with CI config and cabal versions
10:35:18 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
10:35:41 <Axman6> Fair enough - well thank you for all the time you (and others) have put into it, I feel I owe y'all a beer or two
10:36:59 fweht joins (uid404746@id-404746.lymington.irccloud.com)
10:39:27 <chromoblob> dumb question, are haskell-src and haskell-src-exts substantially different, apart from extension support?
10:43:05 <chromoblob> hm. if i export a function that refers to a top-level variable defined in a certain module that is written by the user, would that be recursive modules? how hard are they to implement?
10:43:10 cafkafk joins (~cafkafk@fsf/member/cafkafk)
10:44:01 <chromoblob> ok, user can just define my_function = my_general_function user's_parameter
10:47:38 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
10:48:30 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
10:48:57 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
10:50:25 × fendor quits (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
10:50:41 <chromoblob> ok i think i'll roll with haskell-src-exts, many are simple syntactical extensions that're good to have
10:52:42 × dfordvm quits (~dfordivam@160.16.87.223.v6.sakura.ne.jp) (Server closed connection)
10:53:10 dfordvm joins (~dfordivam@160.16.87.223.v6.sakura.ne.jp)
10:53:19 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
10:57:02 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
10:57:28 <maerwald> Axman6: should be done
10:58:16 <Axman6> the fix, or ghcup should be done, so you're making it? :P
10:58:33 <maerwald> Axman6: ghcup upgrade
10:58:55 <Axman6> it sure is! what a legend, thanks maerwald
11:01:09 <Axman6> so maybe you might know this, after installing ghc 9.6.2 on aarch64 linux, it seems like it might hav a broken installation, I get "Warning: include-dirs: /data/home/ubuntu/.ghcup/ghc/9.6.2/lib/ghc-9.6.2/lib/../lib/aarch64-linux-ghc-9.6.2/directory-1.3.8.1/include doesn't exist or isn't a directory"
11:01:44 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
11:01:59 <maerwald> you get the warning where
11:02:35 <Axman6> uh sorry, when running ghc-pkg check
11:03:01 <maerwald> ghcup install ghc 9.6.2 --force
11:04:01 <Axman6> thanks - trying now
11:05:30 <maerwald> `ghcup tui` sometimes segfaults ... I have not found out what's going on there
11:05:39 <maerwald> this must be due to brick
11:05:48 <maerwald> and as such it can leave a partial installation... I guess
11:07:15 <Axman6> hmm. This was after doing a ghcup nuke and then immediately installing 9.6.2 without the tui and it succeding
11:08:03 <Axman6> yeah same warning after the --force install
11:08:05 mrmr joins (~mrmr@user/mrmr)
11:09:01 <maerwald> yes I can reproduce
11:09:07 <maerwald> looks like the bindist is busted then
11:09:54 fendor joins (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
11:10:17 <Axman6> well, I'm glad it's not me - I've had some weirds things happen on this machine because I tried to use an EBS snapshot from anoter ec2 instance, and that meant half my paths were wrong (because I'm dumb, not ghcup or anything else)
11:10:35 <maerwald> Axman6: https://imgur.com/2SNWufx.png
11:11:29 <Axman6> yeah that's what mine looks like - should I report it somewhere? (where? ghc gitlab?)
11:11:47 <maerwald> yes, GHC gitlab
11:12:08 alexherbo2 joins (~alexherbo@232.145.204.77.rev.sfr.net)
11:17:37 <Axman6> maerwald: can you check 9.6.1 for me? that's broken for me too
11:17:43 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
11:21:58 <maerwald> Axman6: yeah, same
11:22:12 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 240 seconds)
11:23:19 <Axman6> I'll check 9.4's too
11:25:22 × tremon quits (~tremon@83.80.159.219) (Remote host closed the connection)
11:26:31 <maerwald> 9.4 doesn't seem to have this warning
11:26:40 <Axman6> yeah
11:30:30 × nshepperd2 quits (nshepperd@2600:3c03::f03c:92ff:fe28:92c9) (Quit: Ping timeout (120 seconds))
11:30:43 nshepperd2 joins (nshepperd@2600:3c03::f03c:92ff:fe28:92c9)
11:31:05 × landonf quits (landonf@mac68k.info) (Ping timeout: 260 seconds)
11:31:45 × joeyh_ quits (~joeyh@kitenet.net) (Quit: ZNC 1.8.2+deb3+b4 - https://znc.in)
11:31:46 × arkeet quits (~arkeet@moriya.ca) (Quit: ZNC 1.8.2 - https://znc.in)
11:31:55 arkeet joins (arkeet@moriya.ca)
11:31:56 joeyh joins (~joeyh@kitenet.net)
11:32:38 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
11:34:21 infinity0 joins (~infinity0@pwned.gg)
11:34:32 × tolt quits (~weechat-h@li219-154.members.linode.com) (Ping timeout: 240 seconds)
11:34:34 <Axman6> maerwald: https://gitlab.haskell.org/ghc/ghc/-/issues/23594
11:35:39 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
11:35:48 landonf joins (landonf@mac68k.info)
11:35:53 tolt joins (~weechat-h@173.255.209.154)
11:36:31 Pickchea joins (~private@user/pickchea)
11:37:47 infinity0 joins (~infinity0@pwned.gg)
11:41:14 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
11:42:44 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
11:43:56 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
11:44:26 ec joins (~ec@gateway/tor-sasl/ec)
11:46:50 × smalltalkman quits (uid545680@id-545680.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
11:50:14 <chromoblob> didn't know about the semicolons
11:50:19 <chromoblob> > if True; then 2; else 3
11:50:21 <lambdabot> 2
11:50:28 <chromoblob> oh, it's for layout rules?
11:50:49 <hpc> semicolon before "then"? what is this, bash? :D
11:50:57 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
11:51:01 <hpc> yeah, it's for layout
11:51:37 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
11:51:38 <hpc> {} delimits blocks, ; delimits newlines
11:52:00 <Axman6> and everyone knows the go at the beginning of the line, not the end
11:52:49 <hpc> of course, how else would you indent your code with semicolons
11:53:36 <hpc> main = do {
11:53:45 <hpc> ;;;;putStrLn "hello world";
11:53:46 <hpc> }
11:54:09 <Axman6> You genius, we'll never argue about tabs vs spaces again!
11:54:14 <hpc> since haskell is whitespace-sensitive, it's best practice to make the whitespace visible
11:54:38 <Axman6> the whitespace gets sad if you forget about it
11:55:31 <Helle> oh, right, I wanted rainbow whitespace in vim for a while, guess I should actually write that
11:55:58 <hpc> rainbowspace?
11:56:33 <chromoblob> > (,) {}
11:56:35 <lambdabot> (*Exception: <interactive>:3:1-6: Missing field in record construction
11:56:58 <chromoblob> hpc: lol
11:57:53 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
11:58:17 <Helle> hpc: leading white space being filled with rainbow colours (for every indent level) so deeply indented code gives you more of a clue how far it is indented (not so much a problem in Haskell, though sometimes)
11:58:51 <hpc> heh, i have that problem with python a lot
11:59:54 <chromoblob> hmm, according to standard, (,) {} shouldn'r really parse
12:00:03 <chromoblob> but it's a fine extension lol
12:00:30 <chromoblob> let b = b in (b, b, b, b, b) vs (,,,,) {}
12:03:09 <chromoblob> hm, what's reason for x { f = e } to fail in the case x's constructor doesn't have f?
12:03:32 <chromoblob> it may be useful to just omit the update for constructors that don't have the field
12:04:24 <probie> It'd mean minor typos would be no-ops instead of throwing an error
12:05:09 <chromoblob> could have some syntax that specifies whether you want errors or noops
12:05:10 × fendor quits (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Ping timeout: 260 seconds)
12:05:29 <chromoblob> something like x ~{f = e} or x !{f = e}
12:06:14 merijn joins (~merijn@86.86.29.250)
12:10:41 × merijn quits (~merijn@86.86.29.250) (Ping timeout: 246 seconds)
12:22:42 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Server closed connection)
12:22:53 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
12:25:00 <chromoblob> i'm reading the Haskell 2010 report, 3.17.3 Formal Semantics of Pattern Matching
12:25:25 <chromoblob> in rule (b), where do you get decls_i from?
12:25:45 <chromoblob> (in PDF version it is on PDF page 52)
12:27:41 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
12:29:27 <chromoblob> i'm blind, it is on both left and right side
12:29:34 <chromoblob> never mind
12:30:36 × Ranhir quits (~Ranhir@157.97.53.139) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
12:32:30 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
12:32:59 <chromoblob> > (\(,,) {} -> ()) (1,2,3)
12:33:00 <lambdabot> ()
12:34:15 Ranhir joins (~Ranhir@157.97.53.139)
12:36:25 <mauke> > (\case Just{} -> "J"; Nothing{} -> "N") (Just 42)
12:36:27 <lambdabot> "J"
12:37:36 × eugenrh quits (~eugenrh@2a01:4f9:c011:265::1) (Ping timeout: 260 seconds)
12:41:35 cafkafk joins (~cafkafk@fsf/member/cafkafk)
12:42:17 × acidjnk quits (~acidjnk@p200300d6e7072f177cbb145f44358b06.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
12:51:16 × ec quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection)
12:51:41 ec joins (~ec@gateway/tor-sasl/ec)
12:54:51 hisa3877 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net)
12:55:41 <pavonia> What is the purpose of the braces after Nothing?
12:56:14 <Axman6> explicitly says not to name any of the fields of the no fields in the Nothing constructor
12:56:25 <Axman6> there's no reason to have them there other than to see what they do
12:57:14 × hisa387 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 246 seconds)
12:57:14 hisa3877 is now known as hisa387
12:57:22 <hpc> more generally, it's a way of saying "i don't care about the fields or even how many there are, just match the constructor"
12:57:39 <hpc> good for types with lots and lots of fields
12:58:13 <chromoblob> pavonia: so it works when you add or remove fields
12:59:25 <pavonia> Yes, I know what it does for constructors with fiedls, but in this specific case it looked redundant
12:59:49 <probie> Also just good when you want to match on the constructor, but nothing else, regardless of number of fields
13:02:42 × acertain_ quits (sid470584@id-470584.hampstead.irccloud.com) (Server closed connection)
13:03:00 acertain_ joins (sid470584@id-470584.hampstead.irccloud.com)
13:08:26 × xff0x_ quits (~xff0x@2405:6580:b080:900:722b:d772:7870:6a8e) (Ping timeout: 246 seconds)
13:08:49 xff0x_ joins (~xff0x@ai086045.d.east.v6connect.net)
13:09:25 <chromoblob> i want to create a simple subset-of-Haskell -> JS transpiler without advanced optimizations that passes GC and optimization onto the JS engine. compiler must also be written in the subset. easiest way seems to be to rip out the parser, type checker and desugarer / translator to kernel out of an existing open source compiler. given that i want less optimization and more simplicity, which compiler do
13:09:31 <chromoblob> you recommend for that?
13:14:42 × yandere quits (sid467876@id-467876.ilkley.irccloud.com) (Server closed connection)
13:14:51 yandere joins (sid467876@id-467876.ilkley.irccloud.com)
13:15:47 <probie> If you want laziness, I'd recommend targeting the g-machine and following SPJ and David Lester's tutorial for that (and relying on JS for GC). It's moderately easy to turn something Haskell-like into the core they describe, and turning g-machine code into JS is pretty easy
13:16:35 titibandit joins (~titibandi@user/titibandit)
13:19:03 <chromoblob> thank you
13:27:36 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
13:30:04 × connrs quits (~connrs@user/connrs) (Quit: ZNC 1.8.2 - https://znc.in)
13:30:54 connrs joins (~connrs@user/connrs)
13:32:20 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
13:48:42 × edmundnoble_ quits (sid229620@id-229620.helmsley.irccloud.com) (Server closed connection)
13:48:56 edmundnoble_ joins (sid229620@id-229620.helmsley.irccloud.com)
13:57:15 <chromoblob> does code with NoMonomorphismRestriction still fail on ambiguous types?
13:58:21 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
13:59:19 <chromoblob> @let f = (+)
13:59:21 <lambdabot> Defined.
13:59:33 <chromoblob> @type f
13:59:34 <lambdabot> error:
13:59:34 <lambdabot> Ambiguous occurrence ‘f’
13:59:34 <lambdabot> It could refer to
13:59:42 <chromoblob> wtf
13:59:52 <chromoblob> @let fff = (+)
13:59:54 <lambdabot> Defined.
13:59:55 <chromoblob> @type f
13:59:56 <lambdabot> error:
13:59:56 <lambdabot> Ambiguous occurrence ‘f’
13:59:56 <lambdabot> It could refer to
13:59:59 <chromoblob> @type fff
14:00:01 <lambdabot> Num a => a -> a -> a
14:00:18 <chromoblob> @let (ff,gg) = ((+), (-))
14:00:21 <lambdabot> Defined.
14:00:22 <chromoblob> @type ff
14:00:24 <lambdabot> Num a => a -> a -> a
14:00:51 <chromoblob> @let [(nn,ss)] = reads "1x"
14:00:52 <lambdabot> /sandbox/tmp/.L.hs:171:1: error:
14:00:52 <lambdabot> • Ambiguous type variable ‘a0’
14:00:52 <lambdabot> prevents the constraint ‘(Read a0)’ from being solved.
14:00:57 <chromoblob> okay
14:01:16 bratwurst joins (~dfadsva@2604:3d09:207f:f650::a8c)
14:05:03 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:06:20 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:08:11 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
14:19:06 ub joins (~Thunderbi@p200300ecdf0b57ea084964e545e9929f.dip0.t-ipconnect.de)
14:19:24 × ubert quits (~Thunderbi@p200300ecdf0b57ae588ba3eb26214d5f.dip0.t-ipconnect.de) (Ping timeout: 258 seconds)
14:19:24 ub is now known as ubert
14:20:38 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
14:22:42 × Pent_ quits (sid313808@id-313808.lymington.irccloud.com) (Server closed connection)
14:23:05 Pent_ joins (sid313808@id-313808.lymington.irccloud.com)
14:24:22 cafkafk joins (~cafkafk@fsf/member/cafkafk)
14:26:57 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
14:28:32 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 240 seconds)
14:32:29 nek0 joins (~nek0@2a01:4f8:222:2b41::12)
14:34:35 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
14:36:26 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:38:15 × teleprompter[m] quits (~telepromp@2001:470:69fc:105::3:74ef) (K-Lined)
14:38:30 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
14:39:04 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
14:47:36 titibandit joins (~titibandi@user/titibandit)
14:57:38 son0p joins (~ff@181.136.122.143)
15:01:34 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 260 seconds)
15:03:25 titibandit joins (~titibandi@user/titibandit)
15:04:18 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
15:07:28 nick__ joins (~nick@98.186.208.255)
15:09:12 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 250 seconds)
15:09:37 euandreh joins (~Thunderbi@189.6.18.7)
15:13:18 dmenz joins (~dmenz@2804:14d:5cd4:85fb:176f:8705:81c:687a)
15:14:21 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
15:17:40 econo_ joins (uid147250@id-147250.tinside.irccloud.com)
15:20:13 <chromoblob> it seems like Haskell 2010 report doesn't actually give semantics for function application and lambda abstraction
15:20:55 <chromoblob> so it has prerequisites, and doesn't even say where to learn about it
15:21:08 <geekosaur> it actually does that a lot
15:21:19 × infinity0 quits (~infinity0@pwned.gg) (Remote host closed the connection)
15:21:40 <geekosaur> a big one is in typechecking where it just assumes you know about Hindley-Milner
15:22:39 txaas joins (~txaas@user/jarlg)
15:22:43 × alexherbo2 quits (~alexherbo@232.145.204.77.rev.sfr.net) (Remote host closed the connection)
15:23:26 infinity0 joins (~infinity0@pwned.gg)
15:24:27 <geekosaur> (worse, iirc it assumes you know about H-M as modified for typeclasses)
15:25:09 <chromoblob> does mentioning "Haskell uses a traditional Hindley-Milner polymorphic type system" automatically give the semantics for fn application and lambdas?
15:25:33 <geekosaur> no, just for typechecking
15:25:46 <chromoblob> then where does it specify the semantics?
15:25:50 <ncf> don't you get that from saying "haskell is based on the lambda-calculus"?
15:25:53 <geekosaur> you're looking for the lambda calculys
15:26:21 <chromoblob> yeah C++ and Haskell's specifications are two extremes
15:28:49 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 4.0.0)
15:29:10 <ncf> » Although the kernel is not formally specified, it is essentially a slightly sugared variant of the lambda calculus with a straightforward denotational semantics.
15:33:32 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 240 seconds)
15:36:38 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
15:39:49 <nyc> I'm still having trouble figuring out what those symbols are in the ticky ticky profiles.
15:40:56 <nyc> Lines like this are what I'm trying to attribute:
15:41:27 <nyc> 10384 0 0 2 .M go15{v s1LT0} (Foo.Bar.Snoo) (fun) in rbwV
15:45:39 smalltalkman joins (uid545680@id-545680.hampstead.irccloud.com)
15:49:43 euandreh joins (~Thunderbi@189.6.18.7)
15:50:38 × nick__ quits (~nick@98.186.208.255) (Ping timeout: 246 seconds)
15:51:28 <bratwurst> i've had the greatest idea ever.
15:52:00 <bratwurst> i was jumping around ghc source and realized i can generate a "trace" of the program by tracking how i was jumping around
15:52:13 Pickchea joins (~private@user/pickchea)
15:52:32 × kimiamania6 quits (~681cf57f@user/kimiamania) (Ping timeout: 250 seconds)
15:52:54 <bratwurst> so that's what i'm going to work on today. learning elisp and making a mode that can track my jumps so i can use this log to generate a "picture" of whatever i'm looking at
15:53:30 <EvanR> very iron man
15:53:52 <EvanR> jarvis show me something
15:54:28 <bratwurst> well what's a computer for if not to extend one's brain?
15:55:15 kimiamania6 joins (~681cf57f@user/kimiamania)
15:58:32 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
15:58:36 × sudden quits (~cat@user/sudden) (Ping timeout: 250 seconds)
15:58:40 <monochrom> To replace one's brain.
15:58:52 <juri_> to backup one's brain?
15:59:19 sudden joins (~cat@user/sudden)
16:00:39 <geekosaur> <cynic> no, IRC/matrix/reddit/etc. is to replace one's brain </cynic>
16:01:18 <EvanR> internet hive mind
16:01:53 <monochrom> OK, correction: To replace everyone's brain. :)
16:03:00 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Remote host closed the connection)
16:03:59 × Las[m]1 quits (~lasmatrix@2001:470:69fc:105::74e) (Remote host closed the connection)
16:05:03 × banner quits (~banner@114-129-185-30.ip4.superloop.au) (Remote host closed the connection)
16:06:25 banner joins (~banner@114-129-185-30.ip4.superloop.au)
16:07:01 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:09:57 nick__ joins (~nick@98.186.210.65)
16:10:18 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 250 seconds)
16:14:22 × nick__ quits (~nick@98.186.210.65) (Ping timeout: 260 seconds)
16:16:36 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Remote host closed the connection)
16:22:55 freeside joins (~mengwong@103.252.202.189)
16:27:17 <bratwurst> monochrom: indeed. that is my goal in life. to create a small shell scrip
16:27:24 <bratwurst> that replicates
16:27:38 <bratwurst> and infects everyone, leading to logic in the world
16:29:14 <maerwald> logic?
16:29:53 <EvanR> make sure the script isn't written in haskell, whose logic is deeply flawed
16:30:12 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
16:31:38 cafkafk joins (~cafkafk@fsf/member/cafkafk)
16:33:28 azimut joins (~azimut@gateway/tor-sasl/azimut)
16:34:42 × SrPx quits (sid108780@id-108780.uxbridge.irccloud.com) (Server closed connection)
16:35:23 SrPx joins (sid108780@id-108780.uxbridge.irccloud.com)
16:37:47 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:40:34 <monochrom> Oh as if shell script logic isn't :)
16:43:37 titibandit joins (~titibandi@user/titibandit)
16:43:45 <hpc> shell script is untyped, so it has no logic
16:43:58 <hpc> haskell's logic is merely flawed, and therefore much better
16:43:58 <maerwald> that makes no sense
16:44:11 <monochrom> You can switch attention to its runtime logic.
16:44:42 × NiKaN quits (sid385034@id-385034.helmsley.irccloud.com) (Server closed connection)
16:44:45 <hpc> runtime details sounds like -offtopic talk :P
16:44:55 <monochrom> Alternatively you change "no type" to "one type, only one type".
16:45:17 <monochrom> Indeed, that would be the string type. :)
16:45:21 NiKaN joins (sid385034@id-385034.helmsley.irccloud.com)
16:47:42 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 245 seconds)
16:47:44 <ncf> stringly typed
16:47:54 <monochrom> :)
16:48:55 <Franciman> lol
16:51:14 × jaror[m] quits (~jaror@2001:470:69fc:105::265) (Server closed connection)
16:51:30 jaror[m] joins (~jaror@2001:470:69fc:105::265)
16:53:38 × Buggys quits (Buggys@Buggy.shelltalk.net) (Ping timeout: 246 seconds)
16:55:35 euandreh joins (~Thunderbi@189.6.18.7)
16:55:45 × Igloo quits (~ian@matrix.chaos.earth.li) (Ping timeout: 240 seconds)
16:59:38 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 260 seconds)
16:59:41 Inst__ joins (~Inst@2601:6c4:4081:2fc0:4ce0:dbb4:3e84:48a2)
17:01:52 Buggys joins (Buggys@shelltalk.net)
17:02:35 × Inst_ quits (~Inst@2601:6c4:4081:2fc0:4ce0:dbb4:3e84:48a2) (Ping timeout: 246 seconds)
17:04:02 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 250 seconds)
17:07:27 <dolio> The original lambda calculus for logic was untyped. Of course, that didn't work out.
17:08:02 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:bd12:aba9:a757:ddbd)
17:08:51 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
17:10:57 <bratwurst> maerwald: i see logic as successive approximations of the real world. reducing everything till i have a nice formal system
17:11:08 <maerwald> that sounds boring
17:11:35 <maerwald> there's no point in logic if there is no goal
17:11:37 <EvanR> logics are tools, use the right tool for the job
17:11:39 <bratwurst> it's how i know i know things
17:12:11 <bratwurst> there's no point to anything. logic just leads to pretty patterns
17:12:19 <bratwurst> i like prettiness
17:12:33 <maerwald> buy a cute cat?
17:12:36 <bratwurst> everything must be tidy. you will be organized
17:12:43 <monochrom> I thought you meant refining your formal system until it shows no difference from the real world. I mean, you wrote "successive approximations".
17:13:00 <bratwurst> the world is infinite and my models finite
17:13:02 <geekosaur> doesn't gödel have the last laugh there?
17:13:42 <monochrom> And the first laugh too.
17:14:52 <Rembane> Law of the excluded laugh?
17:15:19 <monochrom> No, Gödel has the first laugh. I think Turing has the 2nd and last laugh. And if Turing did not work on adding oracles and the arithmetic hierarchy, there might have been infinitely more laughs from other people.
17:15:56 <mauke> https://en.wikipedia.org/wiki/Billion_laughs_attack
17:16:39 <monochrom> That oddly sounds like a thing in Chinese kung-fu fiction. :)
17:17:07 <maerwald> can you just stop laughing? It's really loud
17:17:11 <hpc> lol
17:17:17 <monochrom> You know, seven-point heart explode techique (from Kill Bill vol 2), so why not also billiion laughs attack.
17:18:18 <mauke> from there we get batman (the killing joke) and monty python
17:19:01 <EvanR> 10,000 peony blossom hand
17:19:57 <maerwald> what's new in haskell? oh... aeson broke half the ecosystem
17:20:03 <maerwald> streamly too
17:20:17 <maerwald> I don't feel like updating my packages anymore
17:20:50 <EvanR> maybe the universe is infinite but you have a finite amount of information in a given schwarzschild radius
17:21:05 <monochrom> I'm in the other half because I wrote "aeson < 2.2" and I also use cabal freeze.
17:22:02 <monochrom> But yeah I should check whether I need changes to use 2.2
17:22:10 <hpc> EvanR: there's an amusing physical lower bound on big-O that uses thata property :D
17:22:42 <monochrom> Wait, lower bound on big-O? Is that a minimax thing?
17:23:14 <hpc> because of the speed of light, as you have more memory most of it ends up farther away from you
17:23:24 <hpc> so accessing it takes longer, preventing you from achieving O(n)
17:23:51 <monochrom> "Is that a space leak?" butterfly man meme :)
17:24:01 <hpc> or i think O(1)?
17:24:19 <hpc> i need to go find the actual math again
17:24:52 RedNifre2 is now known as RedNifre
17:25:41 <bratwurst> as i've been reading about frp i've been having ideas
17:25:42 <monochrom> I should be getting at least Ω(1) because I can keep one unit of storage close to me.
17:26:19 <bratwurst> one way i want to think about it is as a resource that gets used up.
17:26:21 <monochrom> It is keeping unlimited storage close to me that is unsustainable because too much stuff within a fixed distance => black hole
17:26:21 dispater- joins (~dispater@81.78.253.214)
17:26:47 <bratwurst> so instead of time you have a counter that gets decremented every time you take a step
17:26:54 <nyc> Can a single OPTIONS_GHC pragma take more than one option or do they need to be added to other OPTIONS_GHC pragmas on different lines?
17:27:01 <monochrom> And then yeah even Θ(n) becomes difficult because most of it has to be far far away.
17:27:09 <hpc> one of my professors once said moore's law implies P=NP
17:27:24 <maerwald> nyc: https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/pragmas.html
17:27:27 <monochrom> Hell, P=EXPTIME.
17:27:27 <EvanR> bratwurst, that's the weirdest version of FRP I've heard yet
17:27:39 <maerwald> nyc: it says *flags* (plural)
17:27:41 <hpc> the P algorithm for anything NP is... wait for enough doublings that the problem takes an hour, then buy a new computer and use the naive algorithm
17:27:50 <monochrom> Yeah, that.
17:28:29 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
17:28:48 <EvanR> bratwurst, before the term was diluted to all hell, FRP involved a continuous time rather than steps
17:29:11 <monochrom> I also put multiple extensions on one single LANGUAGE pragma. I also make it lowercase "language".
17:29:19 <bratwurst> EvanR: yeah i want to think in terms of my program being a sequence
17:29:49 <EvanR> that's certainly a more traditional route to go
17:29:50 <bratwurst> EvanR: will you help me articulate my ideas more so i know what concrete thing to use?
17:29:52 orcus- joins (~orcus@81.78.253.214)
17:30:34 <bratwurst> i've been having an idea and i'm just not sure where it fits in with existing stuff
17:30:43 <bratwurst> i see my program as an unfold
17:30:58 <monochrom> "This solution fills a much-needed gap."
17:31:01 <EvanR> you might be thinking of a discrete dynamical system. A set of states S, a starting state, and a function on S which moves from some state to the next state. By iterating your function on the start state you create an orbit, a sequence
17:31:13 <EvanR> :t iterate
17:31:16 <lambdabot> (a -> a) -> a -> [a]
17:32:08 <monochrom> I support sticking to continuous time too.
17:32:31 <monochrom> Actually I support dense time.
17:32:36 <mauke> ... and then he plancked all over them
17:32:46 <monochrom> heh
17:33:32 <bratwurst> monochrom: i like the idea of my discrete system being somehow compatible with a continuous system
17:33:46 <bratwurst> i have no need for continuous time in my app
17:34:04 <bratwurst> so i'm not trying to argue my approach is best
17:34:12 <monochrom> Well, I think even Elliot himself needed only density, not full-blown continuity.
17:34:40 <EvanR> consider the idea of a functor from Time to a space consisting of your program states and paths between states. Then discrete time and continuous time both fit that picture
17:34:42 <bratwurst> density is when for every two you can get another between correct?
17:35:19 <EvanR> assuming your target space supports what you want
17:35:21 <monochrom> Between every two events of different times, it is permitted to have yet another event between them = density. We only ever need that.
17:35:44 <mauke> sounds rational
17:35:45 <EvanR> you probably don't even need that xD
17:35:53 <monochrom> Yeah, we just need the rationals.
17:36:09 <EvanR> pacman needs rationals and square root of 2
17:36:23 <monochrom> Full-blown continuous time means you can also do epsilon-delta proofs, which I haven't seen needed.
17:36:25 <EvanR> in case you are going on different axes
17:36:39 <monochrom> For example, Zeno paradoxes.
17:36:46 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
17:36:46 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
17:37:13 fendor joins (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0)
17:38:01 <nyc> Are the choices for names of fresh local symbols in the core & STG generated using time of day or similar?
17:38:17 <maerwald> phase of the moon
17:38:37 <maerwald> also different during the year of the chicken
17:39:46 <monochrom> I conjecture hash of your file.
17:40:29 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:40:49 <hpc> the symbol names are tuned per-person to subliminally make you write more haskell code :D
17:43:01 <monochrom> My conjecture fails.
17:45:21 <hpc> if only there was some way to discover the exact algorithm it uses... :P
17:45:50 <bratwurst> i think i want to redo reactive-banana
17:46:12 <nyc> hpc: It's not obvious to me from the ghc source.
17:46:15 <bratwurst> i have no doubt what i do will be crappy but i feel there is something wrong conceptually with rb
17:46:16 <EvanR> that reflex got away with only requiring time have an Ord instance says it's more about the time functorial nature of your simulation than the detailed topology of time
17:46:23 <monochrom> Um frankly performing 5 black-box experiments on this is still easier and more fun than digging through GHC source. :)
17:46:48 <monochrom> Perhaps I should have joined biology after all...
17:46:53 <bratwurst> by wrong i mean "not right for me"
17:47:05 dispater- joins (~dispater@81.78.253.214)
17:47:06 <monochrom> (I had higher biology marks than math marks in school.)
17:47:08 __monty__ joins (~toonn@user/toonn)
17:47:10 <geekosaur> have you looked at other FRP systems such as Yampa?
17:47:33 <bratwurst> i want my app to be a producer of a sequence of abstract events which are then interpreted
17:47:53 <bratwurst> so my app has no concept of sequence
17:48:05 <hackyhacker> Hello how do I use a pure function in do notation?
17:48:05 <hackyhacker> like how do I do this: https://paste.tomsmeding.com/5evBl0gy
17:48:06 <bratwurst> er, no i said that wrong. hold pu
17:48:21 <hpc> hackyhacker: let b = process a
17:48:33 <hackyhacker> oh ok thanks
17:49:06 <int-e> :t readLn
17:49:07 <lambdabot> Read a => IO a
17:49:19 <int-e> (it has no argument)
17:49:36 orcus- joins (~orcus@81.78.253.214)
17:49:42 <hpc> ah, that too
17:50:15 <chromoblob> probie: (about subset-of-HS to JS transpiler) should i reuse GHC's STG generator or should i implement G-machine myself? i don't want to squeeze all performance, and i want a smaller transpiler
17:50:16 <EvanR> bratwurst, bacon, flapjacks, and many other knock offs are all about events. Probably shouldn't have jumped on the FRP jargonwagon
17:50:27 <hpc> hackyhacker: there's some other nice way you can tighten up that code too, like b <- process <$> readLn
17:51:03 <hpc> :t (<$>)
17:51:04 <lambdabot> Functor f => (a -> b) -> f a -> f b
17:51:17 <bratwurst> EVanR: thank you for the pointers. you're right i think i want to find libraries with a different approach
17:51:17 <hackyhacker> :t fmap
17:51:19 <lambdabot> Functor f => (a -> b) -> f a -> f b
17:51:31 <hackyhacker> is it the same?
17:51:33 <hpc> yep
17:51:34 <ski> yes
17:51:41 <hackyhacker> ah ok thanks
17:51:45 <hpc> @src (<$>)
17:51:45 <lambdabot> f <$> a = fmap f a
17:51:47 <hackyhacker> very helpful to noobies here
17:51:57 <chromoblob> and it cannot be not same because of its polymorphic type
17:52:37 <EvanR> heh, there's only one function with that type?
17:52:47 <EvanR> in fmap we trust
17:52:55 <ski> @type undefined `asTypeOf` fmap
17:52:56 <lambdabot> Functor f => (a -> b) -> f a -> f b
17:52:58 <hpc> only one lawful function
17:53:14 <EvanR> only one function mentionable in polite company
17:53:21 <hpc> bottom inhabits every type, and you can do other yucky stuff like unsafeCoerce (my favorite function)
17:54:34 <bratwurst> EvanR: what is flapjacks? a search for "haskell flapjacks" doesn't reveal it
17:54:46 <EvanR> those were javascript based
17:54:58 <EvanR> but there were some haskell versions floating around
17:55:04 <EvanR> sodium?
17:55:25 <geekosaur> wouldn't event based ones mostly be free monads?
17:56:13 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
17:56:13 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
17:57:22 <EvanR> more recent hotness in this area is bearriver which is based on monadic stream functions
18:00:10 dispater- joins (~dispater@81.78.253.214)
18:00:40 orcus- joins (~orcus@81.78.253.214)
18:00:42 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
18:00:42 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
18:01:19 acidjnk joins (~acidjnk@p200300d6e7072f17393f0c042d41b426.dip0.t-ipconnect.de)
18:02:01 Igloo joins (~ian@matrix.chaos.earth.li)
18:03:52 <nyc> It looks like Unique does something akin to unsafePerformIO...
18:06:42 × severen[m] quits (~severenmt@2001:470:69fc:105::2:9932) (Server closed connection)
18:06:56 severen[m] joins (~severenmt@2001:470:69fc:105::2:9932)
18:07:06 dispater- joins (~dispater@81.78.253.214)
18:08:07 orcus- joins (~orcus@81.78.253.214)
18:10:32 × driib quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
18:16:04 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
18:16:04 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
18:17:07 <nyc> I can't find where it gets the initial value from by default exactly, but I see a -dinitial-unique flag.
18:19:06 <bratwurst> thinking about frp i've realized something. there is a fundamental action. there is only so much stuff. the fundamental action is a transformer of stuff to stuff
18:19:46 <bratwurst> so my first primitive is a transformer of some type a
18:20:44 <bratwurst> i have a "poller". it's an IO action that collects events
18:21:27 bgs joins (~bgs@212-85-160-171.dynamic.telemach.net)
18:21:38 <bratwurst> i also introduce "concurrency". i will have a list of actions that describes what they touch
18:21:49 <bratwurst> ie, shared variables
18:22:03 <int-e> nyc: the defaults are in compiler/GHC/Driver/DynFlags.hs; the command line flags are defined in compiler/GHC/Driver/Session.hs and there's a call to `initUniqSupply` in ghc/Main.hs
18:22:10 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
18:22:41 <bratwurst> i can reuse portions of rb to implement this
18:22:59 <int-e> . o O ( distributed computing? )
18:23:02 int-e runs
18:23:52 <bratwurst> int-e: my brain is trying to understand dependent types, proving memory safety, concurrency, now reactive-banana and frp
18:24:18 dispater- joins (~dispater@81.78.253.214)
18:24:21 <int-e> well, don't forget to breathe
18:24:22 <bratwurst> i'm simultaneously trying to understand very general things while trying to make things happen with what i have
18:24:38 <bratwurst> int-e: top notch advice
18:24:48 orcus- joins (~orcus@81.78.253.214)
18:31:53 <glguy> I'm working on good test coverage for my package and I debating between some nonsense sets to get coverage of GHC derived typeclasses or accepting that those things don't need tests and I'm not getting a high percentage :-S
18:31:56 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
18:33:09 <glguy> Like I have a feeling I'm not going to be adding anything when I verify that the Read instance is solid :)
18:33:30 misterfish joins (~misterfis@84-53-85-146.bbserv.nl)
18:33:42 <ncf> don't let the numbers control you
18:34:32 <glguy> But the number is right there on Hackage now :)
18:35:19 <[exa]> 100% looks too nice
18:36:44 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
18:37:43 emmanuelux joins (~emmanuelu@user/emmanuelux)
18:39:09 Pickchea joins (~private@user/pickchea)
18:40:21 driib joins (~driib@vmi931078.contaboserver.net)
18:47:11 reach joins (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca)
18:47:54 Midjak joins (~Midjak@82.66.147.146)
18:48:25 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 240 seconds)
18:50:22 <monochrom> I wonder if adding a test for `reads "" == []` improves the percentage without doing real work. >:)
18:54:50 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
18:54:50 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
18:54:50 dibblego joins (~dibblego@haskell/developer/dibblego)
18:56:46 <chromoblob> genSym.c
18:57:01 <monochrom> Wait, it's in C??!!!
18:57:11 <chromoblob> yeah my thought
18:57:16 <monochrom> heh
18:57:22 <nyc> chromoblob: -dinitial-unique=0 for deterministic builds?
18:57:27 <dolio> I don't know what coverage it's tracking, but don't you usually have to go down every branch? So you need a bunch of those trivial tests.
18:57:27 <chromoblob> it seems that it's for performance
18:58:54 <dolio> I think that's what hpc tracks, at least.
18:59:27 <monochrom> :(
18:59:29 Sgeo joins (~Sgeo@user/sgeo)
18:59:36 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
18:59:37 <nyc> chromoblob: Can you figure out how the uniqueness generator initialises the uniqueness counter?
18:59:44 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 250 seconds)
19:00:11 <monochrom> Then again I managed to think up one branch that no one else thinks of. :) #confirmationbias
19:00:19 <nyc> chromoblob: I was able to track down the case whre -dinitial-unique= got passed, but couldn't find what happened otherwise.
19:01:33 <chromoblob> well there's a line "HsInt ghc_unique_counter = 0;
19:01:34 <chromoblob> "
19:01:44 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
19:01:55 <chromoblob> note the default value
19:02:17 <nyc> chromoblob: initUniqSupply has a deep call chain.
19:02:29 × jocke-l quits (jocke-l@a.x0.is) (Quit: WeeChat 3.0)
19:03:48 jocke-l joins (jocke-l@a.x0.is)
19:04:48 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
19:04:49 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
19:04:49 dibblego joins (~dibblego@haskell/developer/dibblego)
19:05:06 <nyc> Or something else; I guess that's just doing two pokes.
19:05:07 <glguy> I figured out how to put haddock comments on a haddock generated parser. Haddock doesn't generate type-signatures for the parsers, so you can write one in the code section at the bottom of the file and put a haddock comment on that and GHC will deal with the fact that the file is in an unusual order.
19:05:26 × reach quits (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) (Ping timeout: 246 seconds)
19:05:50 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
19:07:20 <chromoblob> i can't find initGenSym
19:08:37 <chromoblob> ok it was in older ver
19:09:26 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
19:10:23 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
19:10:47 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 264 seconds)
19:11:42 <chromoblob> nyc: this shows initUniqSupply only twice https://gitlab.haskell.org/search?search=initUniqSupply&nav_source=navbar&project_id=1&group_id=2&search_code=true&repository_ref=master
19:11:50 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
19:11:50 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
19:11:57 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
19:12:06 <chromoblob> 1st is definition, 2nd is the only call
19:12:18 <nyc> chromoblob: I was thinking of something close to the top of the call chain instead of that.
19:12:42 × isomorpheme[m] quits (~isomorphe@2001:470:69fc:105::3:731a) (Server closed connection)
19:12:57 isomorpheme[m] joins (~isomorphe@2001:470:69fc:105::3:731a)
19:13:32 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
19:14:06 <EvanR> genSym is funny
19:14:46 <EvanR> generating unique values efficiently and composably should have been in the awkward squad
19:14:46 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
19:14:46 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
19:14:46 dibblego joins (~dibblego@haskell/developer/dibblego)
19:15:11 <EvanR> instead we use unsafePerformIO
19:17:51 <nyc> There is some kind of indeterminacy here but I can't find where it happens.
19:19:26 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
19:19:58 dove is now known as inedia
19:20:54 reach joins (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca)
19:21:04 <chromoblob> ahhh can't jump to a definition in Gitlab....
19:23:18 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
19:23:18 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
19:23:18 dibblego joins (~dibblego@haskell/developer/dibblego)
19:25:04 × reach quits (~reach@bras-base-toroon2643w-grc-19-74-12-129-40.dsl.bell.ca) (Read error: Connection reset by peer)
19:27:33 dispater- joins (~dispater@81.78.253.214)
19:31:04 orcus- joins (~orcus@81.78.253.214)
19:31:23 <nyc> I'm trying to do -dinitial-unique=0 in lieu of tracking down the source of the non-determinism.
19:33:00 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
19:33:00 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
19:34:38 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
19:34:39 <chromoblob> "The compiler itself is written entirely in Haskell" LIES
19:35:10 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
19:35:44 dispater- joins (~dispater@81.78.253.214)
19:36:44 orcus- joins (~orcus@81.78.253.214)
19:38:29 <EvanR> it's ok because C is a purely functional language
19:39:31 <chromoblob> :D
19:45:05 × hisa387 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 240 seconds)
19:56:44 notzmv joins (~zmv@user/notzmv)
19:57:56 × kimiamania6 quits (~681cf57f@user/kimiamania) (Ping timeout: 240 seconds)
19:59:51 kimiamania6 joins (~681cf57f@user/kimiamania)
20:00:32 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:02:07 × trev quits (~trev@user/trev) (Quit: trev)
20:04:25 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
20:04:25 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
20:05:17 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
20:08:38 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:09:17 dispater- joins (~dispater@81.78.253.214)
20:09:46 orcus- joins (~orcus@81.78.253.214)
20:11:20 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
20:11:21 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
20:14:29 orcus- joins (~orcus@81.78.253.214)
20:14:58 dispater- joins (~dispater@81.78.253.214)
20:15:27 <hackyhacker> Is this in the standard library? ```count x = length . filter (==x)```
20:15:49 <hackyhacker> eg: count 'l' "Hello" => 2
20:18:46 <dolio> Don't think so.
20:19:27 <Rembane> I think the definition is short enough that it never has been added.
20:19:36 <dolio> Right.
20:19:36 <geekosaur> something something Fairbairn threshold
20:20:57 <geekosaur> also most of the times I've wanted something like that I was counting constructors so wanted a pattern match instead of `==`
20:24:30 <hpc> there's a wonderful irony in how strangely difficult it just was to find the definition of "fairbairn threshold"
20:25:21 <EvanR> :t sum (fmap f) -- where f maps things to 0 or 1
20:25:22 <lambdabot> error:
20:25:22 <lambdabot> Ambiguous occurrence ‘f’
20:25:22 <lambdabot> It could refer to
20:25:33 <EvanR> :t sum . fmap -- where f maps things to 0 or 1
20:25:34 <lambdabot> (Foldable ((->) (f a)), Num (f b), Functor f) => (a -> b) -> f b
20:25:48 <EvanR> oof
20:26:11 <EvanR> :t \f -> sum . fmap f
20:26:12 <lambdabot> (Foldable t, Num c, Functor t) => (a -> c) -> t a -> c
20:27:28 <Rembane> EvanR: I love the APL vibes of that solution
20:27:56 <jade[m]> I need to get into APL again
20:28:11 <jade[m]> it's not as clean as haskell, but has a certain beauty to it still, imo
20:29:02 <ncf> hot take: traverse, foldMap and all the other yoneda'd combinators fall below the fairbairn threshold
20:29:47 × dtman34 quits (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
20:29:51 <Rembane> ncf: Which function could they all be implemented in terms of?
20:29:59 <ncf> fmap
20:30:28 <Rembane> Cool.
20:30:53 <ncf> traverse f = sequence . fmap f; foldMap f = fold . fmap f
20:31:01 <glguy> about half the advent of code problems needed a counting function https://github.com/glguy/advent/blob/main/common/src/Advent/Prelude.hs#L35-L41
20:31:11 michalz joins (~michalz@185.246.207.200)
20:33:06 × fendor quits (~fendor@2a02:8388:1640:be00:821b:25b5:c8f3:73a0) (Remote host closed the connection)
20:33:41 × remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Quit: Bye!)
20:34:16 <EvanR> stealing that
20:34:34 dtman34 joins (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net)
20:34:35 ddellacosta joins (~ddellacos@143.244.47.100)
20:35:01 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
20:36:09 <jade[m]> I wondered whether you could have a functor instance based off of `Foldable` and `Monoid` along the lines of `fmap f = foldr ((<>) . f) mempty`, but im pretty sure the laws don't follow from that definition
20:36:53 <glguy> some functors are foldable
20:36:55 <glguy> ant not
20:37:02 <glguy> are. not. :-o
20:37:18 <Rembane> That is true, ants are generally not foldable.
20:37:50 <Rembane> Out of curiosity, what's a counterexample?
20:38:08 <jade[m]> that's what I was asking for
20:38:09 <ski> of foldable ants ?
20:38:13 <glguy> functions
20:38:24 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
20:38:24 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
20:38:58 <dolio> F a = (a -> Integer) -> Integer
20:39:01 <ski> well, `Yoneda f' is generally not `Foldable'
20:39:32 × dipper quits (~dipper@117.61.125.236) (Ping timeout: 240 seconds)
20:40:28 <ncf> Integer -> a
20:42:11 <jade[m]> yeah but I meant that if a structure is both a monoid and a foldable you could use the above definition to build a functor instance
20:42:24 <jade[m]> which I don't think works in general
20:43:05 × dtman34 quits (~dtman34@c-76-156-89-180.hsd1.mn.comcast.net) (Ping timeout: 246 seconds)
20:43:30 <glguy> Data.Map's Map is Foldable and Monoid and wouldn't work like that
20:44:01 <glguy> Foldable forgets too much
20:44:10 <jade[m]> that's what I was looking for, thanks!!
20:44:12 <ncf> i think [] is pretty much the only one that would?
20:44:47 <jade[m]> I think maybe too (?)
20:45:55 <nyc> Okay, -dinitial-unique=0 didn't help make the build more deterministic.
20:46:14 orcus- joins (~orcus@81.78.253.214)
20:47:05 <nyc> Or at least things that appear to be randomly-generated in the ticky ticky profile don't show up in the final STG.
20:47:14 dispater- joins (~dispater@81.78.253.214)
20:47:23 dtman34 joins (~dtman34@2601:447:d000:93c9:6f54:cf51:938d:ead5)
20:48:29 <ncf> yeah, maybe something like "subfunctors of the free monoid functor"
20:48:39 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
20:48:39 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
20:49:36 <ncf> you basically need to have foldMap pure = id
20:49:37 remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz)
20:50:09 <jade[m]> is pure here used informally?
20:50:25 <jade[m]> because we never had an applicative, right?
20:51:01 <ncf> yeah just referring to a pointed endofunctor with pure :: a -> f a, not necessarily an Applicative
20:51:05 <nyc> 10078 0 0 2 .M go15{v s1MSI} (Foo.Bar.Snoo) (fun) in rbz1 has nothing to correlate it with in the final STG.
20:52:24 dispater- joins (~dispater@81.78.253.214)
20:53:54 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
20:53:55 orcus- joins (~orcus@81.78.253.214)
20:57:43 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:58:37 Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542)
21:01:05 × bgs quits (~bgs@212-85-160-171.dynamic.telemach.net) (Remote host closed the connection)
21:01:18 jumper149 joins (~jumper149@base.felixspringer.xyz)
21:05:59 × dtman34 quits (~dtman34@2601:447:d000:93c9:6f54:cf51:938d:ead5) (Ping timeout: 264 seconds)
21:07:48 caryhartline joins (~caryhartl@168.182.58.169)
21:08:44 dtman34 joins (~dtman34@2601:447:d000:93c9:6f54:cf51:938d:ead5)
21:11:51 Lycurgus joins (~juan@user/Lycurgus)
21:24:02 × titibandit quits (~titibandi@user/titibandit) (Ping timeout: 250 seconds)
21:25:05 <Inst__> curious, how bad an idea is variadic typeclasses for Haskell/
21:25:12 <Inst__> I guess it's been discussed / considered before
21:26:10 <jade[m]> how would that work?
21:26:35 <jade[m]> I'm having a hard time imagining what it'd look like
21:28:17 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
21:29:08 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Ping timeout: 240 seconds)
21:29:21 <EvanR> how would variadic anything work, everything is of the form _ -> _
21:29:44 × misterfish quits (~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 252 seconds)
21:30:09 <EvanR> maybe Inst__ wants the Printf class xD
21:31:56 <Inst__> thanks for being merry :)
21:32:01 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
21:32:17 <Inst__> the only real problem with Haskell, syntactically speaking, is that you don't even have opt-in natural variadic functions
21:32:22 <Inst__> iirc, printf is exploiting undefined
21:33:15 <ski> ?
21:33:17 <Inst__> there's various workarounds, like [myType] or [MyType], unnatural variadic typeclasses, and default records
21:33:48 <Inst__> the printf module has an undefined in the typeclass
21:33:49 Inst__ is now known as Inst
21:33:54 × jumper149 quits (~jumper149@base.felixspringer.xyz) (Quit: WeeChat 3.8)
21:34:27 <EvanR> wat
21:34:29 <ski> what do you mean by "printf is exploiting undefined" ?
21:34:58 <jade[m]> I didn't even know that printf existed - the implementation seems ... oddly magical?
21:35:13 <Inst> https://hackage.haskell.org/package/base-4.18.0.0/docs/src/Text.Printf.html#PrintfType
21:35:35 <Inst> i recall printf has some kind of bottom in it
21:35:39 <jade[m]> yeah I looked at that and I don't get it
21:35:51 j4cc3b joins (~jeffreybe@2601:98a:4200:4515:bc01:8d38:6200:7aef)
21:36:01 <EvanR> Inst, the only use of undefined in that file is as a proxy
21:36:38 <glguy> There's nothing exploitative about what printf does. And using undefined as a proxy is easily replaced with using Proxy, but that technique was a layer addition
21:37:12 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
21:37:34 <dolio> I don't think Proxy was around when that module was written.
21:37:47 <Inst> me neither, maybe an earlier version of printf was using undefined?
21:37:57 <dolio> And it hasn't been updated presumably because no one really cares about Printf.
21:38:18 <Inst> i really wish we had easier variadic functions, though, that's the only sore point in Haskell syntax
21:38:46 <jade[m]> I never really got the need for variadic functions
21:39:08 <jade[m]> besides printf it seems like you can always model it with a list?
21:39:24 <jade[m]> I mean that'd work for printf too, more or less
21:41:14 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
21:42:02 L29Ah joins (~L29Ah@wikipedia/L29Ah)
21:42:10 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:44:28 shiraeeshi joins (~shiraeesh@46.42.244.46)
21:44:50 <chromoblob> what's the language for .y extension?
21:45:01 <monochrom> Would it be yacc?
21:45:14 <monochrom> Either that or happy.
21:45:22 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
21:46:22 <Hecate> chromoblob: the happy parser generator program
21:47:41 <chromoblob> thanx
21:49:58 × cafkafk quits (~cafkafk@fsf/member/cafkafk) (Ping timeout: 240 seconds)
21:52:17 cafkafk joins (~cafkafk@fsf/member/cafkafk)
21:55:26 <Inst> jade[m], tbh, variadic procedures are more useful than variadic functions
21:55:27 <Inst> :)
21:55:52 <Inst> i'd be happy if we had variadic functions restricted to monads
21:56:39 <Inst> the average user who "enjoys" variadic functions is working on a scripting level
21:56:56 <Inst> there, variadic functions are useful for being able to keep a single function and just overload the arguments
21:57:28 <Inst> when you're actually doing business logic, variadic functions are likely more trouble than they're worth for the havoc they do to the type checker
21:59:35 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
21:59:47 <chromoblob> is there a way to completely exclude functionality of language features and individual optimizations from GHC so that the functionality doesn't appear in compiled version?
22:00:07 <chromoblob> how likely is that this patch will be accepted
22:00:10 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds)
22:02:59 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:03:00 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:03:00 dibblego joins (~dibblego@haskell/developer/dibblego)
22:03:28 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
22:05:17 × phma quits (phma@2001:5b0:211f:cfc8:7811:e29d:8e4:daa2) (Read error: Connection reset by peer)
22:10:14 × j4cc3b quits (~jeffreybe@2601:98a:4200:4515:bc01:8d38:6200:7aef) (Ping timeout: 246 seconds)
22:13:13 phma joins (phma@2001:5b0:211f:e0b8:9211:3daf:2aff:af1e)
22:17:39 dobblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:17:39 × dobblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:17:39 dobblego joins (~dibblego@haskell/developer/dibblego)
22:17:40 × dibblego quits (~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
22:17:59 dobblego is now known as dibblego
22:27:38 <Inst> also, ramblings:
22:27:48 <Inst> "We really need a common widget language that multiple GUI and web frameworks can use"
22:28:09 <Inst> TBH, we sort of already have that, don't we? HTML to an extent
22:30:17 <monochrom> We have that, and DOM, and Guile, and something from Windows, and something from Mac.
22:30:41 <monochrom> Or rather, s/We have/There are/
22:31:14 × acidjnk quits (~acidjnk@p200300d6e7072f17393f0c042d41b426.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:31:14 × dibblego quits (~dibblego@haskell/developer/dibblego) (Read error: Connection reset by peer)
22:31:33 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:31:33 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:31:33 dibblego joins (~dibblego@haskell/developer/dibblego)
22:33:15 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:34:01 × michalz quits (~michalz@185.246.207.200) (Remote host closed the connection)
22:38:40 × dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 252 seconds)
22:44:10 dibblego joins (~dibblego@116-255-1-157.ip4.superloop.au)
22:44:10 × dibblego quits (~dibblego@116-255-1-157.ip4.superloop.au) (Changing host)
22:44:10 dibblego joins (~dibblego@haskell/developer/dibblego)
22:48:25 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
22:53:35 ld joins (~ld@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b)
22:53:45 ld is now known as azr4e1
22:54:14 acidjnk joins (~acidjnk@p200300d6e7072f22393f0c042d41b426.dip0.t-ipconnect.de)
22:55:24 × azr4e1 quits (~ld@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b) (Client Quit)
22:56:43 ld joins (~ld@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b)
22:56:56 ld is now known as azr4e1
22:59:14 × azr4e1 quits (~ld@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b) (Client Quit)
22:59:39 azr4e1 joins (~azr4e1@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b)
23:01:48 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:06:20 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Read error: Connection reset by peer)
23:06:54 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 260 seconds)
23:07:20 nate2 joins (~nate@c-98-45-169-16.hsd1.ca.comcast.net)
23:07:41 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
23:11:08 × shiraeeshi quits (~shiraeesh@46.42.244.46) (Ping timeout: 246 seconds)
23:12:11 × nate2 quits (~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
23:13:21 shiraeeshi joins (~shiraeesh@46.42.244.46)
23:18:57 smth-42 joins (~smth-42@46.42.244.46)
23:20:13 smth-42 parts (~smth-42@46.42.244.46) ()
23:20:14 × acidjnk quits (~acidjnk@p200300d6e7072f22393f0c042d41b426.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
23:22:27 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
23:28:48 <EvanR> Inst, there's too many GUI libraries. Someone should make yet another one to unify them all. Best part, you can only use it from haskell
23:33:45 <monochrom> There are too many humans...
23:35:18 smth-42 joins (~smth-42@46.42.244.46)
23:38:48 <smth-42> what do you think browsers should add to the standard dom implementation?
23:39:34 <monochrom> Why is that relevant to this channel?
23:39:48 <smth-42> something like immutable API for DOM, make working with immutable state easier
23:39:51 <int-e> smth-42: they should add less
23:39:55 <int-e> :P
23:40:51 mauke_ joins (~mauke@user/mauke)
23:41:04 <smth-42> it's relevant
23:41:33 <smth-42> I assure you
23:41:40 × dispater- quits (~dispater@81.78.253.214) (Remote host closed the connection)
23:41:41 × orcus- quits (~orcus@81.78.253.214) (Remote host closed the connection)
23:41:45 <smth-42> :P
23:42:50 × mauke quits (~mauke@user/mauke) (Ping timeout: 260 seconds)
23:42:50 mauke_ is now known as mauke
23:43:34 <smth-42> right now we have such functionality implemented in libraries, but it would be easier to have the functionality built-in into the language
23:44:31 <EvanR> GUI built into the language works great. Look at Java
23:45:11 <monochrom> Every fad wants itself to be built into languages, yes.
23:47:15 <smth-42> with browsers, we're in a situation when we have gui integrated into the language
23:48:02 <EvanR> isnt that more language integrated into the gui xD
23:48:04 <monochrom> Since browsers' "the language" is not Haskell, this is off-topic.
23:48:05 <smth-42> but the api pushes you in the direction of mutability,
23:48:34 mmhat joins (~mmh@p200300f1c722e493ee086bfffe095315.dip0.t-ipconnect.de)
23:49:19 <smth-42> ok, I got a little confused about what is integrated into what
23:50:30 <smth-42> I'm talking about bringing functional programming into browsers, I think that's relevant
23:52:29 × Luj quits (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb) (Ping timeout: 258 seconds)
23:52:48 Luj joins (~Luj@2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb)
23:53:03 <smth-42> one the one hand, it's super hard for browsers to agree on a standard
23:53:05 <EvanR> we have that, ghcjs
23:53:43 hyvoid joins (~hyenavoid@222-0-178-69.static.gci.net)
23:53:45 <smth-42> but on the other hand, they moved to JS6 somehow
23:54:32 × azr4e1 quits (~azr4e1@2a00:23c7:9cbc:3401:45fb:9c68:12fe:262b) (Ping timeout: 240 seconds)
23:55:03 × hyvoid quits (~hyenavoid@222-0-178-69.static.gci.net) (Client Quit)
23:55:07 <smth-42> yes, but wouldn't it be nice to have immutable API to DOM built-in into the brwser?
23:55:23 hyvoid joins (~hyenavoid@222-0-178-69.static.gci.net)
23:59:23 <probie> It's pretty easy for all browsers to agree on a standard these days, since at this point in time there's effectively only two - firefox and all the chromium based ones. You only need to get google and mozilla to agree
23:59:36 × smth-42 quits (~smth-42@46.42.244.46) (Ping timeout: 250 seconds)
23:59:47 <monochrom> "only"

All times are in UTC on 2023-07-02.