Releases: Beariish/bolt
v0.1.3
Potentially the final bugfix and stability release before we move towards 0.2. I've spent a bunch of time integrating Bolt into personal projects to evaluate where I want to take the language next, and I'm excited to share more of that soon!
Changelog:
Fixes:
- Ensure the empty type
fn: !doesn't bind toany - Stop GC from crashing due to stack misalignment during large functions
- Extend max table size from 16-bit to 32-bit
- Fix segfault when reporting certain missing branches in
matchexpressions - Fix segfault during parsing when certain statement bodies faield and returned NULL
- Make sure tableshape casting to
unsealedtypes works when fields are set tonull - Fix stack overflow when casting recursive union types
- Improve robustness of string interning to prevent identical strings from having separate references
- Ensure graceful erroring on stack overflow
- Fix segfault whe empty function body attempted to confirm return type
- Ensure eplicitly typed binding is forward-declared
- Fix table contruction operator
=>rejecting types from imported modules - Fix various infinite error loops when encountering EOS in tokenizer
Additions:
arrays.reserve(arr: [T], n: number)arrays.concatenate(result: [T], arrs: ..[T])arrays.flatten(arrays: [[T]]): [T]meta.try_compile(source: string, name: string): module | Errormeta.execute_module(mod: module): tablemodulefundamental type
Thanks so much to @0riginaln0, @mobile-bungalow, and @aaronkirkham for their contributions to this release.
v0.1.2
Another bugfix release coming in hot, we're marching on the steppes of stability with each passing day.
Changelog:
- Make sure interned strings are cleaned up on context shutdown
- Remove interned strings from deduplication table when no longer referenced
- Exclude runtime variant strings (numbers, objects etc) from interning for huge performance gain
- Fix crash on extending empty tableshape base type
- Fix crash when comparing sealed and unsealed tableshape types with no common fields
- Fix crash when deeply nested expressions are malformed
- Disallow changing the signature of a prototypical function if already defined in the inheritence tree
- Fix crash when empty tableshape types are included in unions
- Fix crash when assigning inferable tableshape types to existing bindings
- Fix
as TreturningnullwhenTis a union containing a stack type - Fix crash when encountering EOF in a comment
- Error unless all control paths in a function return the same number of values
- Correctly error if expression in array literal evalues to no value
- Allow left-hand type inference for the empty array literal
[] - Fix crash when right-hand side of table field in literal cannot be deduced
Thanks to all those who have contributed and reported issues along the way!
v0.1.1
This release primarily contains fixes for consistent behaviour across different compilers and platforms. Bolt should now work as expected on OSX, FreeBSD, and ARM targets. Huge thanks to @mobile-bungalow for some of the heavy lifting here.
There are also a few fixes to some of the benchmarks to be more representative of real world performance, documentation cleanup, and warning cleanups across GCC and Clang.