aegwenia.github.io

Personal project page of Bezděk Miroslav. C89; Ansi C; Mal.

UNLICENSE License

Stars
1

Guide to MAL C89 (Make A Lisp)

[edit]

Table of Contents (old & deprecated)

  • Top
  • Version 0x00 -- REPL
  • Version 0x00 -- text_t and garbage collection
  • Version 0x00 -- lists and vectors
  • Version 0x00 -- mal objects and errors
  • Version 0x00 -- hashmap and reader macros
  • Version 0x01 -- version up
  • Version 0x01 -- environment and reworked hashmap
  • Version 0x01 -- eval and builtins
  • Version 0x02 -- version up
  • Version 0x03 -- creating and modifying environments; version up
  • Version 0x04 -- adding if, fn* and do; version up
  • Version 0x05 -- TCO (Tail Call Optimization); version up

Version 0x00 -- REPL

  • The first version of MAL project using C89 standard. Responsive REPL environment.

Version 0x00 [source]

Version 0x00 -- text_t and garbage collection

  • Preparation for second version, text_t and garbage collector.

Version 0x00 -- 0x01 [source]

Version 0x00 -- lists and vectors

  • Adding support for basic string (un)escaping, new types (list_t/list_p and vector_t/vector_p), tokenizer and basic parser to the source code.

Version 0x00 -- 0x02 [source]

Version 0x00 -- mal objects and errors

  • Added basic support for mal objects and custom error handling.

Version 0x00 -- 0x03 [source]

Version 0x00 -- hashmap and reader macros

  • Adding support for basic hashmap, updated tokenizer in the the source code.

Version 0x00 -- 0x04 [source]

Version 0x01 -- version up

  • The second version of MAL project using C89 standard. Reader, writer, lists, vectors, hashmaps ans reader macros. It is equivalent to version 0.0.4.

Version 0x01 [source]

Version 0x01 -- environment and reworked hashmap

  • Added Environment, edited hashmap implementation.

Version 0x01 -- 0x01 [source]

Version 0x01 -- eval and builtins

Added Eval stage, and some additional buitin functions.

Version 0x01 -- 0x02 [source]

Version 0x02 -- version up

  • The third version of MAL project using C89 standard. Environment, eval and some builtin functions. It is equivalent to version 0.1.2.

Version 0x02 [source]

Version 0x03 -- creating and modifying environments; version up

  • The fourth version of MAL project using C89 standard. Creating environment using special form let* and modifying the current environment using def! special form.

Version 0x03 [source]

Version 0x04 -- adding if, fn* and do; version up

  • The fifth version of MAL project using C89 standard. Added three new special forms if, fn* and do and added some core functions.

Version 0x04 [source]

Version 0x05 -- TCO (Tail Call Optimization); version up

  • The sixth version of MAL project using C89 standard. Editing eval functions to support TCO (Tail Call Optimization).

Version 0x05 [source]