Newest at the top
| 2025-12-08 21:08:50 +0100 | jmcantrell_ | jmcantrell |
| 2025-12-08 21:08:50 +0100 | jmcantrell_ | (~weechat@user/jmcantrell) jmcantrell |
| 2025-12-08 21:04:37 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 246 seconds) |
| 2025-12-08 20:59:44 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-08 20:55:18 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-08 20:54:37 +0100 | <monochrom> | Unboxed sums are available in very new versions of GHC. |
| 2025-12-08 20:54:01 +0100 | machinedgod | (~machinedg@d75-159-126-101.abhsia.telus.net) (Ping timeout: 264 seconds) |
| 2025-12-08 20:51:22 +0100 | <haskellbridge> | <Morj> Hope my bunch of unstructured advice helped a bit |
| 2025-12-08 20:51:14 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 260 seconds) |
| 2025-12-08 20:49:42 +0100 | <haskellbridge> | <Morj> You won't be able to use structures easily, so all your types will be turned into tuples (tuples can turn into unboxed tuples). And no easy way to get sum types, sadly |
| 2025-12-08 20:49:13 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 264 seconds) |
| 2025-12-08 20:47:51 +0100 | <haskellbridge> | <Morj> I don't think I ever used 'array' because I don't recognize the api at all. So the simple options is to take https://hackage-content.haskell.org/package/vector-0.13.2.0/docs/Data-Vector-Unboxed-Mutable.html - and use only functions beginning with 'unsafe'. You should also set {-# LANGUAGE Strict #-}, and compile with llvm backend |
| 2025-12-08 20:43:57 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
| 2025-12-08 20:42:42 +0100 | michalz | (~michalz@185.246.207.201) (Ping timeout: 244 seconds) |
| 2025-12-08 20:41:32 +0100 | <haskellbridge> | <Morj> I'm hearing ghc 9 made some things better |
| 2025-12-08 20:41:21 +0100 | michalz_ | (~michalz@185.246.207.217) |
| 2025-12-08 20:41:17 +0100 | <haskellbridge> | <Morj> It's been 5 years since I've written any high-perf myself >_> |
| 2025-12-08 20:40:01 +0100 | <haskellbridge> | <Morj> I don't know any guides, but you can use this blog for inspiration: https://0xd34df00d.me/posts/2024/09/naive-nfas.html#good-ol-st |
| 2025-12-08 20:40:01 +0100 | <iqubic> | This is my 6th year doing Advent of Code and I've used Haskell for a wide number of other projects too. |
| 2025-12-08 20:39:44 +0100 | deptype | (~deptype@2406:b400:3a:9d2f:9b7c:331e:bc52:4fc0) (Remote host closed the connection) |
| 2025-12-08 20:39:37 +0100 | <haskellbridge> | <Morj> Good! |
| 2025-12-08 20:39:15 +0100 | <iqubic> | I know Haskell very well, but I've never learned how to properly work with mutable data in Haskell. |
| 2025-12-08 20:38:34 +0100 | <haskellbridge> | <Morj> Also, iqubic it just occurred to me, how good is your understanding of haskell? Are you just learning it for AOC or using this AOC to improve your high-perf skills? |
| 2025-12-08 20:38:28 +0100 | <monochrom> | OK that too. |
| 2025-12-08 20:37:48 +0100 | <haskellbridge> | <Morj> Or array? |
| 2025-12-08 20:37:39 +0100 | <monochrom> | Oh, that would be vector. |
| 2025-12-08 20:37:24 +0100 | <haskellbridge> | <Morj> I wanted to say that there are alternatives using unboxed values, but I was verifying which package it was |
| 2025-12-08 20:36:43 +0100 | <haskellbridge> | <Morj> Sorry, I'm slow to type it out |
| 2025-12-08 20:35:50 +0100 | <iqubic> | I'm not sure what you mean there. |
| 2025-12-08 20:35:43 +0100 | <haskellbridge> | <Morj> Usually the biggest performance problems are laziness and boxed types. STArray only has boxed combinators, so if you're using it, your only chance is to set -XStrict and pray to the optimizer |
| 2025-12-08 20:32:04 +0100 | <haskellbridge> | <Morj> iqubic "newtype IOArray i e = IOArray (STArray RealWorld i e)" - so there won't be gains to switching at least |
| 2025-12-08 20:32:02 +0100 | Lord_of_Life_ | Lord_of_Life |
| 2025-12-08 20:31:49 +0100 | itaipu | (~itaipu@168.121.97.28) itaipu |
| 2025-12-08 20:31:13 +0100 | itaipu | (~itaipu@168.121.97.28) (Ping timeout: 264 seconds) |
| 2025-12-08 20:30:49 +0100 | Lord_of_Life | (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds) |
| 2025-12-08 20:30:43 +0100 | Lord_of_Life_ | (~Lord@user/lord-of-life/x-2819915) Lord_of_Life |
| 2025-12-08 20:28:23 +0100 | chele | (~chele@user/chele) (Remote host closed the connection) |
| 2025-12-08 20:28:20 +0100 | ljdarj1 | ljdarj |
| 2025-12-08 20:28:20 +0100 | ljdarj | (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2025-12-08 20:28:07 +0100 | peterbecich | (~Thunderbi@172.222.148.214) (Ping timeout: 240 seconds) |
| 2025-12-08 20:27:03 +0100 | ljdarj1 | (~Thunderbi@user/ljdarj) ljdarj |
| 2025-12-08 20:21:49 +0100 | Tuplanolla | (~Tuplanoll@91-152-225-194.elisa-laajakaista.fi) Tuplanolla |
| 2025-12-08 20:20:40 +0100 | <iqubic> | Or would it be better to work with an IOArray? |
| 2025-12-08 20:20:09 +0100 | <iqubic> | Is there a good guide to working with STArrays and the ST monad. I wrote some code for Advent of Code last night, and it's really slow because I'm making many small changes to a large data structure and recreating the whole thing each time is slow. |
| 2025-12-08 20:18:28 +0100 | mehbark | (~mehbark@user/mehbark) mehbark |
| 2025-12-08 20:18:28 +0100 | mehbark | (~mehbark@joey.luug.ece.vt.edu) (Changing host) |
| 2025-12-08 20:17:35 +0100 | mehbark | (~mehbark@joey.luug.ece.vt.edu) |
| 2025-12-08 20:17:17 +0100 | mehbark | (~mehbark@user/mehbark) (Quit: insert leave message here) |
| 2025-12-08 20:14:53 +0100 | mulk | (~mulk@p5b1127bf.dip0.t-ipconnect.de) mulk |
| 2025-12-08 20:10:50 +0100 | Googulator95 | (~Googulato@2a01-036d-0106-479c-a13d-10f6-324f-ace8.pool6.digikabel.hu) |