New features
- Smart test caching - only re-run tests with changed inputs
before
andafter
test hooks - run code before and/or after every test in a suitemove-resource
command - useful for refactoring, allows you to move existing resources to a new location in source codeimport-resource
command (experimental) - imports the state of an existing resource into your program
Performance improvements
- Further reductions in start-up time (10-20%)
- Reduced overhead for
synapse compile
- (Linux/Mac) Moved to
mimalloc
2.1.7 for significantly better allocation performance across threads - Improved V8's garbage collector under high-throughput situations
Compilation and synthesis
- Permissions solver works on bound functions
for
loop variables are captured per-iteration rather than as a single symbol
Bug fixes
- Lengthy terminal output now wraps around to subsequent lines instead of truncated
query-logs
no longer treats user errors as "system" messages- Multiple providers of the same type no longer use the same cache key
- (Windows) Detect changed files correctly for the
deploy
command - (Windows)
upgrade
no longer silently fails
Features-in-progress
Support for Zig-based native modules (include language server support) is almost complete. This is a major step towards enabling developers to create, share, package, and deploy their own high-performance modules. The end-goal is to produce minimal executables that only include the code absolutely necessary to run.
Significant progress has been made on a CI/CD system that "just works" for Synapse packages/deployments. This will first be used with Synapse itself to iron out any issues before possibly becoming a service offering and/or the source code is made available for self-hosting. The system is of course developed using Synapse.