Home liberachat/#haskell: Logs Calendar

Logs on 2023-04-28 (liberachat/#haskell)

00:01:00 <Axman6> ok yeah it does surprise me that isn't there
00:01:45 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 240 seconds)
00:02:07 Square2 joins (~Square4@user/square)
00:02:16 × Square quits (~Square4@user/square) (Remote host closed the connection)
00:02:36 offtherock joins (~blurb@96.45.2.121)
00:02:49 × bilegeek_ quits (~bilegeek@225.sub-174-208-233.myvzw.com) (Write error: Broken pipe)
00:02:51 bilegeek joins (~bilegeek@225.sub-174-208-233.myvzw.com)
00:03:27 <mauke> it's a bit like discovering that int main(void) { int x = 0; return x; } has undefined behavior in C
00:03:33 × rburkholder quits (~blurb@96.45.2.121) (Remote host closed the connection)
00:07:49 nick4 joins (~nick@98.186.193.170)
00:08:40 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:08:40 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:08:40 wroathe joins (~wroathe@user/wroathe)
00:09:01 × accord quits (uid568320@id-568320.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
00:09:02 × justsomeguy quits (~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
00:09:12 Sauvin joins (~sauvin@user/Sauvin)
00:09:25 × nick3 quits (~nick@98.186.193.170) (Ping timeout: 240 seconds)
00:10:24 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 253 seconds)
00:11:33 Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915)
00:17:40 <oddline> mauke: what's the UB there? I'd believe it - C has UB in the oddest places - but I just can't see where it would be?
00:17:55 × Wauchope quits (~Wauchope@cpc86639-seve26-2-0-cust168.13-3.cable.virginm.net) (Remote host closed the connection)
00:19:13 <mauke> no sequence point between the initialization of x and the read from x in return
00:21:21 bratwurst joins (~dfadsva@2604:3d09:207f:f650::9c24)
00:21:22 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
00:22:38 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
00:23:27 × segfaultfizzbuzz quits (~segfaultf@23.93.74.212) (Ping timeout: 255 seconds)
00:23:35 <int-e> mauke: Isn't the end of an initializer a sequence point?
00:24:29 <mauke> if you can find something in the C standard that says so, I would sleep much better
00:24:59 <mauke> the end of a statement is a sequence point, but declarations aren't statements
00:25:15 <mauke> there is a sequence point at the end of each initializer expression, but 0 has no side effects anyway
00:25:49 Wstfgl0 joins (~me-me@2602:ff16:3:0:1:dc:beef:d00d)
00:36:01 <int-e> mauke: There's a concept of a "full expression"; an initializer is a full expression; the operand of the `return` statement is another full expression; there's a sequence point between those. Section 6.8 in the N2310 draft (also the N3096 draft), and I would be surprised if the official standard didn't have it.
00:36:38 zfnmxt joins (~zfnmxt@user/zfnmxt)
00:36:40 <int-e> (And there's an appendix summarizing sequence points but I expect you'd say that that's not normative.)
00:38:16 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251)
00:38:45 <int-e> (The appendix is still useful because it also talks about full expressions.)
00:40:07 <Clinton[m]> Does anyone have any thoughts on this design question? https://stackoverflow.com/questions/76125393/how-to-model-a-mutable-key-value-map-in-a-monad-transformer-stack
00:42:51 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251) (Ping timeout: 248 seconds)
00:43:14 <int-e> mauke: IIUC that means that even int x = 0, y = x; is just fine. (compound literals are excluded from that rule though, I didn't quote it in full. So a[2] = {0, a[0]}; is UB)
00:43:28 <int-e> mauke: err, int a[2] = ...
00:44:12 <mauke> <mauke> there is a sequence point at the end of each initializer expression, but 0 has no side effects anyway
00:44:33 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)
00:53:49 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
00:56:06 <zfnmxt> I need a simple library to solve a system of linear diophantine equations (so a linear equation with integer solutions/coefficients). Importantly, I don't want it to depend on any external solver, so no IO-based solvers. Does anyone have any recommendations?
00:59:29 <Axman6> Well my first suggestion was going to be SBT but i guess that's out
01:00:01 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
01:00:22 <Axman6> what's you reason for not wanting IO?
01:01:01 <zfnmxt> Just annoying to deal with and I don't want that dependency.
01:03:01 <zfnmxt> I'm guessing you meant SBV, not SBT, right?
01:04:14 × nitrix quits (~nitrix@user/nitrix) (Quit: ZNC 1.8.2 - https://znc.in)
01:04:37 <int-e> mauke: So we also need to unpack "initial value". Which at first glance is clear enough... the initial value of x is 0. x is never modified, so reading it returns 0. The language around that has actually been improved in the 3096 draft, which removes the conflicting statement that all declared variables have an undefined intial value, even when there's an initializer. I'm puzzled though what this...
01:04:38 <Axman6> uh, probably
01:04:43 <int-e> ...says about int x = x; now though.
01:05:08 <int-e> mauke: Anyway, I'll admit that this is harder to figure out than I thought.
01:05:29 <jackdk> assemble the equations into matrix-vector form and reduce to row echelon form?
01:06:43 <jackdk> https://hackage.haskell.org/package/matrix-0.3.6.1/docs/Data-Matrix.html#v:rref , for example?
01:07:38 <jackdk> https://hackage.haskell.org/package/hmatrix or possibly the tools in here?
01:08:42 <zfnmxt> jackdk: Yeah, I thought I might have to do something like that. Just wanted to avoid the work if it's already been done 🙃
01:09:00 nick2 joins (~nick@98.186.193.170)
01:10:28 <zfnmxt> I think you have to use a special version of row echelon form where you don't require the leading entries to be 1. So there are annoying complications like that. But thanks, guess I'll probably end up doing that.
01:10:42 × nick4 quits (~nick@98.186.193.170) (Ping timeout: 255 seconds)
01:10:50 nitrix joins (~nitrix@user/nitrix)
01:11:05 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:13:35 <jackdk> I'm not sure; that's just dividing each row by the leading value. And is it not always possible to go from row echelon to reduced row echelon?
01:13:37 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::9c24) (Quit: Leaving)
01:15:26 × Wstfgl0 quits (~me-me@2602:ff16:3:0:1:dc:beef:d00d) (Ping timeout: 246 seconds)
01:17:04 <int-e> mauke: I'll stop now, but so far I have not found anything to suggest that `int x = x;` is "undefined behavior" as defined by the standard; instead it seems to unfold to "the initial value of x is the initial value of x".
01:17:40 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:22:51 Wstfgl0 joins (~me-me@2602:ff16:3:0:1:dc:beef:d00d)
01:26:38 <mauke> int-e: from what I recall, in C99 all automatic variables are created (with indeterminate values) on entry to their containing block. their initializers run when their declaration is executed
01:26:52 <mauke> in that model, int x = x; has UB because it reads an indeterminate value
01:30:11 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
01:34:25 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 240 seconds)
01:35:29 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
01:43:19 shriekingnoise joins (~shrieking@186.137.175.87)
01:45:02 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
01:48:46 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
01:56:03 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
02:00:00 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 248 seconds)
02:00:32 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
02:01:40 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 276 seconds)
02:08:55 nick3 joins (~nick@98.186.193.170)
02:09:47 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
02:10:14 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
02:11:00 × nick2 quits (~nick@98.186.193.170) (Ping timeout: 255 seconds)
02:20:12 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
02:20:12 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
02:20:12 wroathe joins (~wroathe@user/wroathe)
02:28:20 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
02:29:39 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
02:32:08 × gmg quits (~user@user/gehmehgeh) (Ping timeout: 240 seconds)
02:32:38 gmg joins (~user@user/gehmehgeh)
02:36:10 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251)
02:46:34 nate1 joins (~nate@98.45.169.16)
02:50:22 xff0x joins (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp)
02:53:10 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Quit: No Ping reply in 180 seconds.)
02:54:16 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 258 seconds)
02:54:27 sammelweis joins (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10)
02:55:08 × td_ quits (~td@i53870923.versanet.de) (Ping timeout: 251 seconds)
02:55:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
02:55:33 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 255 seconds)
02:56:05 td_ joins (~td@i5387093d.versanet.de)
02:57:59 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
03:06:06 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
03:08:03 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
03:08:32 nick4 joins (~nick@98.186.193.170)
03:10:01 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Remote host closed the connection)
03:11:16 × nick3 quits (~nick@98.186.193.170) (Ping timeout: 252 seconds)
03:13:45 × nick4 quits (~nick@98.186.193.170) (Ping timeout: 240 seconds)
03:39:05 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 240 seconds)
03:49:06 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 254 seconds)
04:00:23 razetime joins (~quassel@43.254.111.18)
04:01:07 × bilegeek quits (~bilegeek@225.sub-174-208-233.myvzw.com) (Quit: Leaving)
04:03:36 bilegeek joins (~bilegeek@225.sub-174-208-233.myvzw.com)
04:04:30 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 260 seconds)
04:06:10 × bilegeek quits (~bilegeek@225.sub-174-208-233.myvzw.com) (Client Quit)
04:12:15 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
04:13:06 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
04:15:45 × razetime quits (~quassel@43.254.111.18) (Ping timeout: 240 seconds)
04:15:50 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
04:20:19 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
04:21:03 michalz joins (~michalz@185.246.207.222)
04:21:03 × thegeekinside quits (~thegeekin@189.180.38.222) (Ping timeout: 255 seconds)
04:32:32 × chiselfuse quits (~chiselfus@user/chiselfuse) (Ping timeout: 240 seconds)
04:34:44 <segfaultfizzbuzz> https://www.ebay.com/itm/115639811711 ha
04:35:04 chiselfuse joins (~chiselfus@user/chiselfuse)
04:35:07 <segfaultfizzbuzz> in the most hostile view of the world can these things have malware on them
04:35:48 <segfaultfizzbuzz> used cpus, that is (amd, intel etc)
04:42:32 takuan joins (~takuan@178-116-218-225.access.telenet.be)
04:45:04 Bocaneri joins (~sauvin@user/Sauvin)
04:45:20 × ddellacosta quits (~ddellacos@static-198-44-136-216.cust.tzulo.com) (Ping timeout: 248 seconds)
04:45:27 Bocaneri is now known as Guest2961
04:46:46 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Ping timeout: 276 seconds)
04:47:36 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 255 seconds)
04:48:57 mokee joins (~mokee@37.228.215.215)
04:50:31 × mokee quits (~mokee@37.228.215.215) (Client Quit)
04:51:19 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 276 seconds)
04:51:23 mokee joins (~mokee@37.228.215.215)
04:52:57 × mokee quits (~mokee@37.228.215.215) (Client Quit)
04:53:16 mokee joins (~mokee@37.228.215.215)
04:54:33 Guest2961 is now known as Sauvin
05:00:37 segfaultfizzbuzz joins (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net)
05:04:01 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Ping timeout: 252 seconds)
05:05:34 ddellaco1 joins (~ddellacos@146.70.165.230)
05:15:43 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
05:20:17 jonathan_ joins (~jonathan@h-176-10-144-60.NA.cust.bahnhof.se)
05:24:15 razetime joins (~quassel@43.254.111.18)
05:36:10 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
05:36:22 thegeekinside joins (~thegeekin@189.180.38.222)
05:41:43 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:42:03 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 248 seconds)
05:45:04 × lightandlight quits (sid135476@id-135476.helmsley.irccloud.com) (Read error: Connection reset by peer)
05:45:04 × lexi-lambda quits (sid92601@2a03:5180:f:4::1:69b9) (Read error: Connection reset by peer)
05:45:04 × tnks quits (sid412124@id-412124.helmsley.irccloud.com) (Read error: Connection reset by peer)
05:45:05 × hongminhee quits (sid295@id-295.tinside.irccloud.com) (Read error: Connection reset by peer)
05:45:05 × sclv quits (sid39734@haskell/developer/sclv) (Read error: Connection reset by peer)
05:45:05 × chessai quits (sid225296@id-225296.lymington.irccloud.com) (Read error: Connection reset by peer)
05:45:05 × iphy quits (sid67735@id-67735.lymington.irccloud.com) (Read error: Connection reset by peer)
05:45:06 × AndreasK quits (sid320732@id-320732.uxbridge.irccloud.com) (Read error: Connection reset by peer)
05:45:06 × aristid quits (sid1599@id-1599.uxbridge.irccloud.com) (Read error: Connection reset by peer)
05:45:06 × lally quits (sid388228@id-388228.uxbridge.irccloud.com) (Read error: Connection reset by peer)
05:45:06 × caasih quits (sid13241@id-13241.ilkley.irccloud.com) (Read error: Connection reset by peer)
05:45:11 × dmj` quits (sid72307@id-72307.hampstead.irccloud.com) (Ping timeout: 264 seconds)
05:45:14 aristid joins (sid1599@id-1599.uxbridge.irccloud.com)
05:45:14 AndreasK joins (sid320732@id-320732.uxbridge.irccloud.com)
05:45:14 × pepeiborra quits (sid443799@id-443799.ilkley.irccloud.com) (Read error: Connection reset by peer)
05:45:16 × totbwf quits (sid402332@id-402332.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
05:45:16 × snek quits (sid280155@id-280155.lymington.irccloud.com) (Ping timeout: 252 seconds)
05:45:16 × b20n quits (sid115913@id-115913.uxbridge.irccloud.com) (Ping timeout: 252 seconds)
05:45:16 × Firedancer quits (sid336191@id-336191.hampstead.irccloud.com) (Ping timeout: 252 seconds)
05:45:16 × ysh____ quits (sid6017@id-6017.ilkley.irccloud.com) (Ping timeout: 252 seconds)
05:45:19 × glowcoil quits (sid3405@id-3405.tinside.irccloud.com) (Ping timeout: 265 seconds)
05:45:20 chessai joins (sid225296@id-225296.lymington.irccloud.com)
05:45:20 lexi-lambda joins (sid92601@id-92601.hampstead.irccloud.com)
05:45:20 hongminhee joins (sid295@id-295.tinside.irccloud.com)
05:45:20 tnks joins (sid412124@id-412124.helmsley.irccloud.com)
05:45:21 sclv joins (sid39734@haskell/developer/sclv)
05:45:21 iphy joins (sid67735@id-67735.lymington.irccloud.com)
05:45:21 caasih joins (sid13241@id-13241.ilkley.irccloud.com)
05:45:21 lally joins (sid388228@id-388228.uxbridge.irccloud.com)
05:45:21 lightandlight joins (sid135476@id-135476.helmsley.irccloud.com)
05:45:29 pepeiborra joins (sid443799@id-443799.ilkley.irccloud.com)
05:46:21 glowcoil joins (sid3405@id-3405.tinside.irccloud.com)
05:46:23 snek joins (sid280155@id-280155.lymington.irccloud.com)
05:46:44 dmj` joins (sid72307@id-72307.hampstead.irccloud.com)
05:48:25 b20n joins (sid115913@id-115913.uxbridge.irccloud.com)
05:48:25 ysh____ joins (sid6017@id-6017.ilkley.irccloud.com)
05:48:25 Firedancer joins (sid336191@id-336191.hampstead.irccloud.com)
05:48:26 totbwf joins (sid402332@id-402332.uxbridge.irccloud.com)
05:49:46 trev joins (~trev@user/trev)
05:50:32 × tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
05:52:55 tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
05:53:44 slack1256 joins (~slack1256@186.11.11.208)
05:56:08 <slack1256> I got a GUI program for a pomodoro timer. I need to emit the /ding/ sound when the timers is up. Other packages call mplayer directly over a mp3. To avoid runtime dependencies, is there a package that offers a more direct alternative?
05:57:16 akegalj joins (~akegalj@199-128.dsl.iskon.hr)
05:58:54 <slack1256> nvm, SDL-mixer is what I want.
06:14:16 × fun-safe-math quits (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net) (Quit: Leaving)
06:17:25 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 240 seconds)
06:19:23 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
06:23:04 × akegalj quits (~akegalj@199-128.dsl.iskon.hr) (Quit: leaving)
06:29:44 mncheckm joins (~mncheck@193.224.205.254)
06:33:07 × jinsl quits (~jinsl@123.117.251.25) (Ping timeout: 252 seconds)
06:33:59 jinsl joins (~jinsl@123.117.251.25)
06:35:36 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
06:36:05 johnw joins (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net)
06:36:18 × echoreply quits (~echoreply@45.32.163.16) (Quit: WeeChat 2.8)
06:37:12 echoreply joins (~echoreply@45.32.163.16)
06:38:27 × segfaultfizzbuzz quits (~segfaultf@23-93-74-212.fiber.dynamic.sonic.net) (Quit: segfaultfizzbuzz)
06:39:47 johnw` joins (~user@76-234-69-149.lightspeed.frokca.sbcglobal.net)
06:40:20 × johnw` quits (~user@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Remote host closed the connection)
06:40:49 × slack1256 quits (~slack1256@186.11.11.208) (Ping timeout: 252 seconds)
06:45:01 coot joins (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba)
06:45:30 czy joins (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net)
06:47:07 lortabac joins (~lortabac@2a01:e0a:541:b8f0:29a4:629e:d3d5:2aa)
06:48:33 × ft quits (~ft@p4fc2a88b.dip0.t-ipconnect.de) (Quit: leaving)
07:00:19 × phma quits (~phma@67.44.208.163) (Read error: Connection reset by peer)
07:01:03 phma joins (phma@2001:5b0:211c:9778:71a0:7bbd:aef8:6f85)
07:01:31 × sammelweis quits (~quassel@2601:401:8200:2d4c:bd9:d04c:7f69:eb10) (Ping timeout: 248 seconds)
07:01:56 ubert joins (~Thunderbi@2003:ec:df15:58f9:1a2f:1ab6:a43c:6560)
07:03:59 × ubert quits (~Thunderbi@2003:ec:df15:58f9:1a2f:1ab6:a43c:6560) (Client Quit)
07:04:48 <geekosaur> @tell slack1256 only if you're already using SDL. if not, I just invoke paplay instead of mplayer or something else heavy (https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L306-L307)
07:04:48 <lambdabot> Consider it noted.
07:06:42 <geekosaur> @tell slack1256 but portable really isn't a thing here aside from SDL_mixer. different command on Macs and Windows and maybe under different Linux audio systems…
07:06:42 <lambdabot> Consider it noted.
07:08:14 vpan joins (~0@212.117.1.172)
07:09:42 crvs joins (~crvs@212.37.18.202)
07:12:59 euandreh joins (~Thunderbi@189.6.18.7)
07:15:37 × razetime quits (~quassel@43.254.111.18) (Ping timeout: 276 seconds)
07:16:44 acidjnk joins (~acidjnk@p200300d6e715c4095c08899fd7601df9.dip0.t-ipconnect.de)
07:22:09 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
07:26:17 cfricke joins (~cfricke@user/cfricke)
07:37:02 × czy quits (~user@host-140-25.ilcub310.champaign.il.us.clients.pavlovmedia.net) (Remote host closed the connection)
07:38:29 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
07:38:40 razetime joins (~quassel@43.254.111.18)
07:39:58 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:40:31 × thegeekinside quits (~thegeekin@189.180.38.222) (Ping timeout: 240 seconds)
07:46:11 nate1 joins (~nate@98.45.169.16)
07:49:38 zeenk joins (~zeenk@2a02:2f04:a20f:5200::7fe)
07:50:56 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
07:55:38 kalj joins (~kalj@h-158-174-207-174.NA.cust.bahnhof.se)
07:56:13 × razetime quits (~quassel@43.254.111.18) (Remote host closed the connection)
07:56:40 monoidal joins (~monoidal@2a01cb0801ce4b0086d567e14f5ca343.ipv6.abo.wanadoo.fr)
07:56:42 machinedgod joins (~machinedg@d198-53-218-113.abhsia.telus.net)
07:57:51 × kalj quits (~kalj@h-158-174-207-174.NA.cust.bahnhof.se) (Client Quit)
08:01:31 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
08:07:36 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251) (Remote host closed the connection)
08:08:11 chanceyan joins (~chanceyan@user/chanceyan)
08:08:21 × chanceyan quits (~chanceyan@user/chanceyan) (Client Quit)
08:08:56 chanceyan joins (~chanceyan@user/chanceyan)
08:10:36 <DigitalKiwi> hi210.0
08:12:47 <geekosaur> gesundheit!
08:19:49 barcisz joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
08:20:29 × chanceyan quits (~chanceyan@user/chanceyan) (Quit: chanceyan)
08:20:59 × jmdaemon quits (~jmdaemon@user/jmdaemon) (Ping timeout: 248 seconds)
08:30:53 × mokee quits (~mokee@37.228.215.215) (Quit: Lost terminal)
08:33:53 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:43:11 chele joins (~chele@user/chele)
08:47:15 c0c0 joins (~coco@212-51-146-137.fiber7.init7.net)
08:49:11 × coot quits (~coot@2a02:a310:e241:1b00:ec1a:e9df:79ac:66ba) (Quit: coot)
08:50:14 mokee joins (~mokee@37.228.215.215)
08:51:19 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
08:51:20 Guest45678 joins (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de)
08:51:30 coot joins (~coot@213.134.170.228)
08:52:11 × coot quits (~coot@213.134.170.228) (Remote host closed the connection)
08:53:10 acidjnk_new joins (~acidjnk@p200300d6e715c409096287d884e9e013.dip0.t-ipconnect.de)
08:53:59 × acidjnk quits (~acidjnk@p200300d6e715c4095c08899fd7601df9.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
08:59:24 <DigitalKiwi> c vfrd
09:00:03 × ac1 quits (~aloiscoch@2001:470:69fc:105::65) (Quit: You have been kicked for being idle)
09:00:03 × kadenwolff[m] quits (~kadenwolf@2001:470:69fc:105::1:d97f) (Quit: You have been kicked for being idle)
09:00:08 × flo[m]1 quits (~flosansps@2001:470:69fc:105::1:c22d) (Quit: You have been kicked for being idle)
09:08:06 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251)
09:12:32 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251) (Ping timeout: 246 seconds)
09:17:49 × gawen quits (~gawen@user/gawen) (Quit: cya)
09:19:09 gawen joins (~gawen@user/gawen)
09:19:10 × mokee quits (~mokee@37.228.215.215) (Quit: off)
09:20:44 mokee joins (~mokee@37.228.215.215)
09:28:14 × mokee quits (~mokee@37.228.215.215) (Quit: off)
09:28:32 mokee joins (~mokee@37.228.215.215)
09:33:03 × Guest45678 quits (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de) (Quit: Client closed)
09:33:05 × mokee quits (~mokee@37.228.215.215) (Client Quit)
09:33:22 mokee joins (~mokee@37.228.215.215)
09:46:45 × monoidal quits (~monoidal@2a01cb0801ce4b0086d567e14f5ca343.ipv6.abo.wanadoo.fr) (Quit: Client closed)
09:48:30 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:49:37 monoidal joins (~monoidal@2a01cb0801ce4b0086d567e14f5ca343.ipv6.abo.wanadoo.fr)
09:52:11 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-196c-66e3-323f-365c.rev.sfr.net)
09:53:33 kuribas joins (~user@ptr-17d51em5uqcvks54820.18120a2.ip6.access.telenet.be)
09:56:57 × barcisz quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
09:57:43 barcisz joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
10:00:10 × monoidal quits (~monoidal@2a01cb0801ce4b0086d567e14f5ca343.ipv6.abo.wanadoo.fr) (Quit: Client closed)
10:00:11 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-196c-66e3-323f-365c.rev.sfr.net) (Remote host closed the connection)
10:00:30 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-196c-66e3-323f-365c.rev.sfr.net)
10:01:30 × andreas303 quits (andreas303@is.drunk.and.ready-to.party) (Ping timeout: 260 seconds)
10:01:41 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
10:02:15 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
10:03:06 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Client Quit)
10:06:20 × mokee quits (~mokee@37.228.215.215) (Quit: off)
10:07:03 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
10:08:27 × xff0x quits (~xff0x@125x103x176x34.ap125.ftth.ucom.ne.jp) (Ping timeout: 255 seconds)
10:11:32 L29Ah joins (~L29Ah@wikipedia/L29Ah)
10:13:33 × barcisz quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
10:14:53 gurkenglas joins (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de)
10:15:38 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Read error: Connection reset by peer)
10:20:14 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
10:20:49 mokee joins (~mokee@37.228.215.215)
10:22:34 × mokee quits (~mokee@37.228.215.215) (Client Quit)
10:29:52 × Vajb quits (~Vajb@2001:999:40c:13d9:8e03:c3a5:f9c8:cadc) (Ping timeout: 248 seconds)
10:30:22 Vajb joins (~Vajb@2001:999:705:9eb4:3be1:37ee:6d1b:ae10)
10:34:09 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-196c-66e3-323f-365c.rev.sfr.net) (Remote host closed the connection)
10:39:02 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
10:39:45 mc47 joins (~mc47@xmonad/TheMC47)
10:40:00 × cheater quits (~Username@user/cheater) (Quit: Going offline, see ya! (www.adiirc.com))
10:40:32 __monty__ joins (~toonn@user/toonn)
10:42:25 Guest45678 joins (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de)
10:42:35 cheater joins (~Username@user/cheater)
10:42:57 × robobub quits (uid248673@2a03:5180:f:5::3:cb61) (Quit: Connection closed for inactivity)
10:47:10 × cheater quits (~Username@user/cheater) (Client Quit)
10:51:52 cheater joins (~Username@user/cheater)
10:53:41 × cheater quits (~Username@user/cheater) (Client Quit)
10:54:23 × crvs quits (~crvs@212.37.18.202) (Ping timeout: 246 seconds)
11:01:39 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
11:02:08 × Guest45678 quits (~Guest4567@p200300cf072e68ea6b29732cbdb21e80.dip0.t-ipconnect.de) (Quit: Client closed)
11:02:13 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
11:04:19 × Typedfern quits (~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) (Remote host closed the connection)
11:04:19 × typedfern_ quits (~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net) (Remote host closed the connection)
11:09:46 crvs joins (~crvs@212.37.18.202)
11:14:24 <jade[m]> Is it sensible to rewrite... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/76d672b7c22a943f38d43ee430d8d17c9426979d>)
11:17:27 <kaol> foldMap may be a less surprising choice.
11:17:50 <ncf> i think it's clarifying
11:19:14 <mauke> :t maybe (pure ())
11:19:15 <lambdabot> Applicative f => (a -> f ()) -> Maybe a -> f ()
11:20:13 <jade[m]> that may also work
11:20:18 <jade[m]> thank you
11:20:54 <mauke> @let purée x = pure x
11:20:55 <lambdabot> Defined.
11:21:28 <mauke> :t maybe . purée
11:21:29 <lambdabot> Applicative f => a1 -> (a2 -> f a1) -> Maybe a2 -> f a1
11:21:58 Guest67 joins (~Guest67@ext-1-005.eduroam.chalmers.se)
11:23:05 × Guest67 quits (~Guest67@ext-1-005.eduroam.chalmers.se) (Client Quit)
11:28:32 <[Leary]> Looks like a clear and proper use of `for_` to me. Also, the argument order also matters a lot here; the joy is in being able to write `for_ foo \bar -> do ...`, which is awkward with `maybe` / `traverse_` / `foldMap`.
11:29:24 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
11:30:02 <hpc> mauke: @let dice = randomIO? :D
11:31:46 <jade[m]> god, I love when and unless
11:32:47 <hpc> guard is pretty nice too
11:36:30 <jade[m]> yup
11:39:18 barcisz joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
11:41:41 <jade[m]> I don't know why I'm so hung up in the aesthetics of code ....... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/12c33ab470945bdf271adef23f82b88ccecfc2c2>)
11:41:46 monoidal joins (~monoidal@2a01cb0801ce4b009fd62379833425c7.ipv6.abo.wanadoo.fr)
11:43:53 barcisz28 joins (~barcisz@public-gprs527309.centertel.pl)
11:43:55 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
11:44:29 <mauke> I like the first one
11:45:24 <[Leary]> You use `whenM` so that you don't have to make this decision. Otherwise the first one. It's the most clear and obvious, and you get to give you condition a nice name.
11:47:12 × barcisz quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Ping timeout: 248 seconds)
11:47:40 nate1 joins (~nate@98.45.169.16)
11:48:06 <jade[m]> ok now
11:48:33 <jade[m]> ```
11:48:33 <jade[m]> foo >>= (`when` $ do)
11:49:06 <jade[m]> * ```... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/179a2e13baf22051eefca4c6337d83df65b315ea>)
11:49:07 <jade[m]> haha
11:49:10 <jade[m]> * ```... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/20106cf1a969a0e55082fa6bdb52167931bd09b8>)
11:49:10 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Read error: Connection reset by peer)
11:49:22 <jade[m]> [Leary]: I'll probably use this one
11:50:14 <[Leary]> I can only pray that you jest.
11:51:13 <[Leary]> Also, since we're talking about aesthetics, you mus'n't forget your BlockArguments. They make everything better.
11:51:26 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
11:52:25 barcisz2888 joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
11:52:29 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
11:56:01 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
11:56:29 × barcisz28 quits (~barcisz@public-gprs527309.centertel.pl) (Ping timeout: 265 seconds)
11:59:42 ski would prefer it if Matrix users would try not to "correct" messages, in channels bridged to IRC, such as this one
12:00:01 <ski> (also not sending multi-line messages would make things simpler)
12:00:26 <ski> jade[m] : fwiw, the brackets in `(Just x) -> f x' are redundant
12:01:23 <ski> (and i think `for_' on `Maybe' is fine)
12:02:17 <hpc> ski: eh, it's basically just an automatic pastebin i think
12:02:28 <hpc> (agreed about message editing though)
12:02:43 × monoidal quits (~monoidal@2a01cb0801ce4b009fd62379833425c7.ipv6.abo.wanadoo.fr) (Quit: Client closed)
12:04:04 × gemmaro quits (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc) (Remote host closed the connection)
12:04:15 <ski> except that people often send rather short, often incomplete, multi-line messages, a bit opposed to how people more intentionally often tend to use pastebins
12:05:07 <ski> for such short things, i'd prefer seeing one long single message, or a few somewhat shorter messages in succession, neither of them requiring an external link lookup
12:06:26 <yushyin> i usually ignore links without any context, thus if the multiline message starts with 'Hi .... (full message at <...>)' i tend to ignore it
12:06:27 <ski> (still, the editing is the more annoying aspect, true)
12:06:46 <ski> yea, good point
12:07:04 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Quit: The Lounge - https://thelounge.chat)
12:08:29 <ski> (fwiw, i also think up to around ten lines of code pasted into a channel is fine ..)
12:09:56 <yushyin> for me personally the soft limit on this is 3 lines, the hard limit is 5 lines
12:10:58 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
12:11:48 <ski> sometimes i do enter multiple lines in succession, with indentation and all. but i don't paste them, i type them as-is, into the IRC client
12:12:34 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
12:14:32 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
12:17:03 <somerandomnick> I want to point my matterbridge at matrix instead of IRC. what is the endpoint for that
12:17:38 <somerandomnick> @where matrix
12:17:38 <lambdabot> I know nothing about matrix.
12:21:44 ubert joins (~Thunderbi@2a02:8109:abc0:6434:2f3a:6587:811:db87)
12:23:09 titibandit joins (~titibandi@user/titibandit)
12:23:44 <__monty__> somerandomnick: Is `#haskell:libera.chat` what you're looking for?
12:24:56 Guest42100 joins (~Guest42@95.91.231.168)
12:26:15 × barcisz2888 quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
12:26:31 Typedfern joins (~Typedfern@60.red-83-37-32.dynamicip.rima-tde.net)
12:26:36 barcisz2888 joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
12:29:43 × somerandomnick quits (~somerando@217.160.36.77) (Remote host closed the connection)
12:30:32 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
12:31:55 × Inst_ quits (~Inst@2601:6c4:4081:54f0:e436:a84f:8a3c:7b5) (Ping timeout: 250 seconds)
12:35:02 <dminuoso> It finally occured to me why JSON is so popular.
12:35:12 bontaq joins (~user@ool-45779b84.dyn.optonline.net)
12:35:34 <dminuoso> Deep inside programmers long for ADTs in languages with fairly poor or unergonomic ways to make simple sum or product types.
12:36:49 <yushyin> lol
12:38:48 somerandomnick joins (~somerando@217.160.36.77)
12:39:08 somerandomnick[m joins (~somerando@2001:470:69fc:105::3:4f2e)
12:39:44 × somerandomnick quits (~somerando@217.160.36.77) (Remote host closed the connection)
12:41:40 <lortabac> I don't get it. JSON is more or less serialized JavaScript values. Where are the ADT's?
12:42:26 <somerandomnick[m> @ping
12:42:26 <lambdabot> pong
12:43:03 <dminuoso> lortabac: Oh you can encode ADTs with it just fine.
12:43:05 <lortabac> (I do agree that all programmers unconsciously long for sum types, but what's the relation with JSON?)
12:44:07 <dminuoso> Oh I was just staring at another JSON configuration file, and it occured to me that the reason its used widely, is because JSON is usually directly mapped to types that embody untyped/unbounded ADTs.
12:44:16 × acidjnk_new quits (~acidjnk@p200300d6e715c409096287d884e9e013.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
12:45:09 <dminuoso> But you're right, this isnt about JSON necessarily - though its syntax is generally very closely mirrored in many modern languages with attribute sets, lists, etc
12:45:13 <lortabac> I think you are inverting cause and effect, JSON is popular because it's just JavaScript, it doesn't require you to learn a new syntax
12:46:22 <lortabac> and that kind of "ADT" encoding is very common in the JS world
12:46:31 <somerandomnick[m> [discord] <s​rn777> @ping
12:50:12 <somerandomnick[m> @ping
12:50:12 <lambdabot> pong
12:50:27 <ski> you're bridging Discord, now ?
12:51:16 <somerandomnick[m> im on discord, yes. going over matrix.org is very slow tho
12:52:25 <ski> personally, i'd prefer not bridging this channel to Discord
12:52:35 <yushyin> ^
12:53:12 <somerandomnick[m> its a private server. just me and my different personas talking to you
12:53:20 <yushyin> it's also against discord's TOS
12:53:42 <ski> Discord still keeps complete logs, and mines it for data
12:53:52 gemmaro joins (~user@240f:74:d1f0:1:ba1:e787:c9e:b1dc)
12:54:08 <probie> They can already scrape https://ircbrowse.tomsmeding.com/browse/lchaskell if they want that
12:55:21 <somerandomnick[m> this is a public chat
12:55:23 <ski> i doubt they'll go to the trouble to automatically identify and scrape third-party logs
12:55:24 × vpan quits (~0@212.117.1.172) (Quit: Leaving.)
12:55:33 <somerandomnick[m> i choose matterbridge as my client to matrix chat
12:56:18 kalj joins (~kalj@h-158-174-207-174.NA.cust.bahnhof.se)
12:56:33 <somerandomnick[m> hajimemashite
12:58:48 <merijn> Anyone know if there's a more accessible version of "What Every Computer Scientist Should Know About Floating-Point Arithmetic"? I don't actually care about all the theorems and proofs, I just want some useful guidance on how to improve my accracy >.>
12:59:05 <ski> @where floating-point
12:59:05 <lambdabot> "What Every Programmer Should Know About Floating-Point Arithmetic" at <http://floating-point-gui.de/> and "What Every Computer Scientist Should Know About Floating-Point Arithmetic" by David
12:59:05 <lambdabot> Goldberg in 1991 at <http://docs.sun.com/source/806-3568/ncg_goldberg.html> and <http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.244>
13:00:01 <merijn> ski: did you just link the exact thing I mentioned *not* wanting? :p
13:00:07 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 276 seconds)
13:00:38 <ski> the first link might be applicable ?
13:00:38 <merijn> ski: I'm reading that one right now, but it's too much theorem and proof and not enough actionable advice
13:01:54 <merijn> ski: I mean, not really? That first link is like "explaining first year programmers why 0.1+0.2 is not 0.3". My questions are more: given a whole bunch of FP math, how do I minimise the introduce FP error
13:02:54 <dminuoso> probie: Legally that's a different thing.
13:02:58 <merijn> Like, I know how IEEE-754 representation works and why problems occur. I just don't know actionable advise for *minimising* my error over large computations
13:04:58 <kuribas> merijn: There is software that can help with that
13:05:29 <kuribas> it was in schema I believe...
13:05:46 <merijn> Herbie?
13:05:58 <ski> hmm .. sounds like you want a practical intro to numerical analysis concepts like numerical stability, well-conditioning, &c. ?
13:06:17 <kuribas> merijn: yeah
13:06:33 <probie> The textbook my university chose for "High Performance Scientific Computing" used to have a reasonable chapter on this, but the name of it escapes me
13:06:36 <merijn> kuribas: I was looking at that too, but I need to gather approximate input ranges first
13:06:36 <kuribas> merijn: also the beginning of Numerical Methods for scientists and engineers is good
13:06:55 <kuribas> mostly basic stuff though.
13:07:51 <merijn> I have some fairly basic stuff which has some number ranges which making my spidey-sense tingle
13:10:57 × phma quits (phma@2001:5b0:211c:9778:71a0:7bbd:aef8:6f85) (Read error: Connection reset by peer)
13:11:05 <merijn> ski: Possibly, I could probably use a decent intro in numerical stuff anyway, but it's hard to find good text books :p
13:11:42 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251)
13:11:50 phma joins (phma@2001:5b0:2143:d3b8:7a30:9fcb:3105:385a)
13:12:29 <kuribas> merijn: https://www.amazon.com/Numerical-Methods-Scientists-Engineers-Mathematics/dp/0486652416
13:13:35 × Guest42100 quits (~Guest42@95.91.231.168) (Quit: Connection closed)
13:15:07 Guest4233 joins (~Guest42@95.91.231.168)
13:16:05 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251) (Ping timeout: 246 seconds)
13:16:08 <merijn> That is...surprisingly cheap :p
13:16:31 × Guest4233 quits (~Guest42@95.91.231.168) (Client Quit)
13:17:25 jpds1 is now known as jpds
13:19:03 <merijn> Anyway, it seems like the magical keyword I need is "Kahan summation" :p
13:20:41 andreas303 joins (andreas303@is.drunk.and.ready-to.party)
13:20:51 Square2 is now known as Square
13:26:24 <probie> merijn: oh man, that brings back traumatic memories
13:26:42 ft joins (~ft@p4fc2a88b.dip0.t-ipconnect.de)
13:27:06 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
13:27:39 <merijn> "Ah, cool, I see you're using your personal development budget to learn about numerical methods and stochastic differential equations! Which project are you using this?"
13:27:59 <merijn> 'I'm optimising math about a videogame...' >.>
13:36:20 <lortabac> merijn: do you know the math-functions package?
13:36:30 <lortabac> @hackage math-functions
13:36:30 <lambdabot> https://hackage.haskell.org/package/math-functions
13:36:44 <somerandomnick[m> what game
13:37:23 <probie> Something you may want to consider is that your CPU can likely do two fp adds and two fp muls at the same time, so for peak performance try and balance adds and multiplications so none of those execution units are sitting idle
13:38:58 <merijn> lortabac: No, and also this code isn't Haskell :p But since my problem is (essentially) language agnostic and I get higher quality answers here, that's my default :p
13:41:16 <lortabac> maybe it's still useful to read the code, probably quicker than reading a whole book :P
13:47:09 × lortabac quits (~lortabac@2a01:e0a:541:b8f0:29a4:629e:d3d5:2aa) (Quit: WeeChat 2.8)
13:47:55 × ubert quits (~Thunderbi@2a02:8109:abc0:6434:2f3a:6587:811:db87) (Ping timeout: 248 seconds)
13:51:57 ubert joins (~Thunderbi@ip4d17361f.dynamic.kabel-deutschland.de)
13:52:43 × vjoki quits (~vjoki@2a00:d880:3:1::fea1:9ae) (Quit: ...)
13:53:27 vjoki joins (~vjoki@2a00:d880:3:1::fea1:9ae)
13:54:14 × ManofLetters[m] quits (~manoflett@2001:470:69fc:105::3be) (Ping timeout: 246 seconds)
13:54:14 × naine[m] quits (~naine-env@2001:470:69fc:105::3:2e57) (Ping timeout: 246 seconds)
13:54:14 × maralorn quits (~maralorn@2001:470:69fc:105::251) (Ping timeout: 246 seconds)
13:54:35 × polykernel[m] quits (~polykerne@user/polykernel) (Ping timeout: 246 seconds)
13:54:35 × Clinton[m] quits (~clintonme@2001:470:69fc:105::2:31d4) (Ping timeout: 246 seconds)
13:54:56 × luffy[m]1 quits (~luffyinte@2001:470:69fc:105::3:4cd5) (Ping timeout: 246 seconds)
13:54:56 × tiagsmm[m] quits (~tiagsmmma@2001:470:69fc:105::3:4002) (Ping timeout: 246 seconds)
13:54:56 × joyfulmantis[m] quits (~joyfulman@2001:470:69fc:105::3:400a) (Ping timeout: 246 seconds)
13:54:56 × teo quits (~teo@user/teo) (Ping timeout: 246 seconds)
13:54:56 × oak- quits (~oak-@2001:470:69fc:105::fcd) (Ping timeout: 246 seconds)
13:54:56 × sm quits (~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
13:55:08 × Me-me quits (~Me-me@user/me-me) (Quit: Something has gone terribly, terribly wrong, that being that I'm not here any more.)
13:58:19 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
14:01:03 thegeekinside joins (~thegeekin@189.180.38.222)
14:05:19 General joins (~General@net-37-179-166-221.cust.vodafonedsl.it)
14:06:57 ManofLetters[m] joins (~manoflett@2001:470:69fc:105::3be)
14:08:40 naine[m] joins (~naine-env@2001:470:69fc:105::3:2e57)
14:08:54 maralorn joins (~maralorn@2001:470:69fc:105::251)
14:09:26 × dumarrr^ quits (~dumarrr@c-76-105-96-13.hsd1.ga.comcast.net) (Remote host closed the connection)
14:10:03 polykernel[m] joins (~polykerne@user/polykernel)
14:10:17 Clinton[m] joins (~clintonme@2001:470:69fc:105::2:31d4)
14:11:37 oak- joins (~oak-@2001:470:69fc:105::fcd)
14:11:44 joyfulmantis[m] joins (~joyfulman@2001:470:69fc:105::3:400a)
14:13:04 tiagsmm[m] joins (~tiagsmmma@2001:470:69fc:105::3:4002)
14:14:05 sm joins (~sm@plaintextaccounting/sm)
14:14:19 teo joins (~teo@user/teo)
14:15:38 × kalj quits (~kalj@h-158-174-207-174.NA.cust.bahnhof.se) (Ping timeout: 245 seconds)
14:18:30 wootehfoot joins (~wootehfoo@user/wootehfoot)
14:23:22 × gurkenglas quits (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Ping timeout: 252 seconds)
14:25:37 cheater joins (~Username@user/cheater)
14:28:40 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 260 seconds)
14:38:19 zaquest joins (~notzaques@5.130.79.72)
14:41:08 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
14:43:12 mokee joins (~mokee@37.228.215.215)
14:49:46 × mokee quits (~mokee@37.228.215.215) (Quit: off)
14:50:06 mokee joins (~mokee@37.228.215.215)
14:50:25 dostoyevsky2 joins (~sck@user/dostoyevsky2)
14:51:09 jinsl- joins (~jinsl@2408:8207:2557:88e0:211:32ff:fec8:6aea)
14:51:18 × cfricke quits (~cfricke@user/cfricke) (Quit: WeeChat 3.8)
14:51:19 × mokee quits (~mokee@37.228.215.215) (Client Quit)
14:51:25 × jinsl quits (~jinsl@123.117.251.25) (Ping timeout: 252 seconds)
14:51:28 <dostoyevsky2> https://github.com/ButlerOS/haskell-butler <- are there any particular distributed features in Haskell that made this virtual/distributed OS possible?
14:51:32 luffy[m]1 joins (~luffyinte@2001:470:69fc:105::3:4cd5)
14:52:17 Sgeo joins (~Sgeo@user/sgeo)
14:57:19 acidjnk_new joins (~acidjnk@p200300d6e715c468b4bf77e5a0595f20.dip0.t-ipconnect.de)
14:58:04 <geekosaur> I'm not sure I'd say it has more features; I would say it'd be a lot harder to make mistakes using them. See for example why almost nobody uses STM outside of Haskell
15:00:00 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:6cda:c72d:6503:1251)
15:00:59 <ski> (expressiveness vs. "reasonability")
15:05:44 × oats quits (~thomas@user/oats) (Quit: until later, my friends)
15:07:51 <monochrom> implementor's freedom vs reasoner's freedom
15:08:12 <monochrom> "My freedom is your slavery." :)
15:08:31 <ski> rights vs. duties
15:08:43 <monochrom> Yeah
15:08:57 <monochrom> Programming is a dialectic class struggle between the implementor and the user.
15:11:56 × General quits (~General@net-37-179-166-221.cust.vodafonedsl.it) (Ping timeout: 246 seconds)
15:22:01 × jinsl- quits (~jinsl@2408:8207:2557:88e0:211:32ff:fec8:6aea) (Quit: ZNC - https://znc.in)
15:26:13 gurkenglas joins (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de)
15:26:52 jinsl joins (~jinsl@123.120.170.97)
15:27:45 econo joins (uid147250@user/econo)
15:30:29 <ncf> typeclass struggle
15:34:43 dostoyevsky2 parts (~sck@user/dostoyevsky2) ()
15:35:43 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
15:38:15 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 250 seconds)
15:39:02 × AlexZenon quits (~alzenon@178.34.150.15) (Ping timeout: 252 seconds)
15:39:46 × Alex_test quits (~al_test@178.34.150.15) (Ping timeout: 252 seconds)
15:44:16 × ubert quits (~Thunderbi@ip4d17361f.dynamic.kabel-deutschland.de) (Remote host closed the connection)
15:44:35 AlexZenon joins (~alzenon@178.34.150.15)
15:45:02 Alex_test joins (~al_test@178.34.150.15)
15:45:08 Sgeo_ joins (~Sgeo@user/sgeo)
15:47:17 × Sgeo quits (~Sgeo@user/sgeo) (Ping timeout: 246 seconds)
15:49:13 nate1 joins (~nate@98.45.169.16)
15:49:46 × crvs quits (~crvs@212.37.18.202) (Read error: Connection reset by peer)
15:51:12 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
15:53:56 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)
15:53:57 × extor quits (~extor@ns3018124.ip-149-202-82.eu) (Remote host closed the connection)
15:57:20 × chele quits (~chele@user/chele) (Remote host closed the connection)
15:57:54 General joins (~General@net-37-179-166-221.cust.vodafonedsl.it)
15:58:14 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
15:58:47 × ddellaco1 quits (~ddellacos@146.70.165.230) (Quit: WeeChat 3.8)
16:00:07 × AndreiDuma[m] quits (~andreidum@2001:470:69fc:105::3:390f) (Quit: You have been kicked for being idle)
16:25:09 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
16:30:53 ddellacosta joins (~ddellacos@146.70.165.230)
16:36:54 Joao003 joins (~Joao003@2804:840:8309:0:60f9:6293:872c:15aa)
16:37:09 <Joao003> Does someone actually use (<$)
16:38:11 <ski> i imagine it's used with parsers, e.g.
16:41:19 <Joao003> e.g. what?
16:42:13 <[exa]> I use it for parsing stuff like: EmptyParens <$ string "()"
16:43:04 × machinedgod quits (~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 276 seconds)
16:43:11 <Joao003> (<$>) only maps over the last type variable
16:43:25 <Joao003> That's why it maps over the entirety of a list
16:44:01 × General quits (~General@net-37-179-166-221.cust.vodafonedsl.it) (Quit: Leaving)
16:44:53 <Joao003> > fmap (*2) [1..3]
16:44:54 <lambdabot> [2,4,6]
16:45:53 <yushyin> usually in parser combinator code, you will see (<$) and ($>)
16:46:23 <Joao003> ($>) is flip (<$)?
16:46:49 <Joao003> Yes it is
16:47:48 <Joao003> Is (<&>) actually used somewhere?
16:48:11 × jero98772 quits (~jero98772@2800:484:1d84:9000::2) (Ping timeout: 246 seconds)
16:50:24 <lyxia> it can be quite neat to avoid parentheses around the lambda
16:54:17 <sm> I used it yesterday in a chain of function calls that turned monadic half way through
16:54:35 sm sent a code block: https://libera.ems.host/_matrix/media/v3/download/libera.chat/34a09009167c4901b192d49a3dfcde535f6d0017
16:54:36 tzh joins (~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
16:59:43 jero98772 joins (~jero98772@2800:484:1d84:9000::2)
17:04:12 × zeenk quits (~zeenk@2a02:2f04:a20f:5200::7fe) (Quit: Konversation terminated!)
17:07:28 × kuribas quits (~user@ptr-17d51em5uqcvks54820.18120a2.ip6.access.telenet.be) (Remote host closed the connection)
17:08:28 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
17:17:19 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
17:17:37 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
17:18:24 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
17:18:47 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
17:19:20 <Joao003> lyxia: Example?
17:24:18 × fbytez quits (~uid@2001:bc8:2117:100::) (Changing host)
17:24:18 fbytez joins (~uid@user/fbytez)
17:29:35 <probie> Look at the example sm sent. One of my previous workplaces had a very lens-focused style that made similar use of <&> to sm and often had code which looked like `res <- foo ^. someLens & doMonadicThing <&> mapResult`.
17:29:46 <ddellacosta> lol I just went looking for some examples of where I use it in one of my projects and realized I'm not sure I like most of my uses of it...but in any case Joao003 here's one place I think it's passable, at least: https://github.com/ddellacosta/automation-service/blob/119d948f3476f25fac6cd756a6e5701a2dc9fd39/src/Service/Daemon.hs#L193-L195
17:30:44 <ddellacosta> I think there I just wanted to keep the liftIO with the nextRunning call, but as others point out it tends to be about making a bit of code feel more natural, which is somewhat subjective
17:30:45 <Joao003> <&> = flip (<$>)? Probably yes
17:30:58 <ddellacosta> yeah I just think of it as reversing (<$>)
17:32:49 <Joao003> ($) = flip (&), so logically (<$>) = flip (<&>)
17:36:11 <sm> is it my imagination or does <$> have different precedence from $. I kept trying to use it and having to switch to `fmap (...) $` instead
17:38:53 <probie> sm: not your imagination at all. ($) is infixr 0 and and (<$>) is infixl 4
17:38:53 <xerox> sm: if you do :info ($) and :info (<$>) in ghci you can see it
17:39:38 <sm> thanks! I realised that afterward but asking humans is helpful sometimes
17:39:52 <probie> (&) and (<&>) are both infixl 1 so are easier to use together
17:40:12 <somerandomnick[m> sm: the flesh is weak, only the machine is eternal
17:40:24 <xerox> glad to be a rubber ducky
17:41:21 <sm> I guess it's for a reason, but a pity that <$> breaks with $ in this aspect
17:41:41 <sm> breaks consistency
17:44:27 <jean-paul[m]> Anyone know of a tool for generating visualizations of type class hierarchies? I would like the reflex-dom hierarchy on my wall.
17:44:40 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
17:45:47 <sm> A little real world context for new haskellers: the above code snippet looks simple now but was hard to discover, especially with HLS broken as usual. It took some time. Easier next time hopefully.
17:55:58 <[exa]> jean-paul[m]: well as the first attempt you can try to throw it to dot and see
17:57:15 <[exa]> jean-paul[m]: here https://www.graphviz.org/docs/layouts/dot/
17:57:21 <jean-paul[m]> I don't know the name of the tool that spits out dot given a pile of haskell
17:58:01 <jean-paul[m]> 🤔
17:58:02 <jean-paul[m]> Do you mean "just type the graph source in yourself"?
17:58:26 <jean-paul[m]> This would likely be a good learning experience but I'm not sure I can bring myself to do it.
17:58:39 <[exa]> hm true that I kinda assumed
17:59:06 <[exa]> afaik you might have luck sourcing the info from haddock
17:59:07 <jean-paul[m]> I dunno how many edges there are but I'm gonna guess upwards of a hundred
17:59:29 <geekosaur> do you want stack dot?
18:00:05 <jean-paul[m]> Ah neat. I probably also want that, but that's not what I meant.
18:00:09 <ddellacosta> ah yeah, I was trying to remember how I did that once at my last job. Must have been https://docs.haskellstack.org/en/stable/dependency_visualization/index.html
18:00:59 <jean-paul[m]> I think want the nodes to be type classes and the edges to be "requires"
18:01:46 <jean-paul[m]> Maybe I should ask ldlework how he made https://raw.githubusercontent.com/dustinlacewell/haskell-typeclass-atlas/master/atlas.png
18:02:00 <ddellacosta> oh yeah this is not the typeclass hierarchy, whoops. But I swear I did that once. I had a convo about the output file with my coworkers
18:05:29 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
18:05:52 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
18:07:27 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
18:07:31 <jean-paul[m]> I guess it looks hand-crafted, https://github.com/dustinlacewell/haskell-typeclass-atlas/blob/master/atlas.plantuml
18:07:42 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
18:10:00 <ddellacosta> jean-paul[m]: aha, I think it must have been this: https://github.com/jonascarpay/calligraphy
18:10:28 <ddellacosta> jean-paul[m]: lots of info here https://jonascarpay.com/posts/2022-04-26-calligraphy-tutorial.html
18:10:48 × barcisz2888 quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
18:11:07 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
18:11:09 barcisz2888 joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
18:11:35 Bocaneri joins (~sauvin@user/Sauvin)
18:11:59 Bocaneri is now known as Guest8107
18:12:28 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
18:13:36 <jean-paul[m]> nice, thanks
18:14:43 × Sauvin quits (~sauvin@user/Sauvin) (Ping timeout: 276 seconds)
18:14:55 <ddellacosta> sure thing, glad I found it again myself!
18:19:49 <[exa]> wow lovely
18:19:52 <[exa]> thanks guys :]
18:20:22 <ddellacosta> yeah I remember it working pretty well
18:21:08 <geekosaur> @where+ call-graph https://github.com/jonascarpay/calligraphy https://jonascarpay.com/posts/2022-04-26-calligraphy-tutorial.html
18:21:08 <lambdabot> Okay.
18:22:32 × jludwig quits (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
18:24:15 <ddellacosta> nice
18:33:16 jade[m] uploaded an image: (215KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/aYSSIpMueCcDQSQhKsNWKYnp/image.png >
18:33:25 <jade[m]> basically a graphics programmer
18:38:04 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
18:39:35 <[exa]> jade[m]: quality metal reminder, thx
18:40:43 <eldritchcookie[m> does the socket library encrypt the messages?
18:40:56 <eldritchcookie[m> is there any network library that does?
18:41:32 <[exa]> eldritchcookie[m: socket does not encrypt anything by default, you want extra protocol over that such as TLS or SSL
18:42:05 <Joao003> Did you know that the S combinator can be defined as \x y z -> uncurry x $ fmap y (z, z)?
18:43:02 <mauke> I prefer ap
18:45:54 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
18:45:54 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
18:45:54 wroathe joins (~wroathe@user/wroathe)
18:45:55 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 276 seconds)
18:46:52 <probie> Joao003: Yes, but I also fail to see what's interesting about that definition (is it the first time you've seen the functor instance for (,)?)
18:47:26 <Joao003> probie: I'm just testing out my knowledge of fmap.
18:48:30 <probie> There's a functor instance on `(,) a`, so fmap applied the function to second element of the tuple, so you end up with `\x y z -> uncurry x (z, y z)` which becomes the canonical definition of S when uncurry in applied
18:48:41 <probie> s/fmap applied/fmap applies/
18:48:50 <probie> s/in applied/is applied/
18:49:54 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
18:50:41 <Joao003> `\x y z -> x z (y z)` is too vanilla for me, so I decided to use fmap.
18:51:37 <mauke> > ap (f :: Expr -> Expr -> Expr) g x
18:51:39 <lambdabot> f x (g x)
18:52:20 <Joao003> :t ap
18:52:21 <lambdabot> Monad m => m (a -> b) -> m a -> m b
18:52:46 <eldritchcookie[m> why is it monad?
18:52:48 <Joao003> Monads are Applicatives too, I guess.
18:53:24 <eldritchcookie[m> i thought it was defined as ap = (<*>)
18:53:25 <Joao003> @src Applicative
18:53:25 <lambdabot> class Functor f => Applicative f where
18:53:25 <lambdabot> pure :: a -> f a
18:53:25 <lambdabot> (<*>) :: f (a -> b) -> f a -> f b
18:53:40 <Joao003> @src ap
18:53:40 <lambdabot> ap = liftM2 id
18:53:45 <Joao003> liftM2 id
18:53:49 <probie> `ap` predates the Applicative typeclass
18:54:34 <Joao003> > ap (+) (*2) 3
18:54:36 <lambdabot> 9
18:54:42 <Joao003> That's S!
18:54:53 × gurkenglas quits (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
18:54:56 × pyook quits (~puke@user/puke) (Remote host closed the connection)
18:54:56 <probie> > (+) <*> (*2) $ 3
18:54:58 <lambdabot> 9
18:54:59 <eldritchcookie[m> sure but isn't it planned to drop return from monad and make it applicative why not do the same thing here?
18:55:18 pyook joins (~puke@user/puke)
18:55:36 <probie> :t return
18:55:37 <lambdabot> Monad m => a -> m a
18:55:43 <Joao003> > uncurry (+) $ fmap (*2) (3, 3)
18:55:45 <lambdabot> 9
18:56:15 <Joao003> @src liftM2
18:56:15 <lambdabot> liftM2 f m1 m2 = do
18:56:15 <lambdabot> x1 <- m1
18:56:15 <lambdabot> x2 <- m2
18:56:15 <lambdabot> return (f x1 x2)
18:56:38 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
18:56:52 <mauke> @. undo src liftM2
18:56:52 <Joao003> Does everyone here agree that the name `return` is misleading?
18:56:52 <lambdabot> liftM2 f m1 m2 = m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2)
18:57:40 <probie> Changing the requirement from `Monad` to `Applicative` breaks "bad" code where the `Monad` and `Applicative` instances differ, but there is real code where that is the case
18:58:07 <probie> which is why that change hasn't exactly been rushed through
18:58:57 <Joao003> :t liftM2 id (+) (*2)
18:58:58 <lambdabot> Num a2 => a2 -> a2
18:59:49 <Joao003> Why are functions monads?
19:00:11 <monochrom> Joao003: I need to share a logic joke with you.
19:00:38 <monochrom> 4 logicians go to a bar. The server asks "so, is it beer for everyone?"
19:00:46 <monochrom> 1st logician says "I don't know"
19:00:50 <monochrom> 2nd logician says "I don't know"
19:00:54 <monochrom> 3rd logician says "I don't know"
19:01:04 × barcisz2888 quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
19:01:05 <monochrom> 4th logician says "therefore yes!"
19:01:11 <monochrom> Explain why. >:)
19:01:21 <probie> Joao003: Because ((->) r) is the reader monad (sans newtype)
19:01:26 <monochrom> And now to answer your question: I don't know.
19:01:45 <jade[m]> Joao003: because we can provide an instance for `(->) r`
19:01:47 <nitrix> monochrom, They would've said "No" if they didn't want one. Otherwise, they had to wait for everyone to answer to conclude that everyone wanted one.
19:01:47 <yushyin> because you can define a lawful instance!
19:02:03 <monochrom> (about the "return" question)
19:02:08 <Joao003> I still don't understand
19:02:12 <monochrom> Yeah nitrix :)
19:02:59 <probie> Oh man, that reminds me of epistemic logic puzzles ("I don't know, I don't know, I don't know, now I know")
19:03:06 <jean-paul[m]> monochrom: it's because the lion eats the zebra right?
19:04:47 <monochrom> It was a cartoon/comic from Spiked Math, if you know that it once existed. It pokes fun on those induction logic puzzles "there is an island of 100 logicians..."
19:04:56 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
19:04:56 <jade[m]> `(->) r` is simply a type which takes values "from" r to something else, so we can write a monad instance... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/cf4058b7b7ecd463c00893fc0d81d9cd7958f7c1>)
19:05:08 <jade[m]> just because it works
19:05:35 chexum joins (~quassel@gateway/tor-sasl/chexum)
19:05:36 <monochrom> Yeah probie exactly. :)
19:06:33 <jade[m]> return is trivially const (simply return = pure from the applicative instance as it should be)
19:06:51 <jade[m]> and from there you can verify all laws apply
19:06:55 <jade[m]> which they do
19:06:58 <jade[m]> @Joao003
19:06:58 <lambdabot> Unknown command, try @list
19:07:12 <jade[m]> shush
19:07:21 tremon joins (~tremon@83.80.159.219)
19:08:13 <Joao003> (->) r is of type a -> r -> a?
19:08:55 <jade[m]> no, `(->) r a` is the same as `r -> a`
19:09:10 <jade[m]> are you familiar about how value level infix functions are desugared?
19:09:34 <monochrom> "(->) r" is already a type.
19:09:48 <jade[m]> `(->) r` is simply `(->)` applied to one argument, namely the left side
19:09:52 <monochrom> Just like you don't ask "Int is of type what?"
19:09:55 <jade[m]> as a splice you could write it as `(r ->)`
19:10:21 <jade[m]> monochrom: of kind `* -> *`, as `Monad` expects
19:10:21 <Joao003> You can't do splices in types IIRC
19:10:40 <monochrom> I don't know what "splice" means.
19:10:56 <jade[m]> I wouldn't know, I just thought it could help
19:11:02 <jade[m]> monochrom: `(+1)` for example
19:11:04 <probie> Probably what the report would refer to as a section
19:11:06 <monochrom> But Haskell totally accepts "instance Foo ((->) r)" as long as Foo is defined accordingly.
19:11:13 <jade[m]> partially applying an infiy operator
19:11:25 <jade[m]> probie: that's the word, my bad
19:11:38 <monochrom> Whatever mental model you have now that doesn't accept "instance Foo ((->) r)", you need to throw it away.
19:12:02 <monochrom> Along the same line, "instance Functor (Either e)" is totally fine.
19:12:46 <monochrom> Indeed, perhaps you figure out "instance Functor (Either e)" and "instance Functor ((->) r)" first.
19:13:51 <monochrom> And perhaps you just need to know that so-called "X -> Y" is syntax sugar for (->) X Y
19:14:08 <monochrom> so now it's really analogous to Either A B.
19:14:29 <monochrom> Actually, ((->) X) Y and (Either A) B.
19:14:39 <jade[m]> think of it as `Monad` expecting a type with one 'parameter' (`* -> *`) like `Maybe`.
19:14:39 <jade[m]> `(->)` expects two 'parameters' (`* -> * -> *`), so partially applying it to a generic `r` gives you a kind `* -> *`
19:15:22 <Joao003> (->) is a typeclass I think
19:15:27 <monochrom> No.
19:15:49 <mauke> (->) is a type constructor (of 2 (type) arguments)
19:15:59 <mauke> Int takes no arguments
19:15:59 <monochrom> It would be like saying "Int and Either are typeclasses". No.
19:16:01 <mauke> Maybe takes one
19:16:30 <Joao003> mauke: So what is the type of (->)???
19:16:46 <jade[m]> it does not have a type
19:16:47 <monochrom> (->) is already a type.
19:16:48 <ncf> :k (->)
19:16:49 <lambdabot> * -> * -> *
19:16:57 <monochrom> Again, you don't ask "what's the type of Int".
19:16:57 <jade[m]> it only has a kind
19:17:36 <Joao003> So why is it not on Hoogle if it's a type!?
19:18:02 <jade[m]> that's more or less a good question, it probably should be
19:18:08 <monochrom> Because Hoogle is neither complete nor final?
19:18:12 <jade[m]> but it doesn't have classic documentation afaik
19:18:21 <ncf> because it's built in, it's not defined anywhere
19:18:27 <jade[m]> yep
19:18:37 <jade[m]> though you can think of it as being
19:18:40 <monochrom> It's doc is in the Haskell2010 Report
19:18:50 <Joao003> (->) is the core of the language, LOL
19:18:54 <jade[m]> it's nothing "special" special
19:20:02 <Joao003> Type constructors are of type (->)
19:20:08 <mauke> no
19:20:11 <jade[m]> no
19:20:24 <jade[m]> `(->)` *is* a type constructor
19:20:32 <mauke> that's a different -> (for now)
19:20:32 <jade[m]> it constructs types from other types
19:21:05 <Joao003> Type operator? (+) is of type (->) Int ((->) Int Int)
19:21:26 <jade[m]> yes, actually
19:21:28 <monochrom> (+) is not a type operator.
19:21:32 <jade[m]> not quite
19:21:35 <jade[m]> take Num
19:21:35 <Joao003> (->) is
19:21:44 <jade[m]> monochrom: I think they mean the right thing
19:22:02 <jade[m]> but plus is not ideal because it itself is part of a typeclass
19:22:03 <jade[m]> so you'd need a constraint
19:22:05 <Joao003> I was just saying that the function (+) is of type (->) Int ((-> Int Int)
19:22:08 <monochrom> No, I think by now no one knows what they mean. Not even themselves.
19:22:09 <Joao003> I was just saying that the function (+) is of type (->) Int ((->) Int Int)
19:22:14 <Joao003> Sorry!
19:22:23 <mauke> that's correct
19:22:24 <jade[m]> monochrom: oh come on, don't be so mean
19:22:28 <jade[m]> they are getting there
19:22:49 <mauke> really, we're just playing with syntax here
19:23:23 <monochrom> No. Firstly, we need to be on the same page. Secondly, that page cannot use the same word for two conflicting things.
19:23:24 <Joao003> WHY CAN TYPES TAKE OTHER TYPES
19:23:37 <Joao003> THIS IS BECOMING TYPE FUNCTIONS
19:23:40 <mauke> :t Left 42 :: Int `Either` String
19:23:41 <lambdabot> Either Int String
19:23:50 <monochrom> Either that, or we need not talk to each other at all.
19:23:51 <jade[m]> because `(->)` is a type-level function from types to types
19:24:09 <mauke> Joao003: that's just what parameterized types are
19:24:16 <probie> Joao003: the "type" of a type is called a kind
19:24:41 <probie> something like Maybe is of kind * -> * (i.e it takes one type, and returns a new type)
19:24:45 <jade[m]> now, do we have something like the "type" of kinds? /j
19:24:53 <mauke> sorta
19:25:05 × Square quits (~Square4@user/square) (Ping timeout: 240 seconds)
19:25:10 <Joao003> Response to a joke? Satisfactory
19:25:37 <eldritchcookie[m> if i rember correctly kinds and types are unified
19:26:05 <eldritchcookie[m> so we have Int :: Type but Type is a Type
19:26:51 <mauke> https://i.imgur.com/JcspoU2.jpg infinite power
19:26:56 <Joao003> Either doesn't need to be it's own type, since we can have a pair of values with a boolean to determine if it's Left or Right
19:27:12 <Joao003> s/it's own/its own/
19:27:21 <jade[m]> what
19:27:22 <eldritchcookie[m> wow
19:27:29 <mauke> a + a = 2 * a
19:27:33 <mauke> that's just basic algebra
19:27:34 <monochrom> "called it".
19:28:26 <jade[m]> without trying to be mean, it sort of feels like we're talking to chatGPT
19:28:57 <Joao003> Similarly for Maybe, we can have a value with a boolean to determine if it's Just or Nothing
19:29:23 <jade[m]> I don't understand what you are trying to say
19:29:24 <mauke> Joao003: how do you deal with Void, which has no values?
19:29:42 <Joao003> Simple: []
19:29:47 <mauke> wat
19:29:51 <jade[m]> what
19:29:56 <mauke> [] is not of type Void
19:30:03 <Joao003> Wait
19:30:10 <Joao003> Void needs to be a builtin
19:30:16 <jade[m]> no
19:30:19 <mauke> Nothing :: Maybe Void -- is ok
19:30:23 <jade[m]> data Void
19:30:25 <jade[m]> right there
19:30:26 <mauke> but you can't have (False, ???)
19:31:07 <jade[m]> bottom ;)
19:31:23 <mauke> or in Haskell 98: newtype Void = MkVoid Void
19:31:24 <jade[m]> something something inhabitant of every type something something
19:31:54 <jade[m]> mauke: wait, that's hilarious
19:32:14 <jade[m]> but can you not have MkVoid undefined just fine?
19:32:17 <Joao003> ... Why do we have tuples of three, tuples of four, and etc? Can't we just use lists?
19:32:31 pavonia joins (~user@user/siracusa)
19:32:41 <geekosaur> you can't (easily) have a list whose items have different types
19:32:41 <jade[m]> they are statically sized and also every element is uniquely typed
19:33:01 <Joao003> Ok, pairs of pairs of pairs of pairs...
19:33:12 <jade[m]> jade[m]: this suspicious is growing ever stronger
19:33:13 <mauke> jade[m]: fix MkVoid == undefined
19:33:17 <geekosaur> some of the other haskell-like languages do that
19:33:22 <jade[m]> s/suspicious/suspicion/, s/is//
19:35:03 <monochrom> I prefer "newtype D = MkD (D -> D)" :)
19:35:05 <Joao003> Wait... Can we make a Turing-Complete language just from () and (,)?
19:35:11 <Joao003> And functions?
19:35:37 <jade[m]> the lambda calculus is turning complete
19:36:18 <Joao003> How many types can we represent just using () and (,)?
19:36:41 <jade[m]> infinitely many, given an infinite amount of input types
19:36:57 <Joao003> True is ((),()) and False is ((),((),()))
19:37:03 <geekosaur> the original turing tarpit 🙃
19:37:08 <jade[m]> what are you doing
19:37:11 <jade[m]> oh, I see
19:37:28 <jade[m]> I don't get what you are doing
19:37:30 <Joao003> Trying to make functioning types from only () and (,)
19:37:46 <jade[m]> but why
19:37:52 <Joao003> For fun :D
19:37:52 <eldritchcookie[m> True isn't a type
19:37:58 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
19:38:14 <Joao003> eldritchcookie[m: Bool is, that's why I made True AND False
19:38:27 <jade[m]> what
19:38:28 <geekosaur> but those are different types
19:38:46 <geekosaur> this is not Smalltalk
19:39:28 <Joao003> Ints could be represented by a sign then bits
19:40:00 <geekosaur> being the pragmatic type, I have to ask: why?
19:41:11 <eldritchcookie[m> which library and cryptographic algorithm do you guys recommend for confirming identity?
19:41:20 <geekosaur> I'd just end up writing a preprocessor to turn something sane-ish into this language, kinda like I did with MS-BASIC back in the day
19:41:24 <jade[m]> geekosaur: to be fair, that was probably what people asked when Alonzo Church created the lambda calculus
19:41:35 <monochrom> ssh and openssl :)
19:41:48 gurkenglas joins (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de)
19:41:59 <monochrom> OK, I just mean I use them for myself. I don't know what to recommend.
19:42:28 <monochrom> But I'm going to go out on a limb and say this unpopular opinion: cryptonite etc are fine.
19:42:45 <monochrom> Yes yes yes vulnerable to timing attacks etc
19:43:15 <monochrom> Will you users actually have a chance to try timing attacks?
19:43:22 <geekosaur> tbh we don't know that it is, we just also don't know that it isn't
19:43:24 <somerandomnick[m> Networking and Cryptographic Library by Bernstein
19:43:51 <somerandomnick[m> marshal into C if necessary.. best crypto lib ever NaCl
19:43:52 <eldritchcookie[m> i am more worried that i will have to change the implementation due to quantum computers in the not so distant future
19:44:46 <geekosaur> and I've always wondered if use on a vps would be safe-ish because of herd immunity
19:44:55 <somerandomnick[m> https://pqcrypto.org/
19:45:23 <somerandomnick[m> well then all discrete log based is dead
19:45:46 <geekosaur> (that is, how does the attacker ensure that they're getting your side channels?)
19:45:55 barcisz joins (~barcisz@79.191.75.215.ipv4.supernova.orange.pl)
19:46:01 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
19:46:52 <monochrom> Yeah. It's why I think that scaremongering about timing attacks is getting old.
19:46:59 Guest4277 joins (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de)
19:49:21 <monochrom> Well I guess I should be grateful for the progress implied. E.g., we no longer scaremonger about low hanging fruits like SQL injection.
19:50:24 davean looks at monochrom and wonders if there is still remote crashes in cryptonite
19:50:59 nate1 joins (~nate@98.45.169.16)
19:51:01 <[exa]> lol.
19:51:42 <monochrom> Well if it crashes, that's a critique I can get on board.
19:51:50 <davean> also, some of its timing attacks are REALLY easy - like its encoding being expodential in time
19:52:12 <monochrom> OK fair if it's that bad.
19:52:34 <davean> Not sure how you'd exploit that one mind you since thats the base64 IIRC
19:52:41 <davean> but like, we're talking REALLY BAD
19:53:00 <davean> not like as bad as you tihnk code might be, but like worse than you thought someone could write that code
19:53:43 <davean> yandere: Its the base64 in memory, right?
19:55:44 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 248 seconds)
19:55:46 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
19:57:47 Sciencentistguy0 joins (~sciencent@hacksoc/ordinary-member)
19:58:26 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net)
20:00:01 × Sciencentistguy quits (~sciencent@hacksoc/ordinary-member) (Ping timeout: 276 seconds)
20:00:01 Sciencentistguy0 is now known as Sciencentistguy
20:04:40 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-9891-d6f4-c1fa-3e8e.rev.sfr.net) (Remote host closed the connection)
20:08:10 alexherbo2 joins (~alexherbo@211.190.65.81.rev.sfr.net)
20:08:45 × alexherbo2 quits (~alexherbo@211.190.65.81.rev.sfr.net) (Remote host closed the connection)
20:08:50 jpds1 joins (~jpds@gateway/tor-sasl/jpds)
20:08:56 × jpds quits (~jpds@gateway/tor-sasl/jpds) (Ping timeout: 240 seconds)
20:09:04 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net)
20:13:45 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net) (Remote host closed the connection)
20:14:07 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net)
20:19:14 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 246 seconds)
20:20:18 × vgtw quits (~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
20:23:11 × alexherbo2 quits (~alexherbo@2a02-842a-8180-4601-85e1-23ae-ea70-6ae4.rev.sfr.net) (Remote host closed the connection)
20:26:20 <yandere> I don't even benchmark against vincent's base64 anymore because i couldn't see the pixels for the benchmarks of the other b64 libraries
20:26:27 <yandere> or any of his stuff, really
20:27:06 <yandere> I'm begging the community to please rewrite most of his libraries
20:27:58 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
20:28:20 <somerandomnick[m> is that the guy who wrote basement
20:28:31 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Quit: _ht)
20:32:03 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
20:34:47 jpds1 is now known as jpds
20:37:05 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
20:38:34 Bocaneri joins (~sauvin@user/Sauvin)
20:38:46 zeenk joins (~zeenk@2a02:2f04:a20f:5200::7fe)
20:38:58 Bocaneri is now known as Guest4154
20:39:36 <davean> yandere: may favorite part is when someone accesses primitives explicitely marked as unsafe and doesn't follow the invariants!
20:40:45 × Guest8107 quits (~sauvin@user/Sauvin) (Ping timeout: 240 seconds)
20:41:36 <davean> On remote data!
20:45:23 <somerandomnick[m> no. the type system was supposed to save me. if your choice is to rewrite cryptographic code in haskell, then why not introduce smth like a SafeInt where comparison, addition, etc. are all constant time
20:45:27 × Sgeo_ quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
20:46:17 <davean> somerandomnick[m: Huh? How does that apply? Who said we didn't already have that?
20:46:33 <somerandomnick[m> OR marshal into C then you get bug fixes from "upstream"
20:47:56 <somerandomnick[m> SafeInt exists?
20:48:43 <davean> Well the properties you described describe Int
20:49:50 <somerandomnick[m> oh snap
20:49:50 heraldo joins (~heraldo@user/heraldo)
20:50:06 <somerandomnick[m> Int in GHC is timing-resistant?
20:50:18 <davean> Inherently ...
20:50:33 <jade[m]> isn't it in all languages?
20:50:34 <davean> as are Int32, Int64, etc for the obvious reasons
20:50:35 rekahsoft joins (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca)
20:50:48 <davean> jade[m]: Almost. Some don't HAVE an "Int" exactly, like python but almost all
20:50:56 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Remote host closed the connection)
20:50:58 jludwig joins (~justin@li657-110.members.linode.com)
20:51:05 <jade[m]> I mean they all use the same mechanism basically
20:51:10 <davean> exactly
20:51:16 <jean-paul[m]> IntX being constant time doesn't magically save you.
20:51:16 <somerandomnick[m> is it because compairing two machine words in some CPU is constant?
20:51:18 <jade[m]> behind the scenes, in terms of cpu addition and shit
20:51:30 <davean> Like python is an exception but there are only a few exceptions - JS is also an exception
20:51:31 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
20:51:33 Guest4154 is now known as Sauvin
20:51:36 <somerandomnick[m> because I dont expect addition in any CPU to be constant time
20:51:44 <davean> somerandomnick[m: It absolutely is
20:51:45 <geekosaur> jade[m], you haven't seen PHP, have you?
20:51:48 <somerandomnick[m> but that is also a cool idea
20:52:02 <somerandomnick[m> davean: I think we disagree here
20:52:07 <davean> somerandomnick[m: Infact, it so much is that a lot of CPUs run their addition at 2x clock speed
20:52:23 <jade[m]> geekosaur: luckily not, I fear I'm too young for that
20:52:28 <davean> No, Int addition on a CPU defiantely is fixed time
20:52:34 Sgeo joins (~Sgeo@user/sgeo)
20:52:41 <geekosaur> and has been since early CPUs
20:52:50 <geekosaur> unless you count very early bit-slice cpus
20:52:54 <davean> You would have to do a LOT of work for it not to be
20:52:58 <jean-paul[m]> Your application logic on top of Int addition to handle overflow is what's not constant time.
20:53:16 <jean-paul[m]> Your naive ByteString comparisons are what's not constant time.
20:53:31 <jade[m]> davean: for the same sized integers, right? it'll always be an and with a carry bit xor
20:53:39 <jean-paul[m]> All of your early-terminating-depending-on-input algorithms are what's not constant time.
20:53:57 <davean> jean-paul[m]: exactly.
20:54:09 <davean> Just your standard triangle cascade
20:54:45 <davean> JS isn't constant time because it uses Double, Double is VERY different
20:55:08 <davean> Python isn't because A) it does a lot of sharing tricks, B) it falls through to an Interger (IIRC)
20:55:15 <jade[m]> IEEE754 :3
20:55:48 <davean> These are the basics though
20:59:58 × elkcl quits (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru) (Remote host closed the connection)
21:01:03 × kimiamania quits (~65804703@user/kimiamania) (Quit: PegeLinux)
21:01:07 × mei quits (~mei@user/mei) (Ping timeout: 276 seconds)
21:01:23 kimiamania joins (~65804703@user/kimiamania)
21:02:06 <somerandomnick[m> davean: I found this interesting post (yes I googled our disagreement)
21:02:09 <somerandomnick[m> https://lwn.net/ml/linux-kernel/20230125012801.362496-1-ebiggers@kernel.org/
21:02:16 <somerandomnick[m> he claims:
21:02:23 <somerandomnick[m> According to documentation that Intel published recently [1], Intel CPUs... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/828995dd0c84901bef1f0a9f23e370e1679c65e3>)
21:03:15 <geekosaur> bleh. I recall hearing about that
21:03:26 elkcl joins (~elkcl@broadband-37-110-27-252.ip.moscow.rt.ru)
21:03:34 <geekosaur> I'm not sure you can do anything with it without full details of the microarchitecture though
21:03:49 <geekosaur> which Intel protects heavily, it's trade secret if nothing else
21:04:09 × jludwig quits (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
21:13:57 <somerandomnick[m> you could run more additions. on pseudo random numbers. The Num instance of SafeInt would run those under the hood. then it is more noisy
21:14:58 <somerandomnick[m> some numbers may be more noisy then others..
21:17:52 × bontaq quits (~user@ool-45779b84.dyn.optonline.net) (Remote host closed the connection)
21:22:45 × barcisz quits (~barcisz@79.191.75.215.ipv4.supernova.orange.pl) (Quit: Connection closed)
21:26:44 mei joins (~mei@user/mei)
21:29:20 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
21:29:50 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
21:30:35 × michalz quits (~michalz@185.246.207.222) (Remote host closed the connection)
21:30:40 × mncheckm quits (~mncheck@193.224.205.254) (Ping timeout: 248 seconds)
21:43:52 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
21:45:59 × Joao003 quits (~Joao003@2804:840:8309:0:60f9:6293:872c:15aa) (Quit: Leaving)
21:47:36 <somerandomnick[m> stupid idea, I shall find the time safest instructions in arm64 and amd64 and build Num and Cmp operations on top of those primitives. Or fail loudly
21:51:22 <geekosaur> which you have to do on x86_64 vfor multiple intel and amd chipsets, and on arm for a shitload of chipsets
21:52:54 <somerandomnick[m> i forgor 💀
21:53:22 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Quit: Lost terminal)
22:05:44 <hippoid> hello, i've got this haskell/turtle/stack script i'm running in a nix shell: https://termbin.com/vywk. i've don't `chmod u+x` on it, and every time i run it i get this warning: https://termbin.com/nkmw
22:06:13 <hippoid> about a missed-extra-shared-lib. should this warning concern me?
22:06:27 <hippoid> and how I can turn it off?
22:10:45 × mei quits (~mei@user/mei) (Remote host closed the connection)
22:13:07 mei joins (~mei@user/mei)
22:15:29 nattiestnate joins (~nate@202.138.250.55)
22:16:48 × nattiestnate quits (~nate@202.138.250.55) (Client Quit)
22:17:10 nattiestnate joins (~nate@202.138.250.62)
22:17:40 × merijn quits (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl) (Ping timeout: 260 seconds)
22:19:38 × rekahsoft quits (~rekahsoft@bras-base-orllon1122w-grc-04-174-88-193-177.dsl.bell.ca) (Ping timeout: 246 seconds)
22:22:25 talismanick joins (~user@campus-042-001.ucdavis.edu)
22:23:08 × mei quits (~mei@user/mei) (Ping timeout: 246 seconds)
22:26:33 × mc47 quits (~mc47@xmonad/TheMC47) (Remote host closed the connection)
22:31:32 × acidjnk_new quits (~acidjnk@p200300d6e715c468b4bf77e5a0595f20.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
22:36:55 justsomeguy joins (~justsomeg@user/justsomeguy)
22:37:02 × vulpine quits (xfnw@tilde.team) (Quit: Connection reset by purr)
22:38:55 vulpine joins (xfnw@tilde.team)
22:40:41 mei joins (~mei@user/mei)
22:40:45 × gurkenglas quits (~gurkengla@dynamic-046-114-180-206.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
22:42:56 gurkenglas joins (~gurkengla@dynamic-089-204-130-021.89.204.130.pool.telefonica.de)
22:43:33 <sm> search the net for that message maybe
22:44:42 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
22:52:44 Me-me joins (~Me-me@user/me-me)
22:58:37 bitdex joins (~bitdex@gateway/tor-sasl/bitdex)
23:00:22 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 252 seconds)
23:09:50 vgtw joins (~vgtw@user/vgtw)
23:19:32 × Guest4277 quits (~Guest42@ip5f5be7a8.dynamic.kabel-deutschland.de) (Quit: Connection closed)
23:25:59 × heraldo quits (~heraldo@user/heraldo) (Quit: heraldo)
23:27:35 merijn joins (~merijn@c-001-001-006.client.esciencecenter.eduvpn.nl)
23:27:40 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Ping timeout: 260 seconds)
23:29:40 kritzefitz joins (~kritzefit@debian/kritzefitz)
23:33:34 dsrt^ joins (~dsrt@c-76-105-96-13.hsd1.ga.comcast.net)
23:39:09 fun-safe-math joins (~fun-safe-@c-24-22-94-205.hsd1.or.comcast.net)
23:40:15 mauke_ joins (~mauke@user/mauke)
23:41:45 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
23:41:45 mauke_ is now known as mauke
23:42:59 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:52:29 nate1 joins (~nate@98.45.169.16)
23:57:17 × nate1 quits (~nate@98.45.169.16) (Ping timeout: 246 seconds)

All times are in UTC on 2023-04-28.