Description =========== "blc" could mean "Bootstrapping Lambda Calculus", perhaps. Or maybe "Bootstrapping Lisp(y) Compiler". Can't really call this a Lisp without the whole code-is-data thing. Do not get confused by the "bootstrapping" thing. It cannot compile itself just yet. Maybe it never will. Currently, its only intended purpose is to be a stepping stone for building (i.e. bootstrapping) a more advanced language. And it's not that yet, either; it is still in an experimental stage of development. There are a few primitive functions to do basic arithmetic, bitwise operations, and comparisons, as well as a function to make system calls like read, write, and exit, but at least a few more will be needed to manipulate strings and blocks of memory before blc programs can actually parse and act on user input. The blc compiler and assembler are cmeta programs, which are not very talkative if they encounter an error, but their exit status codes will now indicate the kind of error condition. See the exitcodes.txt file in the cmeta submodule directory for a description of exit codes used by the blc compiler and blc-asm. Also, blc programs themselves may exit with certain status codes if a variable lookup or bind fails; see exitcodes.txt in blc's source directory for a description of possible exit codes. blc.cmeta --------- Parses lambda calculus and emits blc-assembly code output. The target language is described in the blc-asm.txt file. blc-asm.cmeta ------------- This is the assembler that compiles blc-asm into machine code. blcasmrt.lhex ------------- This is the specialized runtime for the assembler binary. It reads the opcodes produced by blc and calculates the output buffer size from it. Populates the table used for label references. Serves the same purpose cmart does for cmeta. blcrt.lhex ---------- This is the runtime that initializes and starts up a blc program. It implements two lambda calculus functions for making syscalls in assembly. Contributors ============ Thanks to rain1 for helping me with some of the documentation, and the rest of the folks in #bootstrappable on Freenode for additional feedback and suggestions.