Logs on 2023-06-08 (liberachat/#haskell)
| 00:03:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:04:30 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:05:39 | → | Lycurgus joins (~juan@user/Lycurgus) |
| 00:07:08 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 00:09:01 | × | mechap quits (~mechap@user/mechap) (Ping timeout: 256 seconds) |
| 00:11:51 | → | mechap joins (~mechap@user/mechap) |
| 00:12:16 | Feuermagier | is now known as Guest5221 |
| 00:12:17 | → | Feuermagier_ joins (~Feuermagi@user/feuermagier) |
| 00:12:17 | × | Guest5221 quits (~Feuermagi@user/feuermagier) (Killed (mercury.libera.chat (Nickname regained by services))) |
| 00:12:17 | Feuermagier_ | is now known as Feuermagier |
| 00:12:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:15:58 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:16:01 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 00:20:32 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 00:21:37 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 00:21:56 | → | Unicorn_Princess joins (~Unicorn_P@user/Unicorn-Princess/x-3540542) |
| 00:26:37 | × | Square quits (~Square@user/square) (Ping timeout: 240 seconds) |
| 00:27:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:31:11 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:37:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:38:39 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:42:03 | <Inst> | nice, Crytonite finally got an authorized fork |
| 00:42:43 | <geekosaur> | which has broken a big chunk of hackage… |
| 00:43:09 | <Axman6> | yeah, this has not been well handled |
| 00:44:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:46:07 | <EvanR> | even worse, they misspelled Cryptonite |
| 00:46:27 | <Axman6> | so has basically every single project that depends on wai just been broken? |
| 00:46:54 | <geekosaur> | afaict yes |
| 00:47:08 | <geekosaur> | been hearing a lot of wailing on the subject |
| 00:47:22 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:55:42 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 00:55:42 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 00:55:42 | → | wroathe joins (~wroathe@user/wroathe) |
| 00:55:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 00:59:07 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 00:59:26 | × | phma quits (phma@2001:5b0:2143:8e68:6bbc:8a93:7b53:3876) (Read error: Connection reset by peer) |
| 00:59:52 | → | phma joins (phma@2001:5b0:2143:8e68:4a0a:5813:1bab:50e7) |
| 01:00:11 | → | drdo0 joins (~drdo@bl8-153-185.dsl.telepac.pt) |
| 01:02:26 | × | drdo quits (~drdo@bl8-153-185.dsl.telepac.pt) (Ping timeout: 268 seconds) |
| 01:02:26 | drdo0 | is now known as drdo |
| 01:03:27 | <sm> | it sounds bad, but this is what stackage or cabal freeze files are for |
| 01:04:16 | <EvanR> | problem with freezing is your numbers don't go up |
| 01:04:49 | × | Albina_Pavlovna quits (~Albina_Pa@2600:4040:9526:fe00:c14:24f5:954f:f0a3) (Quit: bb) |
| 01:04:54 | <sm> | make a new freeze every day. With cron. :) |
| 01:05:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 01:05:44 | <jackdk> | Is there a migration guide for maintainers? My current instinct is to make a `crypton` flag which defaults to true, but I don't know if that's right |
| 01:06:30 | <EvanR> | the real problem is the discrete jumps in versions. If development was smooth and continuous, this sudden breakage would be impossible |
| 01:06:32 | <sm> | there must be at least an issue by now |
| 01:07:43 | <sm> | EvanR, oh interesting.. how do bounds work then ? "more base.. even more containers.. absolutely very very little of aeson.. " ? |
| 01:08:39 | <Axman6> | jackdk: that feels like abetter solution to the one I just sent to you elsewhere :P probably a good idea to default to crypton... but it also depends on your deps doing the same or there'll be conflicts in imports |
| 01:08:50 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 01:10:12 | <sm> | EvanR: or.. we are all inside one world smalltalk image ? |
| 01:10:45 | <jackdk> | I think my packages only do a little bit of cryptonite directly for signing; not sure what happens if I get http-conduit atop cryptonite vs http-conduit atop crypton |
| 01:10:45 | × | albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection) |
| 01:11:07 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz) |
| 01:11:35 | <EvanR> | sm, the second one, if nothing ever changes ever, it's smooth and continuous by technicality |
| 01:12:33 | <sm> | what could possible go wrong. I like it |
| 01:14:07 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds) |
| 01:16:53 | → | albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8) |
| 01:18:56 | × | oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 248 seconds) |
| 01:20:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 01:23:52 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 01:24:10 | → | nate2 joins (~nate@98.45.169.16) |
| 01:28:57 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 01:31:01 | × | xff0x_ quits (~xff0x@2405:6580:b080:900:7473:54f9:1e2f:2bc) (Ping timeout: 240 seconds) |
| 01:31:07 | × | Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection) |
| 01:31:25 | → | Nosrep joins (~Nosrep@user/nosrep) |
| 01:38:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 01:39:46 | → | merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) |
| 01:41:52 | × | y04nn quits (~username@2a03:1b20:5:f011::aaae) (Ping timeout: 250 seconds) |
| 01:45:55 | × | merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 256 seconds) |
| 01:46:19 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 01:54:32 | <statusbot9> | Maintenance update: Upgrade starting shortly. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/648134c1ac57b006d76b298e |
| 01:55:04 | <Axman6> | I didn't know we got those notifications in here... |
| 01:55:26 | <pavonia> | They are very rare |
| 01:57:05 | <EvanR> | if you can't observe cryptonite breakage because hackage is down, it's morally not broken |
| 01:59:21 | <monochrom> | :) |
| 02:00:22 | <Axman6> | _IF_ hackage returns, there will be many exceptions, but otherwise, the curry-howard correspondence's function arrow saves us yet again |
| 02:00:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:02:06 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 02:05:19 | <statusbot9> | Maintenance update: Hackage has been upgraded and is back online. -- http://status.haskell.org/pages/maintenance/537c07b0cf1fad5830000093/648134c1ac57b006d76b298e |
| 02:05:35 | <Axman6> | oh no D: |
| 02:05:49 | <Axman6> | We're gonna need superman's help! |
| 02:06:00 | × | CalculusCats quits (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow) |
| 02:07:59 | → | CalculusCats joins (NyaaTheKit@user/calculuscat) |
| 02:08:15 | <sclv> | what's the breakage? |
| 02:08:19 | <sclv> | with crypton? |
| 02:08:27 | <sclv> | it looks like wai did something goofy, but now it fixed that |
| 02:10:44 | → | xff0x_ joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) |
| 02:11:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:14:56 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 02:17:13 | → | nate2 joins (~nate@98.45.169.16) |
| 02:20:23 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija))) |
| 02:20:23 | → | finn_elija joins (~finn_elij@user/finn-elija/x-0085643) |
| 02:20:23 | finn_elija | is now known as FinnElija |
| 02:28:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:29:18 | → | [_] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 02:32:01 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 02:33:26 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 250 seconds) |
| 02:33:34 | [_] | is now known as [itchyjunk] |
| 02:34:05 | × | tomboy64 quits (~tomboy64@user/tomboy64) (Ping timeout: 240 seconds) |
| 02:34:37 | × | use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612) (Remote host closed the connection) |
| 02:35:53 | → | use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612) |
| 02:38:28 | × | [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Read error: Connection reset by peer) |
| 02:39:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:43:09 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 02:47:37 | → | tomboy64 joins (~tomboy64@user/tomboy64) |
| 02:48:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:49:45 | × | td_ quits (~td@i5387091A.versanet.de) (Ping timeout: 240 seconds) |
| 02:51:39 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 02:51:46 | → | td_ joins (~td@i53870909.versanet.de) |
| 02:54:13 | × | vglfr quits (~vglfr@2a0d:3344:140c:2810:a8ed:895f:3485:d7a6) (Ping timeout: 250 seconds) |
| 02:54:31 | → | vglfr joins (~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) |
| 02:54:50 | × | blackpill0w quits (~blackpill@user/blackpill0w) (Quit: WeeChat 3.8) |
| 02:57:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 02:57:53 | × | vandita quits (~vandit@178-164-188-17.pool.digikabel.hu) (Ping timeout: 256 seconds) |
| 02:59:20 | → | vandita joins (~vandit@92-249-185-139.pool.digikabel.hu) |
| 03:00:49 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:01:39 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Remote host closed the connection) |
| 03:08:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 03:09:00 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:11:07 | × | hugo quits (znc@verdigris.lysator.liu.se) (Ping timeout: 240 seconds) |
| 03:18:51 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds) |
| 03:22:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 03:24:33 | × | byte quits (~byte@user/byte) (Ping timeout: 250 seconds) |
| 03:25:58 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:26:09 | → | hugo joins (znc@verdigris.lysator.liu.se) |
| 03:32:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 03:34:09 | <sm> | upgrades! yay! \o/ |
| 03:34:34 | <sm> | secret ones |
| 03:35:54 | → | freeside joins (~mengwong@103.252.202.189) |
| 03:36:39 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:42:19 | → | merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) |
| 03:43:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 03:45:23 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 03:46:11 | <albet70> | is that all callCC calling can transform to CPS? |
| 03:52:51 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
| 03:55:40 | → | chromoblob joins (~user@37.113.158.8) |
| 03:56:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 04:00:05 | × | chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds) |
| 04:04:09 | <Axman6> | albet70: I'm not sure I understand the question |
| 04:08:26 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 04:09:34 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 04:09:45 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 265 seconds) |
| 04:15:37 | × | merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds) |
| 04:16:08 | × | notzmv quits (~zmv@user/notzmv) (Ping timeout: 250 seconds) |
| 04:19:09 | → | freeside joins (~mengwong@103.252.202.189) |
| 04:21:04 | → | chromoblob joins (~user@37.113.158.8) |
| 04:24:05 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 268 seconds) |
| 04:25:56 | × | chromoblob quits (~user@37.113.158.8) (Ping timeout: 268 seconds) |
| 04:26:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 04:28:23 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 04:33:46 | → | lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net) |
| 04:36:51 | → | byte joins (~byte@user/byte) |
| 04:38:21 | → | zxrom_ joins (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) |
| 04:40:10 | × | zxrom quits (~zxrom@mm-62-27-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds) |
| 04:41:55 | → | byte` joins (~byte@user/byte) |
| 04:42:08 | × | byte quits (~byte@user/byte) (Ping timeout: 265 seconds) |
| 04:42:08 | byte` | is now known as byte |
| 04:52:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 04:56:06 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 05:00:09 | <dibblego> | @src (<=<) |
| 05:00:09 | <lambdabot> | Source not found. Wrong! You cheating scum! |
| 05:00:15 | <dibblego> | @src (Control.Monad.<=<) |
| 05:00:15 | <lambdabot> | Source not found. I can't hear you -- I'm using the scrambler. |
| 05:02:41 | <EvanR> | (<=<) = flip (>=>) |
| 05:02:48 | → | trev joins (~trev@user/trev) |
| 05:04:15 | × | lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Ping timeout: 256 seconds) |
| 05:11:18 | → | mbuf joins (~Shakthi@49.207.178.186) |
| 05:14:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 05:14:33 | → | dcoutts joins (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) |
| 05:15:46 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 05:22:27 | → | Pickchea joins (~private@user/pickchea) |
| 05:22:46 | → | takuan joins (~takuan@178-116-218-225.access.telenet.be) |
| 05:22:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 05:25:54 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 05:26:16 | → | trillp joins (~trillp@69.233.98.238) |
| 05:27:42 | → | lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net) |
| 05:28:59 | × | shapr quits (~user@2600:1700:c640:3100:65fd:cc0d:69b7:c4ce) (Ping timeout: 265 seconds) |
| 05:31:19 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 05:33:52 | × | lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Quit: WeeChat 2.8) |
| 05:35:24 | → | mixfix41 joins (~sdeny9ee@user/mixfix41) |
| 05:36:44 | × | jargon quits (~jargon@184.101.71.62) (Remote host closed the connection) |
| 05:42:14 | → | bgs joins (~bgs@212.85.160.171) |
| 05:42:32 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds) |
| 05:44:16 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection) |
| 05:54:10 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 05:54:45 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 05:55:41 | <dminuoso> | albet70: Well yes, all that functions do is map input to some output. In case of ContT that output happens to be something involving continuations. |
| 05:55:49 | <dminuoso> | But that's really just an implementation detail. |
| 05:56:21 | <dminuoso> | It's sort of like saying "does if ... then ... else really just transform to jnz?" |
| 05:56:48 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 06:12:33 | → | merijn joins (~merijn@86-86-29-250.fixed.kpn.net) |
| 06:13:34 | → | irfan joins (~irfan@user/irfan) |
| 06:14:56 | × | zxrom_ quits (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds) |
| 06:15:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 06:17:15 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 06:20:15 | → | freeside joins (~mengwong@103.252.202.189) |
| 06:24:05 | ← | trillp parts (~trillp@69.233.98.238) () |
| 06:24:37 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
| 06:25:08 | × | dcoutts quits (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) (Ping timeout: 240 seconds) |
| 06:26:08 | → | zxrom_ joins (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) |
| 06:27:00 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 06:29:35 | → | dcoutts joins (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) |
| 06:35:44 | → | chomwitt joins (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) |
| 06:36:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 06:36:41 | → | zxrom__ joins (~zxrom@mm-247-20-212-37.vitebsk.dynamic.pppoe.byfly.by) |
| 06:38:25 | × | zxrom_ quits (~zxrom@mm-73-23-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 240 seconds) |
| 06:39:55 | → | acidjnk joins (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) |
| 06:39:59 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 06:40:40 | → | zxrom_ joins (~zxrom@mm-193-34-212-37.vitebsk.dynamic.pppoe.byfly.by) |
| 06:42:27 | × | zxrom__ quits (~zxrom@mm-247-20-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds) |
| 06:43:48 | × | bgs quits (~bgs@212.85.160.171) (Remote host closed the connection) |
| 06:44:10 | → | coot joins (~coot@89-69-206-216.dynamic.chello.pl) |
| 06:46:25 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 06:46:56 | × | merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 248 seconds) |
| 06:47:41 | → | zxrom__ joins (~zxrom@mm-219-30-212-37.vitebsk.dynamic.pppoe.byfly.by) |
| 06:49:42 | × | zxrom_ quits (~zxrom@mm-193-34-212-37.vitebsk.dynamic.pppoe.byfly.by) (Ping timeout: 265 seconds) |
| 06:52:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 06:55:27 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 06:56:45 | × | zxrom__ quits (~zxrom@mm-219-30-212-37.vitebsk.dynamic.pppoe.byfly.by) (Remote host closed the connection) |
| 06:59:22 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 265 seconds) |
| 07:00:15 | → | fendor joins (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) |
| 07:02:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:04:41 | → | dibblego joins (~dibblego@122-199-1-30.ip4.superloop.au) |
| 07:04:41 | × | dibblego quits (~dibblego@122-199-1-30.ip4.superloop.au) (Changing host) |
| 07:04:41 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 07:05:22 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:06:20 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 07:11:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:11:55 | → | AndreiDuma joins (~textual@2001:620:130:6092:983c:926a:46f2:aa7d) |
| 07:15:07 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:16:14 | × | stiell quits (~stiell@gateway/tor-sasl/stiell) (Remote host closed the connection) |
| 07:16:16 | × | AndreiDuma quits (~textual@2001:620:130:6092:983c:926a:46f2:aa7d) (Ping timeout: 248 seconds) |
| 07:16:43 | → | stiell joins (~stiell@gateway/tor-sasl/stiell) |
| 07:21:29 | → | zeenk joins (~zeenk@2a02:2f04:a106:3c00::7fe) |
| 07:23:02 | → | mheinzel_ joins (~mheinzel@2001:620:130:6092:360c:98ab:31d9:55ac) |
| 07:25:12 | → | freeside joins (~mengwong@103.252.202.189) |
| 07:28:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:30:27 | × | acidjnk quits (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 07:31:01 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
| 07:32:13 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:33:01 | → | gmg joins (~user@user/gehmehgeh) |
| 07:34:51 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) |
| 07:35:50 | × | vandita quits (~vandit@92-249-185-139.pool.digikabel.hu) (Read error: Connection reset by peer) |
| 07:38:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:39:20 | → | vandita joins (~vandit@92-249-182-124.pool.digikabel.hu) |
| 07:40:05 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:41:14 | → | acidjnk joins (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) |
| 07:42:28 | → | hisa382 joins (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) |
| 07:45:07 | × | hisa38 quits (~hisa38@104-181-102-238.lightspeed.wepbfl.sbcglobal.net) (Ping timeout: 268 seconds) |
| 07:45:07 | hisa382 | is now known as hisa38 |
| 07:48:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:49:11 | → | chromoblob joins (~user@37.113.158.8) |
| 07:49:26 | → | oo_miguel joins (~Thunderbi@77.252.47.84) |
| 07:51:49 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 07:52:40 | × | econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity) |
| 07:55:03 | → | gurkenglas joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) |
| 07:55:54 | → | __monty__ joins (~toonn@user/toonn) |
| 07:57:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 07:58:49 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) (Remote host closed the connection) |
| 08:00:09 | → | merijn joins (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) |
| 08:03:36 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 08:03:45 | × | mheinzel_ quits (~mheinzel@2001:620:130:6092:360c:98ab:31d9:55ac) (Remote host closed the connection) |
| 08:04:02 | → | mheinzel_ joins (~mheinzel@2001:620:130:6092:20d7:49e:2182:3023) |
| 08:06:38 | → | Square joins (~Square@user/square) |
| 08:07:32 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:2881:d3bd:5594:8455) (Remote host closed the connection) |
| 08:09:59 | → | nilradical joins (~nilradica@user/naso) |
| 08:14:46 | × | mheinzel_ quits (~mheinzel@2001:620:130:6092:20d7:49e:2182:3023) (Ping timeout: 265 seconds) |
| 08:16:30 | → | mheinzel_ joins (~mheinzel@2001:620:130:6092:7ce4:c2da:badf:bc1e) |
| 08:16:46 | → | machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr) |
| 08:18:31 | → | kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be) |
| 08:20:08 | × | azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds) |
| 08:21:28 | → | azimut joins (~azimut@gateway/tor-sasl/azimut) |
| 08:23:22 | → | mei joins (~mei@user/mei) |
| 08:25:44 | → | freeside joins (~mengwong@103.252.202.189) |
| 08:26:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 08:28:29 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 08:29:33 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 08:31:28 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 248 seconds) |
| 08:35:37 | × | tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz) |
| 08:36:45 | → | chele joins (~chele@user/chele) |
| 08:41:23 | × | mheinzel_ quits (~mheinzel@2001:620:130:6092:7ce4:c2da:badf:bc1e) (Ping timeout: 265 seconds) |
| 08:41:26 | × | oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 246 seconds) |
| 08:42:29 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) |
| 08:43:20 | → | oo_miguel joins (~Thunderbi@77.252.47.84) |
| 08:44:42 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-b9db-66de-a2df-2e68.rev.sfr.net) (Remote host closed the connection) |
| 08:46:33 | × | zeenk quits (~zeenk@2a02:2f04:a106:3c00::7fe) (Remote host closed the connection) |
| 08:46:55 | → | zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba) |
| 08:49:21 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 08:49:37 | → | mheinzel joins (~mheinzel@2001:620:130:6092:762f:f9de:e627:8ca) |
| 08:53:02 | → | raehik joins (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) |
| 08:56:57 | → | Pickchea joins (~private@user/pickchea) |
| 08:58:17 | × | machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 256 seconds) |
| 08:59:19 | ← | gonz________ parts (sid304396@id-304396.lymington.irccloud.com) () |
| 09:01:58 | <somerandomnick[m> | does anyone have a haskell function lying around that reads Text from a utf-8 encoded file but also works for windows encodings eg. 1252? or am i doing it wrong |
| 09:02:28 | × | shriekingnoise quits (~shrieking@186.137.175.87) (Ping timeout: 240 seconds) |
| 09:02:29 | → | ubert joins (~Thunderbi@2a02:8109:abc0:6434:734b:c6e7:ee63:2f95) |
| 09:03:06 | × | ava[m] quits (~ava2607ma@2001:470:69fc:105::3:5307) (Remote host closed the connection) |
| 09:03:08 | → | Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915) |
| 09:03:09 | <dminuoso> | somerandomnick[m: "but also works", what exact behavior do you expect here? |
| 09:03:20 | <dminuoso> | Automatic guessing of the encoding? |
| 09:03:23 | → | taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-7103-52d8-4be8-ade6.rev.sfr.net) |
| 09:03:23 | <merijn> | somerandomnick[m: By default Text's functions (like 'readFile :: FilePath -> IO String') base the encoding used on the system's environment, so assuming Windows is configured that 1252 is the default encoding it should "just work" |
| 09:03:52 | <merijn> | somerandomnick[m: If relying on the environment isn't possible (because the environment doesn't match the file, for example) your only option is to explicitly decode |
| 09:04:05 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds) |
| 09:04:15 | <merijn> | somerandomnick[m: i.e. use ByteString to read the file, then decode from ByteString to Text |
| 09:04:27 | Lord_of_Life_ | is now known as Lord_of_Life |
| 09:04:48 | × | taupiqueur4 quits (~taupiqueu@2a02-842a-8180-4601-fc1a-de08-4257-8549.rev.sfr.net) (Ping timeout: 240 seconds) |
| 09:05:18 | <somerandomnick[m> | dminuoso: im looking for pragmatic solution, if it does windows encoding AND utf-8, already good enough |
| 09:05:33 | <dminuoso> | somerandomnick[m: Yes. And what should make the choice how to decode? |
| 09:06:17 | <somerandomnick[m> | merijin: I believe that, but a windows file can make its way to a linux system |
| 09:07:00 | <merijn> | somerandomnick[m: There is no magic method to figure out the encoding of a file if you don't know it |
| 09:07:15 | <somerandomnick[m> | Let me use charsetdetect then and see how far it takes me |
| 09:07:19 | <merijn> | somerandomnick[m: You can try a bunch of different ones and see if you can get encoding errors or not |
| 09:07:58 | <somerandomnick[m> | obviously, covering more than 2(!) different families of encoding is too tall a task |
| 09:08:01 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) |
| 09:11:07 | <merijn> | somerandomnick[m: You'll have to grab one of the encoding libraries and there seems to be a charsetdetect library and then combine those two into an explicit "ByteString -> Text" decoding step |
| 09:11:34 | <merijn> | I forgot what the "standard" library for non-utf encodings is |
| 09:12:07 | <geekosaur> | also note you have to try utf8 first since it produces encoding errors. in most other encodings all characters are valid, so you have zero chance of telling if it's garbage/mojibake |
| 09:12:27 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 256 seconds) |
| 09:12:59 | × | mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8) |
| 09:14:23 | <Hecate> | if you're not horrified enough, check how libmagic does it |
| 09:14:37 | × | oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds) |
| 09:15:20 | <merijn> | Hecate: I still propose we just stab anyone not producing UTF |
| 09:15:44 | <Rembane> | libstab, commonly used in lenses. |
| 09:15:52 | <merijn> | Hecate: And doubly stab the malfeasant at MicroSoft who came up with the UTF-8 BOM |
| 09:15:56 | <dminuoso> | Rembane: I see what you did there. |
| 09:15:59 | <merijn> | A pox upon that guy |
| 09:17:06 | → | oo_miguel joins (~Thunderbi@77.252.47.84) |
| 09:17:08 | → | nate2 joins (~nate@98.45.169.16) |
| 09:17:10 | <dminuoso> | merijn: UTF-8 BOM is fine. If this is ever a problem, you are either using a non-unicode-compliant library, or a non-unicode-capable library. |
| 09:17:42 | <merijn> | dminuoso: UTF-8 BOM wasn't even in the utf-8 spec, it's a MS stupid invention with 0 value |
| 09:17:48 | <dminuoso> | The real question is rather why we have never established some shallow text format that conveys encoding information. |
| 09:17:53 | <merijn> | dminuoso: Give me one good reason to *ever* have a BOM for utf-8 |
| 09:17:54 | <geekosaur> | isn't the byte order mark only valid in utf16 encodings? |
| 09:18:00 | <somerandomnick[m> | yes I have heard calls for social ostracization of those who do not produce UTF8 |
| 09:18:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 09:18:10 | <somerandomnick[m> | i do not necessarily agree with that |
| 09:18:11 | <geekosaur> | just like the surrogates are only valid in utf16? |
| 09:18:17 | <merijn> | geekosaur: Yes, except MS invented a dumbass one for UTF-8 |
| 09:18:32 | <merijn> | geekosaur: And you better support it or else excel refuses to read your CSV files |
| 09:18:38 | <geekosaur> | I prefer utf8 but make an exception for big5 |
| 09:18:50 | <Rembane> | dminuoso: ^^ |
| 09:19:04 | <merijn> | somerandomnick[m: I was mostly restricting myself to "not UTF" (regardless of which one) |
| 09:19:14 | <merijn> | somerandomnick[m: Although, screw anyone who produces UTF-7 |
| 09:19:20 | <somerandomnick[m> | BTW, charsetdetect has already failed me, tells me ASCII, useless!! |
| 09:19:24 | <geekosaur> | because utf8 is oversized and painful for cjk |
| 09:19:30 | <dminuoso> | Something akin to Mail would have been great. |
| 09:19:43 | <dminuoso> | Such that you can convey encoding and some basic meta data about some text file. |
| 09:20:01 | <merijn> | dminuoso: Anyway, I notice you haven't given an argument in favour of the existence of a UTF-8 BOM :) |
| 09:20:45 | <dminuoso> | merijn: https://www.unicode.org/versions/Unicode5.0.0/ch02.pdf See Table 2-4 |
| 09:20:51 | <dminuoso> | BOM is allowed in UTF-8. |
| 09:21:03 | <merijn> | dminuoso: I didn't ask if it was allowed (that was only added after MS) |
| 09:21:11 | <merijn> | dminuoso: I asked for a reason to allow it in the spec |
| 09:21:17 | <dminuoso> | My opinion is irrelevant. If your library cant handle it, its non-conforming. |
| 09:21:38 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 250 seconds) |
| 09:21:40 | <dminuoso> | Dont conflate your personal objects over additions with the inability of library authors to implement unicode. |
| 09:21:45 | <dminuoso> | s/objects/objections/ |
| 09:24:13 | <merijn> | dminuoso: My problem is that I have to deal with incompetent library authors all the time, therefore the addition of allowing it means I know have to deal with people who don't deal with it |
| 09:25:02 | <dminuoso> | Honestly, if they cant even deal with BOM correctly, this will be the least of your worries when it comes to unicode correctness. |
| 09:25:07 | <dminuoso> | Given how simple it is to do right. |
| 09:25:46 | <probie> | Use of a BOM is neither required nor recommended for UTF-8, but may be encountered in contexts where UTF-8 data is converted from other encoding forms that use a BOM or where the BOM is used as a UTF-8 signature. |
| 09:26:15 | <somerandomnick[m> | lets use decodeUtf8Lenient and silently drop invalid chars and not tell our users about it. That way, the heretics not adhering to UTF-8 will suffer greatly, not knowing what hit them |
| 09:26:29 | <geekosaur> | == "Microsoft rammed their method for detecting itf8-encoded data down the unicode committee's (and everyone else's) throats |
| 09:26:30 | <dminuoso> | probie: Note this expression of "use" is meant from the perspective of a program that generates UTF-8. |
| 09:26:31 | <geekosaur> | " |
| 09:26:36 | <dminuoso> | Not from the perspective of decoding it. |
| 09:26:43 | <ncf> | hpc: your wish came true :D |
| 09:26:49 | × | td_ quits (~td@i53870909.versanet.de) (Ping timeout: 265 seconds) |
| 09:26:59 | <merijn> | geekosaur: Facts |
| 09:27:03 | → | machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr) |
| 09:27:07 | <dminuoso> | probie: "[..] but may be encountered in [..]" |
| 09:27:10 | <merijn> | Hence, a pox upon the MS guy responsible |
| 09:27:33 | <dminuoso> | probie: https://www.unicode.org/versions/Unicode5.0.0/ch16.pdf#M9.21335.Heading.133.Specials |
| 09:27:54 | <merijn> | Had to spend 3 hours debugging why my girlfriend's "obviously correct" Haskell program was producing cryptic errors only to find out cassava can't handle UTF-8 BOM >.> |
| 09:28:23 | <dminuoso> | `Similarly, where Unicode text has known byte order, initial U+FEFF characters are not required, but for backward compatibility are to be interpreted as zero width no-break spaces. For` |
| 09:28:24 | → | td_ joins (~td@i53870909.versanet.de) |
| 09:29:26 | <probie> | dminuoso: I'm not expressing an opinion, just quoting the relevant part of the spec so people don't have to go looking for it |
| 09:29:49 | <dminuoso> | Fair |
| 09:30:34 | × | dibblego quits (~dibblego@haskell/developer/dibblego) (Ping timeout: 268 seconds) |
| 09:31:11 | → | dibblego joins (~dibblego@122.199.1.30) |
| 09:31:11 | × | dibblego quits (~dibblego@122.199.1.30) (Changing host) |
| 09:31:11 | → | dibblego joins (~dibblego@haskell/developer/dibblego) |
| 09:38:16 | <[exa]> | (funny how MS then randomly ceases to use boms in utf16 where it is actually needed.) |
| 09:41:14 | <somerandomnick[m> | readFile :: FilePath -> IO TextSource# |
| 09:41:14 | <somerandomnick[m> | The readFile function reads a file and returns the contents of the file as a string. The entire file is read strictly, as with getContents. |
| 09:41:14 | <somerandomnick[m> | Beware that this function (similarly to readFile) is locale-dependent. Unexpected system locale may cause your application to read corrupted data or throw runtime exceptions about "invalid argument (invalid byte sequence)" or "invalid argument (invalid character)". This is also slow, because GHC first converts an entire input to UTF-32, which is afterwards converted to UTF-8. |
| 09:41:14 | <somerandomnick[m> | If your data is UTF-8, using decodeUtf8 . readFile is a much faster and safer alternative. |
| 09:42:12 | <gnalzo> | they (MS) often take inconsistent decision. This is a constant :D |
| 09:42:47 | <somerandomnick[m> | Data Text converts everything to utf 32 lol |
| 09:42:55 | <somerandomnick[m> | readFile that is |
| 09:43:07 | <merijn> | somerandomnick[m: It does not |
| 09:43:37 | × | Square quits (~Square@user/square) (Ping timeout: 256 seconds) |
| 09:44:14 | <merijn> | hmm, did this change in the utf-8 change? :O |
| 09:47:07 | × | machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 240 seconds) |
| 09:48:33 | <merijn> | Ugh, I should not have started digging through this code |
| 09:49:23 | <somerandomnick[m> | This is also slow, because GHC first converts an entire input to UTF-32, which is afterwards converted to UTF-8. |
| 09:54:35 | × | chromoblob quits (~user@37.113.158.8) (Ping timeout: 246 seconds) |
| 09:55:08 | × | chomwitt quits (~chomwitt@2a02:587:7a17:7500:1ac0:4dff:fedb:a3f1) (Ping timeout: 240 seconds) |
| 09:57:52 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 09:59:10 | × | mheinzel quits (~mheinzel@2001:620:130:6092:762f:f9de:e627:8ca) (Ping timeout: 265 seconds) |
| 10:00:08 | × | taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-7103-52d8-4be8-ade6.rev.sfr.net) (Ping timeout: 265 seconds) |
| 10:02:33 | × | gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 10:02:57 | → | mheinzel joins (~mheinzel@152.96.94.73) |
| 10:04:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 10:05:50 | → | freeside joins (~mengwong@103.252.202.189) |
| 10:06:52 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 10:07:16 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 10:07:57 | → | nilradical joins (~nilradica@user/naso) |
| 10:08:22 | → | gurkenglas joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) |
| 10:09:06 | → | taupiqueur joins (~taupiqueu@ip-166.net-81-220-17.versailles.rev.numericable.fr) |
| 10:10:09 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 250 seconds) |
| 10:12:31 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 10:12:45 | × | nilradical quits (~nilradica@user/naso) (Ping timeout: 240 seconds) |
| 10:12:46 | → | cheater joins (~Username@user/cheater) |
| 10:14:56 | × | xff0x_ quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 250 seconds) |
| 10:18:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 10:18:33 | → | chromoblob joins (~user@37.113.158.8) |
| 10:18:57 | → | le_ka joins (~l_k@213.24.134.106) |
| 10:20:52 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 10:22:39 | → | nilradical joins (~nilradica@user/naso) |
| 10:23:11 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 10:28:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 10:28:14 | → | nilradical joins (~nilradica@user/naso) |
| 10:28:27 | × | remedan quits (~remedan@ip-94-112-0-18.bb.vodafone.cz) (Ping timeout: 248 seconds) |
| 10:29:03 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 10:33:00 | × | nilradical quits (~nilradica@user/naso) (Ping timeout: 265 seconds) |
| 10:35:07 | × | mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 240 seconds) |
| 10:36:57 | → | remedan joins (~remedan@ip-94-112-0-18.bb.vodafone.cz) |
| 10:38:01 | → | gensyst joins (~gensyst@user/gensyst) |
| 10:38:44 | × | coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot) |
| 10:39:20 | <gensyst> | I have an "MVar Int" that starts at 0 and I modify it only with modifyMVar. How can I wait for this mvar to contain 0? |
| 10:39:37 | <gensyst> | other than writing a loop with threadDelay which sounds ridiculous |
| 10:40:41 | → | nilradical joins (~nilradica@user/naso) |
| 10:41:20 | <mauke> | consider using an STRef instead |
| 10:41:30 | <mauke> | or TMVar |
| 10:42:25 | <ncf> | sounds like a semaphore |
| 10:42:31 | → | titibandit joins (~titibandi@user/titibandit) |
| 10:42:59 | <c_wraith> | if you want to just wait for it to hit zero, that sounds like you want a TVar |
| 10:43:05 | <c_wraith> | (not a TMVar, it's never empty) |
| 10:43:37 | <mauke> | er |
| 10:43:55 | <mauke> | why did I say STRef. I clearly thought TVar |
| 10:44:07 | <mauke> | FINGERS! IN MY OFFICE RIGHT NOW |
| 10:44:29 | <c_wraith> | like, https://hackage.haskell.org/package/stm-2.5.1.0/docs/Control-Monad-STM.html#v:check exists to make this easy to wait for |
| 10:44:52 | <ncf> | https://hackage.haskell.org/package/base-4.18.0.0/docs/Control-Concurrent-QSem.html |
| 10:44:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 10:45:21 | <ncf> | hm maybe not quite |
| 10:48:35 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 10:50:07 | <gensyst> | What I really want is this: whenMVarIsZero :: MVar Int -> IO a -> IO a (and while that executes, the mvar should be locked, because I don't want someone to make it non-zero while that IO action is executing because that IO action is assuming the mvar is zero). |
| 10:50:12 | <gensyst> | Can TVars achieve this? |
| 10:50:19 | → | {-d0t-} joins (~{-d0t-}@user/-d0t-/x-7915216) |
| 10:50:31 | {-d0t-} | is now known as _d0t |
| 10:51:05 | <ncf> | can you say more about what that MVar contains? when does it become zero? |
| 10:51:15 | <mauke> | TMVars definitely can |
| 10:51:31 | → | ripspin joins (~chatzilla@1.145.141.6) |
| 10:52:55 | × | nilradical quits (~nilradica@user/naso) (Remote host closed the connection) |
| 10:53:22 | <mauke> | :t atomically (do n <- takeTMVar v; check (n == 0)) |
| 10:53:23 | <lambdabot> | error: |
| 10:53:23 | <lambdabot> | Variable not in scope: atomically :: m0 b0 -> t |
| 10:53:23 | <lambdabot> | error: |
| 10:53:27 | <mauke> | :-( |
| 10:53:50 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 10:54:15 | <c_wraith> | man, STM seems so magical. (Until you create a thundering herd. Don't create a thundering herd.) |
| 10:57:49 | <gensyst> | Is atomically STM a global thing across the entire program? |
| 10:57:54 | <gensyst> | global lock |
| 10:57:56 | <gensyst> | for all STMs |
| 10:58:05 | <_d0t> | gensyst: no |
| 10:58:13 | <c_wraith> | no, the locks are per mutable cell |
| 10:58:28 | <gensyst> | ok i see |
| 10:58:35 | <mauke> | atomically . (check . (0 ==) <=< takeTMVar) |
| 10:59:10 | <c_wraith> | STM's big issue is when there are a lot of threads contending for a small number of cells. |
| 10:59:11 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 10:59:34 | <gensyst> | mauke, and retry, if it fails, gives others a chance to modify it the TMVar (to increase or decrease that counter) |
| 11:00:16 | <gensyst> | so it "opens up" momentarily to give others a chance |
| 11:01:02 | <gensyst> | is it really an infinite loop under the hood? |
| 11:01:27 | <c_wraith> | it tells the STM system to block until a cell that had previously been touched in the transaction is changed by a different transaction |
| 11:01:48 | <mauke> | retry goes to the next orElse in the same atomically. if there is none, it puts the atomically to sleep until circumstances change |
| 11:02:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 11:04:30 | → | xff0x_ joins (~xff0x@ai098135.d.east.v6connect.net) |
| 11:05:23 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 11:10:31 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) |
| 11:13:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 11:14:41 | → | nilradical joins (~nilradica@user/naso) |
| 11:15:01 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 240 seconds) |
| 11:15:13 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 11:22:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 11:22:38 | → | gtdg joins (~gtdg@user/gtdg) |
| 11:23:09 | × | gtdg quits (~gtdg@user/gtdg) (Client Quit) |
| 11:24:02 | × | raehik quits (~raehik@cpc95906-rdng25-2-0-cust156.15-3.cable.virginm.net) (Ping timeout: 268 seconds) |
| 11:27:14 | <gensyst> | nice, thanks mates |
| 11:29:45 | <gensyst> | but wait... |
| 11:30:09 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 11:31:11 | <gensyst> | i wanted to lock on the mvar (in original example, now TMVar) while the IO action executes... but i can't run IO actions from within atomically? |
| 11:32:58 | <Rembane> | You can run atomically within an IO action though |
| 11:33:04 | <mauke> | the locked state is represented by an empty mvar |
| 11:33:54 | <mauke> | you need atomically to make the mvar empty, not to keep it empty |
| 11:33:59 | → | mheinzel joins (~mheinzel@2001:620:130:6092:5e3e:4f50:6080:8f06) |
| 11:34:14 | <zups> | Why can't i pattern match the a in here: https://pastebin.com/KQa8eFyL |
| 11:35:43 | <gensyst> | mauke, did you mean to switch to mvar? (or i'm supposed to have an mvar for locking and tmvar for the counter?) |
| 11:36:04 | <geekosaur> | zups, because you said `Maybe a` and then insist that you meant `Maybe Egg` |
| 11:36:06 | <mauke> | gensyst: for the purposes of this discussion, read mvar as TMVar |
| 11:36:19 | <merijn> | zups: Because ChickenEgg has type 'Egg' and the contents of 'Maybe a' can be *anything* |
| 11:36:19 | <geekosaur> | so the compiler is holding you to what you said (any `a`, not just `Egg`) |
| 11:36:35 | <merijn> | zups: Presumably you meant "instance Price a => Price (Maybe a)" |
| 11:36:59 | <mauke> | zups: in line 19, what is the type of the variable 'a' intended to be? |
| 11:37:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 11:38:46 | <mauke> | gensyst: the point is that you can do atomically (takeTMVar v) ... atomically (putTMVar v 0) with arbitrary IO code in between. you don't need atomically around the whole thing |
| 11:38:47 | <geekosaur> | remember, typeclasses are open. just because the only instance it can see now is Egg, does not mean someone else will define one at a later date |
| 11:39:00 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 11:39:08 | <mauke> | I feel like classes are a bit of a red herring here |
| 11:39:26 | <zups> | mrijn: yeah, i think that way of defining the instance is more correct but still doesn't fix the error message mmm |
| 11:39:40 | <mauke> | there is no world where 'case a of ChickenEgg -> ...; Milk amount -> ...' typechecks, regardless of whether classes are involved |
| 11:40:08 | <mauke> | the two patterns have incompatible types |
| 11:41:03 | <zups> | mm yeah |
| 11:41:22 | <gensyst> | mauke, ok i get it now. i didn't realize earlier that EMPTY is now a possibility for the tmvar in addition to the various integers. |
| 11:41:25 | <gensyst> | thanks! |
| 11:44:31 | → | lortabac joins (~lortabac@152.96.92.233) |
| 11:44:37 | × | chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds) |
| 11:47:40 | <gensyst> | Has stm packages practically become a "standard library"? |
| 11:47:42 | <gensyst> | Like bytestring |
| 11:49:17 | <c_wraith> | stm re-exports a lot of stuff from base. It has very little of its own code |
| 11:50:07 | <c_wraith> | so yeah, it isn't a really fully separate thing |
| 11:50:34 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 11:53:32 | → | gtdg joins (~gtdg@user/gtdg) |
| 11:58:47 | → | raehik joins (~raehik@82.21.176.157) |
| 11:59:11 | <[exa]> | is there anything that could make Options.Applicative commandline parsers work "reliably" on record-style argument structure definitions? |
| 11:59:26 | <[exa]> | (i.e., make sure that I don't mess up the ordering of args for the structure) |
| 11:59:55 | <merijn> | [exa]: hmm? mess up how? |
| 12:00:36 | <jackdk> | [exa]: I assume you mean getting the Nth applicative argument to align with the Nth record field? I use `-XApplicativeDo` and `-XRecordWildCards`. |
| 12:00:56 | <[exa]> | say data MyOpts = MyOpts{a::String, b::String}; and the parser becomes: MyOpts <$> strOption ... <*> strOption ... |
| 12:01:10 | <[exa]> | then I need to manually keep the order of things in sync |
| 12:01:17 | <merijn> | [exa]: ApplicativeDo and optionally RecordWildCards, yes |
| 12:01:20 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:01:28 | <merijn> | [exa]: Lemme see if I have an example in my code |
| 12:01:29 | <[exa]> | ah ok perfect |
| 12:01:34 | <[exa]> | jackdk merijn thanks both! |
| 12:02:44 | <merijn> | [exa]: https://github.com/merijn/Belewitte/blob/master/benchmark-analysis/src/OptionParsers.hs#L483-L498 |
| 12:03:11 | <merijn> | That one is a bit more complicated since all my results are runnable actions, but you get the idea |
| 12:03:16 | × | vglfr quits (~vglfr@cli-188-239-233-89.bbn.slav.dn.ua) (Ping timeout: 250 seconds) |
| 12:04:02 | → | vglfr joins (~vglfr@188.239.233.89) |
| 12:04:09 | <[exa]> | but wait if someone switches there the "pure allowNewer" and "pure filterFlag" (I assume both are Bools), it doesn't fail, right? |
| 12:05:03 | <merijn> | [exa]: hmm, I guess that only handles the case of the Parser not the underlying SqlM :p |
| 12:05:09 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:05:11 | <[exa]> | ah no I can then do MyOpts{..} and it will work, yeah |
| 12:05:18 | <merijn> | [exa]: Yeah, exactly |
| 12:05:25 | <[exa]> | great, it clicked :D |
| 12:05:27 | <[exa]> | thanks a lot! |
| 12:06:02 | <merijn> | [exa]: ApplicativeDo rules can be a bit finnicky, but for trivial cases of just "pure MyOpts{..}" it should just always work |
| 12:10:18 | <[exa]> | well lemme tease it a bit with `emptyFilledOpts{..}` and see how it fails :D |
| 12:10:49 | <[exa]> | error: You cannot use `..' in a record update |
| 12:10:52 | <[exa]> | ,_, |
| 12:16:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:19:46 | <gensyst> | can async exceptions also be thrown at waiting TMVars (whether take or put) inside a mask? |
| 12:19:55 | <gensyst> | (just like for mvars) |
| 12:19:58 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:24:45 | → | freeside joins (~mengwong@103.252.202.189) |
| 12:24:54 | <gensyst> | yeah sort of looks like it: https://hackage.haskell.org/package/base-4.9.1.0/docs/Control-Exception.html#g:13 |
| 12:26:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:29:08 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
| 12:30:11 | <somerandomnick[m> | hey, update, fmap decodeUtf8Lenient . B.readFile together with alexSkip '\xFFFD' = True (for good measure) is good enough for a lexer to eat all kinds of real world files |
| 12:30:49 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:30:49 | <somerandomnick[m> | it is also more efficient then a naive T.readFile from Data.Text |
| 12:36:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:38:38 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:41:31 | × | nilradical quits (~nilradica@user/naso) () |
| 12:42:47 | → | Pickchea joins (~private@user/pickchea) |
| 12:45:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:46:16 | × | gensyst quits (~gensyst@user/gensyst) (Quit: Leaving) |
| 12:49:18 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:50:25 | <JensPetersen[m]> | Cool, hackage creates dependency links to non-existent hackages, hehe |
| 12:51:07 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Remote host closed the connection) |
| 12:52:14 | × | lortabac quits (~lortabac@152.96.92.233) (Ping timeout: 265 seconds) |
| 12:53:09 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:56:20 | tomsmeding | wonders how many hackages exist, and don't exist |
| 12:57:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 12:58:18 | → | enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) |
| 12:58:27 | → | lortabac joins (~lortabac@2001:620:130:6092:99f0:67aa:f3b5:79c) |
| 12:58:54 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 12:59:05 | → | ddellacosta joins (~ddellacos@146.70.165.139) |
| 12:59:18 | <JensPetersen[m]> | Was there any general announcement about crypton yet? |
| 12:59:24 | <JensPetersen[m]> | It would be helpful... |
| 13:00:08 | × | mheinzel quits (~mheinzel@2001:620:130:6092:5e3e:4f50:6080:8f06) (Ping timeout: 240 seconds) |
| 13:00:14 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 13:01:00 | <geekosaur> | https://discourse.haskell.org/t/a-new-future-for-cryptography-in-haskell/3888 ? |
| 13:01:05 | <probie> | announcement by who, and on what platform? |
| 13:01:20 | <geekosaur> | oh, no, that's more general |
| 13:01:28 | <geekosaur> | and possibly in response to this mess |
| 13:02:21 | <probie> | I think it's separate and unrelated to this mess |
| 13:02:48 | <Rembane> | What's the mess? |
| 13:03:51 | <geekosaur> | crypton was forked from cryptonite, is not source compatible, some key packages switched to it => things like wai are suddenly broken |
| 13:04:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 13:04:24 | <geekosaur> | because some of ther deps now want crypton and others want cryptonite |
| 13:04:33 | → | mheinzel joins (~mheinzel@152.96.94.73) |
| 13:04:42 | <Rembane> | Oh, that sounds messy. |
| 13:05:02 | <somerandomnick[m> | Once you get a cryptographer that also knows haskell, you can have pure haskell crypto primitives. Until then I will prefer my own bindings to libsodium. Cheers |
| 13:05:21 | <geekosaur> | that's the topic of the discourse I posted |
| 13:05:30 | <geekosaur> | HF is stepping in to resolve that situation |
| 13:06:07 | <probie> | Isn't crypton(ite) largely written in C with bits of inline assembly for the actual crypto bits? |
| 13:06:09 | <geekosaur> | because while cryptonite (and now crypton) are widely used, others distrust it/them because nobody has audited them |
| 13:06:47 | → | mmhat joins (~mmh@p200300f1c727020cee086bfffe095315.dip0.t-ipconnect.de) |
| 13:07:19 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 13:07:20 | <geekosaur> | so yeh, we need a proper cryptography solution |
| 13:07:40 | <probie> | (to clarify, my comment about crypton(ite) being mostly written in C isn't saying that you should trust it, merely that anyone auditing it probably wouldn't need to know Haskell) |
| 13:08:00 | <geekosaur> | heck, we need just an https protocol solution, last I checked things still had to shell out to curl |
| 13:08:25 | <geekosaur> | (libcurl is apparently a nightmare, including that the api changes a lot) |
| 13:10:00 | <kuribas> | geekosaur: could this be useful? https://github.com/hacl-star/hacl-star |
| 13:10:06 | <geekosaur> | also a number of us are not confident about pure haskell crypto primitives, because you don't have the control over side channel timing attacks that C at least tries to give you |
| 13:10:33 | <geekosaur> | (until intel shoots you in the kneecaps with timings that violate their own documentation) |
| 13:11:03 | <geekosaur> | kuribas, I'm not the one who needs to be told about that… |
| 13:11:34 | <geekosaur> | (I'm not writing webby stuff, I just know these things have come up a lot) |
| 13:12:17 | <probie> | Personally I don't think crypto stuff should be written in C. I'm terrified that a modern compiler will be a bit too helpful |
| 13:12:53 | <geekosaur> | sadly that is true of every other language as well |
| 13:13:25 | <geekosaur> | I think C/Rust/whatever compilers need a special "guaranteed timing" optimization mode for cryptography code |
| 13:13:50 | <probie> | well, maybe not "not written in C", but rather that compilers for crypto algorithms should be separate from those for general purpose programming language (but if you're going to have a separate compiler, you may as well have a dedicated language) |
| 13:13:52 | <geekosaur> | (even asm is suspect) |
| 13:15:19 | <probie> | that way you're free to also add things that most general purpose compilers wouldn't consider, like "different codegen for different CPUs with the same architecture" |
| 13:15:35 | <Axman6> | somerandomnick[m: I would recommend these libsodium bindings, a lot of work has gone into the: https://haskell-cryptography.org/projects/ |
| 13:15:50 | → | cfricke_ joins (~cfricke@user/cfricke) |
| 13:18:22 | <dminuoso> | probie: There's a bunch of projects looking specifying mathematical models and extracting programs out of them. |
| 13:18:29 | → | nate2 joins (~nate@98.45.169.16) |
| 13:18:37 | <dminuoso> | See fiat-crypto, verse-coq or even cryptol |
| 13:18:44 | <dminuoso> | Problem is their performance is utterly poor. |
| 13:18:59 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
| 13:19:30 | <dminuoso> | The advantage that C language has, is that there's a lot more implementors well versed in both cryptographic and how to avoid certain optimizations. |
| 13:19:53 | <dminuoso> | So that gives you more people that *can* get involved, which given the problem domain already is very few people. |
| 13:20:59 | <dminuoso> | Cryptographic libraries sometimes have critical sections written in handrolled assembler, or tightly controlling optimizations, and then this stuff gets tuned between compiler releases |
| 13:21:30 | <dminuoso> | In GHC you could at least write critical sections in primops |
| 13:21:45 | <jean-paul[m]> | "Slow" or "wrong", such lovely options we have |
| 13:22:32 | <dminuoso> | jean-paul[m]: to be fair, even fiat-crypto/verse-coq isnt provably correct. It's only provably correct up to the properties that the primitives have. |
| 13:22:51 | <dminuoso> | Unknown future side-channels are pretty much unavoidable. |
| 13:22:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 13:23:04 | <jean-paul[m]> | "Slow and maybe wrong" or "wrong", even better :) |
| 13:23:07 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 13:23:56 | <jean-paul[m]> | We need formal models of every part of the system - including the hardware and the compiler |
| 13:24:13 | <jean-paul[m]> | maybe in another fifty years |
| 13:24:19 | <dminuoso> | jean-paul[m]: A bigger problem is that of the CPU. |
| 13:24:41 | <dminuoso> | When not even AES instructions leak information |
| 13:24:45 | <dminuoso> | s/not// |
| 13:25:04 | <jean-paul[m]> | Yea. I was including the CPU in "hardware". What kind of CPU do you have? ;) |
| 13:25:13 | <dminuoso> | You are staring at a gigantic, undebuggable and undecipherable microcode machine nobody outside Intel/AMD knows how it functions |
| 13:25:59 | <dminuoso> | Im just saying that "in another fifty years" is not reasonable, why would <future CPU vendor in 50 years> have any interest in sharing intellectual property? |
| 13:26:01 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 13:26:03 | <geekosaur> | and of course the internals are trade secret so you'll never get a reliable model |
| 13:26:58 | <jean-paul[m]> | One reason for them to give that away could be "it is possible for software on our CPU to be secure" I suppose? |
| 13:27:05 | geekosaur | wonders if crypto coprocessors will become a thing |
| 13:27:15 | <jean-paul[m]> | I dunno. I only said "maybe in 50 years" :) |
| 13:27:23 | <geekosaur> | well, they already are, given TPM |
| 13:28:32 | × | vandita quits (~vandit@92-249-182-124.pool.digikabel.hu) (Ping timeout: 248 seconds) |
| 13:30:27 | <JensPetersen[m]> | Why is cabal haddock failing in GH CI? hm 😢 |
| 13:30:32 | → | vandita joins (~vandit@94-21-82-204.pool.digikabel.hu) |
| 13:30:37 | <Axman6> | Risc-c is proabbly the best chance to get those sort of properties dminuoso. |
| 13:30:49 | <Axman6> | V* |
| 13:31:56 | <Axman6> | the team that worked on seL4 are very keen to make sure many of the mistakes of the past which lead to side channels are avoided where possible |
| 13:32:28 | <Axman6> | and have been opart of the risc-v foundation, or whatever it's called, for a long time now |
| 13:34:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 13:34:17 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 13:35:04 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 13:37:00 | × | vglfr quits (~vglfr@188.239.233.89) (Remote host closed the connection) |
| 13:38:09 | <merijn> | dminuoso: Hey, the majority within intel doesn't know how their microcode machine works either :p |
| 13:38:17 | <merijn> | I'm not sure anyone *really* does |
| 13:38:52 | <merijn> | Also, clearly we should be implementing the Haskell crypto ecosystem in Ivory ;) |
| 13:40:08 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 240 seconds) |
| 13:41:48 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 13:41:48 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 13:41:48 | → | wroathe joins (~wroathe@user/wroathe) |
| 13:42:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 13:43:03 | → | bitdex joins (~bitdex@gateway/tor-sasl/bitdex) |
| 13:43:58 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 13:44:13 | <kuribas> | probie: compCert? |
| 13:45:49 | × | phma quits (phma@2001:5b0:2143:8e68:4a0a:5813:1bab:50e7) (Read error: Connection reset by peer) |
| 13:46:30 | → | phma joins (~phma@host-67-44-208-203.hnremote.net) |
| 13:48:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 13:48:48 | × | wroathe quits (~wroathe@user/wroathe) (Ping timeout: 248 seconds) |
| 13:50:57 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 13:53:49 | → | tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) |
| 13:54:39 | → | shriekingnoise joins (~shrieking@186.137.175.87) |
| 13:56:58 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 265 seconds) |
| 13:57:15 | tomsmeding | is confused how the Ivory website explains that it's an eDSL in Haskell, but then under Reference gives the "syntax" of the language |
| 13:57:26 | <tomsmeding> | like, is it embedded or isn't it |
| 14:03:38 | → | mc47 joins (~mc47@xmonad/TheMC47) |
| 14:04:43 | × | ystael quits (~ystael@user/ystael) (Quit: Lost terminal) |
| 14:06:56 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 14:07:36 | × | mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 265 seconds) |
| 14:08:43 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 14:09:03 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 14:12:14 | → | chromoblob joins (~user@37.113.158.8) |
| 14:14:08 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 14:14:23 | <byorgey> | tomsmeding: could make sense if the purpose is to make it usable by people who don't already know Haskell |
| 14:16:47 | → | mheinzel joins (~mheinzel@152.96.94.73) |
| 14:16:57 | × | ripspin quits (~chatzilla@1.145.141.6) (Remote host closed the connection) |
| 14:19:57 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9c6d-a82c-d0c8-a0dc.rev.sfr.net) |
| 14:20:16 | → | raym joins (~ray@user/raym) |
| 14:20:25 | → | machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr) |
| 14:21:11 | × | taupiqueur quits (~taupiqueu@ip-166.net-81-220-17.versailles.rev.numericable.fr) (Quit: WeeChat 3.8) |
| 14:21:23 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 14:22:29 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:22:40 | × | Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
| 14:23:23 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9c6d-a82c-d0c8-a0dc.rev.sfr.net) (Remote host closed the connection) |
| 14:24:21 | × | bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "") |
| 14:24:49 | → | econo joins (uid147250@user/econo) |
| 14:25:28 | → | Sgeo joins (~Sgeo@user/sgeo) |
| 14:25:53 | → | chomwitt joins (~chomwitt@94.69.70.96) |
| 14:26:32 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 14:29:08 | × | irfan quits (~irfan@user/irfan) (Ping timeout: 240 seconds) |
| 14:30:10 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 250 seconds) |
| 14:31:44 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 14:35:12 | → | ec_ joins (~ec@gateway/tor-sasl/ec) |
| 14:36:15 | × | le_ka quits (~l_k@213.24.134.106) (Read error: Connection reset by peer) |
| 14:36:27 | → | le_ka joins (~l_k@213.24.134.106) |
| 14:38:41 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 14:40:32 | × | ec_ quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds) |
| 14:40:53 | → | freeside joins (~mengwong@103.252.202.189) |
| 14:46:08 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
| 14:47:52 | → | ystael joins (~ystael@user/ystael) |
| 14:48:29 | × | le_ka quits (~l_k@213.24.134.106) (Ping timeout: 256 seconds) |
| 14:49:46 | → | mechap joins (~mechap@user/mechap) |
| 14:50:56 | → | titibandit joins (~titibandi@user/titibandit) |
| 14:50:58 | <gurkenglas> | New monad tutorial just dropped. Picture a small monk as I say this. |
| 14:51:49 | <gurkenglas> | "Do not try and get a value out of your IO Cutlery. That's impossible. Instead, only try to realize the truth: There is no spoon." |
| 14:51:50 | → | Inst_ joins (~Inst@c-98-208-218-119.hsd1.fl.comcast.net) |
| 14:52:16 | × | Inst quits (~Inst@2601:6c4:4081:2fc0:f10d:fbfc:9509:13bb) (Ping timeout: 250 seconds) |
| 14:52:52 | <Rembane> | "I need guns. Lots of guns." |
| 14:53:20 | × | ubert quits (~Thunderbi@2a02:8109:abc0:6434:734b:c6e7:ee63:2f95) (Quit: ubert) |
| 14:53:28 | <probie> | s/gun/(>>=)/ |
| 14:54:06 | × | Inst_ quits (~Inst@c-98-208-218-119.hsd1.fl.comcast.net) (Read error: Connection reset by peer) |
| 14:54:28 | → | Inst_ joins (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb) |
| 14:54:33 | × | enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq) |
| 14:55:24 | × | tom__ quits (~tom@host81-151-255-71.range81-151.btcentralplus.com) (Read error: Connection reset by peer) |
| 15:06:39 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 268 seconds) |
| 15:07:57 | → | titibandit joins (~titibandi@user/titibandit) |
| 15:09:10 | <EvanR> | One cannot simply be told what A Monad is |
| 15:09:35 | × | lortabac quits (~lortabac@2001:620:130:6092:99f0:67aa:f3b5:79c) (Ping timeout: 246 seconds) |
| 15:09:51 | <_d0t> | it's a monoid in the category of endofunctors lol |
| 15:10:23 | <_d0t> | on a related note, it's a shame that join isn't a member of Monad in Haskell |
| 15:12:11 | <chromoblob> | i agree |
| 15:13:40 | <_d0t> | mostly because this would make the definition true in case of haskell |
| 15:13:59 | <_d0t> | or well, rather more relevant |
| 15:14:39 | <jade[m]> | what's a monad where defining join specially would have performance benefits |
| 15:14:48 | <jade[m]> | or rather when is `>>= id` "bad"? |
| 15:15:11 | <_d0t> | there are some monads where join is easier to define than >>= |
| 15:15:25 | <jade[m]> | that's fair enough |
| 15:15:52 | <jade[m]> | though you might just do that and then `(>>=) = join . fmap` |
| 15:15:53 | → | lortabac joins (~lortabac@2001:620:130:6092:2b9e:4750:fde0:6faa) |
| 15:16:01 | <jade[m]> | * = join' . |
| 15:16:27 | <_d0t> | yes. Although this would require Functor to be the superclass for Monad, which wasn't always the case. |
| 15:16:31 | × | acidjnk quits (~acidjnk@p200300d6e7072f01d1c821db9a6d9801.dip0.t-ipconnect.de) (Ping timeout: 240 seconds) |
| 15:17:22 | <jade[m]> | but then join alone is not sufficient for a monad, right? |
| 15:17:24 | <EvanR> | even if it's not, in your specific instance you can require Functor |
| 15:17:58 | <_d0t> | jade[m]: you need join and return |
| 15:18:03 | → | acidjnk joins (~acidjnk@p200300d6e7072f019dd2aa00216a5b17.dip0.t-ipconnect.de) |
| 15:18:19 | <_d0t> | and you can use liftM instead of fmap |
| 15:18:24 | <_d0t> | i always forget it exists lol |
| 15:18:25 | <EvanR> | since Monad requires Applicative now, you have return |
| 15:18:32 | <EvanR> | one way or another |
| 15:18:33 | <jade[m]> | _d0t: that feels like not enough? |
| 15:18:45 | <jade[m]> | because how would you define `>>=` without `fmap`? |
| 15:18:55 | <_d0t> | jade[m]: nah, that's enough. Disregard my words about the superclass. |
| 15:19:39 | × | machinedgod quits (~machinedg@93-138-40-51.adsl.net.t-com.hr) (Ping timeout: 265 seconds) |
| 15:19:46 | <jade[m]> | but `liftM` is defined in terms of `>>=` |
| 15:20:13 | <jade[m]> | if the definitions via `>>=` and `join` would be identical you would be able to define each in terms of the other, right? |
| 15:20:24 | <jade[m]> | How do you define `>>=` in terms of `join`? |
| 15:20:32 | <_d0t> | you can define liftM in terms of join and return |
| 15:20:36 | <jade[m]> | without fmap |
| 15:20:49 | <jade[m]> | _d0t: can you show how please |
| 15:20:57 | <_d0t> | jade[m]: hmm.. lemme fire up the repl |
| 15:21:40 | <jade[m]> | not trying to be cocky, but I'm pretty sure join by itself is not enough |
| 15:21:47 | <jade[m]> | because `>>=` is a generalization of it |
| 15:24:41 | → | eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) |
| 15:25:39 | <_d0t> | dammit! Seems that you need fmap after all. |
| 15:26:11 | <jade[m]> | yep |
| 15:31:42 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds) |
| 15:31:44 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 265 seconds) |
| 15:33:55 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 15:36:20 | → | shapr joins (~user@2600:1700:c640:3100:e1bf:464f:6761:f460) |
| 15:37:13 | → | le_ka joins (~l_k@213.24.134.106) |
| 15:38:28 | × | le_ka quits (~l_k@213.24.134.106) (Client Quit) |
| 15:38:33 | × | gtdg quits (~gtdg@user/gtdg) (Ping timeout: 245 seconds) |
| 15:40:50 | × | lortabac quits (~lortabac@2001:620:130:6092:2b9e:4750:fde0:6faa) (Quit: WeeChat 2.8) |
| 15:43:27 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 15:43:57 | × | zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!) |
| 15:45:38 | × | mheinzel quits (~mheinzel@152.96.94.73) (Ping timeout: 246 seconds) |
| 15:45:38 | × | merijn quits (~merijn@c-001-001-004.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds) |
| 15:49:41 | → | freeside joins (~mengwong@103.252.202.189) |
| 15:53:27 | × | dcoutts quits (~duncan@2001:620:130:6092:8b6f:ee09:26cb:f12f) (Ping timeout: 265 seconds) |
| 15:54:05 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
| 15:54:40 | → | captnemo joins (~captnemo@193.32.127.239) |
| 16:02:37 | → | dhil joins (~dhil@78.45.150.83.ewm.ftth.as8758.net) |
| 16:03:05 | → | mheinzel joins (~mheinzel@2001:620:130:6092:da44:6da6:feaf:b10d) |
| 16:04:03 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 16:05:28 | × | vandita quits (~vandit@94-21-82-204.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 16:07:32 | → | vandita joins (~vandit@77-234-80-221.pool.digikabel.hu) |
| 16:13:28 | × | raym quits (~ray@user/raym) (Remote host closed the connection) |
| 16:15:41 | × | mheinzel quits (~mheinzel@2001:620:130:6092:da44:6da6:feaf:b10d) (Quit: Leaving) |
| 16:16:51 | → | zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba) |
| 16:19:29 | × | kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Quit: ERC (IRC client for Emacs 27.1)) |
| 16:20:24 | → | gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) |
| 16:25:58 | × | gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8) |
| 16:28:11 | × | zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!) |
| 16:29:45 | × | chromoblob quits (~user@37.113.158.8) (Ping timeout: 240 seconds) |
| 16:32:04 | × | cfricke_ quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8) |
| 16:32:16 | → | chromoblob joins (~user@37.113.180.121) |
| 16:32:37 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds) |
| 16:33:43 | × | mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection) |
| 16:36:34 | → | taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) |
| 16:36:46 | → | _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) |
| 16:37:52 | → | ripspin joins (~chatzilla@1.145.186.238) |
| 16:41:01 | × | raehik quits (~raehik@82.21.176.157) (Ping timeout: 250 seconds) |
| 16:41:27 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds) |
| 16:43:16 | × | Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection) |
| 16:47:31 | → | tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net) |
| 16:51:01 | → | freeside joins (~mengwong@103.252.202.189) |
| 16:51:55 | × | mbuf quits (~Shakthi@49.207.178.186) (Quit: Leaving) |
| 16:53:46 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 16:55:25 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds) |
| 16:58:44 | × | pavonia quits (~user@user/siracusa) (Quit: Bye!) |
| 17:00:43 | → | jmd_ joins (~jmdaemon@user/jmdaemon) |
| 17:14:13 | → | wootehfoot joins (~wootehfoo@user/wootehfoot) |
| 17:14:16 | → | Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) |
| 17:20:00 | → | nate2 joins (~nate@98.45.169.16) |
| 17:24:25 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds) |
| 17:29:58 | → | elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) |
| 17:31:31 | <__monty__> | tomsmeding: I think that C-like syntax is to be used with the Ivory QuasiQuoters. |
| 17:32:17 | → | santiagopim joins (~user@90.167.66.131) |
| 17:33:38 | → | alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) |
| 17:35:23 | × | ripspin quits (~chatzilla@1.145.186.238) (Remote host closed the connection) |
| 17:37:20 | → | gmg joins (~user@user/gehmehgeh) |
| 17:40:17 | × | alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) (Remote host closed the connection) |
| 17:43:32 | → | Pickchea joins (~private@user/pickchea) |
| 17:49:53 | × | eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection) |
| 17:51:13 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds) |
| 17:54:41 | → | solaire joins (~solaire@024-158-119-196.res.spectrum.com) |
| 17:57:46 | × | NinjaTrappeur quits (~ninja@user/ninjatrappeur) (Quit: WeeChat 3.8) |
| 17:58:43 | → | NinjaTrappeur joins (~ninja@user/ninjatrappeur) |
| 17:59:02 | × | captnemo quits (~captnemo@193.32.127.239) (Quit: WeeChat 3.8) |
| 18:02:07 | × | vandita quits (~vandit@77-234-80-221.pool.digikabel.hu) (Ping timeout: 240 seconds) |
| 18:03:16 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 18:03:47 | → | vandita joins (~vandit@92-249-182-124.pool.digikabel.hu) |
| 18:09:04 | × | fendor quits (~fendor@2a02:8388:1640:be00:7aca:a77a:4a28:631a) (Remote host closed the connection) |
| 18:09:47 | → | michalz joins (~michalz@185.246.207.203) |
| 18:10:49 | → | hamzam3 joins (~hamzam3@2a02:2788:409:ffb7:fb93:f583:d621:f33e) |
| 18:11:09 | <hamzam3> | Hello, does anyone know about lambda-circle calculus ? |
| 18:11:33 | <hamzam3> | I found on a document speaking about staged programming |
| 18:11:34 | <hamzam3> | https://okmij.org/ftp/meta-programming/implementations.html |
| 18:11:49 | <hamzam3> | He tied it to MetaOCaml |
| 18:13:55 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) |
| 18:14:26 | <ncf> | seems like this is the one https://dl.acm.org/doi/10.1145/3011069 |
| 18:14:45 | <ncf> | λ°-calculus |
| 18:18:03 | → | lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net) |
| 18:18:25 | × | solaire quits (~solaire@024-158-119-196.res.spectrum.com) (Ping timeout: 240 seconds) |
| 18:21:41 | <hamzam3> | How did you know ?? |
| 18:22:33 | → | titibandit joins (~titibandi@user/titibandit) |
| 18:23:15 | <ncf> | |
| 18:23:17 | <tomsmeding> | __monty__: ah! |
| 18:23:37 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 18:23:51 | <ncf> | (...led me to http://lambda-the-ultimate.org/node/5507, which has the link) |
| 18:25:08 | <hamzam3> | what did you type in the search bar ? |
| 18:25:08 | × | lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Ping timeout: 240 seconds) |
| 18:25:42 | × | shailangsa_ quits (~shailangs@host86-186-133-102.range86-186.btcentralplus.com) (Remote host closed the connection) |
| 18:26:47 | → | solaire joins (~solaire@24.158.119.196) |
| 18:26:51 | <ncf> | "lambda-circle calculus", with the quotes |
| 18:28:36 | × | chele quits (~chele@user/chele) (Remote host closed the connection) |
| 18:28:36 | <hamzam3> | Magnificent thank you ! |
| 18:28:42 | × | hamzam3 quits (~hamzam3@2a02:2788:409:ffb7:fb93:f583:d621:f33e) (Quit: Leaving) |
| 18:31:26 | → | lortabac joins (~lortabac@46-253-188-2.dynamic.monzoon.net) |
| 18:51:02 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 18:54:32 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 18:55:39 | → | johnw_ joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) |
| 18:57:07 | × | johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Ping timeout: 265 seconds) |
| 19:01:47 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 256 seconds) |
| 19:05:19 | × | solaire quits (~solaire@24.158.119.196) (Ping timeout: 250 seconds) |
| 19:08:32 | → | shailangsa joins (~shailangs@86.186.133.102) |
| 19:08:51 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 19:12:23 | <Athas> | So how do you use haskell-mode these days? C-c c-l in a Haskell file just gets me "haskell-session-current-dir: No current directory". |
| 19:13:15 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 19:16:04 | <Athas> | Oh wait, now something seems to be working. |
| 19:22:55 | → | oac_ joins (~oac@72.50.214.210) |
| 19:26:41 | × | oac_ quits (~oac@72.50.214.210) (Client Quit) |
| 19:27:03 | → | oac joins (~oac@72-50-214-210.fttp.usinternet.com) |
| 19:27:16 | <Hecate> | \o/ |
| 19:27:48 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 19:28:43 | × | reverse quits (~inversed@bcdcac82.skybroadband.com) (Ping timeout: 250 seconds) |
| 19:29:07 | → | jrm joins (~jrm@user/jrm) |
| 19:29:08 | → | zeenk joins (~zeenk@2a02:2f04:a106:3c00::fba) |
| 19:30:11 | → | __monty__ joins (~toonn@user/toonn) |
| 19:33:54 | → | solaire joins (~solaire@172.102.12.74) |
| 19:34:06 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 19:36:43 | × | jrm quits (~jrm@user/jrm) (Quit: ciao) |
| 19:36:47 | × | gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:38:03 | → | jrm joins (~jrm@user/jrm) |
| 19:38:27 | → | reverse joins (~inversed@188.220.172.130) |
| 19:39:57 | → | user____3 joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) |
| 19:40:08 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Remote host closed the connection) |
| 19:47:33 | → | Square joins (~Square@user/square) |
| 19:51:36 | × | user____3 quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 19:52:13 | × | jmd_ quits (~jmdaemon@user/jmdaemon) (Ping timeout: 256 seconds) |
| 19:56:24 | × | elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 20:00:00 | × | euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 248 seconds) |
| 20:01:38 | <chromoblob> | what's the etymology of backslash in place of the letter lambda? |
| 20:02:09 | <dolio> | Backslash looks like a lambda. |
| 20:02:16 | <jade[m]> | I would assume that it's the closest character to a lambda on a normal keyboard |
| 20:02:53 | <chromoblob> | is it just that |
| 20:03:08 | → | cheater_ joins (~Username@user/cheater) |
| 20:03:50 | × | lortabac quits (~lortabac@46-253-188-2.dynamic.monzoon.net) (Quit: WeeChat 2.8) |
| 20:05:59 | × | cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds) |
| 20:06:03 | cheater_ | is now known as cheater |
| 20:06:18 | <ncf> | human evolution meme but it's ^ → λ → \ |
| 20:06:50 | <ncf> | (i think the original lambda notation used ^'s, but don't quote me on that) |
| 20:07:06 | <dolio> | Yeah. |
| 20:07:46 | <dolio> | Carets above the variables being bound. |
| 20:08:07 | <Hecate> | yep |
| 20:08:55 | → | pavonia joins (~user@user/siracusa) |
| 20:11:29 | × | vandita quits (~vandit@92-249-182-124.pool.digikabel.hu) (Ping timeout: 256 seconds) |
| 20:11:37 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds) |
| 20:13:13 | → | cafkafk joins (~cafkafk@fsf/member/cafkafk) |
| 20:13:42 | → | vandita joins (~vandit@87.97.2.253) |
| 20:14:17 | <ncf> | this... is not my proudest use of GIMP https://f.monade.li/lambda_evolution.png |
| 20:15:24 | <EvanR> | lol |
| 20:15:50 | <Rembane> | Legendary! |
| 20:16:08 | <EvanR> | at some point haskell used a literal lambda? |
| 20:17:06 | <ncf> | i mean, mathematicians used literal lambdas before haskell was a thing, but you can turn on UnicodeSyntax |
| 20:18:18 | <EvanR> | i mean for the lambda form in haskell code |
| 20:18:27 | <Helle> | I know a mathematician that writes that sort of code |
| 20:18:30 | <Square> | Not sure I get the joke. Can someone explain? |
| 20:19:06 | <EvanR> | i thought the account earlier was that haskell first used ^ for lambda |
| 20:20:03 | <EvanR> | or was it the phoenicians |
| 20:20:36 | <ncf> | i actually have no idea if λ evolved from ^ or if ^ evolved from λ |
| 20:20:59 | <ncf> | or neither |
| 20:21:08 | <_d0t> | wait.. i just tried something and it seems that UnicodeSyntax doesn't include λ |
| 20:21:12 | <_d0t> | am I missing something here? |
| 20:21:46 | <EvanR> | variables can be λ without anything special |
| 20:21:57 | <_d0t> | No, I mean for anonymous functions. |
| 20:22:18 | <ncf> | apparently you can't use λ for functions :( https://gitlab.haskell.org/ghc/ghc/-/issues/1102 |
| 20:22:25 | <_d0t> | map (λa b -> a + b) xs |
| 20:22:27 | <_d0t> | like this |
| 20:22:51 | <EvanR> | for maximum lambda, λλ -> λ λ λ |
| 20:22:56 | <_d0t> | >16 years ago |
| 20:22:58 | <_d0t> | dammit :( |
| 20:23:08 | → | elain4 joins (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) |
| 20:23:27 | × | trev quits (~trev@user/trev) (Quit: trev) |
| 20:23:32 | <EvanR> | I heard "all you need is lambda" but this is getting ridiculous |
| 20:23:34 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 20:24:00 | <[Leary]> | % :t (\λ x → x)() |
| 20:24:00 | <yahb2> | (\λ x → x)() :: p -> p |
| 20:24:18 | <[Leary]> | "you just need to escape the lambda and call the function" >:) |
| 20:24:38 | → | user____3 joins (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) |
| 20:24:42 | <_d0t> | hmmm... |
| 20:24:48 | <EvanR> | oh, obviously. Because lambda is a function, after all |
| 20:24:51 | _d0t | thinking about throwing a ghc plugin |
| 20:26:30 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 20:26:50 | <dolio> | Bertrand Russell used ^ for variable binding. Then Church used λ. |
| 20:26:52 | <mauke> | I don't understand the desire to use λ instead of \ |
| 20:26:53 | <ncf> | just upgrade to agda |
| 20:27:23 | × | mmhat quits (~mmh@p200300f1c727020cee086bfffe095315.dip0.t-ipconnect.de) (Quit: WeeChat 3.8) |
| 20:27:27 | <_d0t> | nah.. agda-input in emacs works with haskell too |
| 20:28:00 | <mauke> | it's like seeing someone trying to make a ghc extension so they can use t in place of + |
| 20:28:14 | <dolio> | Then Miranda used \ because it's on an actual keyboard. |
| 20:28:21 | <probie> | mauke: If I'm going to read something as λ, it may as well actually be λ. |
| 20:28:52 | <EvanR> | actual λ |
| 20:29:42 | <mauke> | why would you read \ as l |
| 20:30:05 | × | _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht) |
| 20:30:40 | <mauke> | "oh yeah, I read 1 + 2 as 'one tee two', so I'd really prefer to write it as 1 t 2" |
| 20:30:41 | <EvanR> | someone just mentioned a student of theirs who spells his name +ison |
| 20:30:52 | <_d0t> | Look, if Scheme allows using λ in place of lambda (the word), why Haskell cannot? |
| 20:30:57 | <_d0t> | http://community.schemewiki.org/?syntax-unicode-lambda |
| 20:31:15 | <mauke> | because Haskell has sensible syntax |
| 20:31:23 | <_d0t> | so does scheme |
| 20:31:40 | <mauke> | debatable |
| 20:31:44 | <mauke> | also, that's just a macro |
| 20:31:51 | <_d0t> | who cares? It works. |
| 20:32:03 | <probie> | It's not like I read a and α the same. Why would I read l and λ the same? |
| 20:32:13 | <EvanR> | _d0t, so make a macro! (TH) xD |
| 20:32:46 | <_d0t> | EvanR: TH is quite limited in what it can do. So are GHC plugins, it seems. They have no access to the parser :( |
| 20:32:57 | <EvanR> | quasi quotation can do a lot |
| 20:33:06 | <mauke> | it works in scheme because people don't try to write (lambdax y -> x+y) in scheme |
| 20:33:07 | <probie> | You can hook in arbitrary source pre-processors into GHC |
| 20:33:09 | <_d0t> | QQ can't affect code outside of QQ |
| 20:33:21 | <EvanR> | neither can lambda? |
| 20:33:31 | <_d0t> | probie: how? |
| 20:33:37 | <_d0t> | do you mean CPP? |
| 20:34:08 | × | solaire quits (~solaire@172.102.12.74) (Ping timeout: 240 seconds) |
| 20:34:10 | × | chomwitt quits (~chomwitt@94.69.70.96) (Remote host closed the connection) |
| 20:34:23 | <dolio> | Actually, maybe Miranda didn't have function literals. |
| 20:34:54 | <probie> | No, I mean something like `{-# OPTIONS_GHC -pgmF someExecutable #-}` |
| 20:35:11 | → | solaire joins (~solaire@024-158-119-196.res.spectrum.com) |
| 20:35:19 | <_d0t> | probie: hmmmm.. i might just check it out. Thanks! |
| 20:35:33 | × | takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection) |
| 20:36:44 | <EvanR> | \/ was an operator in miranda |
| 20:37:03 | <mauke> | logical or? |
| 20:37:10 | <dolio> | That's or, yeah. |
| 20:37:45 | <dolio> | \/ and & |
| 20:38:09 | <EvanR> | awkward |
| 20:38:56 | <mauke> | should've used /\ for consistency |
| 20:39:49 | <probie> | mauke: to clarify, I'm happy with `λ x -> ` but _not_ `λx -> `. Like how `fun` is used in ocaml/standardml |
| 20:40:38 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) |
| 20:41:02 | → | ss4 joins (~wootehfoo@user/wootehfoot) |
| 20:42:40 | × | dhil quits (~dhil@78.45.150.83.ewm.ftth.as8758.net) (Ping timeout: 248 seconds) |
| 20:42:43 | <tomsmeding> | https://play.haskell.org/saved/wSp0kRJG |
| 20:43:06 | <probie> | But in what sounds ambiguous, whilst it's a change I'd like, it's not a change I'd support (not even as a language extension) |
| 20:43:37 | × | wootehfoot quits (~wootehfoo@user/wootehfoot) (Ping timeout: 240 seconds) |
| 20:43:53 | <EvanR> | nice tomsmeding |
| 20:44:28 | <EvanR> | probie, "I like it, but I'll argue against it to the death" |
| 20:44:51 | <mauke> | to me that sounds like "I only want 'x t y' to work, not 'xty'" |
| 20:44:56 | <tomsmeding> | see ma, using Enum Double _and_ Enum Bool in the same expression! |
| 20:45:19 | <probie> | mauke: I only want "case x of" to work instead of "casexof"? |
| 20:45:23 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:683c:8f75:84b3:cebf) (Ping timeout: 265 seconds) |
| 20:45:55 | <mauke> | no, that's different |
| 20:46:16 | <mauke> | there is no existing/different punctuation syntax for case expressions |
| 20:46:40 | <mauke> | but there is an existing and consistent syntax for addition, x + y |
| 20:47:12 | <mauke> | (consistent in that + works like other operators made of punctuation) |
| 20:48:17 | <probie> | > let (\\) = (+) in 3 \\ 5 |
| 20:48:18 | <lambdabot> | 8 |
| 20:48:28 | <jade[m]> | ew |
| 20:48:48 | <probie> | That single `\` for lambda is already a weird case, regardless of it's a symbol or not. |
| 20:49:09 | <mauke> | I disagree with this characterization |
| 20:49:13 | <mauke> | it's not "for lambda" |
| 20:49:34 | <mauke> | just like the + in x + y is not a stand-in for t |
| 20:49:53 | <mauke> | (or tau or whatever) |
| 20:50:44 | <EvanR> | confirmed \ is use for lambda because it looks vaguely remotely similar to λ |
| 20:50:48 | <dolio> | \ is clearly a reference to λ, and + is not a reference to τ, because no one uses τ to denote addition. |
| 20:51:26 | <mauke> | I learned Haskell before lambda calculus, so to me λ is a reference to \ |
| 20:51:54 | <EvanR> | acausality is not off the table in haskell |
| 20:52:40 | <mauke> | if you want to argue that that's not historically accurate, I'd say that λ was just a workaround for typographical issues anyway |
| 20:52:56 | × | titibandit quits (~titibandi@user/titibandit) (Ping timeout: 246 seconds) |
| 20:53:06 | <mauke> | that is, λ wasn't the original notation either |
| 20:53:55 | <dolio> | That doesn't make your other analogy any more sensical. |
| 20:54:22 | <mauke> | it's not a perfect analogy, but I still think it's sensical |
| 20:54:22 | × | gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer) |
| 20:54:28 | <EvanR> | begriffsschrift weird horizontal rule then a semi circular dip containing a variable before it returns to a rule again and goes somewhere around the body? |
| 20:54:33 | <ncf> | just take the λ |
| 20:57:06 | <mauke> | that is, given the choice between two essentially arbitrary notations, neither of which is the "original" (or "true") form, what reason is there to prefer the weird one that steals an identifier from the language? |
| 20:57:23 | × | elain4 quits (~textual@static-71-251-226-194.rcmdva.fios.verizon.net) (Quit: Textual IRC Client: www.textualapp.com) |
| 20:57:25 | <mauke> | other than sentimental reasons |
| 20:58:55 | <ncf> | and thus the simply-typed¹ backslash calculus was created |
| 20:58:58 | <EvanR> | because of all my merchandise, desktop wallpaper, tattooes, shell prompts, screensavers, and stupid haircuts for a dog that feature λ |
| 20:59:03 | <ncf> | [1] not the one you think |
| 20:59:27 | <probie> | and the lambda bind logo |
| 21:00:06 | <mauke> | ah. marketing :-) |
| 21:00:27 | → | gentauro joins (~gentauro@user/gentauro) |
| 21:00:30 | <geekosaur> | λ𝝺 |
| 21:00:54 | <mauke> | ncf: nice |
| 21:01:29 | <darkling> | geekosaur: The intersection of Greek and Welsh? |
| 21:02:04 | → | dcoutts joins (~duncan@83.150.42.54) |
| 21:05:10 | × | oac quits (~oac@72-50-214-210.fttp.usinternet.com) (Quit: oac) |
| 21:05:13 | <probie> | darkling: It's not too late to visit Λλανφαιρ ΠΓ |
| 21:08:22 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 21:18:27 | × | ss4 quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer) |
| 21:21:23 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds) |
| 21:21:31 | → | nate2 joins (~nate@98.45.169.16) |
| 21:26:31 | × | nate2 quits (~nate@98.45.169.16) (Ping timeout: 268 seconds) |
| 21:27:10 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Read error: Connection reset by peer) |
| 21:28:00 | → | Sciencentistguy4 joins (~sciencent@hacksoc/ordinary-member) |
| 21:30:07 | × | Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 240 seconds) |
| 21:30:07 | Sciencentistguy4 | is now known as Sciencentistguy |
| 21:33:18 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 21:35:25 | × | use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:11c4:bb75:150b:3612) (Remote host closed the connection) |
| 21:35:44 | → | use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:75c2:a71f:beaa:29bf) |
| 21:39:08 | × | waleee quits (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 240 seconds) |
| 21:40:55 | → | oac_ joins (~oac@2603:3016:2200:f1a0:671c:e5f:9863:6688) |
| 21:41:26 | → | waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) |
| 21:44:11 | × | gmg quits (~user@user/gehmehgeh) (Quit: Leaving) |
| 21:44:41 | → | eggplantade joins (~Eggplanta@2600:1700:38c5:d800:44a:8f26:7d0b:2262) |
| 21:45:29 | user____3 | is now known as gurkenglas |
| 21:49:08 | × | eggplantade quits (~Eggplanta@2600:1700:38c5:d800:44a:8f26:7d0b:2262) (Ping timeout: 250 seconds) |
| 21:50:51 | × | dcoutts quits (~duncan@83.150.42.54) (Ping timeout: 250 seconds) |
| 21:51:02 | × | taupiqueur quits (~taupiqueu@2a02-842a-8180-4601-e0d8-6a6a-01a7-3f26.rev.sfr.net) (Ping timeout: 246 seconds) |
| 21:53:02 | → | taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-1451-bf6d-2568-8afd.rev.sfr.net) |
| 21:58:42 | → | cheater_ joins (~Username@user/cheater) |
| 21:59:45 | × | santiagopim quits (~user@90.167.66.131) (Ping timeout: 240 seconds) |
| 22:00:45 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 22:00:47 | cheater_ | is now known as cheater |
| 22:04:20 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 22:05:44 | × | lawt quits (~lawt@2603:c024:c008:d000:5b4f:1ef2:fed2:ef3d) (Ping timeout: 246 seconds) |
| 22:06:55 | → | lawt joins (~lawt@129.159.36.129) |
| 22:10:19 | × | Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.) |
| 22:21:56 | × | michalz quits (~michalz@185.246.207.203) (Remote host closed the connection) |
| 22:31:28 | → | thegeekinside joins (~thegeekin@189.217.90.138) |
| 22:31:45 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 265 seconds) |
| 22:38:17 | × | acidjnk quits (~acidjnk@p200300d6e7072f019dd2aa00216a5b17.dip0.t-ipconnect.de) (Ping timeout: 246 seconds) |
| 22:43:07 | → | [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470) |
| 22:43:17 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 22:43:27 | → | cheater_ joins (~Username@user/cheater) |
| 22:45:07 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 22:45:12 | cheater_ | is now known as cheater |
| 22:47:03 | → | cheater_ joins (~Username@user/cheater) |
| 22:49:48 | × | cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds) |
| 22:49:57 | cheater_ | is now known as cheater |
| 22:52:32 | → | cheater_ joins (~Username@user/cheater) |
| 22:52:50 | × | cheater_ quits (~Username@user/cheater) (Read error: Connection reset by peer) |
| 22:52:59 | × | Pickchea quits (~private@user/pickchea) (Quit: Leaving) |
| 22:55:26 | × | cheater quits (~Username@user/cheater) (Ping timeout: 250 seconds) |
| 22:55:49 | × | oac_ quits (~oac@2603:3016:2200:f1a0:671c:e5f:9863:6688) (Ping timeout: 256 seconds) |
| 22:57:37 | → | cheater_ joins (~Username@user/cheater) |
| 22:57:37 | cheater_ | is now known as cheater |
| 22:58:12 | × | cheater quits (~Username@user/cheater) (Read error: Connection reset by peer) |
| 22:59:16 | × | chromoblob quits (~user@37.113.180.121) (Ping timeout: 265 seconds) |
| 22:59:36 | → | cheater_ joins (~Username@user/cheater) |
| 22:59:36 | cheater_ | is now known as cheater |
| 22:59:36 | → | jargon joins (~jargon@184.101.71.62) |
| 23:02:21 | → | cheater_ joins (~Username@user/cheater) |
| 23:04:28 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 23:04:36 | cheater_ | is now known as cheater |
| 23:06:54 | × | FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection) |
| 23:07:23 | → | FinnElija joins (~finn_elij@user/finn-elija/x-0085643) |
| 23:08:09 | → | mauke_ joins (~mauke@user/mauke) |
| 23:09:31 | × | mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds) |
| 23:09:31 | mauke_ | is now known as mauke |
| 23:10:05 | → | freeside joins (~mengwong@103.252.202.189) |
| 23:10:32 | → | jmd_ joins (~jmdaemon@user/jmdaemon) |
| 23:12:34 | × | Feuermagier quits (~Feuermagi@user/feuermagier) (Remote host closed the connection) |
| 23:14:37 | × | freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds) |
| 23:15:08 | × | myme quits (~myme@2a01:799:d60:e400:132b:f0c4:5531:8862) (Ping timeout: 240 seconds) |
| 23:16:25 | → | myme joins (~myme@2a01:799:d60:e400:aea4:e4cc:8331:e0cb) |
| 23:16:50 | CalculusCats | is now known as Calico |
| 23:16:53 | Calico | is now known as a |
| 23:16:58 | a | is now known as Guest849 |
| 23:17:44 | × | Guest849 quits (NyaaTheKit@user/calculuscat) (Quit: Meow Meow Meow Meow Meow Meow Meow Meow) |
| 23:18:50 | → | Guest849 joins (NyaaTheKit@user/calculuscat) |
| 23:19:48 | × | cheater quits (~Username@user/cheater) (Ping timeout: 240 seconds) |
| 23:19:49 | × | Guest849 quits (NyaaTheKit@user/calculuscat) (Client Quit) |
| 23:21:00 | → | Guest849 joins (NyaaTheKit@user/calculuscat) |
| 23:21:21 | Guest849 | is now known as CalculusCat |
| 23:23:12 | CalculusCat | is now known as CalculusCats |
| 23:25:12 | → | cheater joins (~Username@user/cheater) |
| 23:26:01 | × | gurkenglas quits (~user@dynamic-046-114-180-095.46.114.pool.telefonica.de) (Ping timeout: 240 seconds) |
| 23:28:56 | × | zeenk quits (~zeenk@2a02:2f04:a106:3c00::fba) (Quit: Konversation terminated!) |
| 23:29:49 | × | cheater quits (~Username@user/cheater) (Ping timeout: 256 seconds) |
| 23:32:16 | × | thegeekinside quits (~thegeekin@189.217.90.138) (Remote host closed the connection) |
| 23:32:44 | → | cheater joins (~Username@user/cheater) |
| 23:39:44 | × | L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds) |
| 23:41:21 | × | jero98772 quits (~jero98772@2800:484:1d7f:5d36::1) (Ping timeout: 250 seconds) |
| 23:53:26 | → | L29Ah joins (~L29Ah@wikipedia/L29Ah) |
| 23:53:29 | → | jero98772 joins (~jero98772@2800:484:1d7f:5d36::1) |
| 23:53:37 | × | Inst_ quits (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb) (Remote host closed the connection) |
| 23:54:00 | → | Inst_ joins (~Inst@2601:6c4:4081:2fc0:ed66:a694:f2c2:7aeb) |
| 23:55:08 | → | machinedgod joins (~machinedg@93-138-40-51.adsl.net.t-com.hr) |
| 23:56:53 | → | wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com) |
| 23:56:53 | × | wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host) |
| 23:56:53 | → | wroathe joins (~wroathe@user/wroathe) |
| 23:59:08 | × | oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 250 seconds) |
All times are in UTC on 2023-06-08.