{"repo":"mkicjn/paraforth","free":true,"listed":false,"github":"https://github.com/mkicjn/paraforth","clone":"git clone https://github.com/mkicjn/paraforth.git","description":"A sub-1KB, self-hosting, native code Forth without compromise","language":"Forth","stars":10,"topics":["forth","compiler","x86-64","assembler"],"license":null,"category":"self-hosted-apps","readme_excerpt":"paraforth A sub-1KB, self-hosting, native code Forth without compromise At the core of paraforth is a very small assembly program - just an association list of names to subroutines, and an input loop for invoking them. By pre-populating the list with just enough functionality to build a macro assembler, a self-extensible language kernel is born. This project is a long-running exercise in building the smallest self-sufficient Forth possible, without ANY sacrifices in speed or usability. No inputting pre-assembled machine code at runtime, and no cobbling together logic operations from NAND. The entire language, save for just 15 words and 773 bytes of machine code, is implemented in itself - legibly - and builds in place on startup. Author's note: It's worth acknowledging that this definition of \"self-hosting\" is admittedly a little weak. It's self-hosting in the sense that it compiles a better version of itself in memory at runtime, but not in the sense that it emits its own executable yet. Some progress has been made towards this (see examples/elf demo.fth), but until I find the time and interest, it remains a future goal. Quirks and Features: Tiny binary executable size - under one kilobyte Fast - a simplistic benchmark task demonstrates 4x speedup over gforth-fast on author's machine (against Gforth 0.7.3, which most distros have; note that 0.7.9 is much faster - only 1.08x speedup there!) Fewer primitives than eForth - 15 vs. 31 - with one spent just to enable line comments","default_branch":null,"files":null,"tree":[],"storefront":"/r/mkicjn","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mkicjn/paraforth/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}