v1.0.0-alpha.7: Threading, Protocol & Test Reliability
Pre-releaseWhat's New in v1.0.0-alpha.7
Zero Integration Test Failures
The full integration test suite now passes with 0 failures -- 1,881 tests across 50 test files, running in ~40 seconds with 8 parallel workers. Two weeks ago there were 755 failures.
Key fixes:
- langerrordisable leak: A bug in the headless EFP fast-path made ALL verb errors uncatchable by
try/else. Fixed by restoringenablelangerror()before early returns inlanggethandlercode(). - Per-worker database isolation: Parallel test workers now get their own copy of the database, eliminating flaky failures from concurrent write access.
NDJSON Protocol Mode
New --protocol flag for persistent subprocess communication via NDJSON (newline-delimited JSON) over stdin/stdout. This eliminates ~210ms startup cost per evaluation and is the foundation for future GUI communication.
echo '{"id":1,"op":"script/eval","params":{"expression":"1+1"}}' | \
frontier-cli --protocol --skip-startup --system-root Frontier.root
# {"id":1,"result":{"value":"2","type":"long"},"success":true}GIL-Based Threading
Real POSIX threads with a Global Interpreter Lock (GIL). The runtime uses real threads serialized by a single mutex, with cooperative yield points at langbackgroundtask() and thread.sleepTicks(). All thread verbs operational: evaluate, callscript, getCurrentID, getCount, exists, kill, sleep, wake, getNthID.
Per-Component Logging
Fine-grained log control via environment variable or CLI flag:
# Environment variable
FRONTIER_LOG=lang:debug,tcp:warn frontier-cli ...
# CLI flag
frontier-cli --log lang:debug,tcp:warn ...REPL & UX Improvements
- Ranger-style file browser for
file.getFileDialogwith arrow key navigation - Guest database navigation in REPL with prompt display
[n]index syntax and relative paths in/listand/jump- Real
wp.getText()andwp.setText()for headless mode filemenu.newimplemented
Stability Fixes
- Migration segfault fix for v6 guest databases
- Startup segfault from context guard and tmp stack bugs
- Stack overflow in portable file verbs dispatcher
- Startup bootstrap fixes (random() params, log corruption)
- Suppress verb error logging inside UserTalk try blocks
- Script path now included in error log messages
Quality Metrics
| Metric | Value |
|---|---|
| Integration Tests | 1,881 (0 failures, 189 skipped) |
| Unit Tests | 6/6 passing |
| Test Execution | 8 workers, ~40s |
| PRs Merged Since alpha.6 | 27 |
| Commits Since alpha.6 | 38 |
Download
frontier-v1.0.0-alpha.7-macos.tar.gz-- macOS arm64 binary with Frontier.root database and guest databases
Full Changelog: v1.0.0-alpha.6...v1.0.0-alpha.7