IRC channel logs

2020-11-08.log

back to list of logs

<xentrac>no
<xentrac>but mostly what it would take is will
<OriansJ>xentrac: one would say willfulness is common here.
<fossy>i would love to get knight implemented but i have very little experience with electronics let alone building a cpu, lol
<xentrac>fossy: I illuminated an LED the other day. today I added a power cable to a fan and it ran again for the first time in many years
<OriansJ>fossy: sounds like a good excuse to look at IceStorm and think of hardware as software.
<OriansJ>I've added the following: https://github.com/oriansj/stage0/blob/master/Knight%20Reference/Proposal%20for%20change.org to enable pull reguests to drive the evolution of Knight
<OriansJ>as all changes to the
<OriansJ>Unreviewed section will be accepted
<xentrac>what are the advantages of the Knight instruction set?
<OriansJ>xentrac: fits in head well, can be implemented in 1960s technology and bare metal bootstrap steps to M2-Planet are already done.
<xentrac>aha, I see
<xentrac>so if you had a bare metal bootstrap to M2-Planet on Wirth RISC or something that would be better?
<OriansJ>xentrac: it would be another potential root of trust (The more the better)
<xentrac>more is better!
<OriansJ>indeed but also more is more work.
<xentrac>that instruction set won't implement itself!
<OriansJ>and I have already done Knight, x86, AMD64 and wrote all of the steps for ARMv7l in gas
<xentrac>I hope you're having a nice weekend
<xentrac>I forget if I asked, how did you like ARM?
<OriansJ>xentrac: busy, really not enough time to get the work I want done; done
<xentrac>enough time to spend time with your family?
<OriansJ>So I am getting the architecture development notes out of my head and into something that other people can improve and expand.
<OriansJ>xentrac: mostly nothing but family time today.
<xentrac>that sounds nice
<OriansJ>xentrac: 20+ hours a day, 7 days a week.
<xentrac>are you liking it? or is it getting to be a bit much?
<OriansJ>It is hard to do tasks that require focus when you have a crying baby or spouce seeking attention.
<OriansJ>Don't get me wrong, I love spending time with them.
<OriansJ>But my productivity is taking a serious hit.
<OriansJ>Last year I saved the State of Michigan $6.183Million; this year with remote work all but 1 day a month; only $914 Thousand in the last 8 Months.
<OriansJ>Not to mention the delays in my stage0 work.
<xentrac>yeah, crying babies are intentionally hard to ignore
<xentrac>since generally breastfeeding is only done by women, gender roles in many cultures assign to women exclusively work that can be interrupted unexpectedly at any time
<xentrac>things like gathering fruits, plowing, and spinning, rather than hunting and building
<OriansJ>however the invention of Formula has lead to men also being forced to deal with baby induced interrupts
<OriansJ>(not to mention breast pumps)
<xentrac>well, men in most cultures do rear children, in part
<xentrac>even without breast pumps
<xentrac>I mean not all instances of crying result from hunger
<xentrac>probably five years from now you
<xentrac>'ll be glad you spent a lot of this time with your spouse and baby rather than on stage0
<OriansJ>fair
<xentrac>I mean, stage0 is important, but a whole lot less time-sensitive than growing out of babyhood
<xentrac>it'll probably have nearly as much social value if it's completed two years later, whereas a two-day interruption in childrearing would probably kill the baby
<xentrac>and your personal absence from their life for two years would leave you with regrets for the rest of your life, and probably a divorce too
<OriansJ>indeed
<OriansJ>although the crazies clearly don't agree but let us hope that never spills out of the cyber realm.
<xentrac>you don't owe the crazies anything, I'm guessing. unless they're like your ex-brother-in-law who lent you money or something
<OriansJ>xentrac: agreed. fortunately my family and friends are in the largely sane camp.
<xentrac>well, I'm not! but I don't think you owe me anything. I'm grateful for the wonderful work you've done and hope you have the chance to do more of it
<OriansJ>xentrac: I find the "work" generally fun if not a challenge some days.
<xentrac>:)
<xentrac>I think trying to make it challenging is at the root of a lot of the difficulties we have in bootstrapping
<xentrac>instead of doing things in a boring way that will obviously work, we look for exciting ways that will make people go, "Wait! That's impossible!"
<vagrantc>people already think bootstrapping is in the near-impossible category, just getting something working at all makes a lot of people amazed :)
<OriansJ>xentrac: I'd argue most of my work has been proving time and time again the boring way is the only way that works consistently well.
<xentrac>I feel like in general your work has avoided that problem, yeah
<OriansJ>I've done the whole, lets do a clever FORTH (that got stuck fast)
<xentrac>I'm thinking more of things like StoneKnifeForth, which compiles itself to Linux ELF from source code in two pages of code
<xentrac>and tokthr, where I was trying to fit an interactive development environment into 2K
<OriansJ>I've doen the lets write a Lisp in assembly. (that proved Lisp without macro support just isn't respected.)
<xentrac>yeah, Lisp without macro support went out of style in the late 1970s, after people ferociously assailed fexprs
<OriansJ>xentrac: all rather impressive work
<xentrac>impressive but not useful!
<xentrac>the boring way is boring precisely because it has consistent results
<xentrac>I mean peg-bootstrap is exciting because you wouldn't expect a parser generator to fit into a page of code
<xentrac>but it would be a lot more pleasant to use if you added Kleene closure, for example
<xentrac>in that case it's easy enough to add
<OriansJ>xentrac: well we did see a rather genius parser generator early on
<xentrac>(btw, WRT fexprs, I'm not saying fexprs are good. I agree with the mainstream belief that macros are a better alternative to fexprs.)
*xentrac performs his auto-da-fe
<OriansJ>I can't for the life of me remember who did the META II bootstrap work
<OriansJ>I just remember it being impressive
<OriansJ>It used to be here: https://github.com/lugon/META-II.git
<xentrac>I thought META II was D. Val Schorre
<OriansJ> http://www.ibm-1401.info/Meta-II-schorre.pdf yep but it was a reimplementation of it in C
<xentrac>hmm, I wonder if Dave Long has done that. it sounds like something he would do. I wonder if he's okay
<siraben>OriansJ: Ooh META II is amazing
<siraben>OriansJ: I have a simple self-hosting versions in C and Forth, https://github.com/siraben/meta-yacc
<siraben>Oh, missing LICENSE, I'll add one.
<siraben>LICENSE added.
<siraben>I haven't tried doing extra stuff like allowing custom regexes to recognize different kinds of tokens (e.g. [a-z0-9]+), which would make it more useful
<OriansJ>siraben: Nice. Must have take some effort to implement from scratch.
<siraben>I have since lost the original bootstrap, heh. But it was not too bad.
<siraben>OriansJ: Would META II come in useful somehow? It's very declarative and simple.
<siraben>xentrac: ooh, peg-boostrap?
<siraben>bootstrap*
<OriansJ>siraben: well possibly but I don't know eactly how.
<siraben>OriansJ: how well-constructed is your parser for Lisp?
<siraben>Handwriting parsers in C can be tricky, that is.
<OriansJ>well I took the direct approach: https://github.com/oriansj/mes-m2/blob/master/mes_read.c
<siraben>I see.
<OriansJ>and then I do this to create the S-expressions: https://github.com/oriansj/mes-m2/blob/master/mes_tokenize.c
<OriansJ>So it is relatively robust (I've fuzzed the crap out of it)
<siraben>Oh great, you fuzzed it.
<siraben>Out of curiosity, did you use AFL?
<OriansJ>yes I did
<OriansJ>It found about a half-dozen spots that needed a require to catch edge cases
<OriansJ>So finding a hang or crash should be quite unlikely (12+ hour fuzzing sessions resulted in no crashes or hangs)
<OriansJ>I've since fuzzed the stage0 vm; M2-Planet and mescc-tools; cleared out all of the crashes and virtually all of the hangs (haven't gotten rid of waiting for user input hangs in the stage0 vm yet)
<rain1_>peg-boostrap was so inspiring to me
<rain1_>i couldn't believe it
<rain1_>and i studied that a lot
<rain1_>i did my own implementation of it later on in racket, much less elegant though
<siraben>rain1_: is the a small implementation of this in C?
<rain1_>i dont think so
***rain1_ is now known as rain1
<siraben>I see.
<rain1>how are you doing?
<siraben>I'm well, quite busy with uni so not much coding time.
<siraben>And you?
<rain1>im alright, trying to get back into coding something
<siraben>What kind of things?
<rain1>i don't know
<rain1>are you working anything cool or researching something?
<siraben>Studying math and CS no research ATM but I discuss functional programming, lattice theory and category theory.
<rain1>oh that's cool!
<siraben>rain1: Yeah, very nice intersections with one another.
<siraben>Compilation and interpretation has well-defined meaning as well, which means it is feasible to state and prove correctness of compilers/interpreters.
<rain1>yeah
<xentrac>siraben: do you like peg-bootstrap?
<xentrac>rain1: oh I'm glad you liked it <3
***Hagfish_ is now known as Hagfish
<xentrac>OriansJ: if you're interested in the reasons macros are better than fexprs, check out Kent Pitman's 1980 "Special Forms in Lisp:"
<xentrac>I think it was pretty much the end of that debate
<snnw>OriansJ: I finally got round to finishing cc_aarch64 in M1. With the last few bugs out of M0, I've now got a full bootstrap from a hex0 seed for aarch64 to the mescc tools and M2-Planet
<snnw>still missing a kaem and catm but they're more like side quests IMHO :)
<snnw>pull requests might take a while to appear; need to navigate the usual bureaucracy at work
<rain1>nice one!
<deesix>Great, thanks!
<Darius>xentrac, dave wrote an article on his reimplementation for cacm
<xentrac>Darius: have you heard from him lately? I hope he's ok
<Darius>i haven't
<rain1>is that article online?
<xentrac>yeah
<Darius> https://queue.acm.org/detail.cfm?id=2724586