Releases: jordanhubbard/nanolang
v3.1.9
NanoLang v3.1.9
Statistics
- Commits since v3.1.8: 1
- Test Status: NSType checking failed
Changes
- docs: update origin story closing to reference all four projects
Links
Full Changelog: v3.1.8...v3.1.9
v3.1.8
NanoLang v3.1.8
Statistics
- Commits since v3.1.7: 1
- Test Status: NSType checking failed
Changes
- docs: add origin story with provenance preamble and cross-references
Links
Full Changelog: v3.1.7...v3.1.8
v3.1.7
What's Changed
Added
- Forth SEE word with NanoISA decompilation —
SEE <word>now decompiles any built-in Forth word down to the NanoISA bytecode that implements it inside the interpreter. Newmodules/forth_see/module provides a self-contained NVM file reader and block-level disassembler. Built-in words show an annotated NanoISA listing; user-defined words show their Forth body; control words (if, do, loop) note they are handled in exec_tokens. - SDL Forth IDE (
make -C examples forth-ide) — split-pane SDL window with an interactive Forth REPL on the right (full PTY-backed terminal emulator via libtmt) and a file chooser on the left that loads.fsfiles directly into the REPL. Newmodules/pty/andmodules/sdl_term/modules are reusable components. - ANS Forth test suite (280 tests) —
make -C examples test-forthruns a comprehensive FIG Forth 83 / ANS subset test suite using the standardT{ ... -> ... }Tharness. Test files live inexamples/language/forth/. - Interactive REPL (
make -C examples run-forth) — readline-based Forth REPL with history. - Implicit function return values — functions can return the value of their final expression without an explicit
returnstatement.
Fixed
- SDL Forth IDE file path handling for
includecommands +loopnegative step termination condition- Floored division and symmetric remainder semantics in Forth arithmetic
v3.1.6
What's Changed
Fixed
- Eliminate const-qualifier warnings across build pipeline
The self-hosted transpiler mapped NanoLang's string type to C's char* while the C reference transpiler used const char*. This mismatch caused hundreds of -Wdiscarded-qualifiers warnings. Fixed by making all string type mappings consistently use const char* across both compilers, the bootstrap hashmap runtime, and module forward declarations.
Also fixes unused variables, removes unused function parameters in self-hosted compiler code, suppresses shadow test warnings in nanovirt test harness, and fixes the check_shadow_tests.sh regex.
Full Changelog: v3.1.5...v3.1.6
v3.1.5
🎉 NanoLang v3.1.5
📊 Statistics
- Commits since v3.1.4: 1
- Test Status: 🎉 All tests passed!
📝 Changes
- feat(editor): add inline source editor with text input and syntax highlighting
🔗 Links
Full Changelog: v3.1.4...v3.1.5
v3.1.4
🎉 NanoLang v3.1.4
📊 Statistics
- Commits since v3.1.3: 1
- Test Status: 🎉 All tests passed!
📝 Changes
- feat(launcher): add default args support for examples
🔗 Links
Full Changelog: v3.1.3...v3.1.4
v3.1.3
🎉 NanoLang v3.1.3
📊 Statistics
- Commits since v3.1.2: 2
- Test Status: 🎉 All tests passed!
📝 Changes
- fix(launcher): run from repo root so icons and source code resolve
- docs: Update CHANGELOG for v3.1.2 release
🔗 Links
Full Changelog: v3.1.2...v3.1.3
v3.1.2
🎉 NanoLang v3.1.2
📊 Statistics
- Commits since v3.1.1: 2
- Test Status: 🎉 All tests passed!
📝 Changes
- refactor: gate verbose/debug output behind --verbose flag
- docs: Update CHANGELOG for v3.1.1 release
🔗 Links
Full Changelog: v3.1.1...v3.1.2
v3.1.1
🎉 NanoLang v3.1.1
📊 Statistics
- Commits since v3.1.0: 15
- Test Status: 🎉 All tests passed!
📝 Changes
- chore: sync beads and add cursor gitignore
- refactor: rewrite SDL launcher with modular architecture
- chore: commit pending work from previous sessions
- fix: resolve conflicting types and missing nl_get_time_ms in stdlib
- docs: add planning/CHANGELOG.md for release script
- chore: ignore .beads/ephemeral.sqlite3 runtime data
- fix: eliminate all -Wdiscarded-qualifiers warnings from clean build and bootstrap
- fix: resolve remaining TODOs in self-hosted compiler
- chore: bd sync
- fix: implement outstanding TODOs across compiler and examples
- feat: infer anonymous struct literal names from function parameter types
- refactor: replace str_concat with + operator in stdlib/timing.nano, update stale TODOs
- tests: complete shadow test audit, add ~167 missing shadows across all files
- fix: reject pure expression statements, validate function arg types in self-hosted typechecker
- tests: add headers to 89 test files, delete 10 redundant, consolidate generic_union
🔗 Links
Full Changelog: v3.1.0...v3.1.1
v3.1.0 — Documentation Overhaul
I Found My Voice
This release is about documentation, not code. I now speak in the first person — as the language I am, not as a project described by others.
What Changed
Persona & Voice
- I defined my personality in
docs/PERSONA.md— direct, precise, unhurried - All 55 user-facing docs rewritten in my voice
AGENTS.mdupdated so all future contributors write as me
Comprehensive Machine Reference
MEMORY.mdrewritten as a complete machine distillation of my codebase- Any LLM can now come up to speed on every feature I have
Major Cleanup
- Deleted 127 completed internal and planning docs
- Consolidated all remaining work items into
docs/CONSOLIDATED_TODOS.md planning/directory reduced from 125 to 43 active documentsplanning/README.mdrewritten as a categorized index
Also Included
- fix(compiler): Fixed stage1 infinite loop on
from...importstatements - feat(examples): Added test runner driver with timeout and output verification
- refactor(examples): Standardized metadata headers across all 169 example files
Stats
- 12 commits since v3.0.2
- 127 files deleted, 55 files rewritten, 1 new consolidated TODO file