IRC channel logs

2021-07-02.log

back to list of logs

<oriansj>clemens3: The requested URL was not found on this server.
<oriansj>doesn't seem like a slogan
<stikonas>oriansj: maybe https://github.com/vaibhavpandeyvpz/tinux
<stikonas>but I guess you get the same thing with any source base distro
<stikonas>with Gentoo you also build everything on user's machine...
<oriansj>Ironically, Oscar Toledo G's book Programming Boot Sector Games with Appendix C (literally 70 pages long) contains all of the hex<->opcode mappings needed to bootstrap hex0 -> M2-Planet; along with a basic enough assembly programming knowledge to know what the instructions do. (I got it to get some inspiration for stage0-CPM)
<stikonas>oh, actually now that URL (techinvest.li/tinux/) loads fine
<oriansj>and if I attempt to load it with https I get bad cert
<stikonas>same here, cert is issue for the wrong domain
<oriansj>I am guessing it doesn't like the Tor browser agent string
<oriansj>as I am only getting 404
<xentrac>oriansj: why is that ironic? that's exactly what I would have expected!
<xentrac>are you enjoying the book?
<oriansj>xentrac: I didn't expect a boot about making games to have such a wonderful bootstrapping reference material in it
<stikonas>oriansj: I was getting 404 too at some point, I think it's just random
<stikonas>and I also can't clone git repo....
<xentrac>oriansj: don't you know about Oscar Toledo G.'s father's life's work?
<xentrac>I mean really it's a project of the whole family, but his father is the one whose life is dedicated to it
<oriansj>xentrac: their custom operating system? or did I miss something important?
<xentrac>as far as I can tell
<xentrac>not just OS! they also built the hardware and applications
<oriansj>stikonas: I would have been more impressed if someone say started only with gcc 4.7.4 and got a full distro out. but honestly with that and guile you have guix.
<oriansj>xentrac: then I missed those parts, thank you for informing me (now I have even more things to look into)
<stikonas>oriansj: well I have a C version of GCC 4.7.4 built here
<oriansj>very nice stikonas
<xentrac>oriansj: I don't know who built which part, but if you can travel to Mexico City sometime you might sign up for one of their week-long courses where you build your own computer quasi from scratch
<stikonas>going over a few more dependencies before guile
<stikonas>actually, I think only 1 more dependency left (boehm-gc)
<stikonas>then need to look at guile + mihi's ppsyntax bootstrap
<oriansj>xentrac: perhaps one day.
<oriansj>stikonas: well once guile is bootstrapped we can bug civodul to get it into guix as the root guile and then some glue work and boom: guix bootstrapped from only 357bytes (only kaem-optional as a driver)
<stikonas>and it should be reproducible if you know which commit of live-bootstrap it was built from (which can be mentioned as a comment)
<stikonas>and I guess we also get other helper binaries that guix needs for free (mkdir, xz, tar, bash)
<oriansj>well guile+gash-utils+gash along with gcc-4.7.4 would be all that one needs to bootstrap everything using the standard guix build process. (unless I am missing something on the guix side of things)
<oriansj>oh yeah there is an unpacker written in scheme that I am forgetting its name
<oriansj>bootstar or something like that???
<stikonas>oriansj: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootstrap.scm#n80
<stikonas>yeah, there is bootar
<stikonas>it can unpack tar gz and xz I think
<stikonas>I'm not completely sure what bootstrap-executables does, I think it only prepares first derivations
<stikonas>somebody more versed in guix might correct me
<stikonas>I guess it can be replaced with gash/utils/bootar
<oriansj>Which would be just 2 binaries (guile+gcc) with the rest just being scheme programs
<oriansj>or if we wanted to minimize disruption, just guile and do the MesCC bootstrap that guix is already doing but that seems like a step backwards to me
<stikonas>well, it's up to people doing the work to decide
<oriansj>indeed
<oriansj>xentrac: http://www.biyubi.com/eng_tecnologia.html So a custom CPU in PAL logic; perhaps my spanish is too weak to find if they have any documentation on the actual architecture of that custom cpu but it probably took a great deal of work.
<oriansj>but I am guessing x86 compatible by the support for Windows
<xentrac>they've gone through a lot of iterations, but yes, I think it was about three people working for about 30 years
<xentrac>on average
<oriansj>well bootstrapping work is extremely fun. I could easily imagine doing it for the rest of my life too. Although I doubt I'll ever make a living doing it.
<oriansj>if anything, I'll probably end up spending a bunch of money trying to achieve more and more ambitious goals.
<xentrac>I think Óscar Toledo E. has spent his life doing it and ended up sort of bitter and paranoid because he's surrounded by a society that's totally incapable of appreciating the magnitude of his achievement.
<xentrac>But I'm only guessing, because I haven't talked to it.\
<xentrac>to him.
<xentrac>That's Óscar Toledo G.'s father.
<xentrac>(ugh, what a stupid mistake, referring to him as "it".)
<oriansj>xentrac: well it is easy to become bitter when people treat you like crap. Heck that is why I don't like dealing with the crypto-communities, despite having a shared interest in trust.
<oriansj>xentrac: probably ment "because I haven't talked to him about it"
<xentrac>yes
<oriansj>typos happen, clarifying is just written ECC.
<xentrac>I don't know if he's even treated worse than other people in his town. but I mean from when he started doing this stuff in the 01970s until the late 01990s most of his neighbors didn't even have computers, and even the news media and government officials that did have computers mostly didn't have a clear idea what a computer is
<xentrac>they still don't, and that's not a problem limited to Mexico — witness the number of people who think their cellphone isn't a computer
<oriansj>or that think android isn't a Linux distro
<xentrac>true!
<oriansj>in a way Linux won but it did it with the most dumb candy strip user interface possible.
<xentrac>a lot of past coverage of Biyubi has had numerous commenters claiming that it was some kind of Linux distro or something
<xentrac>because, you know, that's sort of the default assumption when someone announces a new "operating system" with a GUI and a web browser and stuff
<oriansj>xentrac: I literally had a coworker ask me if I even knew what a compiler was yesterday because clearly I am an idiot for suggesting a .Net 2.0 binary might not link with a .Net 4.8 binary.
<xentrac>hahaha
<xentrac>so you can empathize a bit
<oriansj>and then I told him about cc_x86 as the world's first C compiler written in assembly for POSIX systems. Then he said I am clearly too young to have done that and I was a lying little shit for questioning his 40 years of experience being a programmer.
<fossy>Lmfao
<oriansj>So I definitely understand that sort of frustration.
<xentrac>well, someone might have written one previously, but our previous efforts to find one were fruitless, so you might well be :)
<xentrac>we did find some C compilers written in assembly for non-POSIX systems, like BDS C
<oriansj>xentrac: exactly one BDS C
<oriansj>everyone else saw the writing on the wall and didn't bother to write their C compiler in anything other than C (or B in the case of the original)
<xentrac>yeah, in a sense the benefit of C is that you can use it for everything you would have used assembly for
<oriansj>and honestly for anything I wanted to actually enhance over time, C is so much better of a language than any assembler out there.
<oriansj>wanna change a data structure layout, just tweak the struct definition, not a few hundred places in your assembly
<xentrac>I think that, pre-C, people normally did that with macro assemblers
<oriansj>heck, I even prototyped cc_x86 in C before I wrote it in assembly to save me the trouble of debugging my design along with my implementation.
<xentrac>gas's macro facilities are pretty weak, as assemblers go, but I think even they are sufficient to handle the definition of structs that you can then access
<xentrac>uh, that you then have defined accessors for
<xentrac>so you can tweak the definition
<oriansj>xentrac: and probably a great deal more that was lost in the sands of time.
<oriansj>but at that point you have a language harder to implement than a C compiler.
<xentrac>actually no! it's just a lot more error-prone and uglier
<xentrac>I think GPM was implemented in 350 machine instructions or something
<oriansj>cc_x86 is only 3,257 lines of code in assembly (or 1638 lines of C code approximately)
<oriansj>xentrac: well that is pretty dense, what sort of features did GPM have as an assembly language dialect?
<oriansj>M0 is only 612 machine instructions (no optimization done) and a single string (DEFINE)
<xentrac>GPM wasn't an assembly-language dialect, just a Turing-complete macro processor that could be used with an arbitrary one
<xentrac>m4 is a somewhat regularized version of it
<xentrac>you'd probably enjoy Strachey's paper on GPM actually
<xentrac>"A general purpose macrogenerator"
<xentrac>he goes into some detail about their bootstrapping strategy
<oriansj>hmm https://gist.github.com/tociyuki/6640b71a37e153b0b04e
<xentrac>you could in theory write a macro package for GPM (or for m4) that produced hexadecimal machine code from assembly-language input
<xentrac>yeah, I've seen that gist before, but I'm not entirely sure if it captures GPM's confusing semantics correctly
<oriansj>fair
<oriansj>but I can imagine writing it about 400 lines of assembly
<oriansj>So rather clever design if not a hard to work in tool
<xentrac>it's just that it's really hard to debug malfunctioning macros
<xentrac>although I think m4 is actually *worse* than GPM in that way
<oriansj>xentrac: there is a reason I only did line macros in M0/M1 and someone else added C macro support to M2-Planet.
<xentrac>the GNU m4 manual says GPM was actually 260 machine instructions
<xentrac>250
<xentrac>but that isn't in Strachey's original paper
<oriansj>xentrac: now that was a clever hack or required an CPU architecture better than x86
<xentrac>I think it's mostly that the GPM design is a very clever hack
<oriansj>probably could do it on a VAX or PDP-10
<xentrac>I don't think the Titan had VAX-like luxuries
<oriansj>xentrac: which Titan, there were hundreds of Chips with that name
<oriansj>For example there was the Titan precursor to the DEC PRISM (and thus DEC ALPHA)
<xentrac>the one that predated chips
<xentrac>I think it was transistorized though
<xentrac> https://en.wikipedia.org/wiki/Titan_%281963_computer%29
<oriansj>ok thank you
<oriansj>doesn't look so bad to program actually: http://www.chilton-computing.org.uk/acl/technology/atlas/p007.htm
<oriansj> http://www.chilton-computing.org.uk/acl/pngs/aocfrontorig.png
<oriansj> http://www.chilton-computing.org.uk/acl/pngs/aocbackorig.png
<xentrac>yeah
<oriansj>and 48bit instruction size isn't exactly dense either. So 1500Bytes (or about 500ish instructions of x86 to use up that much space)
<oriansj>So M0 is 113bytes bigger
<xentrac>and M0 produces actual machine code, not macro-expanded assembly language to feed to your assembler
<oriansj>xentrac: well it uses hex2 as a linker
<xentrac>well, true
<oriansj>and hex2 is only 1406bytes big
<oriansj>I wonder if there are any smaller linkers out there
<oriansj>to give us a fair comparison.
<oriansj>Macro+linker vs Macro+linker
<oriansj>although with some cleverness GPM could probably generate hex2 output and be linked by it
<oriansj>:label %label and blobs of hex (with possible comments) aren't exactly complex things to output
<xentrac>I think Dave Long did some similar stuff, I wonder if I can find it
<xentrac> https://web.archive.org/web/20121231045429/http://lists.canonical.org/pipermail/kragen-discuss/2012-May/001234.html
<xentrac>which contains the wonderful quote, "in fact, if one adds enough evaluation to an assembler it becomes indistinguishable from a linker ... conversely, a sufficiently advanced linker is indistinguishable from an assembler."
<oriansj>oh I remember this one
<oriansj>it is basically a hex0 linker
<oriansj>or hex1 ish?
<oriansj>but yeah, there is a very fine line between a linker and an assembler which is ultimately a question of syntax complexity for humans.
<oriansj>In short the second a linker becomes able to accept human written input, it is an assembler.
<xentrac>does that mean echo is an assembler?
<xentrac> https://www.mail-archive.com/kragen-discuss@canonical.org/msg00408.html
<oriansj>xentrac: in a pinch, yes
<oriansj>as is printf
<oriansj>sed, awk, etc
<oriansj>give me the ability to write individual bytes and I can bootstrap the world
<oriansj>literally now ^_^
<xentrac>:)
<oriansj>even if you have some ugly turing limits, I only need 250bytes written. To get a hex0
<xentrac>now the main issue is how to get a computer
<oriansj>xentrac: I'll solve that after I solve the POSIX bootstrap problem with stage0-CPM (and ultimately stage0 x86 bare metal port)
<oriansj>Then I'll have to solve the foundry bootstrapping problem. Then someone else is going to have to solve the bootstrapping chemistry problem, because fuck that I'm not Dr Stone.
<xentrac>hahaha
<xentrac>yeah, I'm working on that in another window
<oriansj>bootstrap chemistry problem?
<xentrac>yeah
<xentrac>too bad I'm so ignorant of chemistry that I managed to injure myself doing a reaction with one reagent
<oriansj>ooh
<oriansj>another bootstrapping community?
<xentrac>I don't think there's much of a community. chemistry is too subject to witch-hunting persecution; I think I may have mentioned in here that for a while Texas criminalized lab glassware
<fossy>what is the bootstrap chemistry problem,
<oriansj>or more Four Thieves Vinegar Collective with chemistry
<fossy>?
<xentrac>fossy: you have a ton of dirt and you want to turn it into computers
<oriansj>fossy: how do you isolate all of the elements and combine them to make chips?
<fossy>ah
<xentrac>or a ton of asteroids, maybe
<oriansj>The knowledge covers some of the basics for getting started but it skips steps that are essential
<xentrac>I did manage to synthesize some sodium silicate this week though! that was exciting
<xentrac>Dartnell's book is not trustworthy; it leaves out information whose lack can kill you
<xentrac>it's entertainment, not a manual
<oriansj>xentrac: kind of expected for a high level map of a book rather than a reasonable recipe for how to do it
<oriansj>Although at this rate someone is going to start a walk-away net archive collection so that all of the steps are actually known in a manner people can follow.
<xentrac>I think that's an important project, but it might need to be done anonymously
<oriansj>xentrac: especially the chemistry sections given current laws
<oriansj>the machine workshop knowledge like the Global Village Construction Set and the like probably could be done in public
<oriansj>and the section on Nuclear physics to a large degree.
<xentrac>maybe so, yeah
<xentrac>I don't think nuclear physics is important
<xentrac>I mean, in a global sense, yes, but not for reaching full bootstrappability
<oriansj>xentrac: well energy is the biggest limiting factor for technology. Easily accessable Fossil fuel is already long gone
<oriansj>nuclear could be used to provide the power needed to sustain a population big enough to rebootstrap the labor force required to build processors.
<oriansj>as Energy => more food => more people; combine with the technology to eliminate the need for people to do manual labor becomes a large population that can specialize in all the skills needed to implement advanced technology.
***rt is now known as robin
<oriansj>greetings robin welcom
<robin>hi oriansj
<xentrac>sure, you can get energy from nuclear power, but PV is cheaper now
<Hagfish>PV (and wind, with batteries) is more distributed too
<oriansj>xentrac: really hard to bootstrap PV though without a certain level of civilization and existing lithography processes
***rt is now known as robin
<samplet>janneke: The module system in Mes looks really promising!
<janneke>samplet: hi! Oh great
<samplet>janneke: That’s not to say Gash works out-of-the-box or anything – just that I’m excited about it. :)
<janneke>samplet: Sure, I get that; that already makes me happy.
<janneke>samplet: in its current form, macros are still global, i.e., they do not follow/go through the module system
<samplet>That shouldn’t be a problem. I’m a pretty light macro user.
<janneke>yeah, i hoped to popstpone that...until we can't postpoen it anymore
<samplet>Also, I noticed that macros don’t follow lexical scope (in Mes 0.23). That means that I can’t shadow ‘let’, for example.
<samplet>I’m sure you know that, though.
<samplet>It’s worked around in “match.scm”.
<janneke>yeah, macro declaration and expansion should probably be redone
<janneke>i was already so glad "it worked" well enough for nyacc/mescc
<samplet>That makes sense. I am a pretty heavy ‘match’ user, so I have some patches for that. :)
<janneke>samplet: your patches to mes look already inspiring to me
<janneke>porting the c bits to wip-m2 should be pretty straightforward
<janneke>there's a script build-aux/pointer.sh that may even help a bit if necessary
<civodul>hey samplet & janneke! :-)
<samplet>There’s not much C, thankfully. I don’t know much about M2 at the moment, but I’ll get there.
<samplet>civodul: Hi!
<janneke>hi civodul!
<janneke>yea, the wip-m2 branch has only 15 small special files (lib/m2) that couldn't be shared with real C
<janneke>and that was for m2-planet 1.7.x, we can probably remove at least half of them now m2 has some preprocessor support
<xentrac>oriansj: yeah, historically nuclear energy developed a bit earlier than PV and much earlier than cheap PV, but I think that's mostly a question of knowledge rather than physical materials or machinery
<stikonas>both nuclear and PV energy seem to require much more technology than wind energy...
<stikonas>and nuclear energy needs quite a bit technology to be safe
<Hagfish>fair points, yes
<Hagfish> https://news.ycombinator.com/item?id=27710215 i'm glad there is a lot of mention of reproducible builds there (on an article about Google now signing Android apps itself)
<stikonas>is anybody familiar enough with guile to make sense of this crash https://paste.debian.net/1203162/ ?
<xentrac>there's no such thing as technology