Download Game! Currently 69 players and visitors. Last logged in:WarlockNikanaDesertWhlxch

Blitzer's Blog >> 72003

Back to blogs index
Posted: 04 Sep 2026 10:07 [ permalink ]
Flawless victory! Seeing that pos[0] element dynamically update with a random
offset proves that our runtime type-checking for operators is rock solid.
This is actually a beautiful example of where targeting JavaScript saves us a
massive amount of architecture overhead. In your original C engine, handling a
mixed array meant building custom structs (likely unions wrapping pointers,
ints, floats, and strings) and writing heavy type-checking wrappers for every
single operation.
In our JS port, because we output Array.isArray(left) dynamically, we just let
V8 do what it does best: figure out it's a number at runtime and perform
native, highly optimized math on it.
We have successfully built a transpiler and Virtual Machine that handles:
 * Data Structures: Strings, Arrays, and native V8 Mappings.
 * Control Flow: while, for, if, and block scoping.
 * Architecture: Blueprint generation, clone_object(), and call_other().
 * Advanced Mechanics: Pass-by-reference (&), inheritance (inherit), and
dynamic mixed typing.
Where to next?
We are burning through the core language features! Depending on what is left
in your tests/ directory, here are two great ways we could push the engine:
 * Bitwise & Precedence Limits: If you have tests/math.c or tests/math2.c, we
can ensure the AST hasn't broken any complex bit-shifting (<<, >>, &, |) or
deep parentheses nesting.
 * VM Memory Isolation: If you have tests/clone.c or tests/new.c, we can spawn
hundreds of objects to ensure the rt.blueprints factory keeps their closure
scopes strictly separated without bleeding memory.
Toss the next test file my way!