Tardis / lang /
..
app lang: Split in to library and executable 6 months ago
mini-gmp lang: Switch to mini-gmp rationals for number representation 2 months ago
modules lang: Add module variables 1 month ago
CMakeLists.txt lang: Add module IDs as X macros 1 month ago
README.md lang: Add simple README 4 months ago
boolean.c lang: Move abort_msg and abort_if to vm 1 month ago
boolean.h lang: Couple object functions to VmState 1 month ago
bytecode.c lang: Add module variables 1 month ago
bytecode.h lang: Add module variables 1 month ago
compile.py lang: Add module variables 1 month ago
debug.c lang: Add debug logging 1 month ago
debug.h lang: Add debug logging 1 month ago
error.c lang: Add stack traces on abort 1 month ago
error.h lang: Add stack traces on abort 1 month ago
main.c lang: Create modules and dependencies on request 1 month ago
module.c lang: Use an object_list for use_modules 1 month ago
module.h lang: Use an object_list for use_modules 1 month ago
object.c lang: Add an object_list structure 1 month ago
object.h lang: Add an object_list structure 1 month ago
rational.c lang: Clean up one-line if statements 1 month ago
rational.h lang: Allow creating rationals from an mpq value 1 month ago
types.h lang: Declare opaque structs for better type safety 1 month ago
vm.c lang: Fix tail calls not dispatching on object_none 1 month ago
vm.h lang: Don't imply vm_tailcall uses a queue 1 month 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