Tardis / lang /
..
app lang: Split in to library and executable 12 months ago
modules lang: Rename number "Minus" To "Subtract" 8 months ago
CMakeLists.txt lang: Fix CMake dependency on compile.py 9 months ago
README.md lang: Add simple README 9 months ago
boolean.c lang: Rename boolean "Not" to "Invert" 8 months ago
boolean.h lang: Import boolean code (oops!) 8 months ago
bytecode.c lang: Document unused OP_DROP_ONE 8 months ago
bytecode.h lang: Pass object to bytecode_run 9 months ago
compile.py lang: Add AST statements and commands 8 months ago
error.c lang: Add error handling functions 12 months ago
error.h lang: Run clang-format 12 months ago
main.c lang: Use object_none() instead of NULL 8 months ago
number.c lang: Rename number "Minus" To "Subtract" 8 months ago
number.h lang: number header cleanup 8 months ago
object.c lang: Add private data to vtable calls 9 months ago
object.h lang: Add private data to vtable calls 9 months ago
types.h lang: Add more code documentation 9 months ago
vm.c lang: Abort if vm_stack_drop is too small 9 months ago
vm.h lang: Add more code documentation 9 months ago
README.md

Language prototype project

This is the prototype language for the Tardis prototype project.

This is mainly to get an environment up and running. This means no fancy features, no tests, no optimizations, etc.

Design notes:

  • Bytecode VM is stack-based with indexing
  • Garbage collection is done using reference counting
  • Stack is shifted on function call
  • Empty function arguments are re-used for return values
  • Callee cleans up unused stack space when returning

License

All documentation and software for this project is under the MIT license unless otherwise specified.

Copyright: 2023 Casey Reeves casey.reeves@lumina-sensum.com

Copyright: 2023 John Watts john.watts@lumina-sensum.com

SPDX-License-Identifier: MIT