IRC channel logs

2020-02-09.log

back to list of logs

<oriansj>in an interesting side note, did you know that the work of the Wright brothers was not recognized for nearly 5 years after success?
<xentrac>well. they kind of kept it secret
<xentrac>but also they got sick of people accusing them of fraud
<fossy>oriansj: hence why anyone who wants kaem.hex0 in a different architecture can do it themselves :)
<fossy>oriansj: do you have a lot of difficulty debugging hex0?
<oriansj>fossy: the only way to debug it is to single step in gdb
<fossy>ah right
<oriansj>because objdump -d can't figureout where the code is
<oriansj>and nasm dumps the header unless you tell it to ignore the leading 0x54bytes
<oriansj>So it is one instruction at a time, until done
<oriansj>counting every single byte
<oriansj>Ok, finally DONE
<oriansj>bootstrap-seeds finally has a hex0 for every single seed
<oriansj>(save for stage0_monitor.img, but that is because I didn't copy it over yet)
<oriansj>Hopefully that will be the last hex0 I'll ever have to write
<oriansj>because writing a hex0 is just draining
<fossy>yaya
<fossy>hooray
<fossy>shite
<fossy>thats annoying to writw
<oriansj>well a good rule of thumb for hex0 files: estimate 6hours for every 400bytes written. So immediately suspect any hex0 file larger than 400bytes by default
<fossy>^-^
<oriansj>So from 7ish AM to 9PM was spent on kaem-minimal.hex0
<fossy>good. The checksums match
<oriansj>they are supposed to be identical after all
<oriansj>getting all the displacements right are a bitch
<oriansj>hex1 is so much faster to write in
<oriansj>stage0_monitor.img also has the distinction of being a floppy disk image (without the ability to write to anything but memory and then jump to that memory)
<dddddd>As for M1.scm, far from pretty code but it's doing almost everthing now. For example, it's lacking support for '<' and some error handling.
<oriansj>but given the incredible work done by Oscar Toledo G. in BootOS; we might be able to abandon stage0_monitor.img entirely
<dddddd>Also, better range-check I think.
<oriansj>dddddd: amazing, thank you
<dddddd>Which std library is expected to be available for this? I'm using guile 2.0 during development.
<oriansj>dddddd: that is fine
<oriansj>as guix using a guile seed is the nearest likely future and mes-m2 should be able to easly grow to support it
<dddddd>ok
<oriansj>fossy: you accidentially checked in a binary into your commit
<oriansj> x86/kaem-0 to be precise
<dddddd>I'll keep working on this from time to time and show you the first non-ugly version.
<oriansj>dddddd: make sure to show janneke so that he can get a 100% scheme bootstrap prepared.
<oriansj>fossy: and AMD64/kaem-0 too;
<dddddd>oriansj, sure!
<oriansj>thank you dddddd
<dddddd>My pleasure!
<fossy>Crap
<oriansj>fossy: just do a git amend and force push
<fossy>yes
<fossy>Done
<oriansj>fossy: you forgot an important step (add the generated files to the .gitignore in those folders)
<fossy>oh, the .gitignores are in the folders!!!!
<fossy>that's why i never noticed that before
<fossy>thanks
<fossy>just finished adding variable substitution support to kaem
<fossy>currently supports ${var} syntax and ${var:-text} syntax
<oriansj>fossy: ooooh
<fossy>next step will be $(command) syntax but I need to implement pipe() support in M2-Planet forst
<fossy>first*
<oriansj>yep and we look forward to the test(s)
<fossy>yes, that is my next step
<fossy>tests before code!
<fossy>i just wanted to get this variable substitution stuff working /first/
<fossy>so that i know substitution works
<oriansj>then dddddd and I will get it all working across the ports
<fossy>cool
<oriansj>fossy: merged
<fossy>oriansj: :)
<fossy>bootos is cool
<oriansj>and it contains enough to be a solid bootstrap base
<fossy>yes
<fossy>oriansj: hmmmm, what's the first program in the bootstrap that uses syscalls
<oriansj>fossy: for mescc-tools-seed it is all of them
<oriansj>for stage0, none of them
<oriansj>for all bios level programs: none of them but the bios is a bigger blob than ost kernels
<fossy>right
<oriansj>Plus the bios level has to start at exactly 512bytes large for your bootstrap binary
<fossy>hence BootOS
<xentrac>heh
<oriansj>with it's ability to create and run files via hex-1 input (with a weird line restriction and no comments but heh)
<oriansj>not to mention https://github.com/nanochess/bootBASIC
<fossy>oriansj: is it exactly hex1?
<oriansj>hex -1 is hex0 without support for line coments
<fossy>oh, hex -1
<fossy>Not hex1
<fossy>Haha
<xentrac>have you successfully entered programs with bootOS? I couldn't get it to work under qemu on my machine
<xentrac>which I assume is more likely a problem with qemu than with bootOS
<dddddd>Is there a list of the features required for kaem? In other words, how do we define "minimal" in this case?
<fossy>well, mine just booted
<fossy>dddddd: see mescc tools seed readme
<fossy>I put a list of features for the minimal
<xentrac>I mean most of bootOS works but the hex converter thing exited without an error
<oriansj>xentrac: yes but you are limited to 16bytes per line
<fossy>I can do ver but format seems to hang
<fossy>Oh there
<fossy>I just needed empty bytes
<xentrac>yeah, there are a bunch of things like that
<oriansj>I like to think of it like a crystal; can do amazing things but brittle as hell
<oriansj>Basically all one would need to do to make it properly useful is port SET to it (To give a basic text editor), modify hex0 to support the filename scheme and write via bios calls to disk but that is a really low priority right now
<dddddd>fossy, oh sorry, the full kaem I mean (which is defined also as minimal).
<fossy>dddddd: no I havent made a feature list yet
<fossy>eventually i want it to be able to replace gash
<fossy>but thats a long way off
<oriansj>but in the mean time, we get new tests for M2-Planet and help with mescc-tools-seed
<fossy>But at least to be able to run gash wrapper scripts
<fossy>so that kaem to gash is a smooth transitiob
<fossy>transition
<oriansj>indeed, a beautiful win-win-win situation
<xentrac>I just noticed that bootstrappable.org is cited in the Metamath Zero paper: https://arxiv.org/abs/1910.10703
<fossy>Uh
<fossy>I just broke bootos
<fossy>Typed in stage0 monitor.hex0
<fossy>And it wont save :(
<oriansj>xentrac: that is because there is alot of overlap in this community
<xentrac>really? who's working on foundations of mathematics in here?
<oriansj>fossy: bootOS requires very specific handling
<fossy>yes
<oriansj>also another possible root is: https://en.wikipedia.org/wiki/KolibriOS
<oriansj>oh and I added this: https://github.com/oriansj/mescc-tools-seed/tree/master/DOCS to help anyone who wants to write primitives for M2-Planet
<oriansj>(I don't have one for AArch64 yet nor RISC-V but I figure someone will make a pull request for them when they are needed)
<deesix>oriansj, docs for M2-Planet in the mescc-tools-seed repo, really!?
<oriansj>actually it helps more with writing M1 definitions which are more common in mescc-tools-seed than in M2-Planet
<oriansj>but I see no harm with also having a copy in M2-Planet as well
<deesix>I'd avoid duplication as much as possible, it seems to me we have plenty of it already.
<oriansj>so you'd prefer it in M2-Planet?
<deesix>I donn't know, whereever it makes sense but not all over the place.
<oriansj>honestly I have no strong preference of where it is; I just guessed mescc-tools-seed would probably be a reasonable place due to the volume of assembly in it
<deesix>what's the origin of those tables? I mean, do you write them?
<oriansj>They actually are old enough notes that I forget their origin.
<deesix>That doesn't feel right from copyright/license perspective, you know.
<oriansj> https://en.wikipedia.org/wiki/Wikipedia:Copyright_in_lists
<deesix>"Whether or not the content is copyrightable, the method of presentation may be."
<oriansj>well I certainly formated them in org-mode
<oriansj>and I also did a chunk of processing: https://github.com/strace/strace/blob/master/linux/x86_64/syscallent.h
<oriansj> https://github.com/strace/strace/blob/master/linux/32/syscallent.h
***jelle is now known as blahaj
***blahaj is now known as jelle
<oriansj> https://github.com/strace/strace/blob/master/linux/arm/syscallent.h
<deesix_>so the origin is that .h file and you work it out, it should be no proble to put your (c) and license I guess, just to be clear about it. (IANAL and all that)
***deesix_ is now known as deesix
<oriansj>plus one can parse the same info out of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/syscalls.h?id=HEAD
<oriansj>and people have done it: https://github.com/gregose/syscall-table
<deesix>Sure, I use one of those, but that's not the point. The point is about those files in your repo. Or the fossy file with an old header with your (c) instead of their, or the list of authors in the manpage. We don't want to play with these things.
<oriansj>very true
<oriansj>My thought throw a CC0 header on them and be done with it;
<oriansj> https://wiki.creativecommons.org/wiki/CC0_use_for_data
<oriansj>or I could just save myself the trouble and nuke it from orbit
<oriansj>That seems the safest option
<oriansj>It has been nuked, those who want a copy pm me and I'll send you a paste. Now that mescc-tools-seed is binary free; let us keep its copyright gplv3 (or later) and stick with that
<oriansj>deesix: thank you for keeping mescc-tools-seed safe
<deesix>I think that's a sensible decision, thank you for taking the time to consider the issue!
<OriansJ>always my friend ^_^
<OriansJ>hey rain1
<rain1>hey
<`Lion>sup
<rain1>nothing much
<rain1>how are you?
<`Lion>alright ... finished an interpreter and basic repl recently, still working on / messing around with it
<rain1>oh nice that's cool that you're working on it still
<`Lion>oh, i have a long "roadmap", vague and incomplete still but i'm letting things fall into place as i go
<OriansJ>`Lion: good to hear that you are still making progress
<`Lion>the project is (or rather its goals are) very important to me so i'm not about to quit anytime soon
<`Lion>but by its very nature it's something i have to work on by myself
<`Lion>takes a lot of patience of course, but that's okay
<`Lion>anyway, thanks
<OriansJ>`Lion: would you be willing to share information about your work with: https://github.com/oriansj/talk-notes so that more people can easily become aware of your project?
<`Lion>we'll have to figure out where to put it
<`Lion>and there are no talks or anything
<OriansJ>it would be in https://github.com/oriansj/talk-notes/blob/master/bootstrappable.org
<OriansJ>you can put it at the same org-mode depth as the rest of the projects listed
<`Lion>no clue about org-mode but i can count asterisks ;)
<OriansJ>`Lion: emacs org-mode; it makes beautiful notes
<`Lion>i don't use emacs; i _am_ getting away from vim in due time but it'll be in the opposite direction
<`Lion>it's still not clear where i would put a section about this; i think the problems are that (a) bootstrapping/bootstrappability has never been the goal itself, just a result of it; (b) there is very little connection with any existing language or system
<`Lion>is there a section about "other/unrelated bootstrapping projects" that i overlooked?
<OriansJ>`Lion: you can add it at the bottom
<OriansJ>if you wish to minimize your text editor, take a look at stage0's SET
<`Lion>i see some broken symlinks by the way ("../fosdem17")
<OriansJ>I'll fix that
<OriansJ>`Lion: are you on commit 224995cc5629970d6f363dafe437a07346ccb834 ?
<`Lion>i cloned the repo a few minutes ago
<`Lion>and the text editor... i don't need it to be minimal, just to do what i want it to and nothing else; naturally there's no point in trying to use somebody else's editor for that
<`Lion>i can check SET for useful ideas but that's probably all
<`Lion>anyway, "fixing" the editor (and other OS/bootstrapping-related stuff) is down the road, but for me it's not the time for it yet
<`Lion>i'm on 224995cc... yes
<OriansJ>ok all broken symlinks have been found and fixed
<OriansJ>current commit 9cb50ad119593ebecb8e673148a93e928311c9f6 is now up
<`Lion>k
<`Lion>hmm... wouldn't it be better to just put a link to bootstrapping.miraheze.org? it has a long list of bootstrapping-related projects (including a link to my homepage)
<`Lion>just noticed debconf_2019/index.html has a link to it
<OriansJ>possibly
<dddddd>NieDzejkob, this (from the wiki, I didn't read it) reminds me of your question of some days ago: Axiomatic Bootstrapping: A Guide for Compiler Hackers by Andrew Appel (bootstrapping SML) http://www.cs.princeton.edu/research/techreps/TR-451-94
<dddddd>This directory of the stage0 repo has an extra char at the end: "stage2/High_level_prototypes/lisp "
<xentrac>`Lion: there's an implementation of org-mode for vim too
<markjenkinswznc> https://raw.githubusercontent.com/markjenkins/knightpies/master/release_announcements/ANNOUNCE-0.4.0
<OriansJ>dddddd: that'll be fixed shortly
<OriansJ>very nice markjenkinswznc; great job ^_^
<OriansJ>dddddd: patches are up
<`Lion>xentrac: thanks for mentioning it, but i'm generally trying to get away from software, not install more of it