Changelog
v0.4.1 — 2025-01-07
Fixes
- Addressed segmentation fault when interpreting bytecode on Windows (filename was not populated for symbol position).
- Ensured that newlines are correctly processed on Windows.
- Renamed the
operator
property inhex_item_t
tois_operator
to avoid conflicts in C++ code (operator is a reserved keyword).
v0.4.0 — 2025-01-03
Breaking Changes
- Removed the native symbol
when
. - Bytecode: some opcodes changed values; programs compiled with tbe previous version must be recompiled.
New Features
- Added symbol debug to dequote a quotation in debug mode.
- The registry has been reimplemented as a hash table that can store up to 4096 symbols.
Fixes
- Improved string escaping/unescaping.
- Values bound to symbols are deep-copied before being pushed on the stack.
- Action quotations are now deep-copied in while and map symbols.
Chores
- Updated Vim syntax highlighting (
hex.vim
).
v0.3.0 — 2024-12-25
Breaking Changes
- Removed the native symbols
filter
,clear
, andeach
. - Bytecode: some opcodes changed values; programs compiled with tbe previous version must be recompiled.
New Features
- Added symbol :: to define operators (immediately-dequoted quotations).
- Added symbol symbols to get a list of all stored symbols
- Added symbol throw to throw an error.
- Increased the size of the STDIN buffer to 16Kb.
Fixes
- <= now returns correct results.
Chores
- Updated Vim syntax highlighting (
hex.vim
).
v0.2.0 — 2024-12-20
New Features
- Implemented a virtual machine with a bytecode compiler and interpreter.
- read, write, append now support reading and writing from/to binary files as well.
- ! can now evaluate a quotation of integers as hex bytecode.
- Increased maximum stack size to 256 items.
- Improved and consolidated error messages and debug messages.
Fixes
- Ensured that dec is able to print negative integers in decimal format.
- Ensured that symbol identifiers cannot be longer than 256 characters.
- Ensured that all symbols are correctly added to the stack trace.
Chores
- Split the source code to different files, and now relying on an amalgamate.sh script to concatenate them together before compiling
v0.1.0 — 2024-12-14
Initial release, featuring:
- A multi-platform executable for the hex interpreter.
- Integrated REPL.
- Integrated help and manual.
- Debug mode.
- 0x40 (64) native symbols.
- Support for 32bit hexadecimal integers, strings, and quotations (lists).
- A complete web site with more documentation and even an interactive playground.