New features
- Variable-arguments function support
- RTTI function limited support
- Polymorphic and variadic PRINT function
- Command-line arguments access
- Added stack low-level manipulation native functions: push, pop
- Access to stack pointer and stack frame pointer (reading/writing)
- Subtracting two pointers is now possible
- Preprocessor improved to solve macros recursively
- New built-in hexdump debugging functions
- External library access unit tests (thanks to Peter)
PRINT function examples:
print 123
123
print "hello"
hello
print [123 "hello"]
123hello
print [123 tab "hello" lf "world" lf]
123 hello
world
a: 1 < 2
b: "hello"
print [a tab b/2]
true e
Bugfixes
- Complex arithmetic expressions involving pointers, path access and type casting are now much more reliable. 89 new unit tests were written to help fix the bugs and track regressions.
- Complete list of fixed issues available in Github's tracker.
Specification document
- Updated to match all new and changed features
Red runtime
- Memory allocator implemented in Red/System, documentation is pending.
As you can see, no vacation this summer for Red project!