Skip to content

Releases: Beariish/bolt

v0.1.3

05 Nov 19:57

Choose a tag to compare

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 to any
  • 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 match expressions
  • Fix segfault during parsing when certain statement bodies faield and returned NULL
  • Make sure tableshape casting to unsealed types works when fields are set to null
  • 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 | Error
  • meta.execute_module(mod: module): table
  • module fundamental type

Thanks so much to @0riginaln0, @mobile-bungalow, and @aaronkirkham for their contributions to this release.

v0.1.2

05 Sep 00:52

Choose a tag to compare

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 T returning null when T is 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

15 Aug 14:48

Choose a tag to compare

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.

v0.1.0

10 Aug 17:21

Choose a tag to compare

This is the initial release of Bolt.

Please see the repo README for more information :)