2025/09/12

Newest at the top

2025-09-12 23:49:06 +0200Lycurgus(~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org ))
2025-09-12 23:48:51 +0200tcard(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303)
2025-09-12 23:48:50 +0200 <haskellbridge> <magic_rb> i think VM is a better term?
2025-09-12 23:48:43 +0200 <haskellbridge> <magic_rb> https://git.redalder.org/magic_rb/nix-stg/src/branch/main/nix-stg/src/env.rs#L53 this is my "evaluatior/VM"
2025-09-12 23:47:25 +0200 <haskellbridge> <magic_rb> wait, ill push the changes i have
2025-09-12 23:47:24 +0200 <EvanR> oof
2025-09-12 23:47:21 +0200 <haskellbridge> <magic_rb> (no types btw)
2025-09-12 23:47:12 +0200 <haskellbridge> <magic_rb> yes, my point is, uh
2025-09-12 23:47:11 +0200 <EvanR> since it evaluates to a number if it's well typed
2025-09-12 23:46:53 +0200 <EvanR> the process of evaluating e.g. a machine int doesn't need to have special recursion on top of how you already evaluate stuff
2025-09-12 23:46:47 +0200 <haskellbridge> <magic_rb> but tbh, i dont think it matters? nix is completely uncurried, always and im targeting nix with this
2025-09-12 23:46:23 +0200 <haskellbridge> <magic_rb> but it doesnt quite solve the immediate issue which is that idk how to do it recursion less if i dont uncurry everything
2025-09-12 23:45:54 +0200 <haskellbridge> <magic_rb> it doesnt currently, hm
2025-09-12 23:45:17 +0200 <EvanR> magic_rb, if your STG instruction set includes Eval and another one that does primitive operations, on e.g. machine ints, then use Eval instructions to evaluate the inputs to the primitive, then have the primitive expect evaluated arguments already?
2025-09-12 23:45:03 +0200tromp(~textual@2001:1c00:3487:1b00:1d0c:4f20:ca8:e791)
2025-09-12 23:37:37 +0200ljdarj1ljdarj
2025-09-12 23:37:37 +0200ljdarj(~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds)
2025-09-12 23:36:33 +0200tcard__(~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving)
2025-09-12 23:36:26 +0200tromp(~textual@2001:1c00:3487:1b00:1d0c:4f20:ca8:e791) (Quit: My iMac has gone to sleep. ZZZzzz…)
2025-09-12 23:35:39 +0200ljdarj1(~Thunderbi@user/ljdarj) ljdarj
2025-09-12 23:35:32 +0200stefan-__(~m-yh2rcc@42dots.de) stefan-__
2025-09-12 23:33:27 +0200stefan-__(~m-yh2rcc@42dots.de) (Remote host closed the connection)
2025-09-12 23:26:39 +0200Googulator77(~Googulato@2a01-036d-0106-217b-9021-558a-ccea-f5e8.pool6.digikabel.hu)
2025-09-12 23:26:21 +0200Googulator77(~Googulato@2a01-036d-0106-217b-9021-558a-ccea-f5e8.pool6.digikabel.hu) (Quit: Client closed)
2025-09-12 23:23:24 +0200takuan(~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection)
2025-09-12 23:23:07 +0200michalz(~michalz@185.246.207.215) (Remote host closed the connection)
2025-09-12 23:20:17 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 248 seconds)
2025-09-12 23:17:27 +0200OftenFaded26(~OftenFade@user/tisktisk) (Quit: Client closed)
2025-09-12 23:14:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-12 23:14:00 +0200Guest58(~Guest77@130.44.133.214)
2025-09-12 23:11:13 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net)
2025-09-12 23:03:54 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) humasect
2025-09-12 23:03:23 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds)
2025-09-12 23:00:31 +0200wootehfoot(~wootehfoo@user/wootehfoot) (Read error: Connection reset by peer)
2025-09-12 22:58:35 +0200pavonia(~user@user/siracusa) siracusa
2025-09-12 22:58:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-12 22:56:01 +0200segfaultfizzbuzz(~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds)
2025-09-12 22:55:34 +0200humasect(~humasect@dyn-192-249-132-90.nexicom.net) (Remote host closed the connection)
2025-09-12 22:47:04 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds)
2025-09-12 22:43:38 +0200 <haskellbridge> <magic_rb> not sure what do to do, how does GHC do it? the design they describe in https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/eval-apply.pdf wont work to evaluate "4" and then "2", or at least i dont see how i could make it do that
2025-09-12 22:42:57 +0200 <haskellbridge> ... then incurs a new function on the rust, which i dont know if thats bad? but that means you can overflow the Rust stack but chaining enough primops
2025-09-12 22:42:52 +0200 <haskellbridge> <magic_rb> I've implemented a kind of STG in rust for Nix evaluation. I managed to make it recursion less how the paper from 2016. What i dont understand is how to do primops. I mean if i have a primop such as "(+ 4 2)" i have a block of code representing that primop ("+") and i pass it two arguments "4" and "2". So far so good. However I'm not sure how to force the two arguments. I can start a "new" evaluation but that...
2025-09-12 22:40:18 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-12 22:32:02 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds)
2025-09-12 22:27:03 +0200OftenFaded74(~OftenFade@user/tisktisk) (Ping timeout: 250 seconds)
2025-09-12 22:26:48 +0200merijn(~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn
2025-09-12 22:23:29 +0200sord937(~sord937@gateway/tor-sasl/sord937) (Quit: sord937)
2025-09-12 22:23:25 +0200OftenFaded26(~OftenFade@user/tisktisk) OftenFaded
2025-09-12 22:17:02 +0200OftenFaded74(~OftenFade@user/tisktisk) OftenFaded
2025-09-12 22:16:38 +0200OftenFaded5(~OftenFade@user/tisktisk) (Quit: Client closed)