2023/08/20

2023-08-20 00:00:10 +0000notzmv(~zmv@user/notzmv)
2023-08-20 00:02:08 +0000ulysses4ever(~artem@172.58.147.22) (Ping timeout: 256 seconds)
2023-08-20 00:04:03 +0000arahael(~arahael@1.145.87.227)
2023-08-20 00:05:42 +0000oo_miguel(~Thunderbi@78-11-179-96.static.ip.netia.com.pl) (Ping timeout: 260 seconds)
2023-08-20 00:07:49 +0000caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-08-20 00:08:02 +0000jero98772(~jero98772@2800:484:1d84:300::2) (Ping timeout: 260 seconds)
2023-08-20 00:08:55 +0000ulysses4ever(~artem@2607:fb91:2fa3:58e8:f474:e3f8:9806:671)
2023-08-20 00:11:00 +0000artem(~artem@73.145.240.182) (Ping timeout: 250 seconds)
2023-08-20 00:15:05 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 00:17:46 +0000BigKozlowski(~BigKozlow@84.21.165.226)
2023-08-20 00:19:10 +0000artem(~artem@2601:249:4380:8950:f474:e3f8:9806:671)
2023-08-20 00:21:32 +0000ulysses4ever(~artem@2607:fb91:2fa3:58e8:f474:e3f8:9806:671) (Ping timeout: 248 seconds)
2023-08-20 00:22:06 +0000BigKozlowski(~BigKozlow@84.21.165.226) (Ping timeout: 245 seconds)
2023-08-20 00:28:52 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
2023-08-20 00:30:04 +0000ouroboros(~ouroboros@user/ouroboros) (Ping timeout: 250 seconds)
2023-08-20 00:30:12 +0000acro(~acro@user/acro) (Ping timeout: 246 seconds)
2023-08-20 00:34:16 +0000ouroboros(~ouroboros@user/ouroboros)
2023-08-20 00:36:30 +0000acro(~acro@user/acro)
2023-08-20 00:37:35 +0000Feuermagier(~Feuermagi@user/feuermagier)
2023-08-20 00:37:52 +0000doyougnu(~doyougnu@45.46.170.68)
2023-08-20 00:41:55 +0000szkl(uid110435@2a03:5180:f:5::1:af63) (Quit: Connection closed for inactivity)
2023-08-20 00:46:39 +0000ulysses4ever(~artem@73.145.241.182)
2023-08-20 00:48:20 +0000caryhartline(~caryhartl@168.182.58.169)
2023-08-20 00:48:25 +0000 <arahael> The HLS for cabal scripts works pretty badly. :(
2023-08-20 00:48:44 +0000artem(~artem@2601:249:4380:8950:f474:e3f8:9806:671) (Ping timeout: 248 seconds)
2023-08-20 00:49:10 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 256 seconds)
2023-08-20 00:50:16 +0000shapr(~user@2600:1700:c640:3100:753c:594:e430:473e) (Remote host closed the connection)
2023-08-20 00:50:51 +0000shapr(~user@2600:1700:c640:3100:28bc:7f2a:b582:a6c)
2023-08-20 00:51:03 +0000lottaquestions(~nick@2607:fa49:503d:b200:ef5b:a0d5:dc54:1113) (Quit: Konversation terminated!)
2023-08-20 00:53:15 +0000caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-08-20 00:53:54 +0000 <arahael> Hmm, and running a single file script (using cabal, not stack), hangs at: Linking /var/folders/wm/zwl_q6c537l7rsh9c6tm4m0m0000gn/T/cabal-repl.-40374/dist-newstyle/build/aarch64-osx/ghc-9.2.8/fake-package-0/x/script/build/script/script ...
2023-08-20 00:53:58 +0000 <arahael> Not sure how to fix that.
2023-08-20 00:55:34 +0000phma(phma@2001:5b0:210d:fa8:9f82:cebd:52a4:eb8d) (Read error: Connection reset by peer)
2023-08-20 01:03:52 +0000arahael(~arahael@1.145.87.227) (Ping timeout: 250 seconds)
2023-08-20 01:04:41 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-20 01:05:43 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Client Quit)
2023-08-20 01:10:33 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8) (Remote host closed the connection)
2023-08-20 01:10:36 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
2023-08-20 01:16:42 +0000albet70(~xxx@2400:8902::f03c:92ff:fe60:98d8)
2023-08-20 01:19:08 +0000misterfish(~misterfis@84.53.85.146) (Ping timeout: 248 seconds)
2023-08-20 01:23:16 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-08-20 01:25:12 +0000razetime(~quassel@117.254.36.38)
2023-08-20 01:26:14 +0000razetime(~quassel@117.254.36.38) (Client Quit)
2023-08-20 01:30:15 +0000BigKozlowski(~BigKozlow@84.21.165.226)
2023-08-20 01:33:12 +0000falafel(~falafel@216.68.6.51.dyn.plus.net) (Ping timeout: 246 seconds)
2023-08-20 01:34:36 +0000BigKozlowski(~BigKozlow@84.21.165.226) (Ping timeout: 245 seconds)
2023-08-20 01:35:16 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 244 seconds)
2023-08-20 01:49:12 +0000artem(~artem@2601:249:4380:8950:f474:e3f8:9806:671)
2023-08-20 01:51:51 +0000ulysses4ever(~artem@73.145.241.182) (Ping timeout: 260 seconds)
2023-08-20 01:58:50 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 02:00:44 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 248 seconds)
2023-08-20 02:06:09 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 02:06:10 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-08-20 02:06:18 +0000machinedgod(~machinedg@198.53.218.113)
2023-08-20 02:07:01 +0000BigKozlowski(~BigKozlow@84.21.165.226)
2023-08-20 02:07:27 +0000vulpine(xfnw@tilde.team) (Quit: Connection reset by purr)
2023-08-20 02:08:43 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 02:11:21 +0000BigKozlowski(~BigKozlow@84.21.165.226) (Ping timeout: 246 seconds)
2023-08-20 02:12:58 +0000td_(~td@i5387090E.versanet.de) (Ping timeout: 246 seconds)
2023-08-20 02:13:27 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 246 seconds)
2023-08-20 02:14:51 +0000td_(~td@i53870934.versanet.de)
2023-08-20 02:15:23 +0000phma(~phma@host-67-44-208-38.hnremote.net)
2023-08-20 02:16:33 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net)
2023-08-20 02:17:50 +0000gastus_(~gastus@185.6.123.193)
2023-08-20 02:18:48 +0000vulpine(xfnw@tilde.team)
2023-08-20 02:20:40 +0000gastus(~gastus@185.6.123.210) (Ping timeout: 246 seconds)
2023-08-20 02:26:01 +0000AlexNoo_(~AlexNoo@178.34.150.48)
2023-08-20 02:28:42 +0000Alex_test(~al_test@178.34.161.177) (Ping timeout: 245 seconds)
2023-08-20 02:29:12 +0000AlexZenon(~alzenon@178.34.161.177) (Ping timeout: 246 seconds)
2023-08-20 02:29:32 +0000AlexNoo(~AlexNoo@178.34.161.177) (Ping timeout: 245 seconds)
2023-08-20 02:30:36 +0000ft(~ft@80.141.190.80) (Ping timeout: 248 seconds)
2023-08-20 02:32:22 +0000ft(~ft@p4fc2ad78.dip0.t-ipconnect.de)
2023-08-20 02:33:46 +0000AlexZenon(~alzenon@178.34.150.48)
2023-08-20 02:34:32 +0000Alex_test(~al_test@178.34.150.48)
2023-08-20 02:36:14 +0000shriekingnoise(~shrieking@186.137.175.87) (Quit: Quit)
2023-08-20 02:40:03 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-08-20 02:40:54 +0000jero98772(~jero98772@2800:484:1d84:300::2)
2023-08-20 02:43:45 +0000BigKozlowski(~BigKozlow@84.21.165.226)
2023-08-20 02:46:20 +0000smalltalkman(uid545680@id-545680.hampstead.irccloud.com)
2023-08-20 02:47:36 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-20 02:47:52 +0000BigKozlowski(~BigKozlow@84.21.165.226) (Ping timeout: 245 seconds)
2023-08-20 02:48:36 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-08-20 02:49:06 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 02:49:06 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 02:49:06 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 02:51:22 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 02:51:22 +0000artem(~artem@2601:249:4380:8950:f474:e3f8:9806:671) (Read error: Connection reset by peer)
2023-08-20 02:52:10 +0000FinnElija(~finn_elij@user/finn-elija/x-0085643) (Killed (NickServ (Forcing logout FinnElija -> finn_elija)))
2023-08-20 02:52:10 +0000finn_elija(~finn_elij@user/finn-elija/x-0085643)
2023-08-20 02:52:10 +0000finn_elijaFinnElija
2023-08-20 02:59:15 +0000jero98772(~jero98772@2800:484:1d84:300::2) (Ping timeout: 245 seconds)
2023-08-20 03:05:57 +0000aforemny(~aforemny@i59F516C9.versanet.de)
2023-08-20 03:06:18 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-20 03:06:21 +0000aforemny_(~aforemny@89.245.22.230) (Ping timeout: 248 seconds)
2023-08-20 03:08:27 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 03:08:27 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 03:08:27 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 03:09:20 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce)
2023-08-20 03:09:30 +0000 <Inst> Erm, can I ask a question about the runtime and how IO actually works?
2023-08-20 03:09:52 +0000 <Inst> Does GHC compile main to be self-sufficient, or does main end up being bytecode to be interpreted by the runtime system?
2023-08-20 03:10:36 +0000 <Inst> basically, how does main hook into the runtime, how do uses of unsafePerformIO hook into the runtime?
2023-08-20 03:10:44 +0000BigKozlowski(~BigKozlow@84.21.165.226)
2023-08-20 03:12:32 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com)
2023-08-20 03:13:35 +0000 <probie> Inst: There is no bytecode to be interpreted by the runtime. `unsafePerformIO` conjures a `State# RealWorld` out of thin air, but as far as compiled code is concerned it is not magical (in fact, how unmagical it is, is a source of many issues when using it)
2023-08-20 03:14:26 +0000 <monochrom> I would go beyond "unmagic". It doesn't even exist in asm code.
2023-08-20 03:14:37 +0000 <probie> `IO a` is a function from `State# RealWorld -> (# State# RealWorld, a #)` and `State# RealWorld` has a 0 byte representation
2023-08-20 03:14:59 +0000BigKozlowski(~BigKozlow@84.21.165.226) (Ping timeout: 244 seconds)
2023-08-20 03:16:37 +0000myme(~myme@2a01:799:d60:e400:4a23:a534:a4cd:8840) (Ping timeout: 245 seconds)
2023-08-20 03:16:54 +0000 <EvanR> RealWorld is deeply unmagical
2023-08-20 03:17:14 +0000 <monochrom> Also, unsafePerformIO discards the phantom state, not conjure it.
2023-08-20 03:17:37 +0000myme(~myme@2a01:799:d60:e400:8c94:2d5b:43cf:54e)
2023-08-20 03:17:44 +0000 <monochrom> err nevermind, it conjures one.
2023-08-20 03:18:06 +0000 <probie> monochrom: it conjures one to be immediately discareded
2023-08-20 03:18:13 +0000 <probie> s/discareded/discarded/
2023-08-20 03:18:46 +0000nate2(~nate@c-98-45-169-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
2023-08-20 03:26:49 +0000 <Inst> so, in general, it occurs at the level of the compiler, with some side effects being calls to the runtime system?
2023-08-20 03:26:54 +0000 <Inst> i.e, let's say I putStrLn
2023-08-20 03:27:23 +0000 <Inst> I forget what it is, but it's a function of type (State# RealWorld -> (# RealWorld, ()#) or is it vice versa
2023-08-20 03:28:00 +0000 <Inst> i know putStrLn is sort of complicated, but in say, main = putStrLn "Hello, Haskell!"
2023-08-20 03:28:07 +0000 <EvanR> :t putStrLn
2023-08-20 03:28:08 +0000 <lambdabot> String -> IO ()
2023-08-20 03:28:19 +0000 <Inst> welp, so I'm technically wrong, but you get what I'm asking, right?
2023-08-20 03:28:35 +0000 <EvanR> String -> State# RealWorld -> (# State# RealWorld, () #)
2023-08-20 03:28:42 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2023-08-20 03:29:06 +0000bilegeek(~bilegeek@2600:1008:b059:ae41:2aa3:6bea:2610:ccf9)
2023-08-20 03:30:14 +0000 <Inst> the actual interaction level with the console, I guess, that's to do with the runtime?
2023-08-20 03:30:50 +0000 <EvanR> yeah to see where I'd drill as far as you can go into the (haskell) code of putStrLn
2023-08-20 03:31:12 +0000 <EvanR> console stuff is pretty involved, so maybe not a great place to start
2023-08-20 03:31:49 +0000 <Inst> so at Cmm level, it's just a normal C function, with some calls to the GHC runtime
2023-08-20 03:32:28 +0000machinedgod(~machinedg@198.53.218.113) (Ping timeout: 248 seconds)
2023-08-20 03:33:11 +0000 <Inst> so, main = putStrLn "What is your name? >> getLine >>= \u -> for_ putStr ["Hello, ", u, ".\n"]
2023-08-20 03:33:21 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-20 03:34:05 +0000 <Inst> that actually has a pretty straightforward hypothetical translation to Cmm, tbh
2023-08-20 03:34:45 +0000 <EvanR> putStrLn isn't even close to a primitive so it's just a bad example
2023-08-20 03:34:52 +0000 <Inst> thanks for your time, and sorry about it, I guess trying to understand the Cmm translation and how the semantics of IO >> translation should work under laziness
2023-08-20 03:35:05 +0000 <Inst> is a bit annoying
2023-08-20 03:35:12 +0000 <EvanR> I like to pretend I understand how FFI works
2023-08-20 03:35:25 +0000 <EvanR> and alot of support code ends up calling to the ffi
2023-08-20 03:36:02 +0000 <EvanR> but that's opens up a lot more questions, and yeah you're asking specifically about the runtime
2023-08-20 03:36:40 +0000 <Inst> ummm, let's say
2023-08-20 03:36:53 +0000 <Inst> putStrLn "Hello" >> undefined >> putStrLn "Goodbye"
2023-08-20 03:37:03 +0000 <Inst> in the result code, all the putStrLns exist, right?
2023-08-20 03:37:29 +0000 <Inst> as does a call to the RTS to trigger the undefined exception
2023-08-20 03:38:41 +0000 <EvanR> in the compiled code, no I don't know if putStrLns would exist. Their haskell code could have been inlined transformed optimized etc
2023-08-20 03:39:13 +0000 <EvanR> you could try looking at core to get an idea of what RTS primitives to ask about
2023-08-20 03:39:14 +0000 <ski> (.. i wonder whether it would simplify `error foo blah' and `case error foo of ...' (with refutable matching, forcing) to `error foo' .. if so, the second `putStrLn' might disappear)
2023-08-20 03:44:31 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Remote host closed the connection)
2023-08-20 03:45:22 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-08-20 03:49:28 +0000 <Inst> I guess it goes into me not understanding laziness, i.e, via the Hudak "everything is a function" explanation, everything can be understood as a pointer to a value that only gets instantiated when evaluated
2023-08-20 03:50:01 +0000 <Inst> i.e, let's say I have a conditional split IO code into two forks
2023-08-20 03:50:14 +0000 <Inst> does the IO code actually exist before it's evaluated, or does it always exist in the binary?
2023-08-20 03:52:11 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce) (Remote host closed the connection)
2023-08-20 03:52:49 +0000Inst(~liamzy@2601:6c4:4085:6d50::4a7d)
2023-08-20 03:53:50 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 03:54:56 +0000 <EvanR> if you write a top level x = 1:2:3:x
2023-08-20 03:54:57 +0000 <ski> not sure what you mean exactly
2023-08-20 03:55:18 +0000 <EvanR> it's not a function, more like a structure with a pointer to code that can compute more structure if needed
2023-08-20 03:58:07 +0000 <EvanR> don't confuse lazy evaluation of non-IO stuff with how IO gets executed by the RTS. When you run main, you are playing a different ball game. The first IO action is what drives the evaluation, so it can execute something and move on
2023-08-20 03:58:21 +0000 <EvanR> the IO itself isn't (normally) lazy
2023-08-20 03:58:29 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 03:58:42 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 245 seconds)
2023-08-20 03:59:15 +0000 <EvanR> IO gets interleaved with the lazy evaluation
2023-08-20 03:59:33 +0000 <Inst> I get the feeling that IO was some kind of weird exception
2023-08-20 03:59:40 +0000 <ski> with `foo >>= \x -> if plob x then bar else baz', the code for `bar' and `baz' would exist somewhere, and after executing `foo x', `prob x' would be forced, to (at least conceptually) yield `foo' or `bar' as result to continue execution. but i imagine that this would (in this concrete, non-indirected, example) probably be simiplified to expressing a conditional in the Cmm, whose branches execute `foo' or
2023-08-20 03:59:46 +0000 <ski> `bar' directly, rather than constructing a `IO' action thunk, then making it forced
2023-08-20 03:59:48 +0000 <Inst> and I actually think about ReaderT apparently being costless for the same reason
2023-08-20 04:00:24 +0000 <Inst> like, a monad transformer over IO, does the entire monad transformer line get converted first before the IO parsing begins, or can it be done line by line?
2023-08-20 04:03:56 +0000arahael(~arahael@1.145.81.2)
2023-08-20 04:08:57 +0000Buggys(Buggys@Buggy.shelltalk.net) (Ping timeout: 246 seconds)
2023-08-20 04:10:56 +0000 <ski> converted, how ?
2023-08-20 04:15:55 +0000Buggys(Buggys@Buggy.shelltalk.net)
2023-08-20 04:16:20 +0000shapr(~user@2600:1700:c640:3100:28bc:7f2a:b582:a6c) (Remote host closed the connection)
2023-08-20 04:16:33 +0000shapr(~user@2600:1700:c640:3100:7513:7153:4750:76c1)
2023-08-20 04:20:59 +0000arahael(~arahael@1.145.81.2) (Read error: Connection reset by peer)
2023-08-20 04:34:02 +0000ski(~ski@ext-1-303.eduroam.chalmers.se) (Ping timeout: 250 seconds)
2023-08-20 04:35:56 +0000libertyprime(~libertypr@203.96.203.44)
2023-08-20 04:38:44 +0000arahael(~arahael@1.145.93.51)
2023-08-20 04:44:54 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 256 seconds)
2023-08-20 04:57:26 +0000jmd_(~jmdaemon@user/jmdaemon)
2023-08-20 04:57:31 +0000arahael(~arahael@1.145.93.51) (Read error: Connection reset by peer)
2023-08-20 04:58:03 +0000libertyprime(~libertypr@203.96.203.44) (Quit: leaving)
2023-08-20 04:59:46 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542) (Quit: Leaving)
2023-08-20 05:04:43 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 05:15:40 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 05:17:47 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-08-20 05:21:20 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 05:22:07 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 05:25:45 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Client Quit)
2023-08-20 05:26:19 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 05:28:45 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 05:37:13 +0000BigKozlowski(~BigKozlow@84.21.165.150)
2023-08-20 05:38:35 +0000bilegeek(~bilegeek@2600:1008:b059:ae41:2aa3:6bea:2610:ccf9) (Quit: Leaving)
2023-08-20 05:42:22 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 05:46:49 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-08-20 05:53:10 +0000wootehfoot(~wootehfoo@user/wootehfoot)
2023-08-20 05:53:11 +0000Inst(~liamzy@2601:6c4:4085:6d50::4a7d) (Remote host closed the connection)
2023-08-20 05:53:21 +0000ss4(~wootehfoo@user/wootehfoot)
2023-08-20 05:53:31 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce)
2023-08-20 05:55:48 +0000jargon(~jargon@174-22-213-62.phnx.qwest.net) (Remote host closed the connection)
2023-08-20 06:01:10 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-08-20 06:02:28 +0000ss4(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-08-20 06:05:57 +0000jonathan_(~jonathan@193.203.13.25)
2023-08-20 06:08:35 +0000acidjnk(~acidjnk@p200300d6e7072f96b9b41a1c591e9c90.dip0.t-ipconnect.de)
2023-08-20 06:16:33 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-08-20 06:20:59 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 244 seconds)
2023-08-20 06:22:28 +0000idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-08-20 06:22:51 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 246 seconds)
2023-08-20 06:24:36 +0000wootehfoot(~wootehfoo@user/wootehfoot) (Quit: Leaving)
2023-08-20 06:26:24 +0000BigKozlowski(~BigKozlow@84.21.165.150) (Remote host closed the connection)
2023-08-20 06:29:36 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 06:29:36 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 06:29:36 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 06:35:10 +0000migas(~migas@62.138.8.62) (Remote host closed the connection)
2023-08-20 06:35:27 +0000migas(~migas@astra4961.startdedicated.net)
2023-08-20 06:36:31 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Quit: Leaving)
2023-08-20 06:41:21 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 06:41:34 +0000merijn(~merijn@83.128.129.88)
2023-08-20 06:42:07 +0000misterfish(~misterfis@178.226.72.131)
2023-08-20 06:46:04 +0000merijn(~merijn@83.128.129.88) (Ping timeout: 248 seconds)
2023-08-20 06:50:53 +0000NewtonTrendy(uid282092@user/bopqod) (Quit: Connection closed for inactivity)
2023-08-20 06:54:59 +0000mima(~mmh@net-93-148-96-78.cust.dsl.teletu.it)
2023-08-20 06:55:44 +0000BigKozlowski(~BigKozlow@194.5.60.24)
2023-08-20 06:57:51 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce) (Ping timeout: 246 seconds)
2023-08-20 07:00:40 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 07:05:55 +0000BigKozlowski(~BigKozlow@194.5.60.24) (Ping timeout: 246 seconds)
2023-08-20 07:09:09 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 07:12:37 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375)
2023-08-20 07:13:14 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2023-08-20 07:13:57 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-08-20 07:17:49 +0000sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-20 07:18:18 +0000fendor(~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3)
2023-08-20 07:25:25 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 07:29:22 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-08-20 07:35:57 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
2023-08-20 07:36:11 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 07:36:17 +0000azimut(~azimut@gateway/tor-sasl/azimut)
2023-08-20 07:37:54 +0000mikoto-chan(~mikoto-ch@85-76-165-132-nat.elisa-mobile.fi) (Ping timeout: 246 seconds)
2023-08-20 07:40:01 +0000_ht(~Thunderbi@82.174.52.28)
2023-08-20 07:40:47 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-08-20 07:44:21 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 07:46:32 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 07:46:33 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 07:46:33 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 07:46:57 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 07:51:28 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:6085:9764:49dd:5dc5) (Remote host closed the connection)
2023-08-20 07:53:25 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 07:55:20 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 07:59:36 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-08-20 07:59:50 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 256 seconds)
2023-08-20 08:03:27 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 08:03:45 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-20 08:09:11 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 08:10:20 +0000titibandit(~titibandi@user/titibandit)
2023-08-20 08:11:04 +0000titibandit(~titibandi@user/titibandit) (Remote host closed the connection)
2023-08-20 08:13:21 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 260 seconds)
2023-08-20 08:13:23 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-08-20 08:15:50 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 08:16:50 +0000mima(~mmh@net-93-148-96-78.cust.dsl.teletu.it) (Ping timeout: 256 seconds)
2023-08-20 08:19:02 +0000shapr(~user@2600:1700:c640:3100:7513:7153:4750:76c1) (Remote host closed the connection)
2023-08-20 08:19:15 +0000shapr(~user@2600:1700:c640:3100:4a10:9cc3:c2a8:452b)
2023-08-20 08:20:05 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 08:24:37 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 08:29:52 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 256 seconds)
2023-08-20 08:31:35 +0000Tuplanolla(~Tuplanoll@91-159-68-236.elisa-laajakaista.fi)
2023-08-20 08:32:06 +0000lisbeths(uid135845@id-135845.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-20 08:33:30 +0000dibblego(~dibblego@116.255.1.151)
2023-08-20 08:33:31 +0000dibblego(~dibblego@116.255.1.151) (Changing host)
2023-08-20 08:33:31 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 08:37:32 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-08-20 08:41:42 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 08:45:55 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 08:47:00 +0000chiselfuse(~chiselfus@user/chiselfuse) (Remote host closed the connection)
2023-08-20 08:47:37 +0000chiselfuse(~chiselfus@user/chiselfuse)
2023-08-20 08:49:42 +0000jonathan_(~jonathan@193.203.13.25) (Ping timeout: 256 seconds)
2023-08-20 08:52:01 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:bc38:61d8:7af5:2488)
2023-08-20 08:53:00 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 248 seconds)
2023-08-20 08:54:37 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 08:54:37 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 08:54:37 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 08:56:09 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:bc38:61d8:7af5:2488) (Ping timeout: 246 seconds)
2023-08-20 09:02:51 +0000gmg(~user@user/gehmehgeh)
2023-08-20 09:13:06 +0000ursa-major(~ursa-majo@37.19.210.36) (Ping timeout: 250 seconds)
2023-08-20 09:15:06 +0000ursa-major(~ursa-majo@static-198-44-128-151.cust.tzulo.com)
2023-08-20 09:15:19 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375) (Remote host closed the connection)
2023-08-20 09:15:36 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce)
2023-08-20 09:16:25 +0000edwtjo(~edwtjo@h-155-4-52-185.A213.priv.bahnhof.se)
2023-08-20 09:16:25 +0000edwtjo(~edwtjo@h-155-4-52-185.A213.priv.bahnhof.se) (Changing host)
2023-08-20 09:16:25 +0000edwtjo(~edwtjo@fsf/member/edwtjo)
2023-08-20 09:22:12 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 250 seconds)
2023-08-20 09:27:02 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 245 seconds)
2023-08-20 09:33:11 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 09:37:01 +0000shriekingnoise_(~shrieking@186.137.175.87)
2023-08-20 09:37:20 +0000hugo(znc@130.236.254.23)
2023-08-20 09:38:26 +0000shriekingnoise(~shrieking@186.137.175.87) (Ping timeout: 256 seconds)
2023-08-20 09:45:48 +0000shriekingnoise_(~shrieking@186.137.175.87) (Ping timeout: 256 seconds)
2023-08-20 09:56:43 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 09:57:45 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-08-20 10:01:16 +0000L29Ah(~L29Ah@wikipedia/L29Ah) (Ping timeout: 248 seconds)
2023-08-20 10:02:26 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 260 seconds)
2023-08-20 10:04:31 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-08-20 10:04:45 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-20 10:04:46 +0000[_](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-20 10:05:48 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Ping timeout: 246 seconds)
2023-08-20 10:06:40 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 10:06:40 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 10:06:40 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 10:08:30 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Client Quit)
2023-08-20 10:08:48 +0000[_][itchyjunk]
2023-08-20 10:11:04 +0000misterfish(~misterfis@178.226.72.131) (Ping timeout: 246 seconds)
2023-08-20 10:12:33 +0000tzh(~tzh@c-24-21-73-154.hsd1.or.comcast.net) (Quit: zzz)
2023-08-20 10:14:29 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 10:17:40 +0000tv(~tv@user/tv)
2023-08-20 10:18:46 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-08-20 10:20:50 +0000Pickchea(~private@user/pickchea)
2023-08-20 10:21:03 +0000libertyprime(~libertypr@203.96.203.44)
2023-08-20 10:22:47 +0000Feuermagier_(~Feuermagi@user/feuermagier)
2023-08-20 10:22:47 +0000Feuermagier(~Feuermagi@user/feuermagier) (Killed (mercury.libera.chat (Nickname regained by services)))
2023-08-20 10:22:47 +0000Feuermagier_Feuermagier
2023-08-20 10:24:49 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl)
2023-08-20 10:29:14 +0000libertyprime(~libertypr@203.96.203.44) (Quit: leaving)
2023-08-20 10:41:59 +0000tromp(~textual@92.110.219.57)
2023-08-20 10:49:04 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 10:53:25 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 10:53:35 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 10:53:44 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Remote host closed the connection)
2023-08-20 10:58:20 +0000acidjnk(~acidjnk@p200300d6e7072f96b9b41a1c591e9c90.dip0.t-ipconnect.de) (Ping timeout: 256 seconds)
2023-08-20 11:01:24 +0000mrmr1(~mrmr@user/mrmr) (Quit: Bye, See ya later!)
2023-08-20 11:01:42 +0000acidjnk(~acidjnk@p200300d6e7072f9611bac84c98e29ab7.dip0.t-ipconnect.de)
2023-08-20 11:02:55 +0000codaraxis__(~codaraxis@user/codaraxis)
2023-08-20 11:05:51 +0000codaraxis___(~codaraxis@user/codaraxis) (Ping timeout: 245 seconds)
2023-08-20 11:07:44 +0000mrmr1(~mrmr@user/mrmr)
2023-08-20 11:15:01 +0000tromp(~textual@92.110.219.57) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-20 11:15:19 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce) (Remote host closed the connection)
2023-08-20 11:15:24 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 248 seconds)
2023-08-20 11:15:37 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375)
2023-08-20 11:15:46 +0000mima(~mmh@net-93-148-96-78.cust.dsl.teletu.it)
2023-08-20 11:18:32 +0000_d0t(~{-d0t-}@user/-d0t-/x-7915216)
2023-08-20 11:21:33 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-20 11:24:40 +0000acidjnk(~acidjnk@p200300d6e7072f9611bac84c98e29ab7.dip0.t-ipconnect.de) (Ping timeout: 245 seconds)
2023-08-20 11:32:32 +0000mima(~mmh@net-93-148-96-78.cust.dsl.teletu.it) (Ping timeout: 244 seconds)
2023-08-20 11:34:01 +0000logothesia(~logothesi@user/logothesia)
2023-08-20 11:39:29 +0000mima(~mmh@net-93-148-97-78.cust.vodafonedsl.it)
2023-08-20 11:39:54 +0000 <logothesia> hi folks. I've been trying to build accelerate-examples but it fails with a mysterious c2hs error: https://paste.tomsmeding.com/fSxk209z
2023-08-20 11:40:07 +0000 <logothesia> am I doing something silly, or is this a known issue?
2023-08-20 11:40:49 +0000 <logothesia> sorry if this isn't the right place to ask, I tried emailing the list but I received a notice from google telling me that I don't have permission to post or something like that
2023-08-20 11:40:49 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 11:40:57 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 11:41:03 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 11:42:52 +0000 <logothesia> I also installed llvm 9.0.1, which seems to be the version of llvm-hs accelerate wants
2023-08-20 11:44:05 +0000 <mauke> out of interest, what are the first lines of .stack-work/dist/x86_64-linux-tinfo6/Cabal-3.2.0.0/build/Foreign/CUDA/Path.i ?
2023-08-20 11:45:13 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-08-20 11:47:56 +0000 <logothesia> hmm, .stack-work in the project directory itself doesn't seem to contain dist, only install
2023-08-20 11:48:35 +0000 <logothesia> it does mention lower down a directory in /tmp
2023-08-20 11:48:46 +0000 <logothesia> which seems to get cleaned up after the build
2023-08-20 11:48:52 +0000 <logothesia> not sure if it's referring to that one
2023-08-20 11:49:24 +0000 <logothesia> https://paste.tomsmeding.com/Auuy8l5G
2023-08-20 11:50:02 +0000 <logothesia> this gets printed after the cabal messages (presumably by stack?)
2023-08-20 11:55:01 +0000mima(~mmh@net-93-148-97-78.cust.vodafonedsl.it) (Ping timeout: 245 seconds)
2023-08-20 11:58:35 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-08-20 11:59:10 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-08-20 11:59:40 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 245 seconds)
2023-08-20 12:01:25 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7)
2023-08-20 12:09:44 +0000jmd_(~jmdaemon@user/jmdaemon) (Ping timeout: 244 seconds)
2023-08-20 12:13:11 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 12:18:20 +0000Guest45(~Guest45@95-25-87-91.broadband.corbina.ru)
2023-08-20 12:18:45 +0000Guest45(~Guest45@95-25-87-91.broadband.corbina.ru) (Client Quit)
2023-08-20 12:25:58 +0000falafel(~falafel@51.6.68.216)
2023-08-20 12:26:50 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-20 12:29:17 +0000kiro(~kiro@60.240.169.108)
2023-08-20 12:29:40 +0000waleee(~waleee@2001:9b0:21c:4000:5bf9:6515:c030:57b7) (Ping timeout: 246 seconds)
2023-08-20 12:31:19 +0000kiro(~kiro@60.240.169.108) (Client Quit)
2023-08-20 12:31:22 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 12:35:27 +0000Lycurgus(~juan@user/Lycurgus)
2023-08-20 12:35:30 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 12:41:09 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 12:41:23 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 12:42:42 +0000mvk(~mvk@2607:fea8:5c9a:a600::1c6d)
2023-08-20 12:43:09 +0000L29Ah(~L29Ah@wikipedia/L29Ah)
2023-08-20 12:45:18 +0000idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
2023-08-20 12:51:29 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 12:51:43 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 12:54:15 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 12:54:16 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 12:59:31 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-20 13:04:19 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375) (Remote host closed the connection)
2023-08-20 13:07:02 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 13:09:08 +0000kupi(uid212005@id-212005.hampstead.irccloud.com)
2023-08-20 13:09:40 +0000Lycurgus(~juan@user/Lycurgus) (Quit: Tschüss)
2023-08-20 13:11:20 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 245 seconds)
2023-08-20 13:24:18 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 13:24:18 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 13:27:33 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Quit: Leaving)
2023-08-20 13:32:13 +0000shapr(~user@2600:1700:c640:3100:4a10:9cc3:c2a8:452b) (Remote host closed the connection)
2023-08-20 13:32:14 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce)
2023-08-20 13:32:28 +0000shapr(~user@2600:1700:c640:3100:e4c2:b6ef:bc7:e0a2)
2023-08-20 13:32:28 +0000 <Inst> You’ll see that the web browser magically refreshes once you save the file changes.
2023-08-20 13:32:28 +0000 <Inst> Did it work? Congratulations 🎉 You’ve officially built your first haskell web application :) That makes you a haskell programmer. Welcome to the Haskell community! :)
2023-08-20 13:33:11 +0000 <Inst> apparently the price of admission via IHP is figuring out how to install Nix, how to install IHP, how to get the sample program up, and how to edit and save the source files to experience the magic of live reloading
2023-08-20 13:33:29 +0000 <Inst> that said, getting Nix working is not trivial
2023-08-20 13:35:51 +0000 <Inst> and you can ship your first Haskell app to production in about 60-90 minutes with IHP.
2023-08-20 13:47:42 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be)
2023-08-20 13:48:25 +0000zer0bitz_zer0bitz
2023-08-20 13:53:05 +0000fweht(uid404746@id-404746.lymington.irccloud.com)
2023-08-20 13:53:27 +0000notzmv(~zmv@user/notzmv) (Ping timeout: 260 seconds)
2023-08-20 13:55:52 +0000teddyc(theodorc@cassarossa.samfundet.no) (Ping timeout: 240 seconds)
2023-08-20 13:59:28 +0000teddyc(theodorc@cassarossa.samfundet.no)
2023-08-20 13:59:37 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 14:03:57 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 246 seconds)
2023-08-20 14:05:55 +0000Inst(~liamzy@2601:6c4:4085:6d50::ecce) (Ping timeout: 245 seconds)
2023-08-20 14:16:37 +0000 <logothesia> mauke: is there a way to prevent stack from deleting temporary files?
2023-08-20 14:22:02 +0000misterfish(~misterfis@84-53-85-146.bbserv.nl) (Ping timeout: 245 seconds)
2023-08-20 14:26:38 +0000waleee(~waleee@h-176-10-137-138.NA.cust.bahnhof.se)
2023-08-20 14:26:49 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 14:27:06 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 14:29:26 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2023-08-20 14:33:19 +0000 <albet70> how to find a index of a sub-byetstring in another bytestring?
2023-08-20 14:34:06 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
2023-08-20 14:36:33 +0000christo(~christo@202.159.165.152)
2023-08-20 14:37:09 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 14:37:24 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 14:40:04 +0000NewtonTrendy(uid282092@user/bopqod)
2023-08-20 14:40:54 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)
2023-08-20 14:46:04 +0000anselmschueler(~anselmsch@user/schuelermine)
2023-08-20 14:48:44 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 248 seconds)
2023-08-20 14:48:47 +0000 <ncf> https://hackage.haskell.org/package/bytestring-0.12.0.2/docs/Data-ByteString.html#v:breakSubstring
2023-08-20 14:50:05 +0000crazazy(~user@130.89.171.133)
2023-08-20 14:50:33 +0000anselmschueler(~anselmsch@user/schuelermine) (Client Quit)
2023-08-20 14:50:45 +0000anselmschueler(~anselmsch@user/schuelermine)
2023-08-20 14:50:56 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 14:51:53 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 14:51:54 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 14:54:14 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 14:55:46 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 256 seconds)
2023-08-20 14:56:49 +0000Unicorn_Princess(~Unicorn_P@user/Unicorn-Princess/x-3540542)
2023-08-20 14:57:27 +0000tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Read error: Connection reset by peer)
2023-08-20 14:58:16 +0000anselmschueler(~anselmsch@user/schuelermine) (Quit: WeeChat 4.0.3)
2023-08-20 15:03:01 +0000christo(~christo@202.159.165.152) (Quit: WeeChat 3.8)
2023-08-20 15:06:11 +0000jero98772(~jero98772@2800:484:1d84:300::2)
2023-08-20 15:06:35 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex)
2023-08-20 15:06:36 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8)
2023-08-20 15:08:36 +0000acidjnk(~acidjnk@p200300d6e7072f9611bac84c98e29ab7.dip0.t-ipconnect.de)
2023-08-20 15:09:56 +0000 <EvanR> albet70, the package I linked last night also has that
2023-08-20 15:11:21 +0000 <EvanR> I see breakSubstring exists now, cool
2023-08-20 15:18:50 +0000crazazy(~user@130.89.171.133) (Ping timeout: 244 seconds)
2023-08-20 15:20:31 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be) (Ping timeout: 258 seconds)
2023-08-20 15:21:48 +0000bratwurst(~blaadsfa@2604:3d09:207f:f650:216:3eff:fe5a:a1f8) (Ping timeout: 248 seconds)
2023-08-20 15:26:20 +0000wroathe(~wroathe@user/wroathe)
2023-08-20 15:28:41 +0000 <wroathe> So I've got a profile that says roughly a third of my program's allocations are being made by this routine: https://gist.github.com/JustinChristensen/1a260e17984f0daae853fc5d56ab08f5 . This is using Megaparsec. What I'm attemping to do here is advance the parser state to the next field boundary (this is used by another routine that is buffering up positions in a list that gives me random access to their
2023-08-20 15:28:47 +0000 <wroathe> positions at the end of parsing a row to build up my output)
2023-08-20 15:29:34 +0000 <wroathe> Maybe you guys know of a better way to do this with Megaparsec. The two fields I'm updating there on the parser state are the stateInput and stateOffset, which are the remaining input to consume, and the offset from the beginning of the initial input stream
2023-08-20 15:30:17 +0000 <wroathe> From what I can tell using `drop` like that is fairly common... but I'm wondering if that's what's responsible for making so many allocations. I'll attach the profile output to that gist too
2023-08-20 15:31:32 +0000 <wroathe> Ok, gist updated
2023-08-20 15:32:32 +0000 <wroathe> In C terms what I'm trying to model is advancing the pointer to the next field boundary, and then subtracting from the current position
2023-08-20 15:32:55 +0000 <wroathe> So the question is if there's a way to do that here with the Megaparsec model of the parser state
2023-08-20 15:33:37 +0000 <wroathe> Those two operations shouldn't even require memory allocation in C terms (yes, I know this is Haskell, I'm just trying to explain what I'm trying to achieve)
2023-08-20 15:40:23 +0000jonathan_(~jonathan@193.203.13.34)
2023-08-20 15:41:52 +0000pavonia(~user@user/siracusa) (Quit: Bye!)
2023-08-20 15:42:05 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 15:42:50 +0000 <wroathe> The question for this channel is: can anyone point out where the allocations are being made by that routine?
2023-08-20 15:44:09 +0000 <mauke> I assume laziness
2023-08-20 15:46:27 +0000 <wroathe> Or maybe there's a good way to get a report of exactly what's being allocated. I guess I'll try to make sense of that heap profiling thing again.
2023-08-20 15:47:19 +0000 <wroathe> A cool project for ghc would be to try and make it output profiling data that Chrome Developer Tools can consume
2023-08-20 15:47:23 +0000sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-20 15:47:36 +0000tzh(~tzh@c-24-21-73-154.hsd1.wa.comcast.net)
2023-08-20 15:54:32 +0000 <EvanR> I know you can profile retainers to see who is holding heap objects
2023-08-20 15:55:21 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 15:55:44 +0000 <wroathe> yeah I'll give that a shot
2023-08-20 15:55:50 +0000 <EvanR> note when you try to write haskell algorithms that increment and decrement counters, you need to make sure they get evaluated soon so the thunks don't pile up
2023-08-20 15:56:22 +0000 <wroathe> EvanR: How would I do that in this case?
2023-08-20 15:56:50 +0000 <EvanR> put the counter in a strict field, use bang patterns, or judicious use of seq
2023-08-20 15:57:26 +0000 <wroathe> EvanR: https://github.com/mrkkrp/megaparsec/blob/master/Text/Megaparsec/State.hs#L43 I think this means it's already a strict field, right?
2023-08-20 15:57:36 +0000 <EvanR> yeah it is
2023-08-20 15:57:49 +0000 <EvanR> I was assume megaparsec's inner workings already... work
2023-08-20 15:57:49 +0000gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2023-08-20 15:58:09 +0000gentauro(~gentauro@user/gentauro)
2023-08-20 15:58:16 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 246 seconds)
2023-08-20 15:58:17 +0000 <wroathe> I suspect it's the `findIndex` or `drop` calls I'm making there
2023-08-20 15:58:43 +0000 <wroathe> My naive assumption is that something like `drop` allocates an entirely new Text with the remaining content of the original input
2023-08-20 15:59:31 +0000 <wroathe> brb
2023-08-20 16:00:12 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-08-20 16:01:07 +0000 <EvanR> no the result will point into the same underlying array
2023-08-20 16:02:12 +0000 <EvanR> but if you iteratively drop on the same text object without doing anything with the intermediates, it could cause thunks to pile up.
2023-08-20 16:02:29 +0000 <mauke> stateOffset is strict, stateInput is not
2023-08-20 16:02:46 +0000 <mauke> also, I'm not sure the entire state thing is strict
2023-08-20 16:03:13 +0000notzmv(~zmv@user/notzmv)
2023-08-20 16:03:51 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 246 seconds)
2023-08-20 16:04:56 +0000jonathan__(~jonathan@193.203.13.91)
2023-08-20 16:05:06 +0000titibandit(~titibandi@user/titibandit)
2023-08-20 16:06:23 +0000AlexNoo_AlexNoo
2023-08-20 16:06:42 +0000 <AlexZenon> ����!
2023-08-20 16:06:42 +0000yahb2(~yahb2@2a01:4f8:c0c:5c7b::2) (Remote host closed the connection)
2023-08-20 16:07:26 +0000yahb2(~yahb2@2a01:4f8:c0c:5c7b::2)
2023-08-20 16:07:37 +0000jonathan_(~jonathan@193.203.13.34) (Ping timeout: 260 seconds)
2023-08-20 16:08:17 +0000sm(~sm@plaintextaccounting/sm) (Remote host closed the connection)
2023-08-20 16:08:35 +0000wroathe(~wroathe@user/wroathe)
2023-08-20 16:08:40 +0000 <wroathe> back
2023-08-20 16:08:57 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 16:09:20 +0000RSCASTILHO(~RSCASTILH@187.40.124.54)
2023-08-20 16:09:57 +0000 <EvanR> wroathe, ran into this warning while looking at the megaparsec code, might not be relevant xD https://i.imgur.com/jlc5TYQ.png
2023-08-20 16:10:23 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 16:10:23 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 16:12:05 +0000 <wroathe> EvanR: To my knowledge I'm not calling that anywhere in my program, and I think that warning only pertains to the parser that you pass into that function as argument "p"
2023-08-20 16:13:26 +0000sm(~sm@plaintextaccounting/sm) (Ping timeout: 250 seconds)
2023-08-20 16:13:28 +0000 <EvanR> well it queries the offset, runs the parser, then queries the offset again
2023-08-20 16:13:50 +0000 <EvanR> so if that parser does shenanigans, ...
2023-08-20 16:13:57 +0000 <wroathe> right
2023-08-20 16:14:13 +0000 <wroathe> yeah, but I'm not using that function anywhere (even indirectly)
2023-08-20 16:14:17 +0000mvk(~mvk@2607:fea8:5c9a:a600::1c6d) (Ping timeout: 246 seconds)
2023-08-20 16:15:21 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 16:16:47 +0000 <wroathe> I just need to dig in more to these heap profiling flags
2023-08-20 16:17:32 +0000 <EvanR> is it that your program is very slow? or seems to leak memory or what
2023-08-20 16:18:27 +0000 <wroathe> It's slower than expected. This is just a hobby thing, and I want to make it fast. Especially because the full run of it will consume a few gigabytes worth of data while standing up a docker image with a database.
2023-08-20 16:19:16 +0000 <wroathe> Whole thing takes about ~2s for an 8 MB TSV file
2023-08-20 16:19:26 +0000 <EvanR> I gather megaparsec is geared toward convenience rather than speed
2023-08-20 16:20:14 +0000 <wroathe> It has benchmarks showing that it outperforms the other parser combinator libraries. At this point if it were the libraries fault I think it would be due to a weakness in the parser combinator model of parsing generally, and not something to do with megaparsec specifically
2023-08-20 16:20:26 +0000 <wroathe> But I don't think it's the library. I suspect it's my routine.
2023-08-20 16:21:05 +0000ddellacosta(~ddellacos@143.244.47.100) (Ping timeout: 258 seconds)
2023-08-20 16:21:11 +0000 <wroathe> And in general I have a knack for finding use cases that libraries I use aren't built for :P
2023-08-20 16:22:37 +0000tremon(~tremon@83.80.159.219)
2023-08-20 16:22:57 +0000son0p(~ff@191.104.6.44) (Quit: Bye)
2023-08-20 16:24:42 +0000ddellacosta(~ddellacos@143.244.47.100)
2023-08-20 16:26:22 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 16:32:12 +0000hugo(znc@130.236.254.23) (Ping timeout: 248 seconds)
2023-08-20 16:35:12 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 240 seconds)
2023-08-20 16:37:10 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-08-20 16:38:45 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-20 16:42:09 +0000 <stefan-_> when creating a jupyter notebook with an IHaskell kernel there is an error shown in the jupyter console: https://gist.github.com/dozed/adafc18951ffd32bc6c6e7c881f7d772
2023-08-20 16:42:12 +0000 <stefan-_> any ideas how to fix this?
2023-08-20 16:47:45 +0000titibandit(~titibandi@user/titibandit) (Ping timeout: 246 seconds)
2023-08-20 16:48:01 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 16:48:12 +0000 <EvanR> stefan-_, I see https://github.com/IHaskell/IHaskell/issues/1385
2023-08-20 16:48:13 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 244 seconds)
2023-08-20 16:50:08 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-08-20 16:51:01 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 16:52:35 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 16:53:03 +0000son0p(~ff@191.104.6.44)
2023-08-20 16:53:09 +0000justsomeguy(~justsomeg@user/justsomeguy) (Quit: WeeChat 3.6)
2023-08-20 16:53:34 +0000hugo(znc@verdigris.lysator.liu.se) (Ping timeout: 246 seconds)
2023-08-20 16:54:12 +0000 <stefan-_> EvanR, thanks, at least I am not the only one facing that issue :)
2023-08-20 16:59:19 +0000danza(~francesco@151.47.141.240)
2023-08-20 17:02:30 +0000sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-20 17:03:22 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Ping timeout: 246 seconds)
2023-08-20 17:04:47 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 260 seconds)
2023-08-20 17:06:50 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-08-20 17:13:06 +0000hololeap(~quassel@user/hololeap) (Quit: Bye)
2023-08-20 17:14:15 +0000hololeap(~quassel@user/hololeap)
2023-08-20 17:14:46 +0000hugo(znc@verdigris.lysator.liu.se)
2023-08-20 17:16:12 +0000 <wroathe> lol... I was so excited for https://gitlab.haskell.org/ghc/ghc-debug. Le sigh: https://gist.github.com/JustinChristensen/08af9eeb053217d0e484a2b5dd52255a
2023-08-20 17:16:50 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be)
2023-08-20 17:18:56 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 17:20:36 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2023-08-20 17:24:58 +0000eggplantade(~Eggplanta@2600:1700:38c5:d800:bc38:61d8:7af5:2488)
2023-08-20 17:26:34 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 17:29:01 +0000sm(~sm@plaintextaccounting/sm) (Client Quit)
2023-08-20 17:29:11 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Ping timeout: 246 seconds)
2023-08-20 17:37:15 +0000bitdex(~bitdex@gateway/tor-sasl/bitdex) (Ping timeout: 246 seconds)
2023-08-20 17:41:11 +0000justsomeguy(~justsomeg@user/justsomeguy)
2023-08-20 17:43:13 +0000 <AlexZenon> riamo.ru
2023-08-20 17:48:53 +0000wroathe(~wroathe@207.153.38.140)
2023-08-20 17:48:53 +0000wroathe(~wroathe@207.153.38.140) (Changing host)
2023-08-20 17:48:53 +0000wroathe(~wroathe@user/wroathe)
2023-08-20 17:56:17 +0000connrs(~connrs@user/connrs) (Read error: Connection reset by peer)
2023-08-20 17:56:35 +0000 <shapr> that looks like spam
2023-08-20 17:59:24 +0000connrs(~connrs@user/connrs)
2023-08-20 17:59:47 +0000ChanServ+o shapr
2023-08-20 17:59:53 +0000AlexZenonshapr (Kicked by shapr)
2023-08-20 17:59:54 +0000AlexZenon(~alzenon@178.34.150.48)
2023-08-20 18:00:18 +0000 <shapr> AlexZenon: please don't spam
2023-08-20 18:00:21 +0000 <shapr> otherwise I'll have to ban you
2023-08-20 18:00:33 +0000 <shapr> if you want to learn Haskell, this is a great place!
2023-08-20 18:00:39 +0000 <shapr> if you want to spam, you will be removed
2023-08-20 18:06:22 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 18:08:57 +0000kupi(uid212005@id-212005.hampstead.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-20 18:09:52 +0000thegeekinside(~thegeekin@189.217.90.224)
2023-08-20 18:10:20 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk)
2023-08-20 18:10:46 +0000thegeekinside(~thegeekin@189.217.90.224) (Remote host closed the connection)
2023-08-20 18:14:12 +0000szkl(uid110435@id-110435.uxbridge.irccloud.com)
2023-08-20 18:14:57 +0000Simikando(~Simikando@adsl-dyn1.91-127-51.t-com.sk) (Ping timeout: 245 seconds)
2023-08-20 18:26:10 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 18:26:56 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375)
2023-08-20 18:30:51 +0000vgtw(~vgtw@user/vgtw) (Quit: ZNC - https://znc.in)
2023-08-20 18:31:57 +0000idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c)
2023-08-20 18:32:12 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 248 seconds)
2023-08-20 18:41:51 +0000son0p(~ff@191.104.6.44) (Quit: Bye)
2023-08-20 18:47:56 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be) (Ping timeout: 245 seconds)
2023-08-20 18:56:32 +0000vgtw(~vgtw@user/vgtw)
2023-08-20 18:56:37 +0000misterfish(~misterfis@84.53.85.146)
2023-08-20 19:15:30 +0000jonathan__(~jonathan@193.203.13.91) (Ping timeout: 245 seconds)
2023-08-20 19:19:32 +0000fendor(~fendor@2a02:8388:1640:be00:b586:6c06:a58:19a3) (Remote host closed the connection)
2023-08-20 19:20:19 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 19:20:20 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 19:20:29 +0000ystael(~ystael@user/ystael)
2023-08-20 19:20:51 +0000sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-20 19:26:20 +0000justsomeguy(~justsomeg@user/justsomeguy) (Ping timeout: 245 seconds)
2023-08-20 19:29:39 +0000Inst(~liamzy@2601:6c4:4085:6d50::d375) (Remote host closed the connection)
2023-08-20 19:30:29 +0000Inst(~liamzy@2601:6c4:4085:6d50::bea1)
2023-08-20 19:38:47 +0000danza(~francesco@151.47.141.240) (Ping timeout: 260 seconds)
2023-08-20 19:41:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com)
2023-08-20 19:41:53 +0000wroathe(~wroathe@207-153-38-140.fttp.usinternet.com) (Changing host)
2023-08-20 19:41:53 +0000wroathe(~wroathe@user/wroathe)
2023-08-20 19:43:22 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net) (Ping timeout: 244 seconds)
2023-08-20 19:50:05 +0000YuutaW(~YuutaW@mail.yuuta.moe) (Ping timeout: 245 seconds)
2023-08-20 19:50:51 +0000shriekingnoise(~shrieking@186.137.175.87)
2023-08-20 19:51:57 +0000YuutaW(~YuutaW@mail.yuuta.moe)
2023-08-20 19:55:26 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be)
2023-08-20 20:02:23 +0000hololeap(~quassel@user/hololeap) (Quit: Bye)
2023-08-20 20:03:36 +0000hololeap(~quassel@user/hololeap)
2023-08-20 20:04:02 +0000_ht(~Thunderbi@82.174.52.28) (Quit: _ht)
2023-08-20 20:07:08 +0000misterfish(~misterfis@84.53.85.146) (Ping timeout: 248 seconds)
2023-08-20 20:09:21 +0000idgaen(~idgaen@2a01:e0a:498:fd50:fcc6:bb5d:489a:ce8c) (Quit: WeeChat 4.0.2)
2023-08-20 20:12:05 +0000Pickchea(~private@user/pickchea)
2023-08-20 20:15:04 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 20:18:52 +0000falafel(~falafel@51.6.68.216) (Ping timeout: 248 seconds)
2023-08-20 20:21:36 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 244 seconds)
2023-08-20 20:29:32 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2023-08-20 20:30:38 +0000jmdaemon(~jmdaemon@user/jmdaemon)
2023-08-20 20:36:41 +0000hololeap(~quassel@user/hololeap) (Quit: Bye)
2023-08-20 20:42:03 +0000azimut(~azimut@gateway/tor-sasl/azimut) (Ping timeout: 246 seconds)
2023-08-20 20:42:44 +0000RSCASTILHO(~RSCASTILH@187.40.124.54) ()
2023-08-20 20:44:06 +0000wroathe(~wroathe@user/wroathe)
2023-08-20 20:44:47 +0000hololeap(~quassel@user/hololeap)
2023-08-20 20:44:49 +0000 <tomsmeding> logothesia: ensure you have pull in c2hs 0.28.8
2023-08-20 20:44:53 +0000 <tomsmeding> s/have//
2023-08-20 20:45:20 +0000 <tomsmeding> try: cabal build --constraint 'c2hs >=0.28.8'
2023-08-20 20:45:24 +0000 <tomsmeding> https://github.com/haskell/c2hs/issues/268
2023-08-20 20:49:28 +0000mikoto-chan(~mikoto-ch@ip-83-134-209-157.dsl.scarlet.be) (Ping timeout: 246 seconds)
2023-08-20 20:49:49 +0000coot(~coot@89-69-206-216.dynamic.chello.pl)
2023-08-20 20:57:07 +0000pavonia(~user@user/siracusa)
2023-08-20 20:57:25 +0000Inst(~liamzy@2601:6c4:4085:6d50::bea1) (Remote host closed the connection)
2023-08-20 20:57:44 +0000Inst(~liamzy@2601:6c4:4085:6d50::85eb)
2023-08-20 21:02:35 +0000hololeap(~quassel@user/hololeap) (Quit: Bye)
2023-08-20 21:04:06 +0000AlexZenon(~alzenon@178.34.150.48) (Ping timeout: 256 seconds)
2023-08-20 21:05:37 +0000hololeap(~quassel@user/hololeap)
2023-08-20 21:11:18 +0000AlexZenon(~alzenon@178.34.150.48)
2023-08-20 21:16:12 +0000caryhartline(~caryhartl@168.182.58.169)
2023-08-20 21:20:14 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl)
2023-08-20 21:20:46 +0000falafel(~falafel@51.6.68.216)
2023-08-20 21:21:48 +0000AlexZenon(~alzenon@178.34.150.48) (Ping timeout: 248 seconds)
2023-08-20 21:22:40 +0000sm(~sm@plaintextaccounting/sm)
2023-08-20 21:23:38 +0000dcoutts(~duncan@cpc69402-oxfd27-2-0-cust903.4-3.cable.virginm.net)
2023-08-20 21:24:28 +0000zer0bitz(~zer0bitz@user/zer0bitz) (Read error: Connection reset by peer)
2023-08-20 21:24:45 +0000AlexZenon(~alzenon@178.34.150.48)
2023-08-20 21:24:48 +0000merijn(~merijn@088-129-128-083.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2023-08-20 21:25:38 +0000caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-08-20 21:29:36 +0000AlexZenon(~alzenon@178.34.150.48) (Ping timeout: 245 seconds)
2023-08-20 21:31:15 +0000AlexZenon(~alzenon@178.34.150.48)
2023-08-20 21:34:00 +0000anselmschueler(~anselmsch@user/schuelermine)
2023-08-20 21:34:57 +0000coot(~coot@89-69-206-216.dynamic.chello.pl) (Quit: coot)
2023-08-20 21:35:56 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 246 seconds)
2023-08-20 21:36:45 +0000Inst(~liamzy@2601:6c4:4085:6d50::85eb) (Ping timeout: 245 seconds)
2023-08-20 21:37:16 +0000dextaa(~DV@user/dextaa) (Ping timeout: 248 seconds)
2023-08-20 21:40:20 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 21:40:20 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 21:40:20 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 21:42:06 +0000acidjnk(~acidjnk@p200300d6e7072f9611bac84c98e29ab7.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2023-08-20 21:49:13 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 21:49:28 +0000econo_(uid147250@id-147250.tinside.irccloud.com)
2023-08-20 21:52:48 +0000jero98772(~jero98772@2800:484:1d84:300::2) (Ping timeout: 246 seconds)
2023-08-20 21:53:08 +0000sm(~sm@plaintextaccounting/sm) (Quit: sm)
2023-08-20 21:53:42 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 245 seconds)
2023-08-20 21:53:56 +0000shapr(~user@2600:1700:c640:3100:e4c2:b6ef:bc7:e0a2) (Remote host closed the connection)
2023-08-20 21:54:09 +0000shapr(~user@2600:1700:c640:3100:5507:bbc0:d0c9:b395)
2023-08-20 21:54:29 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470) (Ping timeout: 246 seconds)
2023-08-20 21:54:48 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-20 21:59:30 +0000gmg(~user@user/gehmehgeh) (Quit: Leaving)
2023-08-20 21:59:32 +0000dibblego(~dibblego@haskell/developer/dibblego) (Ping timeout: 245 seconds)
2023-08-20 21:59:39 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net) (Client Quit)
2023-08-20 22:04:39 +0000jero98772(~jero98772@2800:484:1d84:300::2)
2023-08-20 22:05:42 +0000stiell_(~stiell@gateway/tor-sasl/stiell) (Ping timeout: 246 seconds)
2023-08-20 22:07:30 +0000Pickchea(~private@user/pickchea) (Quit: Leaving)
2023-08-20 22:07:47 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 22:08:15 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au)
2023-08-20 22:08:15 +0000dibblego(~dibblego@116-255-1-151.ip4.superloop.au) (Changing host)
2023-08-20 22:08:15 +0000dibblego(~dibblego@haskell/developer/dibblego)
2023-08-20 22:08:20 +0000stiell_(~stiell@gateway/tor-sasl/stiell)
2023-08-20 22:09:11 +0000ulysses4ever(~artem@c-73-103-90-145.hsd1.in.comcast.net)
2023-08-20 22:09:11 +0000artem(~artem@c-73-103-90-145.hsd1.in.comcast.net) (Read error: Connection reset by peer)
2023-08-20 22:11:37 +0000jero98772(~jero98772@2800:484:1d84:300::2) (Ping timeout: 260 seconds)
2023-08-20 22:12:47 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 260 seconds)
2023-08-20 22:14:53 +0000caryhartline(~caryhartl@168.182.58.169)
2023-08-20 22:19:10 +0000mikoto-chan(~mikoto-ch@85-76-46-81-nat.elisa-mobile.fi)
2023-08-20 22:25:35 +0000mvk(~mvk@2607:fea8:5c9a:a600::1c6d)
2023-08-20 22:26:26 +0000machinedgod(~machinedg@d198-53-218-113.abhsia.telus.net)
2023-08-20 22:29:08 +0000tremon(~tremon@83.80.159.219) (Quit: getting boxed in)
2023-08-20 22:32:47 +0000fweht(uid404746@id-404746.lymington.irccloud.com) (Quit: Connection closed for inactivity)
2023-08-20 22:46:20 +0000mikoto-chan(~mikoto-ch@85-76-46-81-nat.elisa-mobile.fi) (Ping timeout: 245 seconds)
2023-08-20 22:49:20 +0000 <wroathe> Hey guys, so I've got a memory profile of my program that shows that lots of Text and ARR_WORDS are being allocated by my program. I think I know where this is happening, but what tools can I use to very clearly see the new allocation being made with my own two eyes?
2023-08-20 22:49:47 +0000 <wroathe> I'm calling `drop` from Data.Text, and from what I can see in the text library code it looks like it creates a new Text object
2023-08-20 22:50:05 +0000 <wroathe> What I'm wondering is if this strict annotation here: https://github.com/haskell/text/blob/master/src/Data/Text/Internal.hs#L66 means that it copies the inner array each time it does so?
2023-08-20 22:50:24 +0000hsxtrt(~hsxtrt@14-200-253-168.static.tpgi.com.au)
2023-08-20 22:50:32 +0000 <wroathe> Here's where a new Text is created: https://github.com/haskell/text/blob/master/src/Data/Text.hs#L1450
2023-08-20 22:51:16 +0000 <wroathe> Is there a compilation stage I can look at that would show me that calling drop is copying this array?
2023-08-20 22:51:21 +0000anselmschueler(~anselmsch@user/schuelermine) (Quit: WeeChat 4.0.3)
2023-08-20 22:51:52 +0000 <mauke> to me that looks like it creates a new wrapper object (of type Text), but does not copy the underlying array
2023-08-20 22:52:16 +0000 <wroathe> Ah. I was wondering if the ! would change that behavior
2023-08-20 22:52:28 +0000 <geekosaur> nope, it requires more than that
2023-08-20 22:53:54 +0000 <wroathe> Hmm, this is the section of code I'm trying to figure out the problem with: https://gist.github.com/JustinChristensen/1a260e17984f0daae853fc5d56ab08f5
2023-08-20 22:54:13 +0000 <wroathe> From earlier this morning. The profile says that this advanceTo routine is responsible for 33% of my program's allocations
2023-08-20 22:54:46 +0000 <wroathe> The idea there is with megaparsec I'm trying to advance the input and offset to a TSV field boundary (and hoping to do that without any extra allocations)
2023-08-20 22:55:17 +0000 <wroathe> Sorry, 37%
2023-08-20 22:56:55 +0000jargon(~jargon@174-22-213-62.phnx.qwest.net)
2023-08-20 22:57:28 +0000 <EvanR> so how does findIndex work
2023-08-20 22:58:35 +0000 <EvanR> i'll be interested to see how you do that without allocations
2023-08-20 22:59:20 +0000 <wroathe> https://github.com/haskell/text/blob/9fc523cef77f02c465afe00a2f4ac67c388f9945/src/Data/Text.hs#L19…
2023-08-20 22:59:37 +0000 <EvanR> ah it's from Data.Text
2023-08-20 23:00:19 +0000 <wroathe> EvanR: Yeah, I don't truly mean zero allocation. I'm just trying to approximate how easy it woudl be to do something like this with an array in C to this context
2023-08-20 23:00:23 +0000hsxtrt(~hsxtrt@14-200-253-168.static.tpgi.com.au) (Quit: This computer has gone to sleep)
2023-08-20 23:00:55 +0000 <wroathe> The -hd profile I just ran shows Text and ARR_WORDS is the largest portion of allocation occuring
2023-08-20 23:01:33 +0000 <EvanR> the Data.Text implementation code uses a stream framework which is subject to optimizations, like fusion
2023-08-20 23:01:59 +0000Guest|7(~Guest|7@cpe-184-54-115-255.swo.res.rr.com)
2023-08-20 23:02:08 +0000 <EvanR> you said you were reading 8MB file, so there's that
2023-08-20 23:02:47 +0000 <wroathe> Yup
2023-08-20 23:03:02 +0000 <wroathe> I'm trying to figure out how to get a screenshot of this report. One sec.
2023-08-20 23:03:25 +0000 <EvanR> is it lazy I/O or fully loaded before parsing
2023-08-20 23:03:34 +0000 <Guest|7> Hello! I'm trying to install GHCi on Artix linux. I saw the section about setting a platform-override for ghcup, but I can't find what the config overrides would be for Arch. Would anyone be able to tell me what command I should use?
2023-08-20 23:04:08 +0000 <wroathe> EvanR: I'm just using Data.Text.IO readFile
2023-08-20 23:04:09 +0000 <EvanR> if it's lazy I/O it's not surprising to see alot of allocating in the process of seeking forward
2023-08-20 23:05:05 +0000 <shapr> there's a lot to learn in the world
2023-08-20 23:05:39 +0000 <shapr> Guest|7: What's different about artix linux? What's a platform override?
2023-08-20 23:07:18 +0000 <Guest|7> The issue is that when running `ghcup install ghci`, ghcup throws an error about 'undetected distro'. Arch and Artix are pretty similar, Artix just has more options for init systems. I got the platform override from here: https://www.haskell.org/ghcup/guide/#overriding-distro-detection
2023-08-20 23:07:44 +0000 <Guest|7> But it only lists an example for Void and Ubuntu
2023-08-20 23:09:35 +0000[itchyjunk](~itchyjunk@user/itchyjunk/x-7353470)
2023-08-20 23:10:10 +0000 <EvanR> wroathe, according to readFile (hGetContents) for Data.Text.IO, it will read chunks until none are left to read, concat them all and return them. So that's a lot of allocating, but should happen upfront at the beginning
2023-08-20 23:11:07 +0000 <sclv> Guest|7: you can find a list of the platforms in the ghcup distro metadata yaml i think https://github.com/haskell/ghcup-metadata/blob/c88802ea8cf25a4e16227679dd89e8843ad7f759/ghcup-0.0.…
2023-08-20 23:11:55 +0000 <Guest|7> Oh I see, thanks. I was just looking in the wrong place
2023-08-20 23:12:05 +0000 <wroathe> EvanR: https://i.imgur.com/aETjZ8g.png
2023-08-20 23:12:22 +0000 <wroathe> The amount of technical difficulty I had getting that screenshot on desktop linux makes me feel old :D
2023-08-20 23:12:41 +0000 <EvanR> print screen works on default ubuntu right now
2023-08-20 23:12:50 +0000 <wroathe> Yeah I'm on Fedora, and relatively new to it
2023-08-20 23:12:54 +0000 <shapr> ( flameshot is a really good screenshot tool on Linux, according to my recent research )
2023-08-20 23:12:55 +0000 <wroathe> I'm just getting used to grim/slurp
2023-08-20 23:13:00 +0000 <wroathe> Using sway as my window manager
2023-08-20 23:13:23 +0000 <wroathe> Yeah I just installed/used grimshot and it did what I needed
2023-08-20 23:13:38 +0000 <wroathe> This is the result of running with -hd for my program: https://i.imgur.com/aETjZ8g.png
2023-08-20 23:13:53 +0000 <EvanR> if you're expecting your program to be able to process everything in a fixed amount of memory, then your picture shows a space leak
2023-08-20 23:14:17 +0000 <wroathe> Yeah, I gathered that much already
2023-08-20 23:14:55 +0000 <wroathe> I don't think "fixed", but at the very least my goal is for something like advanceTo to not cost me 37% of my memory usage
2023-08-20 23:14:57 +0000 <EvanR> I still wasn't sure if you were chasing something worth chasing xD
2023-08-20 23:15:07 +0000 <shapr> Guest|7: did it work?
2023-08-20 23:15:16 +0000 <Guest|7> not yet
2023-08-20 23:15:45 +0000 <wroathe> Because again mentally I'm trying to implement "advance the pointer, subtract the difference to get the offset added, commit those to the parser state"
2023-08-20 23:15:56 +0000 <probie> wroathe: do you get different results for memory usage when there's no lazy IO going on?
2023-08-20 23:16:00 +0000 <wroathe> Which might not be possible with megaparsec, but I'm just seeing what options I've got
2023-08-20 23:16:16 +0000 <wroathe> probie: How would I disable that? Which Data.Text routine are you thinking?
2023-08-20 23:16:31 +0000 <EvanR> megaparsec does backtracking, so it might not be able to drop context it needs to possibly backtrack if there's a parse error some time before the end of the processing
2023-08-20 23:17:03 +0000 <wroathe> EvanR: Well that's fine. In this mental model I'm describing there could be many parser states. As long as we're talking about pointers and not entirely new arrays the amount of overhead should be minimal
2023-08-20 23:17:23 +0000 <wroathe> (sorry I know I'm trying to apply C understanding to an entirely different beast. try to bear with me)
2023-08-20 23:17:41 +0000 <EvanR> your picture, it shows a fixed amount of ARR_WORDS
2023-08-20 23:17:49 +0000 <EvanR> which is good
2023-08-20 23:18:25 +0000 <EvanR> Text and the thing under ARR_WORDS is growing
2023-08-20 23:18:35 +0000 <EvanR> along with a lot of other stuff
2023-08-20 23:18:58 +0000 <EvanR> it looks like the ARR_WORDS grows to its max in the first 0.1 seconds, probably loading the file
2023-08-20 23:19:30 +0000 <probie> wroathe: ignore me, for some reason I thought `Data.Text.readFile` was lazy, but it's not
2023-08-20 23:19:39 +0000dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-08-20 23:19:46 +0000 <EvanR> yeah
2023-08-20 23:19:51 +0000 <wroathe> Here's the full program: https://gist.github.com/JustinChristensen/72e4eae8a8e6e4e4f9be09078770c504
2023-08-20 23:21:00 +0000dolio(~dolio@130.44.134.54)
2023-08-20 23:21:15 +0000jero98772(~jero98772@2800:484:1d84:300::2)
2023-08-20 23:23:07 +0000shapr(~user@2600:1700:c640:3100:5507:bbc0:d0c9:b395) (Remote host closed the connection)
2023-08-20 23:23:21 +0000shapr(~user@2600:1700:c640:3100:6898:ed8d:7f5e:e726)
2023-08-20 23:23:41 +0000 <EvanR> on line 278 and 279 you're holding some strings (Text) while you recurse deeper into the parsing
2023-08-20 23:23:52 +0000 <EvanR> finally it will all be linked into a list and returned
2023-08-20 23:24:04 +0000mikoto-chan(~mikoto-ch@85-76-46-81-nat.elisa-mobile.fi)
2023-08-20 23:24:06 +0000 <EvanR> so it makes sense your Text constructors will steadily increase
2023-08-20 23:24:20 +0000 <wroathe> Yeah I was wondering about that
2023-08-20 23:24:31 +0000 <wroathe> But the confusing thing is that profiling is telling me that advanceTo is the problem
2023-08-20 23:24:59 +0000 <EvanR> still not sure there is a problem yet
2023-08-20 23:25:19 +0000Guest|7(~Guest|7@cpe-184-54-115-255.swo.res.rr.com) (Quit: Connection closed)
2023-08-20 23:25:40 +0000 <wroathe> I just added the full profile
2023-08-20 23:25:41 +0000 <wroathe> To that gist
2023-08-20 23:25:48 +0000 <wroathe> If you refresh
2023-08-20 23:25:54 +0000 <EvanR> other than the obvious, you will wait until the end of parsing to return a giant linked list of strings
2023-08-20 23:26:10 +0000 <wroathe> yeah, I expect that much
2023-08-20 23:26:23 +0000 <EvanR> but since we don't know if parsing failed until we finish, we can't start process that list lazily with this plan
2023-08-20 23:26:24 +0000 <wroathe> I'm just not expecting advanceTo to be responsible for 37% of allocations
2023-08-20 23:27:07 +0000 <EvanR> well the code for findIndex does a bunch of stuff
2023-08-20 23:27:22 +0000 <wroathe> So maybe that's the cost...
2023-08-20 23:27:28 +0000 <wroathe> Hmm, I guessed it would've been drop
2023-08-20 23:27:32 +0000 <EvanR> if it produces temporary constructors, they will be collected soon
2023-08-20 23:27:48 +0000dolio(~dolio@130.44.134.54) (Quit: ZNC 1.8.2 - https://znc.in)
2023-08-20 23:28:58 +0000 <EvanR> can you write a faster processor for this data, probably xD
2023-08-20 23:29:31 +0000 <EvanR> maybe using pipes or conduit
2023-08-20 23:29:48 +0000 <wroathe> faster in what sense?
2023-08-20 23:30:00 +0000xff0x(~xff0x@138.64.86.45) (Quit: xff0x)
2023-08-20 23:30:01 +0000 <wroathe> I'm fine with it buffering up my objects for the parse in memory
2023-08-20 23:30:33 +0000 <wroathe> The way I've written it it should only examine each line of the file twice
2023-08-20 23:30:35 +0000 <EvanR> fast runtime, less memory usage
2023-08-20 23:31:28 +0000 <wroathe> Well, what's slow about this? (I'm just trying to understand what you see as costly here)
2023-08-20 23:31:28 +0000caryhartline(~caryhartl@168.182.58.169) (Quit: caryhartline)
2023-08-20 23:31:36 +0000xff0x(~xff0x@2405:6580:b080:900:9c64:3e23:a36:74a0)
2023-08-20 23:31:58 +0000 <EvanR> depends on what the goal is. To produce a giant list of strings in memory and then end the program?
2023-08-20 23:32:27 +0000 <wroathe> EvanR: Haha, to insert into a database. I just haven't gotten that far yet.
2023-08-20 23:32:43 +0000 <wroathe> I'm trying to get the parser perfect first, and then I'll write the "insert into my database" co de
2023-08-20 23:32:46 +0000 <wroathe> code*
2023-08-20 23:33:16 +0000 <EvanR> if you change it slightly to "insert every valid line (record) into the database" you could go much faster
2023-08-20 23:33:54 +0000 <wroathe> That typically runs contradictory to everything I know about program speed :P I/O is expensive. It's much cheaper to buffer all of this up and then do large inserts
2023-08-20 23:34:05 +0000 <wroathe> s/cheaper/faster/
2023-08-20 23:34:51 +0000 <wroathe> I'm just trying to get rid of unnecessary allocations. I'm pretty happy with what's there so far besides strange results I'm seeing
2023-08-20 23:35:53 +0000 <EvanR> when you read a file incrementally, it's buffered for you
2023-08-20 23:36:18 +0000 <wroathe> I mean buffer the objects up that I'm then serializing into INSERT statements
2023-08-20 23:36:44 +0000 <wroathe> Incremental I/O wouldn't help here. I think we might be saying the same thing
2023-08-20 23:36:51 +0000razetime(~quassel@117.254.37.152)
2023-08-20 23:37:08 +0000 <EvanR> yeah, you can have a pipeline stage that chunks valid records if you want to put them all in one sql call
2023-08-20 23:37:30 +0000 <wroathe> How is that different than what I'm doing here? It seems to me that the difference there is just the API
2023-08-20 23:37:43 +0000 <EvanR> I just see a profile that grows to 100M before doing anything as possibly going faster, since having large heap footprint slows haskell down
2023-08-20 23:38:13 +0000 <wroathe> I'm 1. Reading the entire file into memory, 2. Parsing its contents into records in memory, and then I'll be 3. Serializing those objects into large INSERT statements
2023-08-20 23:38:46 +0000dolio(~dolio@130.44.134.54)
2023-08-20 23:38:50 +0000 <EvanR> yeah, that's chunk size = everything
2023-08-20 23:39:21 +0000 <wroathe> It just seems strange that an 8MB file would result in 100MB of resident heap size for this
2023-08-20 23:39:36 +0000 <wroathe> For a comparable C program I'd be surprised if I went over 20MB in total
2023-08-20 23:39:44 +0000 <EvanR> depends on how large your string slices into the file are
2023-08-20 23:39:46 +0000 <wroathe> For both the file in memory and my allocated structs
2023-08-20 23:40:02 +0000 <EvanR> if each string is 1 character, 8 -> 100 would be lucky xD
2023-08-20 23:40:11 +0000hsxtrt(~hsxtrt@14-200-253-168.static.tpgi.com.au)
2023-08-20 23:40:19 +0000 <wroathe> Yeah I think that's the rub
2023-08-20 23:40:20 +0000 <EvanR> a Text has non trivial overhead
2023-08-20 23:40:32 +0000 <EvanR> at least it's not 1 character
2023-08-20 23:40:59 +0000 <EvanR> this is another reason you'd like to not load it all into memory at once
2023-08-20 23:41:07 +0000 <wroathe> Hmm, I wonder if Bytestring or String would lead to better memory usage
2023-08-20 23:41:20 +0000 <monochrom> Did you know that a list of length n takes 3*w*n bytes where w=4 or 8, and this is just for the (:) nodes, not even counting the elements?
2023-08-20 23:41:21 +0000 <geekosaur> String will be much worse
2023-08-20 23:41:21 +0000 <EvanR> not String, no which has that overhead for every single Char
2023-08-20 23:41:39 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 246 seconds)
2023-08-20 23:42:03 +0000 <monochrom> And the heap size is going to be 2*3*w*n because copying GC = double buffering like in computer graphics.
2023-08-20 23:42:29 +0000 <wroathe> monochrom: where are you getting the 3 from?
2023-08-20 23:42:44 +0000 <monochrom> How GHC does algebraic data types.
2023-08-20 23:43:05 +0000xff0x(~xff0x@2405:6580:b080:900:9c64:3e23:a36:74a0) (Quit: xff0x)
2023-08-20 23:43:13 +0000 <wroathe> Hmm, let me get the final list counts
2023-08-20 23:43:38 +0000 <monochrom> A white-lie model that gives the correct answer but white-lie reason: each data constructor takes w bytes, each field is a pointer that also takes w bytes.
2023-08-20 23:43:49 +0000 <wroathe> Oh shoot I'm about to be kicked out of this coffee shop. I'll be back on in a bit
2023-08-20 23:43:50 +0000 <EvanR> the list nodes don't even show up in your profile because that's at the last moment before the program ends (without using the list)
2023-08-20 23:43:51 +0000 <monochrom> (:) has 2 fields therefore (1+2)*w bytes.
2023-08-20 23:43:54 +0000caryhartline(~caryhartl@168.182.58.169)
2023-08-20 23:44:17 +0000 <EvanR> profile after you print out the number of list nodes xD
2023-08-20 23:44:33 +0000 <wroathe> EvanR: Yeah that adds even more. I've tested that.
2023-08-20 23:45:00 +0000 <monochrom> The white lie is in "data constructor takes w bytes". In truth, it is a pointer to a chunk of code and info that represents the data constructor.
2023-08-20 23:45:03 +0000 <EvanR> list is better used as a vehicle for lazy evaluation than a large data structure :tm:
2023-08-20 23:46:03 +0000Lord_of_Life(~Lord@user/lord-of-life/x-2819915)
2023-08-20 23:47:04 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net)
2023-08-20 23:47:32 +0000 <hpc> it's perhaps better to call it a control structure than a data structure
2023-08-20 23:47:54 +0000 <EvanR> Control.List
2023-08-20 23:47:56 +0000 <hpc> it's a loop in disguise, kind of like how a tree is a search in disguise
2023-08-20 23:47:57 +0000 <EvanR> Data.Monad
2023-08-20 23:48:17 +0000 <mauke> Data.Function
2023-08-20 23:48:24 +0000 <EvanR> Function.Data
2023-08-20 23:48:52 +0000wroathe(~wroathe@user/wroathe) (Ping timeout: 250 seconds)
2023-08-20 23:48:56 +0000 <hpc> in other languages they still talk about say, alpha-beta search as a "search tree" rather than "this funny sort of recursive function call"
2023-08-20 23:49:07 +0000 <monochrom> Basically people who are short on RAM know about the life hack that you can reduce space consumption by 50% just by switching back to 32-bit GHC.
2023-08-20 23:49:08 +0000 <int-e> wroathe: Hmm, can you try making `i` strict in this line? https://gist.github.com/JustinChristensen/72e4eae8a8e6e4e4f9be09078770c504#file-parse-hs-L161 (so either with a bang pattern, (!i, "") or with i `seq` on the RHS)
2023-08-20 23:49:35 +0000 <EvanR> they left
2023-08-20 23:49:35 +0000 <hpc> the tree never materializes, unless you consider those function definitions a hard-coded version of it
2023-08-20 23:49:42 +0000 <int-e> https://hackage.haskell.org/package/text-2.0.2/docs/src/Data.Text.Read.html#decimal looks like it'll leave an unevaluated `foldl'` around
2023-08-20 23:49:45 +0000 <int-e> EvanR: oh, unlucky
2023-08-20 23:50:18 +0000 <geekosaur> "I'll be back on in a bit"
2023-08-20 23:50:28 +0000 <geekosaur> think they're looking for another open coffeeshop 🙂
2023-08-20 23:50:33 +0000 <EvanR> ^
2023-08-20 23:50:35 +0000 <hpc> monochrom: from a certain perspective, they're reducing space consumption by a factor of 4 billion :D
2023-08-20 23:50:43 +0000 <int-e> Which maybe explains the odd Data.Text.Read.sat_s1Vc6 allocations *and* will also hang onto a bunch of `Text` data. (looking at https://i.imgur.com/aETjZ8g.png )
2023-08-20 23:51:02 +0000 <int-e> (I'd probably forget if I didn't finish that thought.)
2023-08-20 23:51:15 +0000mvk(~mvk@2607:fea8:5c9a:a600::1c6d) (Ping timeout: 246 seconds)
2023-08-20 23:51:22 +0000 <hpc> (actually more than that, exponentials are ridiculous)
2023-08-20 23:51:28 +0000arahael(~arahael@119-18-1-27.771201.syd.nbn.aussiebb.net) (Ping timeout: 246 seconds)
2023-08-20 23:51:40 +0000falafel(~falafel@51.6.68.216) (Ping timeout: 248 seconds)
2023-08-20 23:52:10 +0000 <monochrom> Sunday evening anything open late is going to be tough.
2023-08-20 23:52:33 +0000 <int-e> EvanR: "unlucky" - I used tab-completion to write that nick
2023-08-20 23:52:52 +0000 <int-e> but didn't check again when I had finished typing the message
2023-08-20 23:53:32 +0000 <EvanR> libera haskell IRC perpetual blinking neon sign that says OPEN
2023-08-20 23:53:58 +0000 <EvanR> ok maybe not blinking that would drive me nuts
2023-08-20 23:54:55 +0000 <monochrom> Some neon signs blink because of malfunction and old age. We're in good hands. >:)
2023-08-20 23:55:43 +0000 <EvanR> yeah not blinking VCR 12:00, but stochastic
2023-08-20 23:57:46 +0000 <monochrom> I feel that we are just confronting the well-understood "parsing with `many foo` takes linear space and the constant multiplier is huge too".
2023-08-20 23:58:55 +0000 <int-e> monochrom: I mostly agree. I just didn't understand that one particular allocation.