IRC channel logs

2022-11-21.log

back to list of logs

<Hagfish>I/O and process management sound like quite tricky areas, but maybe no harder than memory management
<Hagfish>i'm really impressed with what you've achieved so far, and i hope these remaining items don't involve any hard to debug issues
<stikonas>it will probably be simpler now, more stuff can be reused either form bootstrap M2libc or from what I already have in M2libc
<stikonas>I'm now almost done with argc and argv. They are mosty the same as in bootstrap.c but I've switched to a couple of standard functions that got added to M2libc. In particular isspace and wcstombs
<stikonas>the harder stuff was actually before we have C, so hex stuff etc...
<stikonas>implementing i/o and process management in kernel is probably hard
<stikonas>but in the C library I just have to write wrappers to convert POSIX calls to UEFI function calls
<stikonas>which is not too bad, especially in M2-Planet
<stikonas>cc_amd64 is a bit more limitting, but M2-Planet supports quite a few more features that are helpful
<oriansj>stikonas: smaller commits are easier to review but I can handle big commits if needed.
<stikonas>oriansj: a few smaller commits to start with then https://github.com/oriansj/M2libc/pull/20
<stikonas>(it can't build hex2 yet, but I can build some very small test apps)
<acrow>Is leiningen (clojure's 'make'), bootstrappable?
<acrow>or does operation from a virtual machine (in particular the javavm) make this a moot (meaningless) issue?
<muurkha>I think that's an excellent question
<muurkha>bauen1: you've been flapping all day
<stikonas>acrow: quick look at repository readme suggests that you need lein to build it
<stikonas>"Download the lein script from the stable branch of this project"
<stikonas>so proably not bootstrappable
<stikonas>acrow: and virtual machine does not change much
<stikonas>you can't read non-trivial amounts of virtual machine bytecode, can you?
<stikonas>a small number of kib of machine code can be inspected manually, but anything more is too laborious
<stikonas>so I guess the same would apply to bytecode
<stikonas>oh actually lein is a text script
<stikonas> so mayne ot
<stikonas>so maybe it's not oto bad
<stikonas>acrow: I've just tried running it with ../bin/lein bootstrap
<stikonas>and got
<stikonas>Please run "lein bootstrap" in the leiningen-core/ directory
<stikonas>with a stable release of Leiningen. See CONTRIBUTING.md for details.
<stikonas>so I guess it's not bootstrappable in the end
<stikonas>given that it's just a build system, probably not super hard to bootstrap it
<stikonas>but doesn't look like upstream supports it out of the box
<acrow>stikonas: yeah, I thought they might be better about it.
<stikonas>you can try raising an issue...
<stikonas>though prepare that it might be closed as wontfix
<acrow>stikonas: since they had a CONTRIBUTING.md#bootstrapping section on the webpage I asked about it in their irc chat channel. No response yet.
<stikonas>it might be that you just need to manually installing dependencies
<stikonas>though it would still be nice to have it documented in text file
<acrow>stikonas: Is this a wider java issue? The guix java build system (ant) appears to depend on maven and to me this seems to bypass bootstrappability also, no? I'm not sure how tarballs of class files can be divorced from their sources and still have the products of these builds claim to be bootstrappable. I know little about maven; yet, is it not, at its core, a binary package distributor? I'm certainly missing something. It's a bit
<acrow>puzzling to me.
<stikonas>I thought guix disentangled maven
<stikonas>ant can definitely be built without maven
<stikonas>in fact if I remember correctly, and is simple enough to run manually and then you can use that "bootstrap" and to rebuilt ant
<stikonas>or maybe it doesn't even need ant
<stikonas>anyway, I'm not that familiar with maven, you might get better info in #guix
<acrow>stikonas: thank you. Maybe I'll give leiningen another try later.
<acrow>Seems like a hash of the sources needs to be associated with the descendent class file jars to maintain traceability. Maybe it's in there (Prego style) :)
<acrow>And that's still not adequate... gah.