| 17 May 2024 |
jade_ | alriiiighty we have horrible forgejo code | 02:56:03 |
Qyriad | Fuck yeah | 02:59:56 |
jade_ | we have shipped the bad forgejo code | 03:05:51 |
Lunaphied | Hell yeau | 03:06:02 |
Lunaphied | * Hell yeah | 03:06:08 |
jade_ | https://gist.github.com/lf-/f2e31a329c3c48f09198c865e21618e6 | 03:08:46 |
jade_ | for those who want to see the patches | 03:08:51 |
julia | oh yeah a bunch of the imported isses link to NixOS/nix#4324 etc but they're treated as repos that exist on forgejo and not on github which makes clicking them annoying | 03:30:23 |
jade_ | sigh yes | 04:10:06 |
jade_ | can't do much about that | 04:10:10 |
jade_ | you should plausibly have access to just edit those issues to fix the links tho? | 04:10:32 |
julia | oh I seem to don't I | 04:58:41 |
julia | In reply to @jade_:matrix.org can't do much about that nginx redirect 😂 | 04:59:04 |
julia | In reply to @jade_:matrix.org can't do much about that * nginx redirect 😛 | 05:15:32 |
| iFreilicht joined the room. | 08:01:16 |
Grimmauld (moving to @grimmauld:grapevine.grimmauld.de) | I'm still waiting for the forgejo federation stuff to be useable | 08:15:04 |
| Owen Shepherd joined the room. | 20:22:16 |
Owen Shepherd | 👋 Hello, Nice to meet you all! I'm Owen, I write compilers and things, with a focus on compile-time performance. Let me preface this by saying I know there's a feature freeze, and I'm happy if what I'm working on remains a personal project until that changes :) Aaaanyway, I'm working on adding bytecode-interpreter to nix/lix (whichever project(s) want to upstream it). The plan for MVP, is leave everything as-is upto lixexpr, and add a writeBytecode function to Expr. This will write out bytecode as C-abi POD, and then... well there will be a bytecode interpreter :) I'm gonna write that in C, probably, but because it's C POD, there's nothing stopping the interpreter being in rust, or any other language... Bytecode mode will enabled by some kind of command-line flag, or maybe a config value in nix.conf. This might end up being slower than the current tree-walk evaluator, in which case... experiment complete.
Anything else I should keep in mind, assuming I want to maximise my changes of upstreaming this? Any thoughts in general?
| 20:46:50 |
Owen Shepherd | * 👋 Hello, Nice to meet you all! I'm Owen, I write compilers and things, with a focus on compile-time performance. Let me preface this by saying I know there's a feature freeze, and I'm happy if what I'm working on remains a personal project until that changes :) Aaaanyway, I'm working on adding a bytecode-interpreter to nix/lix (whichever project(s) want to upstream it). The plan for MVP, is leave everything as-is upto lixexpr, and add a writeBytecode function to Expr. This will write out bytecode as C-abi POD, and then... well there will be a bytecode interpreter :) I'm gonna write that in C, probably, but because it's C POD, there's nothing stopping the interpreter being in rust, or any other language... Bytecode mode will enabled by some kind of command-line flag, or maybe a config value in nix.conf. This might end up being slower than the current tree-walk evaluator, in which case... experiment complete.
Anything else I should keep in mind, assuming I want to maximise my changes of upstreaming this? Any thoughts in general?
| 20:47:14 |
Lunaphied | So, I think this is planned and something @pennae (who seems to not be in here?) is working on as part of evaluator/parser rewrites | 21:02:34 |
Lunaphied | In general Lix is focused right now on cleaning up a lot of the foundational code we inherited from Nix and therefore large new features like that aren't really on the table at the moment. | 21:07:55 |
Lunaphied | I'd personally recommend waiting and seeing how existing plans go before committing yourself to a project like that given that it's already on our timeline | 21:08:36 |
raitobezarius (DECT: 7248) | Alternatively, Owen Shepherd I would recommend heading over to the Tvix project which already has a bytecode interpreter and where you could implement more advanced features, if you are comfortable with the TVL folks. | 21:13:46 |
Owen Shepherd | Yes, I've had a look already. I was looking to improve a nix implementation I can actually use now, which has an ecosystem, rather than hack on tvix, which (I assume) isn't going to be usable for a while. | 21:16:44 |
Owen Shepherd | Do you know if @pennae has any code or plan I can look at, to see what the direction is? | 21:19:21 |
jade_ | it's not feasible to do that until we fix the io model (wip), which is blocking the parser rewrite (done but needs them to backport), which is blocking fixing more of the evaluator | 21:25:04 |
raitobezarius (DECT: 7248) | In reply to @414owen:matrix.org Yes, I've had a look already. I was looking to improve a nix implementation I can actually use now, which has an ecosystem, rather than hack on tvix, which (I assume) isn't going to be usable for a while. Well, making Tvix usable now is potentially in the same range of efforts than carving a bytecode interpreter in CppNix right now. | 21:34:15 |
jade_ | i would also say that it is probably a more worthwhile use of time, because i think it is highly unlikely we would accept this approach | 21:46:15 |
| Lunaphied changed their display name from Lunaphied to lunaphied. | 21:47:32 |
Owen Shepherd | Sure, what would you change about the approach? I was looking for that kind of feedback. | 21:51:17 |