IRC channel logs
2023-08-08.log
back to list of logs
<samplet>Wow. Mes is passing 17 out of 24 sed tests. (And one failure is because it prints the usage message with an extra newline.) <samplet>Oops. It’s a little worse than that (there are a few tests erroring out, too). But still promising. <samplet>It was surprisingly easy to get regex going. However, the regex library I’m using doesn’t distinguish between basic and extended syntax, so I might have to write a parser. <matrix_bridge><Andrius Štikonas> Though I guess I'm mostly interested in gash itself <matrix_bridge><Andrius Štikonas> The other tools (sed, patch, etc) are not too hard to build with custom makefile <samplet>The shell is running pretty well, and most core utilities are working. I even have tar working now. The last two tricky parts are sed and awk. Sed looks promising. I don’t know about awk yet. It’s a big program, but Mes has improved a lot, too. <samplet>It’s still not quite good enough on Guile to build modern tools. <samplet>OTOH, it’s worth a try. It’s nice to have options. <matrix_bridge><Andrius Štikonas> But bash itself ships with bison files, so gash really would help with bootstap here <samplet>Well it’s mostly lined up at this point. There’s a fair bit of release engineering to do, though. <stikonas>well, I think janneke wants everything in mes 0.26 <samplet>I can’t remember the plan exactly. I will say that the modules branch is becoming pretty usable as a Scheme. <samplet>There are some deeply annoying macro issues, though. <stikonas>though it's bootstrapping ppsyntax that is probably more complicated... <stikonas>samplet: I think we are targetting risc-v support for 0.25 <stikonas>(and also some improvements to amd64, but that will probably be lagging behind riscv64) <stikonas>ekaitz and I managed to build maybe 3/4 of mes libc with bootstrapped tcc now, but there are still probably a few riscv64 bugs in mescc... <stikonas>once those are resolved, I think we can declare riscv64 support in mes working <samplet>That’s fantastic! I will have to rebase on top of that at some point. I’ve added a few system calls and exposed many to Scheme. <stikonas>samplet: it's not merged yet, still in wip branches... <stikonas>but probably mostly self-contained and won't touch your code <samplet>Other than a couple syscall numbers for RISC-V, no. It should be fine. <stikonas>i.e. mostly changes are in module/mescc/ <samplet>Yes, but I haven’t touched the compiler. I might speed it up eventually by replacing its “emulation of bytevectors with (linked) lists” with proper bytevectors. <samplet>Also, regarding ppsyntax, I’m working on a ‘syntax-case’-capable expander designed for bootstrapping. <stikonas>oh, any speeding up of mes/mescc is always good <stikonas>last time I tried riscv64 bootstrap, it took me 4 days <samplet>Although that might be beside the point for that issue (#306). I’m not super familiar with NYACC, but Mes does not use ‘syntax-case’ for it at the moment. It hopefully doesn’t need it to generate those files. <stikonas>probably both because mes is slow and also because stage0-posix-riscv64 / mescc generates very inefficient riscv64 machine code <stikonas>samplet: it was not mes itself, but the scripts that nyacc uses to generate some files <stikonas>but if you want strict bootstrapping, then you need to regenerate those too <stikonas>this is not really a human readable source <samplet>I don’t disagree. I’m saying that ‘syntax-case’ is not strictly necessary, and that Mes could probably run the scripts that generate those files with only minor fixes. <samplet>The LALR part of NYACC uses syntax case in one instance, but there’s a well-known hack to emulate the ‘identifier=?’ check using ‘syntax-rules’. <samplet>Although Mes’ ‘syntax-rules’ is not exactly the bees knees, if you know what I mean.... <stikonas>well, you probably know it much better... <stikonas>I could do basic editting of mescc compiler to fix riscv64 but that's it... <samplet>I’ll mark down that issue and give it a good look when I get a chance. <janneke>samplet: "<samplet> Wow. Mes is passing 17 out of 24 sed tests. (And one failure is" <mihi>samplet, about that syntax-case rule, I was thinking about taking the two (_ <e1> <e2> ...) cases and merging them to invoke a (define-macro (parse-rhs-atom <e1> . <e2...>) (code here)). The other psyntax stuff in that file is proably easy enough for mes. Yet, having define-macro available should allow to rewrite any parts that do not work. Unfortunately I don't have much time right now and no working test setup, <mihi>so don't count on me doing anything right now... <samplet>janneke: Thanks! It’s 20/29 after fixing ‘define-immutable-record-type’ and accounting for errors. :) <samplet>I misread it before! It was 17 successes, 7 failures, *and* 5 test failures. :p