Logs: liberachat/#haskell
| 2025-09-12 21:36:33 | × | tcard__ quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2025-09-12 21:37:37 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 244 seconds) |
| 2025-09-12 21:37:37 | ljdarj1 | is now known as ljdarj |
| 2025-09-12 21:45:03 | → | tromp joins (~textual@2001:1c00:3487:1b00:1d0c:4f20:ca8:e791) |
| 2025-09-12 21:45:17 | <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 21:45:54 | <haskellbridge> | <magic_rb> it doesnt currently, hm |
| 2025-09-12 21:46:23 | <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 21:46:47 | <haskellbridge> | <magic_rb> but tbh, i dont think it matters? nix is completely uncurried, always and im targeting nix with this |
| 2025-09-12 21:46:53 | <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 21:47:11 | <EvanR> | since it evaluates to a number if it's well typed |
| 2025-09-12 21:47:12 | <haskellbridge> | <magic_rb> yes, my point is, uh |
| 2025-09-12 21:47:21 | <haskellbridge> | <magic_rb> (no types btw) |
| 2025-09-12 21:47:24 | <EvanR> | oof |
| 2025-09-12 21:47:25 | <haskellbridge> | <magic_rb> wait, ill push the changes i have |
| 2025-09-12 21:48:43 | <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 21:48:50 | <haskellbridge> | <magic_rb> i think VM is a better term? |
| 2025-09-12 21:48:51 | → | tcard joins (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) |
| 2025-09-12 21:49:06 | × | Lycurgus quits (~juan@user/Lycurgus) (Quit: alsoknownas.renjuan.org ( juan@acm.org )) |
| 2025-09-12 21:49:45 | <haskellbridge> | <magic_rb> https://git.redalder.org/magic_rb/nix-stg/src/branch/main/nix-stg/src/compiler.rs#L44 and here is a builtin, so if i have a builtin with just one argument i know how to do it without invoking "force" again, essentially do a TCALL |
| 2025-09-12 21:49:53 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-12 21:50:15 | <haskellbridge> | <magic_rb> but i cant figure out how generalize the TCALL into higher than 1 arity |
| 2025-09-12 21:50:46 | <haskellbridge> | <magic_rb> though i am currently implementing an uncurry function for all builtins, since all functions are uncurried in nix :( |
| 2025-09-12 21:50:58 | <haskellbridge> | <magic_rb> fuck, curried |
| 2025-09-12 21:51:00 | <haskellbridge> | <magic_rb> i always get it wront |
| 2025-09-12 21:51:09 | <haskellbridge> | <magic_rb> a -> b -> c not (a, b) -> c |
| 2025-09-12 21:51:46 | <EvanR> | primitives often need multiple arguments now |
| 2025-09-12 21:52:14 | <EvanR> | so the second one would be nice |
| 2025-09-12 21:53:49 | <EvanR> | so something like PrimOp OpName N, which takes N values off one of your stacks and passes them all to the code for OpName |
| 2025-09-12 21:54:06 | <haskellbridge> | <magic_rb> i dont have a stack like that |
| 2025-09-12 21:54:59 | <EvanR> | where ever the values end up being temporarily |
| 2025-09-12 21:55:02 | <EvanR> | get them from there |
| 2025-09-12 21:55:13 | <EvanR> | maybe allow up to 4 arguments |
| 2025-09-12 21:55:26 | <EvanR> | and they're all passed in even if they aren't needed |
| 2025-09-12 21:55:49 | <haskellbridge> | <magic_rb> https://paste.tomsmeding.com/3ckIHqKL |
| 2025-09-12 21:56:37 | <EvanR> | FORCE sounds encouraging |
| 2025-09-12 21:56:38 | <haskellbridge> | <magic_rb> thats for "(x: y: z: x + y + z) 4 5 6" this code |
| 2025-09-12 21:57:14 | <EvanR> | lisp people laughing at us doing one + at a time |
| 2025-09-12 21:58:00 | × | AlexZenon quits (~alzenon@178.34.162.29) (Ping timeout: 252 seconds) |
| 2025-09-12 21:59:43 | <EvanR> | a dedicated stack specifically for saving the arguments to a primop would also work |
| 2025-09-12 21:59:59 | × | Guest58 quits (~Guest77@130.44.133.214) (Quit: Client closed) |
| 2025-09-12 22:00:07 | <EvanR> | evolved ghc keeps reducing the number of stacks via tricks but that's like an optimized thing |
| 2025-09-12 22:01:19 | <haskellbridge> | <magic_rb> well, im trying to optimize :P |
| 2025-09-12 22:02:44 | → | AlexZenon joins (~alzenon@178.34.162.29) |
| 2025-09-12 22:03:02 | × | tromp quits (~textual@2001:1c00:3487:1b00:1d0c:4f20:ca8:e791) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-09-12 22:03:35 | <EvanR> | prematurely or postmaturely |
| 2025-09-12 22:03:38 | <haskellbridge> | <magic_rb> okay, managed a arbitrary depth uncurrying function |
| 2025-09-12 22:03:48 | <haskellbridge> | <magic_rb> nah, like, im not optimizing properly |
| 2025-09-12 22:03:59 | <haskellbridge> | <magic_rb> but i dont want to introduce new things into the core runtime |
| 2025-09-12 22:04:22 | <haskellbridge> | <magic_rb> also, i seem to recall the 2016 paper saying that the STG only handles fully saturated primop calls and so the frontend must wrap them in lambdas |
| 2025-09-12 22:04:32 | <EvanR> | primitives should be something you designed into the system xD |
| 2025-09-12 22:04:36 | <EvanR> | not slapped on at the last minute |
| 2025-09-12 22:05:12 | <haskellbridge> | <magic_rb> it is designed in? |
| 2025-09-12 22:17:52 | → | comonad joins (~comonad@p200300d027244d00b442e34853d3dae3.dip0.t-ipconnect.de) |
| 2025-09-12 22:18:26 | <monochrom> | I wonder if: There is no design, there is only slapping on earlier or slapping on later. |
| 2025-09-12 22:19:35 | <EvanR> | don't forget unslapping |
| 2025-09-12 22:19:42 | <EvanR> | so the final product looks like jenga |
| 2025-09-12 22:19:45 | <EvanR> | one way or another |
| 2025-09-12 22:20:01 | <monochrom> | hee hee |
| 2025-09-12 22:22:16 | Googulator77 | is now known as Googulator |
| 2025-09-12 22:23:40 | × | divya quits (divya@140.238.251.170) (Ping timeout: 256 seconds) |
| 2025-09-12 22:44:31 | × | __monty__ quits (~toonn@user/toonn) (Quit: leaving) |
| 2025-09-12 22:52:28 | × | sprotte24 quits (~sprotte24@p5b039b62.dip0.t-ipconnect.de) (Quit: Leaving) |
| 2025-09-12 22:53:49 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Quit: Laa shay'a waqi'un moutlaq bale kouloun moumkine) |
| 2025-09-12 22:55:07 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-12 22:56:51 | × | fp quits (~Thunderbi@2001-14ba-6e24-3000--198.rev.dnainternet.fi) (Ping timeout: 252 seconds) |
| 2025-09-12 22:58:19 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Excess Flood) |
| 2025-09-12 22:59:20 | → | peterbecich joins (~Thunderbi@syn-172-222-149-049.res.spectrum.com) |
| 2025-09-12 22:59:33 | → | Lord_of_Life joins (~Lord@user/lord-of-life/x-2819915) |
| 2025-09-12 23:09:17 | AlexNoo_ | is now known as AlexNoo |
| 2025-09-12 23:10:32 | × | trickard quits (~trickard@cpe-52-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-09-12 23:10:33 | × | humasect quits (~humasect@dyn-192-249-132-90.nexicom.net) (Quit: Leaving...) |
| 2025-09-12 23:10:45 | → | trickard_ joins (~trickard@cpe-52-98-47-163.wireline.com.au) |
| 2025-09-12 23:22:13 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-09-12 23:24:13 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 250 seconds) |
| 2025-09-12 23:30:58 | × | Tuplanolla quits (~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.) |
| 2025-09-12 23:31:43 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-09-12 23:36:47 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 250 seconds) |
| 2025-09-12 23:40:21 | × | trickard_ quits (~trickard@cpe-52-98-47-163.wireline.com.au) (Read error: Connection reset by peer) |
| 2025-09-12 23:41:28 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-12 23:47:30 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-09-12 23:48:06 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
| 2025-09-12 23:51:27 | → | trickard_ joins (~trickard@cpe-52-98-47-163.wireline.com.au) |
| 2025-09-12 23:57:38 | × | zzz quits (~zero@user/zero) (Remote host closed the connection) |
| 2025-09-13 00:03:24 | × | peterbecich quits (~Thunderbi@syn-172-222-149-049.res.spectrum.com) (Ping timeout: 256 seconds) |
| 2025-09-13 00:09:05 | → | ljdarj1 joins (~Thunderbi@user/ljdarj) |
| 2025-09-13 00:10:32 | × | poscat0x04 quits (~poscat@user/poscat) (Remote host closed the connection) |
| 2025-09-13 00:11:54 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 256 seconds) |
| 2025-09-13 00:12:00 | ljdarj1 | is now known as ljdarj |
| 2025-09-13 00:13:01 | → | segfaultfizzbuzz joins (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) |
| 2025-09-13 00:13:12 | × | tremon quits (~tremon@83.80.159.219) (Quit: getting boxed in) |
| 2025-09-13 00:13:31 | → | poscat joins (~poscat@user/poscat) |
| 2025-09-13 00:17:34 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 256 seconds) |
| 2025-09-13 00:19:02 | × | otto_s quits (~user@p4ff27276.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2025-09-13 00:20:18 | → | otto_s joins (~user@p5de2f6d3.dip0.t-ipconnect.de) |
| 2025-09-13 00:20:20 | × | acidjnk quits (~acidjnk@p200300d6e7171985d5506271dfe67a69.dip0.t-ipconnect.de) (Ping timeout: 245 seconds) |
| 2025-09-13 00:21:47 | trickard_ | is now known as trickard |
| 2025-09-13 00:22:34 | → | peterbecich joins (~Thunderbi@syn-172-222-149-049.res.spectrum.com) |
| 2025-09-13 00:29:09 | × | tcard quits (~tcard@2400:4051:5801:7500:cf17:befc:ff82:5303) (Quit: Leaving) |
| 2025-09-13 00:39:42 | × | ljdarj quits (~Thunderbi@user/ljdarj) (Ping timeout: 252 seconds) |
| 2025-09-13 00:53:16 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 256 seconds) |
All times are in UTC.