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> samplet: do you mean sed via gash?
<samplet>Yes.
<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.
<matrix_bridge><Andrius Štikonas> Still nice to have an alternative
<samplet>I might punt on awk.
<samplet>It’s still not quite good enough on Guile to build modern tools.
<samplet>We still use old GNU awk.
<samplet>OTOH, it’s worth a try. It’s nice to have options.
<matrix_bridge><Andrius Štikonas> Yeah, options are good
<matrix_bridge><Andrius Štikonas> But if it's too hard then no worries...
<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
<stikonas>but even mes 0.25 is not out yet
<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>yeah, that's good, maybe modules will help fossy a bit with https://github.com/fosslinux/live-bootstrap/issues/306
<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/
<stikonas>well, mescc code generation too
<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>I added them to support tar.
<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>they are pregenerated in nyacc tarball
<stikonas>but if you want strict bootstrapping, then you need to regenerate those too
<stikonas>samplet: eg. stuff like this https://git.savannah.nongnu.org/cgit/nyacc.git/tree/module/nyacc/lang/c99/mach.d/c99x-tab.scm?h=main
<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'm not very good with scheme...
<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"
<janneke>very nice!
<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>mihi: Good idea. I’ve done that to work around ‘syntax-rules’ hygiene issues in ‘match’. It would work perfectly in NYACC. Cf. https://git.savannah.gnu.org/cgit/mes.git/commit/?h=wip-gash&id=352370cb6f1f02db5b4b3a4835bfc75a10cb76e6
<samplet>janneke: Thanks! It’s 20/29 after fixing ‘define-immutable-record-type’ and accounting for errors. :)
<janneke>oh!
<janneke>how did the 24 increase to 29?
<samplet>I misread it before! It was 17 successes, 7 failures, *and* 5 test failures. :p