Home liberachat/#haskell: Logs Calendar

Logs on 2024-06-07 (liberachat/#haskell)

00:06:13 sabino joins (~sabino@user/sabino)
00:08:53 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
00:09:55 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:13:18 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
00:14:08 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
00:26:34 × sabino quits (~sabino@user/sabino) (Read error: Connection reset by peer)
00:27:48 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:29:39 sabino joins (~sabino@user/sabino)
00:32:16 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
00:35:49 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:44:29 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 252 seconds)
00:51:25 × yin quits (~yin@user/zero) (Ping timeout: 272 seconds)
00:53:27 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
00:57:51 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
00:59:22 vadparaszt joins (~Rodney@176.254.244.83)
01:02:49 × Rodney_ quits (~Rodney@176.254.244.83) (Ping timeout: 272 seconds)
01:03:01 yin joins (~yin@user/zero)
01:16:57 × CrunchyFlakes quits (~CrunchyFl@146.52.130.128) (Read error: Connection reset by peer)
01:18:43 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
01:27:26 <dibblego> does this parser exist in parsec? https://gist.github.com/tonymorris/80b1b11b31a90ccfdb6bbb4deaa5eea9
01:31:12 × dostoyevsky2 quits (~sck@user/dostoyevsky2) (Ping timeout: 260 seconds)
01:36:29 <glguy> I'd be quite surprised if it was
01:40:58 × euleritian quits (~euleritia@dynamic-176-001-225-066.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
01:41:41 euleritian joins (~euleritia@dynamic-176-001-225-066.176.1.pool.telefonica.de)
01:42:03 × euleritian quits (~euleritia@dynamic-176-001-225-066.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
01:42:24 euleritian joins (~euleritia@77.22.252.56)
01:49:47 × talismanick quits (~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
01:50:03 talismanick joins (~user@2601:644:937c:ed10::ae5)
01:50:24 dostoyevsky2 joins (~sck@user/dostoyevsky2)
01:50:46 × xff0x quits (~xff0x@2405:6580:b080:900:6354:9783:4ed:b1bf) (Ping timeout: 246 seconds)
01:58:44 × cyphase quits (~cyphase@user/cyphase) (Ping timeout: 260 seconds)
02:01:32 × emmanuelux quits (~emmanuelu@user/emmanuelux) (Quit: au revoir)
02:06:14 <haetsal> The Haskell channel at Freenode seems dead
02:07:03 <geekosaur> …it exists?
02:09:52 <monochrom> Whenever there is an observer, it exists. This is known as the Uncertainty Principle. >:)
02:13:11 × dmj` quits (uid72307@id-72307.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
02:25:07 × haetsal quits (~quassel@221.138.168.192) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
02:26:17 haetsal joins (~quassel@221.138.168.192)
02:27:36 × haetsal quits (~quassel@221.138.168.192) (Client Quit)
02:28:58 <davean> Freenode exists?
02:29:00 × phma quits (phma@2001:5b0:2172:c168:223e:807a:618e:7153) (Read error: Connection reset by peer)
02:29:27 phma joins (phma@2001:5b0:2172:c168:223e:807a:618e:7153)
02:32:44 <probie> I think they probably went there because monochrom linked his page on Haskell learning resources which still mentions it
02:33:17 <monochrom> Oh! Hrm.
02:33:42 <monochrom> OK I'll change it.
02:35:15 <monochrom> Updated!
02:35:29 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:35:35 <davean> monochrom: You're why freenode still exists?
02:36:00 <monochrom> Hahaha "I have the power!"
02:37:44 × Unicorn_Princess quits (~Unicorn_P@user/Unicorn-Princess/x-3540542) (Remote host closed the connection)
02:38:30 cyphase joins (~cyphase@user/cyphase)
02:46:42 <glguy> Is there a package that gives a higher level to these primitives that isn't a full-on effects package? https://hackage.haskell.org/package/ghc-prim-0.11.0/docs/GHC-Prim.html#g:24
02:48:06 joeyadams joins (~joeyadams@38.48.105.67)
02:49:20 haetsal joins (~quassel@221.138.168.192)
02:53:41 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 240 seconds)
02:56:02 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
03:02:01 × td_ quits (~td@i53870907.versanet.de) (Ping timeout: 268 seconds)
03:03:25 td_ joins (~td@i53870928.versanet.de)
03:05:19 × haetsal quits (~quassel@221.138.168.192) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
03:12:07 haetsal joins (~quassel@221.138.168.192)
03:14:39 × TMA quits (tma@twin.jikos.cz) (Ping timeout: 268 seconds)
03:17:36 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
03:18:36 <glguy> Turns out you can make UnboxedTuple code harder to read with TupleSections. For some reason I hadn't guessed that those work together
03:18:50 × haetsal quits (~quassel@221.138.168.192) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
03:19:11 haetsal joins (~quassel@221.138.168.192)
03:19:50 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
03:21:40 TMA joins (tma@twin.jikos.cz)
03:22:43 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
03:27:01 × yin quits (~yin@user/zero) (Ping timeout: 246 seconds)
03:28:40 yin joins (~yin@user/zero)
03:29:14 × xal quits (~xal@mx1.xal.systems) ()
03:29:43 xal joins (~xal@mx1.xal.systems)
03:35:00 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
03:39:12 <davean> glguy: oooh. I mean I do love my some TupleSections. I'm also preferential to UnboxedTuples ... normally not in abstract enough stuff I need TupleSections but I can change that ...
03:49:20 <haetsal> Could I get the link to monochrom's Haskell learning resource?
03:49:55 <probie> http://www.vex.net/~trebla/haskell/learn-sources.html
03:51:10 <glguy> Playing with the delimited continuations stuff I made something like Lua's coroutine module https://github.com/glguy/cc-demo/blob/main/app/Main.hs
03:52:03 aforemny_ joins (~aforemny@2001:9e8:6cfe:9000:f190:2088:3129:672b)
03:52:35 × aforemny quits (~aforemny@2001:9e8:6cda:3f00:3468:7a02:917d:2f6b) (Ping timeout: 268 seconds)
03:52:47 <haetsal> https://learnyouahaskell.com led me to the haskell@Freenode
03:53:40 <geekosaur> yeh, that hasn't been updated in a decade or so
03:54:10 <geekosaur> there was a project to update it but it died afaict
03:56:16 <haetsal> Is it that old? you don't recommend to learn from it?
03:58:44 <geekosaur> fairly old, yes. 2014ish, so yes, a decade
03:59:05 <geekosaur> haskell has changed a fair bit since then
03:59:30 <geekosaur> and of course it won't know about the freenodepocalypse 3 years ago
03:59:51 <glguy> geekosaur: for the basics do you think that much of the book is actual out of date?
03:59:56 <glguy> does it go into a bunch of libraries?
04:00:38 <glguy> Maybe it predates the Foldable prelude?
04:00:43 <geekosaur> Num losing Eq and Show, Functor/Applicative/Monad, Foldable/Traversable at least (wherein a bunch of Prelude functions' type signatures changed)
04:02:59 <geekosaur> Num losing Eq means that any function example with numeric literal patterns will need an explicit Eq constraint in its type signature, iirc
04:05:01 <geekosaur> not absolutely certain about LYAH but Graham Hutton and Richard Bird both needed to make quite a few changes to new editions of their books
04:16:20 <geekosaur> …huh, those happened earlier than I thought, I guess it's only missing FTP
04:16:21 philopsos1 joins (~caecilius@user/philopsos)
04:16:38 <geekosaur> somehow the years get compressed together as I get older 😛
04:23:14 michalz joins (~michalz@185.246.207.221)
04:25:26 × michalz quits (~michalz@185.246.207.221) (Client Quit)
04:26:11 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 268 seconds)
04:28:09 michalz joins (~michalz@185.246.207.201)
04:29:33 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Remote host closed the connection)
04:30:26 chexum joins (~quassel@gateway/tor-sasl/chexum)
04:31:20 <davean> What are the modern learning materials? I've not paid attention
04:36:31 glguy has no idea
04:40:23 <probie> I wonder if there is actually a gap here that needs to be filled
04:41:29 × joeyadams quits (~joeyadams@38.48.105.67) (Remote host closed the connection)
04:42:02 joeyadams joins (~joeyadams@38.48.105.67)
04:47:27 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 260 seconds)
04:50:03 biberu\ joins (~biberu@user/biberu)
04:50:59 biberu- joins (~biberu@user/biberu)
04:53:27 × biberu quits (~biberu@user/biberu) (Ping timeout: 256 seconds)
04:53:28 biberu- is now known as biberu
04:54:31 × paotsaq quits (~paotsaq@127.209.37.188.rev.vodafone.pt) (Ping timeout: 246 seconds)
04:54:52 × biberu\ quits (~biberu@user/biberu) (Ping timeout: 268 seconds)
04:55:27 × joeyadams quits (~joeyadams@38.48.105.67) (Quit: Leaving)
04:55:50 paotsaq joins (~paotsaq@127.209.37.188.rev.vodafone.pt)
04:56:28 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
04:56:29 xam joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
05:03:48 zmt01 joins (~zmt00@user/zmt00)
05:06:39 × hughjfchen quits (~hughjfche@vmi556545.contaboserver.net) (Ping timeout: 272 seconds)
05:06:58 euphores joins (~SASL_euph@user/euphores)
05:07:59 × zmt00 quits (~zmt00@user/zmt00) (Ping timeout: 260 seconds)
05:14:54 × euphores quits (~SASL_euph@user/euphores) (Ping timeout: 268 seconds)
05:15:17 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:19:13 euphores joins (~SASL_euph@user/euphores)
05:30:03 dmj` joins (uid72307@id-72307.hampstead.irccloud.com)
05:30:03 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
05:33:35 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 264 seconds)
05:34:13 euleritian joins (~euleritia@dynamic-176-001-221-044.176.1.pool.telefonica.de)
05:38:43 <geekosaur> @where wikibook
05:38:44 <lambdabot> http://en.wikibooks.org/wiki/Haskell
05:38:54 <geekosaur> comes well recommended and is kept up to date
05:46:30 acidjnk joins (~acidjnk@p200300d6e714dc79edaa57aef410daf5.dip0.t-ipconnect.de)
05:46:38 gmg joins (~user@user/gehmehgeh)
05:47:20 × sabino quits (~sabino@user/sabino) (Quit: Lambda _ -> x)
05:50:45 × euleritian quits (~euleritia@dynamic-176-001-221-044.176.1.pool.telefonica.de) (Read error: Connection reset by peer)
05:51:05 euleritian joins (~euleritia@77.22.252.56)
05:56:40 causal joins (~eric@50.35.88.207)
05:59:38 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 252 seconds)
06:01:46 euleritian joins (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de)
06:04:55 × todi quits (~todi@p57803331.dip0.t-ipconnect.de) (Ping timeout: 272 seconds)
06:06:16 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
06:16:29 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Remote host closed the connection)
06:16:29 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Read error: Connection reset by peer)
06:16:30 × chiselfuse quits (~chiselfus@user/chiselfuse) (Remote host closed the connection)
06:17:12 chexum joins (~quassel@gateway/tor-sasl/chexum)
06:17:15 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
06:17:39 chiselfuse joins (~chiselfus@user/chiselfuse)
06:21:51 × qhong quits (~qhong@DN160vrd000d6kpg009l6c0000fj.stanford.edu) (Ping timeout: 256 seconds)
06:24:36 × ft quits (~ft@p508db8fc.dip0.t-ipconnect.de) (Quit: leaving)
06:36:09 Square joins (~Square@user/square)
06:48:03 hughjfchen joins (~hughjfche@vmi556545.contaboserver.net)
06:58:15 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
07:14:52 philopsos1 joins (~caecilius@user/philopsos)
07:17:53 sord937 joins (~sord937@gateway/tor-sasl/sord937)
07:25:36 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
07:38:56 cfricke joins (~cfricke@user/cfricke)
07:42:13 × johnw quits (~johnw@69.62.242.138) (Quit: ZNC - http://znc.in)
07:45:43 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
07:48:08 johnw joins (~johnw@69.62.242.138)
07:53:41 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 240 seconds)
07:59:38 sawilagar joins (~sawilagar@user/sawilagar)
08:01:05 oo_miguel joins (~Thunderbi@78-11-181-16.static.ip.netia.com.pl)
08:10:05 × gmg quits (~user@user/gehmehgeh) (Remote host closed the connection)
08:13:01 gmg joins (~user@user/gehmehgeh)
08:21:39 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Ping timeout: 260 seconds)
08:22:16 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
08:32:32 lxsameer joins (~lxsameer@Serene/lxsameer)
08:33:09 ubert joins (~Thunderbi@2a02:8109:ab8a:5a00:8aea:b36d:9a65:98e3)
08:37:19 <xam> test
08:38:00 <juri_> fail
08:42:59 × xam quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Quit: WeeChat 4.3.1)
08:43:25 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
08:47:54 × dev2 quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Client Quit)
08:48:29 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
08:48:31 dev2 is now known as xam
08:49:15 img joins (~img@user/img)
08:52:14 × ec quits (~ec@gateway/tor-sasl/ec) (Read error: Connection reset by peer)
08:52:14 × ChaiTRex quits (~ChaiTRex@user/chaitrex) (Read error: Connection reset by peer)
08:52:14 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Write error: Connection reset by peer)
08:52:14 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Write error: Connection reset by peer)
08:52:14 × califax quits (~califax@user/califx) (Write error: Connection reset by peer)
08:52:14 × gmg quits (~user@user/gehmehgeh) (Write error: Connection reset by peer)
08:52:14 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Write error: Broken pipe)
08:52:35 chexum joins (~quassel@gateway/tor-sasl/chexum)
08:52:50 ec joins (~ec@gateway/tor-sasl/ec)
08:52:59 ChaiTRex joins (~ChaiTRex@user/chaitrex)
08:52:59 sord937 joins (~sord937@gateway/tor-sasl/sord937)
08:53:06 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
08:53:09 gmg joins (~user@user/gehmehgeh)
08:53:13 califax joins (~califax@user/califx)
08:53:41 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
08:54:26 × berberman quits (~berberman@user/berberman) (Read error: Connection reset by peer)
08:54:32 berberman_ joins (~berberman@user/berberman)
08:59:54 euphores joins (~SASL_euph@user/euphores)
09:01:21 CiaoSen joins (~Jura@2a05:5800:2b3:6b00:e6b9:7aff:fe80:3d03)
09:03:20 __monty__ joins (~toonn@user/toonn)
09:08:42 kuribas joins (~user@ip-188-118-57-242.reverse.destiny.be)
09:08:46 chele joins (~chele@user/chele)
09:09:20 × euleritian quits (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
09:09:53 euleritian joins (~euleritia@77.22.252.56)
09:12:20 × euleritian quits (~euleritia@77.22.252.56) (Read error: Connection reset by peer)
09:13:02 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
09:18:52 × tzh quits (~tzh@c-76-115-131-146.hsd1.or.comcast.net) (Quit: zzz)
09:24:31 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
09:26:39 × xam quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Quit: WeeChat 4.3.1)
09:26:46 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:27:32 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
09:27:52 × dev2 quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Client Quit)
09:28:25 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Read error: Connection reset by peer)
09:28:25 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
09:28:58 × CiaoSen quits (~Jura@2a05:5800:2b3:6b00:e6b9:7aff:fe80:3d03) (Ping timeout: 268 seconds)
09:29:03 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
09:29:05 dev2 is now known as xam
09:31:26 × destituion quits (~destituio@2a02:2121:28c:be84:bcd6:b428:e58d:1c11) (Ping timeout: 268 seconds)
09:31:27 × yin quits (~yin@user/zero) (Read error: Connection reset by peer)
09:32:06 destituion joins (~destituio@85.221.111.174)
09:33:19 × xam quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Quit: WeeChat 4.3.1)
09:33:45 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 255 seconds)
09:35:23 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
09:35:32 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
09:36:18 euleritian joins (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de)
09:36:30 yin joins (~yin@user/zero)
09:37:41 dev2 is now known as xam
09:39:23 × xam quits (~dev@2405:201:c062:801d:8728:7618:dd19:eaef) (Client Quit)
09:39:41 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 240 seconds)
09:39:46 dev2 joins (~dev@2405:201:c062:801d:8728:7618:dd19:eaef)
09:40:41 × euleritian quits (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
09:40:50 dev2 is now known as xam
09:40:58 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
09:41:32 xam is now known as xam_
09:45:17 × driib3 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
09:45:31 <yin> will we see Ring/Num ?
09:45:59 driib3 joins (~driib@vmi931078.contaboserver.net)
09:46:25 Flow joins (~none@gentoo/developer/flow)
09:47:31 <yin> i hope to see the death of "Int for everything"
09:49:03 × destituion quits (~destituio@85.221.111.174) (Ping timeout: 255 seconds)
09:50:26 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 260 seconds)
09:50:26 destituion joins (~destituio@2a02:2121:28c:be84:c5ea:45ab:4ef8:3424)
09:51:44 × Square quits (~Square@user/square) (Ping timeout: 252 seconds)
09:51:52 gmg joins (~user@user/gehmehgeh)
09:51:55 <kuribas> Int is efficient.
09:52:08 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
09:52:16 euleritian joins (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de)
09:52:37 × euleritian quits (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
09:52:54 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
09:54:33 <dminuoso> yin: Yeah, we hopefully switch to Integer for everything. You can nicely pack UTF8 encoded Text into an Integer!
09:54:48 david_tvh joins (~david_tvh@212-114-26-122.box.freepro.com)
09:55:18 <dminuoso> But honestly, the death of Int for everything needs an answer for the poor casting reality of our number system.
09:55:54 <dminuoso> Int for everything is not really better than "Word16, Word32 and Int8 here and there", because those realistically force you to put `fromIntegral` everywhere.
09:55:56 <dminuoso> Which is honestly a downgrade.
09:56:38 <yin> i meant using Word where negative values don't make sense (like length for example)
09:57:11 <dminuoso> yin: Yes, and if you have a function that wants `Int`, that switch costs you an additional fromIntegral, at realistically no gain.
09:57:33 <dminuoso> length *cant* produce a negative number, the fact that its representable in Int is not a practical issue.
09:57:46 <kuribas> Int<n> usually doesn't give a performance benefit, unless you can pack them together
09:58:05 × ridcully quits (~ridcully@p508ac2b4.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:58:33 ridcully joins (~ridcully@p508ac2b4.dip0.t-ipconnect.de)
09:58:44 <dminuoso> yin: Besides, consider the mere amount of breakage of switching length like that. Willing to bet you will break a third of all of hackage minimum/
09:59:20 <yin> genericLength exists
09:59:36 <yin> you know what i mean
09:59:57 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:00:05 euleritian joins (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de)
10:00:27 × euleritian quits (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
10:00:27 <dminuoso> Im just saying that I dont think turning it into Word32 or some equivalent will have any meaningful positive impact/
10:00:57 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:01:05 <kuribas> Int<n> Word<n> can also be used when serializing.
10:01:06 <dminuoso> And making it polymorphic is a far more severe variant of doing fromIntegral yourself
10:01:25 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:01:44 <dminuoso> Because that `length foo` for your 300 element list would easily and silently fit into a Word8b
10:02:12 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:02:34 <dminuoso> If you do it polymorphic, it sucks. If you turn it into a non-negative type, you will have to fromIntegral manually - which has the polymorphism problem ontop of needing manual intervention on lots of call sites.
10:02:46 <yin> wait
10:03:13 <yin> why would we always need fromInteger?
10:03:39 <dminuoso> Because the chance is you will need to consume this Word somewhere.
10:03:45 <dminuoso> :t replicateM
10:03:46 <lambdabot> Applicative m => Int -> m a -> m [a]
10:04:13 <dminuoso> Any kind of fitting into existing library code, be it a package on hackage or just base - will likely require you to cast it somehow anyway.
10:04:42 <yin> dminuoso: yes, but in a world where Int is not used for everything, chances are if yiu're getting a Word, you'll want to consume it as a Word
10:04:44 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 268 seconds)
10:05:45 <yin> `drop (length xs) ys`
10:05:47 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
10:06:46 <dminuoso> Interestingly, there is even arguments why keeping those signed could be beneficial
10:07:11 <yin> you got my attention
10:08:41 <dminuoso> I think golang folks have some arguments along the lines of underflows or overflows having less of a serious impact if your counter is signed.
10:08:59 <dminuoso> I dont necessarily share that position, just highlighting other perspectives.
10:09:23 <yin> i dont share it too
10:09:25 <dminuoso> Sorry, not the a counter but say some delimiting variable
10:11:54 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 260 seconds)
10:14:15 <yin> anyways I think they're separate domains (signed and unsigned) and if you find yourself converting between one and the other you're doing something wrong
10:14:38 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
10:14:54 <yin> or the libraries you're using are (String vs Text i'm looking at you)
10:15:13 todi joins (~todi@p57803331.dip0.t-ipconnect.de)
10:16:25 <yin> s/converting/having to convert all the time
10:16:55 <dminuoso> yin: The problem arises the moment you have *multiple* domains.
10:17:07 <dminuoso> The problem with String and Text is just that there is two/
10:17:13 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
10:17:33 <dminuoso> With numeric types, having multiple types is pretty much part of the equation
10:18:05 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
10:20:05 <yin> meh... i wish Nat was performant
10:23:41 <yin> make everything an ADT
10:23:46 <probie> Numeric types are a headache. Take inspiration from JS and use `Double` everywhere
10:24:26 <yin> let the compiler sort it out
10:25:38 <probie> at the end of the day, what I really want for numerics are refinement types
10:27:34 × mud quits (~mud@user/kadoban) (Remote host closed the connection)
10:27:51 <yin> but why refinement over Word? at least Word is performant
10:28:00 mud joins (~mud@user/kadoban)
10:29:43 <yin> you want negative numbers? sure, make `zero :: Word = div maxBound 2
10:31:09 <probie> yin: and that's going to be more performant now that addition isn't just the relevant add instruction on my CPU?
10:31:17 <yin> this happens mostly in our heads anyway
10:32:35 <yin> probie: wdym?
10:32:56 <probie> > (2 :: Word) + (2 :: Word)
10:32:58 <lambdabot> 4
10:33:20 <probie> > let zero = div maxBound 2 in (2 :: Word + zero) + (2 :: Word + zero) - zero
10:33:21 <lambdabot> error:
10:33:21 <lambdabot> Not in scope: type constructor or class ‘+’error:
10:33:21 <lambdabot> Not in scope: type constructor or class ‘+’
10:33:43 <probie> > let zero = div maxBound 2 in ((2 :: Word) + zero) + ((2 :: Word) + zero) - zero
10:33:45 <lambdabot> 9223372036854775811
10:35:37 <yin> let two = zero + 2
10:35:46 <yin> :)
10:36:07 × canta quits (~canta@user/canta) (Ping timeout: 246 seconds)
10:36:17 × wz1000 quits (~zubin@static.11.113.47.78.clients.your-server.de) (Ping timeout: 252 seconds)
10:36:28 × mira quits (~aranea@wireguard/contributorcat/mira) (Ping timeout: 246 seconds)
10:36:48 × defanor_ quits (~defanor@tart.uberspace.net) (Ping timeout: 268 seconds)
10:36:48 × dminuoso quits (~weechat@user/dminuoso) (Ping timeout: 268 seconds)
10:37:23 × nullie quits (~nullie@nuremberg.nullie.name) (Ping timeout: 252 seconds)
10:37:41 <yin> (i meant do it in your head of course. the computer has no notion of negative numbers
10:37:44 <yin> )
10:37:55 teqwve joins (teqwve@static.141.38.201.195.clients.your-server.de)
10:37:57 defanor joins (~defanor@tart.uberspace.net)
10:38:01 × red-snail quits (~snail@static.151.210.203.116.clients.your-server.de) (Quit: ZNC 1.8.2 - https://znc.in)
10:38:02 × teqwve- quits (teqwve@static.141.38.201.195.clients.your-server.de) (Ping timeout: 268 seconds)
10:38:30 weechat joins (~weechat@user/dminuoso)
10:39:23 red-snail joins (~snail@static.151.210.203.116.clients.your-server.de)
10:39:34 mira joins (~aranea@wireguard/contributorcat/mira)
10:39:40 × dostoyevsky2 quits (~sck@user/dostoyevsky2) (Remote host closed the connection)
10:40:30 × xdminsy quits (~xdminsy@117.147.70.212) (Quit: Konversation terminated!)
10:40:55 xdminsy joins (~xdminsy@117.147.70.212)
10:42:05 × ridcully quits (~ridcully@p508ac2b4.dip0.t-ipconnect.de) (Quit: WeeChat 4.3.1)
10:43:29 dostoyevsky2 joins (~sck@user/dostoyevsky2)
10:48:53 wz1000 joins (~zubin@static.11.113.47.78.clients.your-server.de)
10:49:10 canta joins (~canta@user/canta)
10:49:34 nullie joins (~nullie@2a01:4f8:c2c:6177::1)
10:52:19 × david_tvh quits (~david_tvh@212-114-26-122.box.freepro.com) (Quit: Connection closed)
10:52:30 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Ping timeout: 260 seconds)
10:53:00 sord937 joins (~sord937@gateway/tor-sasl/sord937)
10:55:13 euphores joins (~SASL_euph@user/euphores)
10:57:00 × gorignak quits (~gorignak@user/gorignak) (Quit: quit)
10:57:16 gorignak joins (~gorignak@user/gorignak)
10:57:39 <int-e> yin: That's not correct at the ISA level; floating point values have sign bits. Integer arithmetic is sign aware for comparisons at least; also for conversion to floating point, and for multiplication for architectures that offer a word x word -> double word multiplication operation.
11:01:52 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:02:28 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:18:40 jespada joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
11:22:28 jespada_ joins (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net)
11:22:53 × jespada quits (~jespada@cpc121308-nmal25-2-0-cust15.19-2.cable.virginm.net) (Ping timeout: 240 seconds)
11:24:41 × Eoco quits (~ian@128.101.131.218) (Ping timeout: 252 seconds)
11:32:50 × forell_ quits (~forell@host-178-216-90-220.sta.tvknaszapraca.pl) (Quit: ZNC - https://znc.in)
11:33:13 forell joins (~forell@user/forell)
11:36:23 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:37:07 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
11:37:41 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
11:39:54 meritamen joins (~user@user/meritamen)
11:40:14 meritamen parts (~user@user/meritamen) ()
11:49:37 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Ping timeout: 246 seconds)
11:50:54 euleritian joins (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de)
11:52:20 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
11:54:32 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
11:58:11 <yin> that's true
12:00:19 <yin> but at that level it becomes another reason I dislike "Int for everything"
12:07:14 CiaoSen joins (~Jura@2a05:5800:2b3:6b00:e6b9:7aff:fe80:3d03)
12:15:22 ridcully joins (~ridcully@p508ac2b4.dip0.t-ipconnect.de)
12:29:38 xff0x joins (~xff0x@2405:6580:b080:900:2f45:7d7a:ed1:7b2)
12:36:08 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 268 seconds)
12:38:59 × tabemann quits (~tabemann@2600:1700:7990:24e0:bb80:7a48:c3e4:b1fe) (Remote host closed the connection)
12:39:19 tabemann joins (~tabemann@2600:1700:7990:24e0:ccf:38dd:bb01:b6bf)
12:39:35 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
12:41:18 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
12:41:53 Flow joins (~none@gentoo/developer/flow)
12:52:08 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
12:55:10 × Flow quits (~none@gentoo/developer/flow) (Ping timeout: 256 seconds)
12:58:07 Flow joins (~none@gentoo/developer/flow)
13:24:27 ft joins (~ft@p508db8fc.dip0.t-ipconnect.de)
13:39:26 ystael joins (~ystael@user/ystael)
13:45:55 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
13:46:47 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
13:47:23 × waleee quits (~waleee@h-176-10-144-38.NA.cust.bahnhof.se) (Ping timeout: 256 seconds)
13:49:48 cfricke joins (~cfricke@user/cfricke)
13:57:28 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
14:02:23 someone235 joins (uid419897@id-419897.ilkley.irccloud.com)
14:09:19 stef204 joins (~stef204@user/stef204)
14:16:25 Sgeo joins (~Sgeo@user/sgeo)
14:21:47 × yin quits (~yin@user/zero) (Read error: Connection reset by peer)
14:26:30 yin joins (~yin@user/zero)
14:37:49 joeyadams joins (~joeyadams@38.48.105.67)
14:50:25 Lycurgus joins (~georg@user/Lycurgus)
14:53:20 × Typedfern quits (~Typedfern@82.red-83-37-24.dynamicip.rima-tde.net) (Ping timeout: 268 seconds)
14:57:05 Typedfern joins (~Typedfern@82.red-83-37-24.dynamicip.rima-tde.net)
15:02:05 <EvanR> the negative flag is set if the result is negative
15:04:22 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:05:13 × Lycurgus quits (~georg@user/Lycurgus) (Quit: leaving)
15:17:20 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:25:57 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:34:10 × ubert quits (~Thunderbi@2a02:8109:ab8a:5a00:8aea:b36d:9a65:98e3) (Quit: ubert)
15:34:39 × Miroboru quits (~myrvoll@178-164-114.82.3p.ntebredband.no) (Ping timeout: 268 seconds)
15:35:53 × CiaoSen quits (~Jura@2a05:5800:2b3:6b00:e6b9:7aff:fe80:3d03) (Ping timeout: 268 seconds)
15:36:04 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
15:45:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
15:50:15 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
15:51:28 Miroboru joins (~myrvoll@178-164-114.82.3p.ntebredband.no)
15:53:07 × kuribas quits (~user@ip-188-118-57-242.reverse.destiny.be) (Remote host closed the connection)
16:03:28 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 4.2.2)
16:13:20 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
16:22:03 × someone235 quits (uid419897@id-419897.ilkley.irccloud.com) (Quit: Connection closed for inactivity)
16:30:57 Tuplanolla joins (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi)
16:34:06 × califax quits (~califax@user/califx) (Ping timeout: 260 seconds)
16:36:38 stiell joins (~stiell@gateway/tor-sasl/stiell)
16:45:41 califax joins (~califax@user/califx)
16:48:57 yin_ joins (~yin@user/zero)
17:13:18 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
17:21:15 × sord937 quits (~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
17:21:40 billchenchina joins (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe)
17:29:39 L29Ah joins (~L29Ah@wikipedia/L29Ah)
17:37:27 dcoutts joins (~duncan@77.109.149.106)
17:37:34 target_i joins (~target_i@user/target-i/x-6023099)
17:40:11 tzh joins (~tzh@c-76-115-131-146.hsd1.or.comcast.net)
17:44:55 × euleritian quits (~euleritia@dynamic-176-006-179-000.176.6.pool.telefonica.de) (Ping timeout: 260 seconds)
17:45:19 euleritian joins (~euleritia@dynamic-176-006-024-083.176.6.pool.telefonica.de)
17:46:11 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
17:51:19 × euleritian quits (~euleritia@dynamic-176-006-024-083.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
17:51:37 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
17:54:54 <lxsameer> hey folks, I was looking at the System.OsPath. What is the proper way to convert a value of type OsPath to let's say, ByteString?
17:58:03 <haskellbridge> <maerwald> lxsameer: https://hasufell.github.io/posts/2024-05-07-ultimate-string-guide.html
17:58:24 <haskellbridge> <maerwald> What is the ByteString supposed to be? Why convert?
17:58:48 <haskellbridge> <maerwald> OsPath is already byte string basically
17:59:18 <haskellbridge> <maerwald> And has all the API bytestring does
17:59:49 <lxsameer> cool thank you
18:07:21 <haskellbridge> <maerwald> lxsameer: https://hackage.haskell.org/package/os-string-2.0.3/docs/System-OsString.html
18:10:00 <lxsameer> I think my problem is that, I don't know how to convert these types to make the compiler happy, even though OsPath is ShortByteString under the hood
18:10:00 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:11:09 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:15:10 <haskellbridge> <maerwald> lxsameer: Example?
18:15:57 × califax quits (~califax@user/califx) (Quit: ZNC 1.8.2 - https://znc.in)
18:16:29 califax joins (~califax@user/califx)
18:17:14 <lxsameer> maerwald: https://dpaste.com/FY3G8T9AM#line-3
18:17:34 <lxsameer> Utf8 is a newtype on Bytestring
18:17:53 <lxsameer> and OsPath is a shortbytestring under the hood
18:18:04 <lxsameer> but they are different types to the compiler
18:18:14 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:18:23 × stef204 quits (~stef204@user/stef204) (Quit: WeeChat 4.2.1)
18:18:56 × euphores quits (~SASL_euph@user/euphores) (Quit: Leaving.)
18:21:30 <mauke> can you assume posix?
18:21:48 <EvanR> we have OsString now too?
18:22:20 <EvanR> we already have string zoo now it's headed towards menagerie!
18:22:51 <haskellbridge> <maerwald> EvanR: ?
18:22:59 <haskellbridge> <maerwald> lxsameer: what type is Config?
18:23:29 <haskellbridge> <maerwald> EvanR: read https://hasufell.github.io/posts/2024-05-07-ultimate-string-guide.html#too-many-strings :p
18:23:42 <EvanR> is this where the FilePath fiasco ended up
18:23:47 euphores joins (~SASL_euph@user/euphores)
18:25:08 <lxsameer> mauke: yeah, it will be running on Linux all the time
18:27:09 <lxsameer> maerwald: config is just a record type that contains to OsPath fields, dbName and dbPath
18:27:18 waleee joins (~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
18:27:42 <mauke> one approach: use https://hackage.haskell.org/package/os-string-2.0.2/docs/System-OsString-Internal-Types.html to break open the abstraction, then call fromShort to get a ByteString
18:28:27 <lxsameer> mauke: thanks, let me read it
18:31:47 <lxsameer> all these string types are pretty confusing :D
18:34:46 <EvanR> the one string which it seems you could get away with losing is String... but at this point it's not clear that would be enough of a benefit considering you still have like 8 others and it would break everything
18:35:37 <EvanR> I actually appreciate having string types makes sense, unlike e.g. see history of ruby
18:37:15 <lxsameer> EvanR: I'm new to haskell, but I think at least a standard mechanism to convert all these types to a common low level abstraction on a sequence of bytes is missing here
18:37:24 <haskellbridge> <maerwald> lxsameer: Why do you need ShortByteString?
18:37:50 <lxsameer> maerwald: I don't to be honest, it's what OsPath is using
18:38:37 <haskellbridge> <maerwald> You should not be reaching for Internals.
18:39:05 <EvanR> lxsameer, they represent different things. To convert a string (text) to a list of bytes, you have to choose an encoding
18:39:09 <haskellbridge> <maerwald> The encoding ou ByteString's are different across platforms. Windows is UCS-2, unix is Word8
18:39:47 <EvanR> meanwhile low level OsPath is already encoded ^
18:40:52 <lxsameer> EvanR: yeah, I'm aware of that. but i think a standard is missing. for example let's say every types has to implement a encode decode function. something like that
18:40:53 <EvanR> and there are issues reencoding it because platform
18:41:11 <EvanR> yeah specifically for FilePath-related strings, you can't encode decode it
18:41:27 <EvanR> it's been a mess
18:41:45 <lxsameer> it seems like it :P
18:42:55 <EvanR> stuff like amazon gets away with this by treating paths as ByteString, and historically everyone uses ByteString for everything and maintains facts about encoding and other important properties in the developers memory xD
18:43:34 <lxsameer> I don't blame them
18:44:28 <lxsameer> for example in my case, it's a small hobby project. I don't want to spend time on figuring this thing out. I'll be like, i just use strings and keep in mind that it has limitations :D
18:44:46 <EvanR> usually, it makes it hard to refactor code when you have 1000 proofs of correctness in your head only
18:45:19 <EvanR> but it adds cost to write the code in the first place, esp without experience
18:45:31 <EvanR> I mean, having a type system
18:46:03 <mauke> lxsameer: filenames are tricky because on some platforms they're text and on others they're bytes
18:46:14 <mauke> so you can't really have a common encode/decode interface
18:47:42 <lxsameer> Talking of proofs and correctness. what is the relationship of haskell and curry-howard correspondance?
18:47:42 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:47:45 <haskellbridge> <maerwald> A ByteString does not carry encoding information. So the question how to turn it into OsString cannot be answered.
18:47:51 <lxsameer> mauke: Ahhh I see
18:48:03 <haskellbridge> <maerwald> You can just shove it ie
18:48:08 <haskellbridge> <maerwald> *in
18:48:16 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:48:20 <haskellbridge> <maerwald> But the ByteString might come from a windows machine
18:48:30 <haskellbridge> <maerwald> And was sent to a unix machine
18:48:49 <haskellbridge> <maerwald> And now you're expecting UTF-16 to compare with UTF-8 or something similar
18:49:29 <EvanR> "just use string (bytes) and remember the limitations" stems from a previous era where everything is ascii text, and only valid when you have utf-8 everywhere
18:49:30 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:49:39 <lxsameer> yeah I get it. I never used windows, but I'm wondering how does other langs handle this situation
18:49:39 euleritian joins (~euleritia@dynamic-176-006-024-083.176.6.pool.telefonica.de)
18:49:47 <EvanR> badly, for the most part xD
18:49:54 <EvanR> but rust does have something like OsPath apparently
18:50:03 × euleritian quits (~euleritia@dynamic-176-006-024-083.176.6.pool.telefonica.de) (Read error: Connection reset by peer)
18:50:17 <lxsameer> ok so it's a mess everywhere :))
18:50:19 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:50:42 <lxsameer> EvanR: do you use Rust as well ?
18:50:52 <EvanR> what ruby calls a string is actually a bytestring and holds an encoding tag which often gets out of whack and screws things up
18:51:03 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
18:51:12 <haskellbridge> <Kyle Butt> Use Text for textual data and ByteString for bytes. Encode/Decode at the lowest level possible, and if the bytes represent something, prefer a newtype.
18:51:15 euleritian joins (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
18:51:18 <EvanR> because people don't respect it and sometimes don't even know the difference between bytes and characters
18:51:21 <haskellbridge> <maerwald> EvanR: Yes, which is morally the same as Haskell OsString
18:51:51 <lxsameer> Kyle Butt: hey I use Text everywhere I can
18:52:15 <mauke> ah, got it. just never touch the file system :-)
18:52:36 <EvanR> use ipfs only
18:53:35 <haskellbridge> <maerwald> Although rust uses WTF-8
18:54:15 <EvanR> is that a funny way to specify UTF-16
18:54:57 <mauke> personally I think "WTF-8" should refer to doubly-encoded text
18:55:32 <mauke> encode_utf8 . encode_utf8
18:55:52 <EvanR> use 3 for good measure
18:56:32 <EvanR> UUU-8
18:57:10 <lxsameer> I thought WTF-8 is a joke, but it's legit :D
18:57:27 <haskellbridge> <Kyle Butt> Speaking of hackery, the ETAG specification allows for certain ranges of characters, but also allows for any character with the high bit set.
18:57:29 <haskellbridge> So I wrote some code to take binary hash tags and stuff them in 7 bits with the high bit set.
18:58:25 <monochrom> :(
18:58:35 <EvanR> what does a character with the high bit set mean
18:58:44 <EvanR> extended ascii?
18:59:10 <haskellbridge> <Kyle Butt> Sorry, I should have said: "byte with the high bit set".
18:59:39 <mauke> a byte >= 128
18:59:56 <haskellbridge> <Kyle Butt> The ETAG header is specified in bytes, not in an encoding.
19:00:11 <haskellbridge> <Kyle Butt> Monochrom, why :( ?
19:00:44 <monochrom> because it's a hackery that makes baby jesus cry :)
19:01:27 <haskellbridge> <Kyle Butt> ETAG's are opaque, and the user never sees them. Why not save on bandwidth?
19:01:58 <EvanR> deflate the etag then?
19:02:07 <EvanR> xD
19:02:25 <EvanR> (your http is automagically compressed is it)
19:02:30 <EvanR> isn't*
19:03:10 <haskellbridge> <Kyle Butt> The http headers aren't compressed, even if the content-encoding is compressed.
19:03:59 <monochrom> Oh, user never sees them? OK nevermind. :)
19:04:06 <mauke> if you wrap the HTTP response in another HTTP response, you can compress the headers in the body
19:04:17 <EvanR> wrap it 3 times for good measure
19:04:39 <monochrom> Ugh is that a monad?
19:04:45 L29Ah joins (~L29Ah@wikipedia/L29Ah)
19:04:55 <monochrom> join :: HTTP (HTTP a) -> HTTP a
19:06:23 <dmj`> we put an HTTP in your HTTP so you can HTTP while you HTTP
19:06:51 <monochrom> :)
19:07:18 <EvanR> within the HTTP monad you can yield the answer by setting the content stream, making the return value redundant, and so it's actually a monoid
19:08:05 × benjaminl quits (~benjaminl@user/benjaminl) (Remote host closed the connection)
19:10:19 benjaminl joins (~benjaminl@user/benjaminl)
19:16:32 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 256 seconds)
19:21:40 Eoco joins (~ian@128.101.131.218)
19:23:28 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
19:23:58 cpressey joins (~weechat@33b62f0c.skybroadband.com)
19:25:44 CrunchyFlakes joins (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de)
19:38:48 × target_i quits (~target_i@user/target-i/x-6023099) (Quit: leaving)
20:08:36 philopsos1 joins (~caecilius@user/philopsos)
20:09:02 jmdaemon joins (~jmdaemon@user/jmdaemon)
20:16:43 × billchenchina quits (~billchenc@2a0d:2580:ff0c:1:e3c9:c52b:a429:5bfe) (Quit: Leaving)
20:19:51 ph88 joins (~ph88@2a02:8109:9e26:c800:f0e:db60:68cc:2c13)
20:26:31 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:30:58 pavonia joins (~user@user/siracusa)
20:31:16 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
20:34:03 × philopsos1 quits (~caecilius@user/philopsos) (Ping timeout: 268 seconds)
20:34:45 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:35:52 × lxsameer quits (~lxsameer@Serene/lxsameer) (Ping timeout: 256 seconds)
20:39:13 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 256 seconds)
20:42:52 peterbecich joins (~Thunderbi@syn-047-229-123-186.res.spectrum.com)
20:50:05 × peterbecich quits (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 268 seconds)
20:51:55 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
20:53:23 × oo_miguel quits (~Thunderbi@78-11-181-16.static.ip.netia.com.pl) (Ping timeout: 264 seconds)
21:01:55 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
21:02:18 kimiamania joins (~65804703@user/kimiamania)
21:03:25 machinedgod joins (~machinedg@d173-183-246-216.abhsia.telus.net)
21:09:23 × cpressey quits (~weechat@33b62f0c.skybroadband.com) (Quit: WeeChat 4.3.0)
21:11:08 cpressey joins (~weechat@33b62f0c.skybroadband.com)
21:11:59 × cpressey quits (~weechat@33b62f0c.skybroadband.com) (Client Quit)
21:12:13 cpressey joins (~weechat@33b62f0c.skybroadband.com)
21:12:36 × joeyadams quits (~joeyadams@38.48.105.67) (Quit: Leaving)
21:12:49 × driib3 quits (~driib@vmi931078.contaboserver.net) (Quit: The Lounge - https://thelounge.chat)
21:14:13 driib3 joins (~driib@vmi931078.contaboserver.net)
21:21:41 × cpressey quits (~weechat@33b62f0c.skybroadband.com) (Ping timeout: 240 seconds)
21:21:59 × Tisoxin quits (~Ikosit@user/ikosit) (Quit: The Lounge - https://thelounge.chat)
21:22:35 Tisoxin joins (~Ikosit@user/ikosit)
21:23:13 emmanuelux joins (~emmanuelu@user/emmanuelux)
21:33:32 × yin quits (~yin@user/zero) (Quit: leaving)
21:33:37 yin_ is now known as yin
21:36:29 × machinedgod quits (~machinedg@d173-183-246-216.abhsia.telus.net) (Ping timeout: 240 seconds)
21:41:44 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Quit: ZNC 1.8.2 - https://znc.in)
21:46:39 <haskellbridge> <maerwald> @irc_libera.chat_lxsameer:kf8nh.com: It's an implementation detail. WTF-8 is not a "user exposed" encoding
22:02:22 × CrunchyFlakes quits (~CrunchyFl@ip92348280.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
22:04:42 CrunchyFlakes joins (~CrunchyFl@146.52.130.128)
22:05:45 × ph88 quits (~ph88@2a02:8109:9e26:c800:f0e:db60:68cc:2c13) (Quit: Leaving)
22:06:26 × michalz quits (~michalz@185.246.207.201) (Quit: ZNC 1.9.0 - https://znc.in)
22:12:10 × euleritian quits (~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
22:12:16 euleritian joins (~euleritia@77.22.252.56)
22:23:52 × Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
22:24:59 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:25:42 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
22:58:41 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
23:06:22 × acidjnk quits (~acidjnk@p200300d6e714dc79edaa57aef410daf5.dip0.t-ipconnect.de) (Ping timeout: 268 seconds)
23:17:28 × yin quits (~yin@user/zero) (Ping timeout: 268 seconds)
23:18:32 × tromp quits (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
23:33:30 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
23:36:37 × euleritian quits (~euleritia@77.22.252.56) (Ping timeout: 255 seconds)
23:37:39 euleritian joins (~euleritia@dynamic-176-006-010-205.176.6.pool.telefonica.de)
23:50:09 × ystael quits (~ystael@user/ystael) (Ping timeout: 268 seconds)

All times are in UTC on 2024-06-07.