Home liberachat/#haskell: Logs Calendar

Logs on 2023-05-27 (liberachat/#haskell)

00:00:35 bratwurst joins (~dfadsva@2604:3d09:207f:f650::9c24)
00:02:45 freeside joins (~mengwong@103.252.202.189)
00:02:59 × califax quits (~califax@user/califx) (Remote host closed the connection)
00:04:00 <bratwurst> so i'm looking at a function from v4l2 called withFrame. it takes a function '(Ptr a -> Int -> IO b)'
00:04:07 califax joins (~califax@user/califx)
00:04:16 <bratwurst> my question is what would i use for a?
00:04:32 × bitdex quits (~bitdex@gateway/tor-sasl/bitdex) (Quit: = "")
00:04:55 <bratwurst> i don't know where to find examples of people using the v4l2 library so I'm confused as to how things work here
00:05:43 <bratwurst> it calls a function v4l2_read which has type 'CInt -> Ptr a -> CSize -> IO CInt'
00:06:07 <bratwurst> so i would use a c-like type?
00:06:45 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
00:13:35 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
00:19:20 pavonia joins (~user@user/siracusa)
00:19:36 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
00:19:36 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
00:19:36 wroathe joins (~wroathe@user/wroathe)
00:23:08 kriity joins (~kriity@c-76-155-235-153.hsd1.co.comcast.net)
00:28:06 × zeenk quits (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
00:28:30 <c_wraith> bratwurst: that looks like it'd be a void* in C
00:29:35 × abrantesasf quits (~abrantesa@177.137.232.92) (Ping timeout: 240 seconds)
00:30:00 abrantesasf joins (~abrantesa@177.137.232.90)
00:31:57 <c_wraith> bratwurst: looking at the source... I have no idea why that's unbounded. It looks like it expects you to know what the memory layout for that ImageFormat is, and use it correctly. That's a basically untyped interface. Not very haskell-like at all.
00:32:13 freeside joins (~mengwong@103.252.202.189)
00:33:27 dtman34 joins (~dtman34@2601:447:d000:93c9:e022:89b6:5591:cbde)
00:34:09 × kriity quits (~kriity@c-76-155-235-153.hsd1.co.comcast.net) (Quit: Client closed)
00:36:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
00:37:01 <c_wraith> bratwurst: so the `Ptr a' value is a buffer containing the captured image data. The Int is the size of the buffer. You can treat the buffer as any type you like, but things like Word8 seem to be the most primitive interface
00:38:40 Nosrep joins (~Nosrep@user/nosrep)
00:39:35 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
00:40:34 euandreh joins (~Thunderbi@189.6.18.7)
00:46:46 <bratwurst> so i have to figure out what format the buffer will have and go from there. ok thank you that helps
00:53:21 freeside joins (~mengwong@103.252.202.189)
00:57:49 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
01:00:16 × jero98772 quits (~jero98772@2800:484:1d84:9000:8822:84bd:a4f4:947f) (Ping timeout: 248 seconds)
01:10:21 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
01:14:05 jero98772 joins (~jero98772@190.158.28.80)
01:16:25 freeside joins (~mengwong@103.252.202.189)
01:16:32 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
01:18:31 × abrantesasf quits (~abrantesa@177.137.232.90) (Remote host closed the connection)
01:21:35 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
01:27:07 use-value1 joins (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342)
01:27:42 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:2dc5:45f3:ebf7:b99a) (Ping timeout: 265 seconds)
01:27:42 use-value1 is now known as use-value
01:29:50 freeside joins (~mengwong@103.252.202.189)
01:30:23 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
01:32:10 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
01:34:01 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
01:34:56 × stiell quits (~stiell@gateway/tor-sasl/stiell) (Ping timeout: 240 seconds)
01:35:43 koz_ joins (~koz@121.99.240.58)
01:35:44 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
01:35:44 × chexum quits (~quassel@gateway/tor-sasl/chexum) (Ping timeout: 240 seconds)
01:36:07 Cheery_ joins (~cheery@server-239-7.tentacle.cloud)
01:36:09 stilgart joins (~Christoph@chezlefab.net)
01:36:16 barrucad1 joins (~barrucadu@carcosa.barrucadu.co.uk)
01:36:19 chexum joins (~quassel@gateway/tor-sasl/chexum)
01:36:19 leeb- joins (~leeb@tk2-243-31079.vs.sakura.ne.jp)
01:36:30 dfordvm joins (~dfordivam@tk2-219-19469.vs.sakura.ne.jp)
01:37:19 int-e_ joins (~noone@int-e.eu)
01:37:27 bah_ joins (~bah@l1.tel)
01:37:35 × int-e quits (~noone@int-e.eu) (Killed (NickServ (GHOST command used by int-e_)))
01:37:45 int-e_ is now known as int-e
01:37:55 Hecate_ joins (~mariposa@user/hecate)
01:37:57 alpm joins (~alp@user/alp)
01:38:40 × mcglk quits (~mcglk@131.191.19.145) (Ping timeout: 248 seconds)
01:39:27 ec joins (~ec@gateway/tor-sasl/ec)
01:40:53 mcglk joins (~mcglk@131.191.19.145)
01:42:58 × lav quits (~pi@wikipedia/maddy-from-celeste) (*.net *.split)
01:42:58 × canta1 quits (~canta@cvm0.d5k.one) (*.net *.split)
01:42:58 × dfordivam1 quits (~dfordivam@tk2-219-19469.vs.sakura.ne.jp) (*.net *.split)
01:42:58 × ridcully_ quits (~ridcully@p57b52f2c.dip0.t-ipconnect.de) (*.net *.split)
01:42:58 × barrucadu quits (~barrucadu@carcosa.barrucadu.co.uk) (*.net *.split)
01:42:58 × meejah quits (~meejah@rutas.meejah.ca) (*.net *.split)
01:42:58 × adium quits (adium@user/adium) (*.net *.split)
01:42:58 × heath1 quits (~heath@user/heath) (*.net *.split)
01:42:58 × noctux1 quits (vBYKluURgE@karif.server-speed.net) (*.net *.split)
01:42:58 × Cheery quits (~cheery@server-239-7.tentacle.cloud) (*.net *.split)
01:42:58 × stilgart_ quits (~Christoph@chezlefab.net) (*.net *.split)
01:42:58 × lyxia quits (~lyxia@poisson.chat) (*.net *.split)
01:42:58 × koz quits (~koz@121.99.240.58) (*.net *.split)
01:42:58 × andjjj23 quits (~irc@107.170.228.47) (*.net *.split)
01:42:58 × mjacob quits (~mjacob@adrastea.uberspace.de) (*.net *.split)
01:42:58 × xerox quits (~edi@user/edi) (*.net *.split)
01:42:58 × kosmikus quits (~kosmikus@nullzig.kosmikus.org) (*.net *.split)
01:42:58 × user___ quits (~user@162.255.84.96) (*.net *.split)
01:42:58 × bcoppens quits (~bartcopp@vpn2.bartcoppens.be) (*.net *.split)
01:42:58 × alp quits (~alp@user/alp) (*.net *.split)
01:42:58 × opqdonut quits (opqdonut@pseudo.fixme.fi) (*.net *.split)
01:42:58 × bah quits (~bah@l1.tel) (*.net *.split)
01:42:58 × leeb quits (~leeb@tk2-243-31079.vs.sakura.ne.jp) (*.net *.split)
01:42:58 × bsima quits (~bsima@143.198.118.179) (*.net *.split)
01:42:58 × Hecate quits (~mariposa@user/hecate) (*.net *.split)
01:42:59 leeb- is now known as leeb
01:44:28 × bratwurst quits (~dfadsva@2604:3d09:207f:f650::9c24) (Ping timeout: 240 seconds)
01:47:32 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Ping timeout: 246 seconds)
01:48:04 stiell joins (~stiell@gateway/tor-sasl/stiell)
01:48:14 lav joins (~pi@wikipedia/maddy-from-celeste)
01:48:14 canta1 joins (~canta@cvm0.d5k.one)
01:48:14 ridcully_ joins (~ridcully@p57b52f2c.dip0.t-ipconnect.de)
01:48:14 meejah joins (~meejah@rutas.meejah.ca)
01:48:14 adium joins (adium@user/adium)
01:48:14 heath1 joins (~heath@user/heath)
01:48:14 noctux1 joins (vBYKluURgE@karif.server-speed.net)
01:48:14 lyxia joins (~lyxia@poisson.chat)
01:48:14 mjacob joins (~mjacob@adrastea.uberspace.de)
01:48:14 xerox joins (~edi@user/edi)
01:48:14 kosmikus joins (~kosmikus@nullzig.kosmikus.org)
01:48:14 user___ joins (~user@162.255.84.96)
01:48:14 bcoppens joins (~bartcopp@vpn2.bartcoppens.be)
01:48:14 opqdonut joins (opqdonut@pseudo.fixme.fi)
01:48:15 bsima joins (~bsima@143.198.118.179)
01:49:08 andjjj23 joins (~irc@107.170.228.47)
01:49:10 rodental joins (~rodental@38.146.5.222)
01:50:55 × vandita quits (~vandit@78-131-74-81.pool.digikabel.hu) (Ping timeout: 268 seconds)
01:51:56 × jludwig quits (~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
01:52:23 vandita joins (~vandit@94-21-48-62.pool.digikabel.hu)
01:52:55 jludwig joins (~justin@li657-110.members.linode.com)
01:56:23 × xff0x quits (~xff0x@ai098135.d.east.v6connect.net) (Ping timeout: 240 seconds)
01:58:33 xff0x joins (~xff0x@178.255.149.135)
02:05:08 × td_ quits (~td@i53870934.versanet.de) (Ping timeout: 240 seconds)
02:06:03 × jero98772 quits (~jero98772@190.158.28.80) (Read error: Connection reset by peer)
02:07:09 td_ joins (~td@i5387090C.versanet.de)
02:15:07 Guest56 joins (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716)
02:17:04 × xff0x quits (~xff0x@178.255.149.135) (Ping timeout: 248 seconds)
02:18:59 xff0x joins (~xff0x@2405:6580:b080:900:7537:a7d1:a60d:3e58)
02:20:55 × jjb quits (~jjb@user/jjb) (Remote host closed the connection)
02:23:44 jero98772 joins (~jero98772@190.158.28.80)
02:26:04 freeside joins (~mengwong@103.252.202.189)
02:30:47 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 264 seconds)
02:41:50 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
02:43:20 freeside joins (~mengwong@103.252.202.189)
02:45:20 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
02:45:48 ec joins (~ec@gateway/tor-sasl/ec)
02:47:28 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
02:50:08 × FinnElija quits (~finn_elij@user/finn-elija/x-0085643) (Ping timeout: 240 seconds)
02:52:05 × Guest56 quits (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) (Quit: Client closed)
02:52:30 FinnElija joins (~finn_elij@user/finn-elija/x-0085643)
02:54:51 <probie> If I export a foreign C call from a module, can I import that same foreign call from a different module? (not at a machine where I can test right now, but perhaps someone knows off the top of their head)
02:58:42 <EvanR> if you couldn't import something, what is the point of exporting it
03:03:24 × td_ quits (~td@i5387090C.versanet.de) (Ping timeout: 265 seconds)
03:04:33 × phma quits (phma@2001:5b0:2172:dd28:7cbf:d1f6:57c5:3699) (Read error: Connection reset by peer)
03:04:58 phma joins (~phma@host-67-44-208-181.hnremote.net)
03:05:13 td_ joins (~td@i53870921.versanet.de)
03:07:09 <int-e> phma: Yes, you can.
03:11:09 × Benzi-Junior quits (~BenziJuni@88-149-64-86.du.xdsl.is) (Quit: ZNC 1.8.2 - https://znc.in)
03:16:17 <int-e> probie: Err, that was for you. Note that it'll be rather expensive... calling the exported/imported function will spawn a new (bound) Haskell thread.
03:19:48 × [itchyjunk] quits (~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 240 seconds)
03:20:05 × jero98772 quits (~jero98772@190.158.28.80) (Ping timeout: 240 seconds)
03:20:46 <int-e> probie: In fact, `forkOS` is essentially implemented through this kind of exporting and importing the same Haskell function: https://hackage.haskell.org/package/base-4.18.0.0/docs/src/Control.Concurrent.html#line-308 ff.
03:23:34 <int-e> Err, no? It's `runInBoundThread` that does that, hmm.
03:25:00 <int-e> So it would be true if `forkOS` were implemented in terms of `forkIO` and `runInBoundThread` but I guess that isn't done because it leaves an extra idle Haskell thread around.
03:27:36 <phma> int-e: I can what?
03:28:28 <int-e> phma: tab completion failed me
03:29:00 <probie> I think it may be unneeded for what I want to do. I want to be able to "call" a pinned ByteArray#.
03:30:39 <probie> I can probably just use byteArrayContents# and then wrap it in a FunPtr, along with adding the relevant foreign import ccall "dynamic" boilerplate
03:31:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
03:32:05 <int-e> Yeah that should work; I don't see the export/import dance helping you with that.
03:32:27 jero98772 joins (~jero98772@190.158.28.80)
03:33:14 <int-e> But as the `runInBoundThread` thing shows, it is an interesting little gadget nonetheless.
03:35:26 <int-e> Related... hs-plugins needs similar trickery.
03:41:35 × xff0x quits (~xff0x@2405:6580:b080:900:7537:a7d1:a60d:3e58) (Ping timeout: 264 seconds)
03:41:59 xff0x joins (~xff0x@ai098135.d.east.v6connect.net)
03:42:14 freeside joins (~mengwong@103.252.202.189)
03:46:25 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
03:50:39 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
03:54:25 nate2 joins (~nate@98.45.169.16)
03:54:38 × RedNifre quits (~RedNifre@dslb-088-068-116-161.088.068.pools.vodafone-ip.de) (Ping timeout: 265 seconds)
03:54:48 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
03:56:50 × rf quits (~rf@2605:59c8:179c:f610:c3f5:9614:a40d:c16e) (Remote host closed the connection)
03:59:09 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 256 seconds)
04:07:28 RedNifre joins (~RedNifre@dslb-002-206-121-134.002.206.pools.vodafone-ip.de)
04:14:48 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 250 seconds)
04:28:05 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
04:29:59 × jero98772 quits (~jero98772@190.158.28.80) (Ping timeout: 240 seconds)
04:30:48 Lycurgus joins (~juan@user/Lycurgus)
04:37:20 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 248 seconds)
04:38:06 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
04:40:20 × opqdonut quits (opqdonut@pseudo.fixme.fi) (Ping timeout: 260 seconds)
04:40:44 opqdonut joins (opqdonut@pseudo.fixme.fi)
04:40:46 wiosna joins (~karangura@c-73-93-95-154.hsd1.ca.comcast.net)
04:44:08 jero98772 joins (~jero98772@190.158.28.80)
04:47:17 × shriekingnoise_ quits (~shrieking@186.137.175.87) (Ping timeout: 268 seconds)
04:47:58 trev joins (~trev@user/trev)
04:48:10 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 250 seconds)
04:52:58 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
05:00:46 × jakzale_ quits (uid499518@user/jakzale) (Quit: Connection closed for inactivity)
05:02:41 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
05:07:09 × vandita quits (~vandit@94-21-48-62.pool.digikabel.hu) (Ping timeout: 256 seconds)
05:09:01 vandita joins (~vandit@176-241-45-188.pool.digikabel.hu)
05:13:01 × mei quits (~mei@user/mei) (Quit: mei)
05:16:30 freeside joins (~mengwong@103.252.202.189)
05:17:57 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
05:18:04 takuan joins (~takuan@178-116-218-225.access.telenet.be)
05:19:48 × shapr quits (~user@2600:1700:c640:3100:55f:2555:501d:44ae) (Ping timeout: 240 seconds)
05:21:12 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
05:25:01 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 240 seconds)
05:36:08 <sm> I see I used https://hackage.haskell.org/package/base-prelude once, trying to reduce import boilerplate. It tries to provide as much of base as possible with a single import (plus a line disabling Prelude). I have questions two:
05:36:08 <sm> 1. is there a compile or run time performance issue with having so many things imported to namespace ?
05:36:08 <sm> 2. relude seems more popular, but doesn't seem to provide the low-import-noise benefit, as it is divided into many modules - true ?
05:36:45 <sm> 3. any other prelude you'd recommend for reducing import noise ?
05:39:59 × jero98772 quits (~jero98772@190.158.28.80) (Ping timeout: 240 seconds)
05:43:40 freeside joins (~mengwong@103.252.202.189)
05:47:34 × wiosna quits (~karangura@c-73-93-95-154.hsd1.ca.comcast.net) (Quit: leaving)
05:47:45 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
05:48:08 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
05:49:10 ec joins (~ec@gateway/tor-sasl/ec)
05:52:17 alecs joins (~alecs@151.82.2.124)
05:53:59 jero98772 joins (~jero98772@190.158.28.80)
06:03:19 <probie> At least in older versions of GHC, I used to get better code size when I explicitly imported only the prelude functions/types I needed. I also vaguely remember there being a way to make GHC split out each function into a separate object file which mitigates this (at the cost of higher compile time)
06:06:06 kupi joins (uid212005@id-212005.hampstead.irccloud.com)
06:12:39 jinsun__ joins (~jinsun@user/jinsun)
06:12:39 jinsun is now known as Guest1374
06:12:39 × Guest1374 quits (~jinsun@user/jinsun) (Killed (molybdenum.libera.chat (Nickname regained by services)))
06:12:39 jinsun__ is now known as jinsun
06:12:49 <geekosaur> -fsplit-objs is deprecated, because -fsplit-sections is better and faster
06:13:02 <geekosaur> (on platforms which support it)
06:13:19 <geekosaur> sorry, no -f, just -split-{objs,sections}
06:19:29 <sm> I converted this script from base-prelude to relude. relude appears to provide more, since it has a dozen deps rather than just base, but in fact it seems to provide less of the basic stuff.
06:19:29 <sm> This: import "base-prelude" BasePrelude
06:19:36 <sm> became this:... (full message at <https://libera.ems.host/_matrix/media/v3/download/libera.chat/d1469b8128ecf6933b644d4494874cb871dd329e>)
06:23:58 <sm> it encouraged me to replace locale-dependent readFile' with a more explicit decodeUtf8 <$> readFileBS.. which I guess is positive
06:24:44 <sm> also forced me to add a bunch of toString ... toText if I want to work with Strings
06:27:05 <sm> maybe you need base-prelude + relude if you want a really batteries-included setup
06:34:06 falafel joins (~falafel@2603-8000-d700-115c-375f-6e24-bf15-2487.res6.spectrum.com)
06:36:28 × alecs quits (~alecs@151.82.2.124) (Ping timeout: 240 seconds)
06:38:36 alecs joins (~alecs@151.36.175.147)
06:40:56 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:41:54 ec joins (~ec@gateway/tor-sasl/ec)
06:42:21 mei joins (~mei@user/mei)
06:47:19 Lycurgus joins (~juan@user/Lycurgus)
06:47:23 acidjnk joins (~acidjnk@p200300d6e7072f96316225cd2ab6c884.dip0.t-ipconnect.de)
06:50:01 × jero98772 quits (~jero98772@190.158.28.80) (Ping timeout: 240 seconds)
06:51:34 × mcglk quits (~mcglk@131.191.19.145) (Read error: Connection reset by peer)
06:52:51 freeside joins (~mengwong@103.252.202.189)
06:53:43 machinedgod joins (~machinedg@46.188.225.66)
06:54:09 mcglk joins (~mcglk@131.191.19.145)
06:54:43 × kluk quits (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com) (Remote host closed the connection)
06:56:32 × ec quits (~ec@gateway/tor-sasl/ec) (Ping timeout: 240 seconds)
06:57:59 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
06:58:41 ec joins (~ec@gateway/tor-sasl/ec)
07:01:41 freeside joins (~mengwong@103.252.202.189)
07:02:15 jero98772 joins (~jero98772@190.158.28.80)
07:03:51 ubert joins (~Thunderbi@p200300ecdf000282b84f8c5708931366.dip0.t-ipconnect.de)
07:06:22 × albet70 quits (~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
07:07:23 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
07:10:41 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
07:11:11 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
07:12:29 albet70 joins (~xxx@2400:8902::f03c:92ff:fe60:98d8)
07:12:39 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
07:27:28 × jle` quits (~jle`@cpe-23-240-75-236.socal.res.rr.com) (Ping timeout: 248 seconds)
07:29:01 elmklod joins (~Elm@94.25.164.115)
07:29:24 jle` joins (~jle`@cpe-23-240-75-236.socal.res.rr.com)
07:31:28 × ubert quits (~Thunderbi@p200300ecdf000282b84f8c5708931366.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
07:33:18 gurkenglas joins (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de)
07:43:10 Hecate_ is now known as Hecate
07:48:39 × Lycurgus quits (~juan@user/Lycurgus) (Quit: Exeunt: personae.ai-integration.biz)
07:50:53 oo_miguel joins (~Thunderbi@77.252.47.84)
07:51:15 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
07:51:52 ubert joins (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de)
07:55:31 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
07:55:57 nate2 joins (~nate@98.45.169.16)
07:56:12 × harveypwca quits (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67) (Quit: Leaving)
07:59:43 × oo_miguel quits (~Thunderbi@77.252.47.84) (Quit: oo_miguel)
08:00:30 oo_miguel joins (~Thunderbi@77.252.47.84)
08:00:31 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
08:02:03 CiaoSen joins (~Jura@dynamic-046-114-221-062.46.114.pool.telefonica.de)
08:11:04 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd)
08:13:59 zeenk joins (~zeenk@2a02:2f04:a105:f00::7fe)
08:15:28 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Ping timeout: 248 seconds)
08:15:49 × kupi quits (uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
08:16:33 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
08:16:48 × machinedgod quits (~machinedg@46.188.225.66) (Ping timeout: 240 seconds)
08:18:49 kuribas joins (~user@ptr-17d51emeqlp3mkf19tm.18120a2.ip6.access.telenet.be)
08:21:02 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
08:34:38 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
08:50:03 Tuplanolla joins (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
08:53:06 _ht joins (~Thunderbi@28-52-174-82.ftth.glasoperator.nl)
08:54:23 Lord_of_Life_ joins (~Lord@user/lord-of-life/x-2819915)
08:54:45 × gurkenglas quits (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
08:54:47 × Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 240 seconds)
08:57:13 Lord_of_Life_ is now known as Lord_of_Life
09:00:01 × luffy[m] quits (~luffyinte@2001:470:69fc:105::3:4cd5) (Remote host closed the connection)
09:02:46 × tzh quits (~tzh@c-24-21-73-154.hsd1.wa.comcast.net) (Quit: zzz)
09:05:55 tromp joins (~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
09:13:01 gurkenglas joins (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de)
09:15:16 gmg joins (~user@user/gehmehgeh)
09:22:28 × L29Ah quits (~L29Ah@wikipedia/L29Ah) (Ping timeout: 240 seconds)
09:25:36 × econo quits (uid147250@user/econo) (Quit: Connection closed for inactivity)
09:31:13 × falafel quits (~falafel@2603-8000-d700-115c-375f-6e24-bf15-2487.res6.spectrum.com) (Ping timeout: 256 seconds)
09:31:21 × alecs quits (~alecs@151.36.175.147) (Read error: Connection reset by peer)
09:33:23 × gurkenglas quits (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 246 seconds)
09:33:25 × CiaoSen quits (~Jura@dynamic-046-114-221-062.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
09:36:57 alecs joins (~alecs@host-82-48-235-203.retail.telecomitalia.it)
09:43:40 falafel joins (~falafel@2603-8000-d700-115c-9f2e-bd7d-5866-de73.res6.spectrum.com)
09:44:04 × Sgeo quits (~Sgeo@user/sgeo) (Read error: Connection reset by peer)
09:46:31 ub joins (~Thunderbi@p548c91e0.dip0.t-ipconnect.de)
09:47:01 × ubert quits (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
09:47:01 ub is now known as ubert
09:48:01 × falafel quits (~falafel@2603-8000-d700-115c-9f2e-bd7d-5866-de73.res6.spectrum.com) (Ping timeout: 240 seconds)
09:58:31 mechap joins (~mechap@user/mechap)
10:16:38 gurkenglas joins (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de)
10:20:06 zenstoic joins (uid461840@id-461840.hampstead.irccloud.com)
10:22:16 × alecs quits (~alecs@host-82-48-235-203.retail.telecomitalia.it) (Ping timeout: 250 seconds)
10:40:39 machinedgod joins (~machinedg@46.188.225.66)
10:46:35 × gurkenglas quits (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 256 seconds)
10:53:24 freeside joins (~mengwong@103.252.202.189)
10:56:30 × szkl quits (uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
10:56:57 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
10:57:28 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
11:08:32 Benzi-Junior joins (~BenziJuni@88-149-64-86.du.xdsl.is)
11:14:48 × machinedgod quits (~machinedg@46.188.225.66) (Ping timeout: 240 seconds)
11:21:12 barrucad1 is now known as barrucadu
11:22:03 freeside joins (~mengwong@103.252.202.189)
11:29:05 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
11:32:36 __monty__ joins (~toonn@user/toonn)
11:38:27 oblivious joins (~oblivious@183.108.191.92.dynamic.jazztel.es)
11:40:04 × oblivious quits (~oblivious@183.108.191.92.dynamic.jazztel.es) (Client Quit)
11:46:49 freeside joins (~mengwong@103.252.202.189)
11:50:48 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
11:57:42 nate2 joins (~nate@98.45.169.16)
12:00:09 × hrberg quits (~quassel@171.79-160-161.customer.lyse.net) (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:00:27 hrberg joins (~quassel@171.79-160-161.customer.lyse.net)
12:02:48 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 265 seconds)
12:10:55 freeside joins (~mengwong@103.252.202.189)
12:13:59 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds)
12:15:05 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 246 seconds)
12:18:59 gruff joins (uid459651@id-459651.lymington.irccloud.com)
12:26:49 × zeenk quits (~zeenk@2a02:2f04:a105:f00::7fe) (Quit: Konversation terminated!)
12:31:13 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
12:32:26 <Profpatsch> I have an Applicative validator/parser which is also Selective; I want to check if two of the inputs are the same; can I do that with just the Selective interface?
12:38:27 justsomeguy joins (~justsomeg@user/justsomeguy)
12:45:30 gurkenglas joins (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de)
12:46:11 <ncf> show some code
12:47:13 <Profpatsch> x = do { a <- get "a"; b <- get "b"; pure Foo{..} }
12:48:03 <Profpatsch> a and b should be the same; either of them may be returned, but the parser should fail with an error for "b" iff they are not the same
12:48:23 <ncf> guard (a == b)
12:48:37 <Profpatsch> It’s not Alternative
12:49:02 <Profpatsch> It’s Functor, Applicative and Selective
12:49:42 <ncf> how do you fail then?
12:49:55 <Profpatsch> In particular, every failing parser needs to have a reference to the field it is parsing, because the failure has to appear in the form field that caused the error
12:50:15 <Profpatsch> ncf: in Validation (Id, Error) a
12:50:30 <Profpatsch> via validation-selective
12:50:58 <Profpatsch> I feel like Selective should provide the ability, but I can also go this on foot I think
12:51:51 mechap joins (~mechap@user/mechap)
12:53:50 × mechap quits (~mechap@user/mechap) (Client Quit)
12:54:27 freeside joins (~mengwong@103.252.202.189)
12:56:02 <[exa]> Profpatsch: you might need to smuggle an Either there manually
12:56:45 mechap joins (~mechap@user/mechap)
12:57:36 <ncf> i still don't understand what this has to do with Selective. failureUnless (a == b) (yourFieldId, "boo")
12:58:25 <Profpatsch> a and b come from a Selective m
12:58:30 <Profpatsch> not monadic
12:59:32 <Profpatsch> [exa]: yeah, that’s my guess as well
13:00:42 Albina_Pavlovna joins (~Albina_Pa@2603-7000-76f0-76e0-4593-7814-42d6-7053.res6.spectrum.com)
13:01:44 <Profpatsch> Or I really need join anyway
13:01:45 <[exa]> Profpatsch: like, you can start with (==) <$> get "a" <*> get "b", then convert it to Either, and on that you can do the select
13:02:09 <[Leary]> `fromMaybeS (Failure err) do { a <- get "a"; b <- get "b"; pure $ guard (a == b) $> b }` perhaps?
13:02:10 × gurkenglas quits (~user@dynamic-046-114-177-161.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
13:02:38 <Profpatsch> But guard is Alternative, no?
13:02:44 <[Leary]> That's for Maybe.
13:02:49 <Profpatsch> Ah
13:03:11 <[exa]> Profpatsch: you generally don't need join unless you use the partial results to generate the shape of the computation that follows
13:03:37 <Profpatsch> [exa]: yeah, exactly that’s why I’m trying the Selective approach
13:05:00 <[exa]> maybe try to draft what result you want to get out, then smash _ in the middle and do the type tetris
13:06:20 <Profpatsch> [Leary]: I think that is getting real close; now I only have the remaining problem that I can’t expose a direct primitive to construct `Failure`, that should only fall out of trying to parse the field itself wtih `get`
13:08:25 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
13:13:31 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 240 seconds)
13:15:03 × vandita quits (~vandit@176-241-45-188.pool.digikabel.hu) (Ping timeout: 256 seconds)
13:15:45 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd)
13:16:29 vandita joins (~vandit@fibhost-66-106-96.fibernet.hu)
13:20:01 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Ping timeout: 240 seconds)
13:25:47 <[exa]> Profpatsch: btw, just that I understand the whole thing -- what is the effect that will be allowed to be skipped if the things are equal (or not equal)?
13:25:49 × acidjnk quits (~acidjnk@p200300d6e7072f96316225cd2ab6c884.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
13:29:17 <Profpatsch> [exa]: Just (Failure (fieldId, errmsg))
13:29:27 <Profpatsch> [exa]: Failure (fieldId, errmsg)
13:35:55 × SoF quits (~skius@user/skius) (Quit: Ping timeout (120 seconds))
13:36:45 <Profpatsch> Okay, I solved it “on foot” with your snippet [Leary], the code is not pretty but I think it kinda works
13:36:48 × euandreh quits (~Thunderbi@189.6.18.7) (Ping timeout: 240 seconds)
13:37:00 <Profpatsch> In particular the form is rendered correctly with the errors at the right places :)
13:37:13 justsomeguy joins (~justsomeg@user/justsomeguy)
13:37:24 <ncf> post?
13:37:37 ncf is still massively confused about the whole thing but is probably just being dense
13:39:09 <[exa]> oh that's for web forms? makes sense now
13:40:03 <Profpatsch> ncf: something like this: https://paste.tomsmeding.com/4RxpFDDj
13:40:48 <Profpatsch> [exa]: yeah, I’m trying to see how far I can go with this, digestive-functors is a bit much for my tastes
13:41:59 <Profpatsch> In particular, one should distinguish between programming errors (i.e. wrong field name) and user errors, hence the two different types composed together.
13:42:55 CiaoSen joins (~Jura@145.224.73.17)
13:48:12 <[exa]> Profpatsch: what would be wrong with: ((\a b -> if a == b then Right a else Left a) <$> get "a" <*> get "b") S.<*? Failure ["not same"]
13:48:20 <[exa]> (S is Control.Selective)
13:48:38 <[exa]> the failures from the gets propagate and prevent the comparison failure from triggering
13:48:40 <Profpatsch> [exa]: Is that the fromMaybeS just reformulated?
13:48:45 <[exa]> likely
13:49:18 <[exa]> ah yeah, good. :D
13:49:20 × azimut quits (~azimut@gateway/tor-sasl/azimut) (Ping timeout: 240 seconds)
13:49:22 <Profpatsch> yeah pretty sure it is? I guess?
13:50:04 <Profpatsch> THe main issue I have is that I have to provide a function like failValidation :: f a
13:50:06 <[exa]> that explains the best shortcut for the abysmal-quality if there
13:50:57 <[exa]> Profpatsch: what's wrong with `failValidation x = Failure [x]` ?
13:51:35 × vandita quits (~vandit@fibhost-66-106-96.fibernet.hu) (Ping timeout: 240 seconds)
13:51:44 <Profpatsch> [exa]: Ideally there’d be some way of saying “validate this field by looking at some other field, but put the error into this field”; I mean I guess that’s what I’m doing in `aEqB`
13:53:30 vandita joins (~vandit@92-249-141-141.pool.digikabel.hu)
13:53:39 × CiaoSen quits (~Jura@145.224.73.17) (Ping timeout: 268 seconds)
13:54:12 <Profpatsch> It gets more complicated than that cause the multipart parser also supports files of course, in which case the form should re-populate the form value with the fielname I guess.
13:54:27 <Profpatsch> In other cases with the original `value` string
13:56:45 <Profpatsch> anyaway, next step is re-using these parsers for server-side validation after the fields lose focus
13:57:53 <[exa]> hm so that routing information on "where this error belongs" is now stored in the label there.. what about something like bifunctorish `first changeLabel` ?
13:59:49 <Profpatsch> [exa]: I don’t quite understand what you mean by that; the way I do it rn is that each form field html constuctor gets the whole list of errors and decides whether it should be displaying the error inputHtml :: Foldable f => FormField -> f (T2 "formFieldName" Text "error" Error) -> Html
14:00:05 <ncf> i feel like the easiest would be to pass a predicate (== compare) to field'
14:00:31 <Profpatsch> since FormField knows its own `name`
14:01:14 <ncf> hm but maybe you need Monad for that
14:02:25 <[exa]> Profpatsch: the interface would be like: displayTheErrorsAroundField @"asd" $ ...some validated stuff...
14:03:00 <Profpatsch> [exa]: yeah, I had something like this in mind I guess …
14:03:01 <[exa]> (for the validation, and later the html rendering may pick up the modified error locations)
14:04:51 <[exa]> Profpatsch: btw selective in this case will only allow you to sanely skip validations that are impossible e.g. because there isn't enough data... Maybe you might want to bake a custom combinator for this (something like `allS`)
14:06:09 <[exa]> as in: ifAllFieldsPresent ["a", "b", ...] $ \[a,b,...] -> if ... then Success ... else Failure ...
14:06:47 <Profpatsch> [exa]: ah you mean the fromMaybeS isn’t actually doing anything here?
14:07:18 <[exa]> it is only blocking the extra validation from firing (if others already failed)
14:07:25 <Profpatsch> hm, but it has to
14:07:44 <Profpatsch> As I said, I should probably go this on foot instead of via Selective :P
14:08:11 <[exa]> with normal validation the extra check would fail too, so you would have "passwords not same" as an error because it was transitively triggered by the "get" failure.
14:08:15 <Profpatsch> I haven’t yet found a case where using selective is nicer than adding custom combinator functions tbh.
14:09:04 <[exa]> like, this ain't bad, but requires some effort to make it look nice
14:11:54 × ryantrinkle quits (~ryantrink@140.174.243.224) (Remote host closed the connection)
14:12:00 <Profpatsch> [exa]: it does seem to work though, if I say the second password field has to validate as an email, it will throw the email error, if I make it an email, it will throw the “have to be the same” error
14:12:16 <Profpatsch> I guess that’s not the right semantics though, ideally both errors would be collected at the same time hm
14:12:36 <[exa]> your may want an overall structure like: Result <$> get "field1" <* extraValidation1 <*> get "field2" <* extraValidation2; with extraValidationN things using the selective interface internally. The problem with applicatives/selectives is that you cannot send&re-use the values "around" easily as with full monads, which gets inconvenient esp. if you got used to monads
14:12:45 × pavonia quits (~user@user/siracusa) (Quit: Bye!)
14:13:00 titibandit joins (~titibandi@user/titibandit)
14:13:30 <[exa]> Profpatsch: for me it is collecting both errors if they both happen on the left side of the select (e.g., both fields are missing)
14:16:37 <Profpatsch> yeah, but it definitely can’t be a Monad, because otherwise there’s no way to recapture the original values entered into the form.
14:16:51 <Profpatsch> Hm, I guess it could be a best effort thing
14:17:40 euandreh joins (~Thunderbi@189.6.18.7)
14:19:05 <Profpatsch> oh lol, now that I think about it, that won’t work anyway, because it only collects the values of fields that were wrong, not the others. So maybe I need These anyway, which would give be back my Monad instance
14:21:46 <[exa]> Profpatsch: well Validation is about discarding the Success values (i.e., not having to produce them in the first place).... so maybe simply a different Selective would work
14:23:46 <[exa]> like, morphology of the thing you have here looks like WriterT Either, instead you might want an EitherT Writer
14:24:22 hamzam3 joins (~hamzam3@2a01:e0a:1ee:8c60:849e:cc8e:5242:786f)
14:24:23 <[exa]> spoiler: combining errors is hard.
14:25:22 dsrt^ joins (~dsrt@c-71-204-38-59.hsd1.ga.comcast.net)
14:26:56 <Profpatsch> A Map wrapper with a monoid insteance that is (<>) = Map.mergeWith (<>) should work
14:27:15 shriekingnoise joins (~shrieking@186.137.175.87)
14:31:07 freeside joins (~mengwong@103.252.202.189)
14:34:14 gnalzo joins (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
14:35:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
14:35:45 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
14:37:22 × gruff quits (uid459651@id-459651.lymington.irccloud.com) (Quit: Connection closed for inactivity)
14:37:38 ddellacosta joins (~ddellacos@146.70.185.10)
14:40:20 Guest56 joins (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716)
14:51:15 × Guest56 quits (~Guest56@2600:6c5e:527f:9c3b:bc9c:4e9d:7cc1:716) (Quit: Client closed)
15:01:39 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
15:07:58 × img quits (~img@user/img) (Quit: ZNC 1.8.2 - https://znc.in)
15:08:53 img joins (~img@user/img)
15:13:25 euandreh joins (~Thunderbi@189.6.18.7)
15:14:48 freeside joins (~mengwong@103.252.202.189)
15:15:52 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
15:16:56 euandreh joins (~Thunderbi@189.6.18.7)
15:19:59 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 268 seconds)
15:45:29 × euandreh quits (~Thunderbi@189.6.18.7) (Remote host closed the connection)
15:48:27 gurkenglas joins (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de)
15:50:49 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd)
15:54:21 oo_miguel joins (~Thunderbi@77.252.47.84)
15:56:20 × Albina_Pavlovna quits (~Albina_Pa@2603-7000-76f0-76e0-4593-7814-42d6-7053.res6.spectrum.com) (Quit: ZZZzzz…)
15:57:30 × zenstoic quits (uid461840@id-461840.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
15:59:14 nate2 joins (~nate@98.45.169.16)
15:59:46 alternateved joins (~user@77-253-195-69.dynamic.inetia.pl)
16:02:52 [itchyjunk] joins (~itchyjunk@user/itchyjunk/x-7353470)
16:03:48 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
16:05:07 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
16:05:41 harveypwca joins (~harveypwc@2601:246:c180:a570:3828:d8:e523:3f67)
16:13:17 acidjnk joins (~acidjnk@p200300d6e7072f9698fc7344e9503bb5.dip0.t-ipconnect.de)
16:16:41 <jade[m]> in regards to typeclass instances I wonder whether there could be a better way to handle the cases where there are multiple "correct" instances.
16:16:41 <jade[m]> mainly the `Sum` or `Product` monoid come to mind.
16:16:41 <jade[m]> We need a wrapper for each because we cannot just say
16:16:41 <jade[m]> ...(truncated)
16:17:29 freeside joins (~mengwong@103.252.202.189)
16:21:35 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
16:22:57 <monochrom> See my https://mail.haskell.org/pipermail/haskell-cafe/2017-May/127147.html >:)
16:24:49 <jade[m]> that's amazing and nearly what I'm looking for :D
16:26:02 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 246 seconds)
16:27:21 alternat` joins (~user@77-253-195-69.dynamic.inetia.pl)
16:34:19 L29Ah joins (~L29Ah@wikipedia/L29Ah)
16:34:50 × eggplantade quits (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd) (Remote host closed the connection)
16:38:03 × alternat` quits (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection)
16:38:03 × alternateved quits (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection)
16:39:18 × kritzefitz quits (~kritzefit@debian/kritzefitz) (Remote host closed the connection)
16:40:20 eggplantade joins (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net)
16:40:57 alternateved joins (~user@77-253-195-69.dynamic.inetia.pl)
16:42:45 InvalidArgument joins (~fabrizio@2803:9800:98c4:76ad:983c:b21b:f36f:a8c9)
16:47:02 × alternateved quits (~user@77-253-195-69.dynamic.inetia.pl) (Remote host closed the connection)
16:50:28 econo joins (uid147250@user/econo)
16:51:29 Pickchea joins (~private@user/pickchea)
16:52:45 kritzefitz joins (~kritzefit@debian/kritzefitz)
16:55:59 × justsomeguy quits (~justsomeg@user/justsomeguy) (Ping timeout: 264 seconds)
16:57:22 tzh joins (~tzh@c-24-21-73-154.hsd1.or.comcast.net)
16:57:45 × gurkenglas quits (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 240 seconds)
17:00:30 freeside joins (~mengwong@103.252.202.189)
17:06:55 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
17:07:04 × use-value quits (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342) (Remote host closed the connection)
17:07:23 use-value joins (~Thunderbi@2a00:23c6:8a03:2f01:ddaa:9bff:1a38:a342)
17:07:57 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
17:08:06 × eggplantade quits (~Eggplanta@104-55-37-220.lightspeed.sntcca.sbcglobal.net) (Remote host closed the connection)
17:08:32 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
17:08:36 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
17:10:45 × Katarushisu quits (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net) (Ping timeout: 240 seconds)
17:11:53 coot_ joins (~coot@89-69-206-216.dynamic.chello.pl)
17:14:35 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Ping timeout: 264 seconds)
17:14:36 coot_ is now known as coot
17:16:18 robobub joins (uid248673@2a03:5180:f:5::3:cb61)
17:20:44 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
17:20:44 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
17:20:44 wroathe joins (~wroathe@user/wroathe)
17:20:58 eggplantade joins (~Eggplanta@2600:1700:38c5:d800:e958:834b:4d15:c9fd)
17:23:54 gurkenglas joins (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de)
17:27:35 InvalidArgument parts (~fabrizio@2803:9800:98c4:76ad:983c:b21b:f36f:a8c9) (Leaving)
17:33:27 hippoid joins (~hippoid@user/hippoid)
17:35:21 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
17:36:32 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Ping timeout: 248 seconds)
17:39:53 × kuribas quits (~user@ptr-17d51emeqlp3mkf19tm.18120a2.ip6.access.telenet.be) (Quit: ERC (IRC client for Emacs 27.1))
17:42:40 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
17:52:31 taupiqueur joins (~taupiqueu@2a02-842a-8180-4601-1912-96d1-9f83-aa24.rev.sfr.net)
17:56:04 alexherbo2 joins (~alexherbo@2a02-842a-8180-4601-1912-96d1-9f83-aa24.rev.sfr.net)
17:59:57 Katarushisu joins (~Katarushi@cpc147790-finc20-2-0-cust502.4-2.cable.virginm.net)
18:00:47 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
18:01:01 × vandita quits (~vandit@92-249-141-141.pool.digikabel.hu) (Ping timeout: 240 seconds)
18:03:00 vandita joins (~vandit@178-164-188-2.pool.digikabel.hu)
18:03:19 wroathe joins (~wroathe@207-153-38-140.fttp.usinternet.com)
18:03:19 × wroathe quits (~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
18:03:19 wroathe joins (~wroathe@user/wroathe)
18:08:36 wootehfoot joins (~wootehfoo@user/wootehfoot)
18:08:41 machinedgod joins (~machinedg@31.217.42.201)
18:09:56 × hippoid quits (~hippoid@user/hippoid) (Quit: WeeChat 3.8)
18:12:59 __monty__ joins (~toonn@user/toonn)
18:15:07 L29Ah parts (~L29Ah@wikipedia/L29Ah) ()
18:28:32 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 246 seconds)
18:31:45 × zmt00 quits (~zmt00@user/zmt00) (Read error: Connection reset by peer)
18:31:48 enoq joins (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7)
18:34:35 michalz joins (~michalz@185.246.204.90)
18:35:51 caryhartline joins (~caryhartl@168.182.58.169)
18:39:35 <hololeap> I'm working on some code that uses `fmap` instead of <$> and I'm wondering if the latter didn't exist at some point or if these people just like to write odd code
18:39:47 freeside joins (~mengwong@103.252.202.189)
18:39:56 <hololeap> literally `fmap` as an infix
18:40:16 <hololeap> they also use a lot of snake_case >:(
18:41:34 <geekosaur> <$> is fairly recent, yes
18:41:46 <geekosaur> came in with Applicative
18:42:05 <hololeap> ok, that makes more sense, then
18:42:19 <mauke> snake_case is morally correct
18:42:31 <hololeap> ikr
18:43:34 <hololeap> hlint doesn't like it
18:44:17 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 256 seconds)
18:44:25 <mauke> what does it know? "hlint" isn't even a word
18:44:50 <monochrom> It should have been h_lint, too. >:)
18:45:23 <monochrom> We should also revive Oleg case. Example: oleg'case
18:45:31 <yushyin> h-lint, kebab-case!
18:45:57 <monochrom> yeah I like kebab-case in Scheme.
18:46:22 <mauke> docker-compose
18:46:25 <hololeap> No instance for (Num lint) arising from a use of '-'
18:46:41 <monochrom> except when it's call-with-current-continuation. Then I prefer call/cc.
18:47:04 <mauke> call/without/current/continuation
18:47:10 <mauke> call-w/o-cc
18:47:19 <monochrom> haha
18:49:31 × Nosrep quits (~Nosrep@user/nosrep) (Remote host closed the connection)
18:54:35 × machinedgod quits (~machinedg@31.217.42.201) (Ping timeout: 268 seconds)
18:56:19 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
18:57:21 <hololeap> where is the function to look up the full path of an exe in PATH, sort of like the 'which' command?
18:57:41 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
18:57:49 Pickchea joins (~private@user/pickchea)
18:58:06 zmt00 joins (~zmt00@user/zmt00)
19:00:46 perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
19:01:39 rburkholder joins (~blurb@96.45.2.121)
19:03:50 × offtherock quits (~blurb@96.45.2.121) (Ping timeout: 268 seconds)
19:03:51 freeside joins (~mengwong@103.252.202.189)
19:04:50 Sgeo joins (~Sgeo@user/sgeo)
19:08:01 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
19:09:05 offtherock joins (~blurb@96.45.2.121)
19:11:31 × rburkholder quits (~blurb@96.45.2.121) (Ping timeout: 240 seconds)
19:11:42 <ncf> simplest is probably to shell out and call command -v ?
19:14:53 <sm> maybe useful:
19:14:54 <sm> likelyExecutablesInPath = do
19:14:54 <sm> pathdirs <- splitOneOf "[:;]" `fmap` getEnvSafe "PATH"
19:14:54 <sm> pathfiles <- concat `fmap` mapM getDirectoryContentsSafe pathdirs
19:14:54 <sm> return $ nubSort pathfiles
19:16:48 <hololeap> I thought there was a simple one in base :/
19:16:58 <mauke> why split on [
19:17:27 <yushyin> hololeap: Shelly and Turtle both have a which function, but that's not base :/
19:17:46 <sm> mauke that is.. a very good question
19:18:11 × werneta quits (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 264 seconds)
19:18:13 <mauke> have you been smoking too much sed?
19:18:14 <monochrom> System.Directory.findExecutable :)
19:18:25 <monochrom> and the plural version
19:18:38 <geekosaur> filepath has stuff to split PATH up properly
19:18:47 werneta joins (~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
19:18:47 <geekosaur> (not base, but bootlib)
19:19:09 <sm> yes.. thanks! And yes, I bet there is newer stuff in directory package
19:19:50 × perrierjouet quits (~perrier-j@modemcable048.127-56-74.mc.videotron.ca) (Quit: WeeChat 3.8)
19:20:57 freeside joins (~mengwong@103.252.202.189)
19:22:25 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
19:22:27 <monochrom> (pun intended dad joke) In general, System.Directory should be on your default search path for this kind of things. >:D
19:23:03 <ncf> why split on ; also
19:23:10 <geekosaur> windowes
19:23:14 <mauke> quick and dirty windows compatibility
19:23:17 <ncf> oh god
19:23:27 <mauke> except it'll break on windows anyway
19:23:35 <mauke> because C:\lol\whatever will be split on :
19:24:15 perrierjouet joins (~perrier-j@modemcable048.127-56-74.mc.videotron.ca)
19:24:18 <sm> I think I wrote this when System.Directory was less featureful
19:25:08 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
19:26:17 <sm> ack.. I may have to break down and rewrite/retest. Where is a windows machine when you need one
19:26:28 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
19:26:54 <geekosaur> waiting for you to plug in a credit card for the license
19:27:53 <sm> actually I think I do have a working windows 7 vm here at least
19:27:56 <mauke> the windows xp license code generator has been cracked
19:28:04 <mauke> so that's an option :-)
19:28:25 <sm> I think MS provides free vm images of (some version of) the older windows
19:28:55 <mauke> also, github actions
19:29:28 <sm> indeed, but you really need an interactive one sometimes
19:31:11 coot joins (~coot@89-69-206-216.dynamic.chello.pl)
19:35:35 × manwithluck quits (manwithluc@hoeven.dossingday.ml) (Remote host closed the connection)
19:36:01 monoidal joins (~monoidal@2001:861:3f42:1b60:b35a:bce5:8722:1910)
19:36:33 <sm> oh hmm.. "Your activation period has expired.". Maybe those images are time limited.
19:37:19 <sm> oh well, I think no windows user cares about this, maybe I shouldn't either
19:38:20 manwithluck joins (manwithluc@hoeven.dossingday.ml)
19:38:45 <sm> oh.. but then it lets me in anyway.
19:39:51 <sm> nice.. seems I have a working windows 11 VM too.
19:40:57 <tomsmeding> in my experience windows complaining about activation is just that -- complaining
19:41:17 <tomsmeding> it disables some customisation settings iirc, stuff like desktop background and other personalisation settings
19:41:19 kluk joins (~arrowhead@cpe-74-66-76-151.nyc.res.rr.com)
19:43:01 <hololeap> monochrom: thank you!
19:43:08 <hololeap> not base but close enough
19:43:48 <sm> wow.. I can run an intel windows binary in this arm version of windows. I guess it has some apple-rosetta-like translation
19:45:02 <sm> though a minute later the vm crashed.
19:46:11 <monochrom> Just like what happened when my students tried virtualboxing ubuntu on M1 :D
19:53:22 <hololeap> monochrom: I think the reason why I didn't find it when I first looked in there is that it's catagorized under "existence tests"
19:53:46 <monochrom> Ah
19:53:59 <monochrom> ctrl-f is better :)
19:54:14 <hololeap> I did that but I searched for "path" :(
19:54:18 × monoidal quits (~monoidal@2001:861:3f42:1b60:b35a:bce5:8722:1910) (Quit: Client closed)
19:54:26 <monochrom> Ah
19:54:29 <hololeap> (I couldn't remember then name of it)
19:54:30 <hololeap> haha
19:54:46 <monochrom> This is why Searle's Chinese Room argument breaks.
19:55:04 monoidal joins (~monoidal@2001:861:3f42:1b60:93b1:31be:ae42:8ec9)
19:55:06 <monochrom> There is an smbc for that. :)
19:55:29 titibandit joins (~titibandi@user/titibandit)
19:58:01 <monochrom> https://www.smbc-comics.com/comic/robot-john-searle
20:00:38 <monochrom> Complexity-wise if you can find the answer in time proportional to the question length, as opposed to the database size which is infinite anyway, then you can't be said to be "just dumb searching".
20:00:44 nate2 joins (~nate@98.45.169.16)
20:01:24 <monochrom> Equivalently, just because the database is right in front of you, doesn't mean you know how to search it usefully. :)
20:05:25 × nate2 quits (~nate@98.45.169.16) (Ping timeout: 240 seconds)
20:06:19 <mauke> https://blog.plover.com/prog/loaded-uzi.html
20:13:47 cheater_ joins (~Username@user/cheater)
20:14:23 × _ht quits (~Thunderbi@28-52-174-82.ftth.glasoperator.nl) (Remote host closed the connection)
20:14:31 waleee joins (~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
20:15:59 × cheater quits (~Username@user/cheater) (Ping timeout: 268 seconds)
20:16:03 cheater_ is now known as cheater
20:17:10 szkl joins (uid110435@id-110435.uxbridge.irccloud.com)
20:19:56 <Profpatsch> [exa]: Funnily enough I think the Applicative semantics I actually need for the form thingy is neither Valiadtion nor Either, but rather ((,) (These Error OriginalValue)) or something along those lines
20:19:57 × gentauro quits (~gentauro@user/gentauro) (Read error: Connection reset by peer)
20:20:04 <Profpatsch> A kingdom for Deriving Via … oh wait, it exists
20:20:26 <Profpatsch> the future is bright
20:20:36 <Profpatsch> the presence is bright :P
20:21:21 <[exa]> Profpatsch: yap (,) is Writer... :D
20:21:41 ub joins (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de)
20:21:51 <geekosaur> this is starting to look like Chronicle
20:21:52 × ubert quits (~Thunderbi@p548c91e0.dip0.t-ipconnect.de) (Ping timeout: 248 seconds)
20:21:52 ub is now known as ubert
20:23:07 <Profpatsch> [exa]: I don’t think it is? Does the Applicative instance for (x,) have the same space leaks?
20:23:34 × mechap quits (~mechap@user/mechap) (Quit: WeeChat 3.8)
20:25:39 gentauro joins (~gentauro@user/gentauro)
20:27:12 <Profpatsch> Wait, <*> left-associates and <> right-associates, isn’t that a very bad sign?
20:29:13 <int-e> :t (<*>)
20:29:14 <lambdabot> Applicative f => f (a -> b) -> f a -> f b
20:29:39 <int-e> (it's not associative, you don't have a choice)
20:30:10 <Profpatsch> no I mean
20:30:11 <Profpatsch> (([], …) <*> ([1], …)) <*> ([2,3], …)
20:30:14 <Profpatsch> (([] <> [1]), …) <*> [2,3], …)
20:30:19 <Profpatsch> (([] <> [1]) <> [2,3], …)
20:30:43 × coot quits (~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
20:30:52 <int-e> yeah that's not ideal
20:31:35 <Profpatsch> I guess I can use a Seq
20:31:41 <int-e> But you can always fix that by using DList a ~ Endo [] a
20:32:03 <int-e> Or Seq, sure
20:32:11 <Profpatsch> I guess that’s the origin of the Writer space-leak
20:32:24 <int-e> It is, and the fix is the same
20:32:27 <Profpatsch> And the fix is Writer.CPS, which is exactly DList
20:32:31 <int-e> Seq isn't lazy though
20:32:31 <Profpatsch> yep yep
20:32:39 <Profpatsch> int-e: is that a problem?
20:32:46 × trev quits (~trev@user/trev) (Quit: trev)
20:33:25 <Profpatsch> The applicative is gonna be forced in any case
20:33:29 <int-e> Hmm, in the case of Writer (with DList, or the CPS version), having a lazy result actually works, you can consume it before the whole writing is done.
20:33:54 <Profpatsch> but yeah, if you build an infinite Applicative structure and only look at the first n elements of the fst Seq, that might be a problem
20:34:07 L29Ah joins (~L29Ah@wikipedia/L29Ah)
20:34:39 <int-e> > execWriter $ tell "abc" >> undefined
20:34:40 <lambdabot> "abc*Exception: Prelude.undefined
20:34:43 <Profpatsch> <> should right-associate, convince me otherwise :)
20:34:54 <Profpatsch> I think that might solve a bunch of problems
20:35:07 <int-e> infixr 6 <>
20:35:41 <Profpatsch> err, I didn’t think this trough; but <*> right-associating makes no sense
20:36:00 <Profpatsch> Hrm, I guess no real solution apart from using Dlists and maybe annotating the (,) applicative instance
20:36:28 <Profpatsch> In general I feel like base should have better instance docs
20:36:32 freeside joins (~mengwong@103.252.202.189)
20:36:33 <Profpatsch> with examples and dos and don’ts
20:36:43 <monochrom> > take 3 (execWriter $ tell "abc" >> undefined)
20:36:44 <lambdabot> "abc"
20:36:46 <monochrom> :)
20:36:52 <Profpatsch> There’s a bunch of trip mines like that
20:37:17 <int-e> monochrom: my example did print the "abc part :)
20:37:46 <int-e> (hmm, show of laziness?)
20:37:50 <monochrom> Yeah, but there are always doubters and haters who focus on the irrelevant presence of an error message.
20:38:00 <int-e> > fix error
20:38:01 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Ex...
20:38:16 <Profpatsch> But, like, I use (Validation (NonEmpty …)) throughout the code already and fixing that is a problem for future me
20:38:23 <Profpatsch> (it has the same problem)
20:40:26 <Profpatsch> Actually that’s a pretty bad thing, cause you have to rebuild n²/2 NonEmpty lists to get the final result
20:40:45 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
20:41:10 <Profpatsch> So if you parse a CSV with 1000 lines and 750 of those have errors, that’s a pretty huge space leak
20:43:10 <Profpatsch> (or rather n NonEmpty lists with n²/2 elements
20:44:24 × biberu quits (~biberu@user/biberu) (Read error: Connection reset by peer)
20:45:04 wroathe joins (~wroathe@50.205.197.50)
20:45:04 × wroathe quits (~wroathe@50.205.197.50) (Changing host)
20:45:04 wroathe joins (~wroathe@user/wroathe)
20:49:17 biberu joins (~biberu@user/biberu)
20:53:25 <tomsmeding> % import Data.List.NonEmpty
20:53:25 <yahb2> <no output>
20:53:34 <tomsmeding> % newtype NonEmptyEndo a = NonEmptyEndo ([a] -> NonEmpty a)
20:53:34 <yahb2> <no output>
20:54:17 <tomsmeding> % instance Semigroup (NonEmptyEndo a) where NonEmptyEndo f <> NonEmptyEndo g = NonEmptyEndo (g . toList . f)
20:54:17 <yahb2> <interactive>:183:96: error: ; Ambiguous occurrence ‘toList’ ; It could refer to ; either ‘Data.List.NonEmpty.toList’, ; imported from ‘Data.List.NonEmpty’ ; ...
20:54:28 <tomsmeding> % instance Semigroup (NonEmptyEndo a) where NonEmptyEndo f <> NonEmptyEndo g = NonEmptyEndo (g . Data.List.NonEmpty.toList . f)
20:54:28 <yahb2> <no output>
20:54:46 <tomsmeding> it's not a monoid, clearly
20:55:08 <Profpatsch> NonEmpty has not mempty, yeah :)
20:55:14 <Profpatsch> cause it’s non empty
20:55:15 <tomsmeding> % runNonEmptyEndo :: NonEmptyEndo a -> NonEmpty a ; runNonEmptyEndo (NonEmptyEndo f) = f []
20:55:15 <yahb2> <no output>
20:55:25 <tomsmeding> Profpatsch: replace your NonEmpty with NonEmptyEndo? :p
20:55:28 <Profpatsch> tomsmeding: dlist has it now
20:55:37 <Profpatsch> Data.DList.DNonEmpty
20:55:41 <Profpatsch> includes patterns and everything
20:55:52 <tomsmeding> ah lol
20:55:58 <Profpatsch> Although no, no patterns yet
20:56:08 <tomsmeding> always good to find out that others had your idea before you did
20:56:14 <tomsmeding> shows it was a good idea
20:56:16 <Profpatsch> NeSeq has some cool patterns tho
20:56:29 <Profpatsch> tomsmeding: an idea whose time has come :P
20:56:37 <Profpatsch> https://hackage.haskell.org/package/nonempty-containers-0.3.4.4/docs/Data-Sequence-NonEmpty.html#v:IsNonEmpty
20:56:39 <Profpatsch> these are so cool
20:57:02 <Profpatsch> you can match IsEmpty and then IsNonEmpty and it works cause
20:57:04 <Profpatsch> {-# COMPLETE IsNonEmpty, IsEmpty #-}
20:57:21 <Profpatsch> The moment where patterns clicked in my head
20:57:29 <Profpatsch> in my *head* (ba dum ts)
20:57:37 ub joins (~Thunderbi@p548c91e0.dip0.t-ipconnect.de)
20:58:08 × ubert quits (~Thunderbi@p200300ecdf000282072de7d7af033fca.dip0.t-ipconnect.de) (Ping timeout: 240 seconds)
20:58:08 ub is now known as ubert
20:59:14 <Profpatsch> obligatory https://www.youtube.com/watch?v=6Ejga4kJUts
21:01:58 × enoq quits (~enoq@2a05:1141:1f5:5600:b9c9:721a:599:bfe7) (Quit: enoq)
21:09:21 × hamzam3 quits (~hamzam3@2a01:e0a:1ee:8c60:849e:cc8e:5242:786f) (Quit: Leaving)
21:16:49 sm emerges from epic rabbit hole.. well I believe you mauke about that old PATH splitting code being broken on windows.. but somehow it seems to get the job done anyway
21:19:31 × wootehfoot quits (~wootehfoo@user/wootehfoot) (Quit: Leaving)
21:19:32 <int-e> it works fine if *everything* is on C:?
21:20:44 <int-e> Which if you're testing in a VM is more likely than with "serious" Windows installations.
21:23:56 × caryhartline quits (~caryhartl@168.182.58.169) (Remote host closed the connection)
21:37:24 × gurkenglas quits (~user@dynamic-046-114-179-235.46.114.pool.telefonica.de) (Ping timeout: 250 seconds)
21:40:09 <sm> heheh finally I see what it's doing with my own eyes.. ["C","\\Windows\\system32","C","\\Windows","C","\\Windows\\System32\\Wbem",...]
21:40:09 <sm> yes indeed, broken, though I used it in a way that it didn't matter
21:41:47 <sm> though, as you say in real life someone might have installed hledger addons across multiple drives and they wouldn't work. That person is probably out there shaking their fist, if they exist.
21:44:40 <sm> off topic, but I think I quite like Windows' window management (easy snapping to full/half/quarter screen positions)
21:45:54 <ncf> wdym <*> right-associating?
21:46:01 <ncf> oh i was scrolled up
21:46:56 reach joins (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7)
21:53:19 × titibandit quits (~titibandi@user/titibandit) (Remote host closed the connection)
21:56:12 × elmklod quits (~Elm@94.25.164.115) (Quit: Leaving)
21:57:35 × wroathe quits (~wroathe@user/wroathe) (Ping timeout: 240 seconds)
22:02:29 freeside joins (~mengwong@103.252.202.189)
22:03:44 × gnalzo quits (~gnalzo@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 3.8)
22:07:24 <sm> ah, now I remember.. none of https://hackage.haskell.org/package/directory-1.3.8.1/docs/System-Directory.html#g:5 do quite what I need (find all the executables in PATH whose name starts with a prefix)
22:08:45 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
22:12:44 xameer joins (~xameer@144.48.224.57)
22:16:46 × __monty__ quits (~toonn@user/toonn) (Quit: leaving)
22:19:45 freeside joins (~mengwong@103.252.202.189)
22:20:56 × mtjm quits (~mutantmel@2604:a880:2:d0::208b:d001) (Remote host closed the connection)
22:22:12 mtjm joins (~mutantmel@2604:a880:2:d0::208b:d001)
22:23:48 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
22:25:59 × xameer quits (~xameer@144.48.224.57) (Quit: Quit)
22:29:50 × gmg quits (~user@user/gehmehgeh) (Quit: Leaving)
22:31:31 <sm> mauke, https://github.com/simonmichael/hledger/issues/2040 noted and fixed, thanks for the report
22:31:52 <sm> or was it int-e, oh dear
22:32:00 × juri_ quits (~juri@84-19-175-187.pool.ovpn.com) (Ping timeout: 250 seconds)
22:32:30 <sm> mauke first.. alright then
22:32:53 × takuan quits (~takuan@178-116-218-225.access.telenet.be) (Remote host closed the connection)
22:36:53 × michalz quits (~michalz@185.246.204.90) (Remote host closed the connection)
22:39:49 freeside joins (~mengwong@103.252.202.189)
22:40:18 × Pickchea quits (~private@user/pickchea) (Quit: Leaving)
22:44:01 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
22:47:44 <int-e> yeah
22:48:29 <int-e> sm: I really only chimed in on the "but somehow it seems to get the job done anyway" part
22:49:01 <sm> yes, and you were quite right, thanks
22:49:08 <int-e> because "it worked in testing" is always a fun scenario to analyse
22:50:56 <darkling> "I don't care if it works on your machine. We're not shipping your machine!"
22:51:22 <sm> Windows is fun! Frequently popping up random ads and requests to do this or that!
22:53:15 × johnw quits (~johnw@76-234-69-149.lightspeed.frokca.sbcglobal.net) (Quit: ZNC - http://znc.in)
22:53:57 <monochrom> Yeah I'm not upgrading ("upgrading") to 11 any time soon.
22:54:16 <monochrom> OK that's not fair, 11 has good additions too.
22:54:35 <int-e> more like ad-itions amiright
22:54:41 <monochrom> hahaha
22:55:15 <int-e> it's amazing what people put up with :-/
22:55:17 <sm> I expect it's a major improvement on windows 8, at least
22:55:39 <sm> if I could save this VM image I would actually try using it a bit
22:56:09 czy joins (~user@host-140-24.ilcub310.champaign.il.us.clients.pavlovmedia.net)
22:57:30 <sm> as I was saying in #ghcup: ghcup copes with it pretty well, a few access errors here and there but everything seemed to work smoothly!
22:58:41 <sm> as in: you might see an Access Error during install or during a cabal build, and then you run again and it carries on and things seem to work
23:00:40 × reach quits (~reach@2607:fea8:4c0:990:9195:d8e:b2d8:baa7) (Read error: Connection reset by peer)
23:02:41 × acidjnk quits (~acidjnk@p200300d6e7072f9698fc7344e9503bb5.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
23:17:48 × oo_miguel quits (~Thunderbi@77.252.47.84) (Ping timeout: 240 seconds)
23:20:41 juri_ joins (~juri@84-19-175-187.pool.ovpn.com)
23:21:53 mauke_ joins (~mauke@user/mauke)
23:22:55 merijn joins (~merijn@86-86-29-250.fixed.kpn.net)
23:23:31 × mauke quits (~mauke@user/mauke) (Ping timeout: 240 seconds)
23:23:31 mauke_ is now known as mauke
23:24:47 × foul_owl quits (~kerry@45.143.82.40) (Ping timeout: 240 seconds)
23:27:08 × merijn quits (~merijn@86-86-29-250.fixed.kpn.net) (Ping timeout: 240 seconds)
23:30:16 machinedgod joins (~machinedg@31.217.42.201)
23:39:19 reach joins (~reach@2607:fea8:4c0:990:f891:b512:3659:bf1b)
23:43:09 ratapaca joins (~ratapaca@98.40.240.33)
23:43:33 slack1256 joins (~slack1256@181.43.60.199)
23:47:09 freeside joins (~mengwong@103.252.202.189)
23:50:27 × Tuplanolla quits (~Tuplanoll@91-159-68-236.elisa-laajakaista.fi) (Quit: Leaving.)
23:51:00 foul_owl joins (~kerry@45.143.82.39)
23:51:05 × freeside quits (~mengwong@103.252.202.189) (Ping timeout: 240 seconds)
23:52:50 pyooque joins (~puke@user/puke)
23:52:50 puke is now known as Guest9165
23:52:50 pyooque is now known as puke
23:52:53 xameer joins (~xameer@144.48.224.57)
23:55:31 × Guest9165 quits (~puke@user/puke) (Ping timeout: 268 seconds)
23:56:18 × xameer quits (~xameer@144.48.224.57) (Client Quit)
23:56:31 × machinedgod quits (~machinedg@31.217.42.201) (Ping timeout: 240 seconds)
23:58:17 × ratapaca quits (~ratapaca@98.40.240.33) (Quit: Leaving)

All times are in UTC on 2023-05-27.