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.