1. 31

Found via the thread about stage0, a minimal system for bootstrapping GCC.

  1.  

  2. 5

    Reposting from a comment a few days ago because it’s relevant here too, and I really enjoyed it:

    https://github.com/nornagon/jonesforth/blob/master/jonesforth.S

    1. 3

      I’ve got a C++ implementation of the Python interpreter he has in that repository here: https://github.com/tekknolagi/stoneknifecpp

      1. 2

        Can anyone comment on what open-coding is? From context, it sounds like replacing the forth definition with a reference to machine code, but I’m not 100% sure that’s right, and also can’t think through the details.

        1. 3

          Open coding is basically inlining with specialization. I am mostly familiar with it in the context of Smalltalk and Lisp implementations, where if the compiler can know that a particular value will be a fixnum, it can, for example, replace a call to the addition primitive (which also needs to handle bigints) with an ADD instruction. This can also avoid tagging and untagging values at every step.

        2. 2

          stoneknifeforth and colorForth are great inspiration for writing a tiny interpreted programming system.

          1. 2

            StoneKnifeForth has been a big inspiration to my current project: https://github.com/akkartik/mu/blob/master/subx/Readme.md#inspirations

            @kragen has also been a huge help to get me started creating ELF binaries from scratch: https://mastodon.social/@akkartik/101270485796588369

            1. 2

              I like that there’s a “related works” section. It’s a simple way for a hobby project to be more useful. The author probably already has the inspirations in their head anyways (maybe even as browser tabs!).