2025/01/20

Newest at the top

2025-01-20 05:00:48 +0100anpad(~pandeyan@user/anpad) anpad
2025-01-20 04:59:17 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 248 seconds)
2025-01-20 04:54:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-20 04:52:28 +0100JuanDaughertyColinRobinson
2025-01-20 04:44:36 +0100peterbecich(~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds)
2025-01-20 04:43:49 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 244 seconds)
2025-01-20 04:42:40 +0100ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 272 seconds)
2025-01-20 04:41:33 +0100ColinRobinsonJuanDaugherty
2025-01-20 04:39:22 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-20 04:37:24 +0100anpad(~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-20 04:33:12 +0100JuanDaughertyColinRobinson
2025-01-20 04:28:39 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-20 04:26:32 +0100pavonia(~user@user/siracusa) siracusa
2025-01-20 04:24:10 +0100anpad(~pandeyan@user/anpad) anpad
2025-01-20 04:23:59 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-20 04:19:48 +0100 <homo> however, pattern guards are not going away, so someone has to implement those in hugs
2025-01-20 04:19:20 +0100 <homo> it's happening, microhs lowers language requirements to be bootstrappable with hugs https://github.com/augustss/MicroHs/commit/2f9eab4db4e811e4c75ea370a64914abc94abf9c https://github.com/augustss/MicroHs/commit/56be300c293304b37cb18db499d825621be9ec4d
2025-01-20 04:16:17 +0100anpad(~pandeyan@user/anpad) (Client Quit)
2025-01-20 04:15:57 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 246 seconds)
2025-01-20 04:15:30 +0100anpad(~pandeyan@user/anpad) anpad
2025-01-20 04:11:31 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-20 04:07:57 +0100anpad(~pandeyan@user/anpad) (Client Quit)
2025-01-20 04:05:07 +0100anpad(~pandeyan@user/anpad) anpad
2025-01-20 04:02:58 +0100homo(~homo@user/homo) homo
2025-01-20 04:01:25 +0100JuanDaugherty(~juan@user/JuanDaugherty) JuanDaugherty
2025-01-20 04:01:09 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 276 seconds)
2025-01-20 03:58:29 +0100machinedgod(~machinedg@d108-173-18-100.abhsia.telus.net) (Ping timeout: 248 seconds)
2025-01-20 03:54:09 +0100 <int-e> +s
2025-01-20 03:53:59 +0100 <int-e> what fun
2025-01-20 03:53:57 +0100 <int-e> and you have to read programs backward to discern continuations
2025-01-20 03:53:28 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) merijn
2025-01-20 03:53:21 +0100 <int-e> right, and `call` (or `jsr` or whatever; the assembly level things) are callCC
2025-01-20 03:52:11 +0100 <monochrom> Now just rename "return" to "continuation" there, and you have CPS.
2025-01-20 03:51:56 +0100 <monochrom> For this, you have to accept that I use the callee-pops-arguments convention. Suppose you make a "function call", i.e., push argument, push "return" address, jump to function. And suppose the function "returns", i.e., pop "return" address, pop argument, jump.
2025-01-20 03:50:38 +0100anpad(~pandeyan@user/anpad) (Quit: ZNC 1.8.2 - https://znc.in)
2025-01-20 03:49:49 +0100 <monochrom> But here is also a low-level reason.
2025-01-20 03:49:40 +0100 <monochrom> Anyway, that's a high-level reason why I don't make a distinction between "call stack like in C" and "eval stack like in Haskell". (I'm also mocking the irony there too because neither ISO C nor Haskell 2010 require a stack.) They are all continuation stacks, and once you know the evaluation order you know what continuation means.
2025-01-20 03:46:02 +0100 <monochrom> Yeah you're just trading heap for stack. It's why I was so worked up about limited stack and unlimited heap.
2025-01-20 03:45:47 +0100 <geekosaur> that's what I said, wall-o-wtf 🙂
2025-01-20 03:45:39 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) hgolden
2025-01-20 03:45:29 +0100 <albet70> I like this talks even I don't understand now, it's very inspired :)
2025-01-20 03:45:00 +0100 <int-e> monochrom: Heh. So if you use Cont or other (a -> r) -> (b -> r) -> r Haskell-level continuations, then at runtime, you have thunk-level CPS (continuations are stored in thunks until needed)
2025-01-20 03:43:58 +0100hgolden(~hgolden@2603:8000:9d00:3ed1:6ff3:8389:b901:6363) (Remote host closed the connection)
2025-01-20 03:43:29 +0100Adran(~adran@botters/adran) Adran
2025-01-20 03:42:44 +0100merijn(~merijn@128-137-045-062.dynamic.caiway.nl) (Ping timeout: 265 seconds)
2025-01-20 03:41:25 +0100 <monochrom> Ooops, s/small//
2025-01-20 03:40:07 +0100 <monochrom> In this case, context is synonym for continuation.
2025-01-20 03:39:55 +0100 <geekosaur> unless they drowned in the wall-o-wtf
2025-01-20 03:39:47 +0100 <monochrom> If you then try to go a bit lower level, you say: push the context (or representation of) on the stack, bring the redex to the front and work on it, afterwards pop the context and look for the next redex, etc.
2025-01-20 03:39:26 +0100 <int-e> geekosaur: *surely* one of the many answers we've come up with was satisfactory