Skip to content

Releases: bwrrp/whynot.js

5.0.0

23 Jun 08:15
Compare
Choose a tag to compare
  • Fix ESM usage in node. This is only a breaking change because it renames the UMD module file provided for older CJS environments.

Full Changelog: 4.0.1...5.0.0

4.0.1

17 Jun 07:20
Compare
Choose a tag to compare
  • Update dependencies to their latest versions - no functional changes

Full Changelog: 4.0.0...4.0.1

4.0.0

07 Feb 15:47
Compare
Choose a tag to compare
  • Breaking: rename bundles - this package now contains whynot.umd.js for UMD / CommonJS environments, and whynot.esm.js for environments that support ECMAScript modules. Most bundlers and environments should automatically select an appropriate version but some may need configuration changes to account for the new filenames.

3.0.3

08 Nov 10:23
Compare
Choose a tag to compare

This release contains no functional changes.

  • The devDependencies have been updated to their latest versions.
  • The source maps now map back to the original TypeScript code.

3.0.2

31 May 10:12
Compare
Choose a tag to compare

This release contains no functional changes, but reduces the size of the whynot bundles by making two changes to the build process:

  • Whynot now uses terser instead of babel-minify to better reduce the size of the bundles.
  • The bundles now target only somewhat-modern browsers (ES2017). This reduces the amount of code generated only to support older environments. If you still need to run whynot on very old browsers / environments, it's probably best to use something like babel (with its preset-env) to convert the library.

3.0.1

25 Jan 08:17
Compare
Choose a tag to compare

This is a bugfix release to fix an error in determining traces, which could crash or return invalid or duplicate results for generations with multiple survivors (i.e., where multiple tests accept the same input), or for programs with multiple accept instructions.

3.0.0

15 Jan 10:23
Compare
Choose a tag to compare

This release includes some breaking changes in the interest of, again, greatly reducing the number of allocations and improving overall performance. Matching very large inputs now no longer runs out of memory and can be up to 10 times faster than with 2.x.

  • Input for VM.execute is now an array. This speeds up access, and we haven't encountered any cases where the generator-like function would be beneficial.
  • The Trace.records array is gone. As each trace instance (excluding prefixes) can have at most one record, it is now available as Trace.record, saving a few array allocations.
  • Result.failingTraces has been removed. We had not found a use case for this so far.

Starting from this release, TypeScript typings are included for the built version.

2.0.1

07 Nov 12:46
Compare
Choose a tag to compare

This release reduces the amount of memory used for record-heavy programs.

2.0.0

06 Sep 12:18
Compare
Choose a tag to compare

This release includes some breaking changes in the interest of greatly reducing the number of allocations:

  • Removed the head property of returned traces. Use record instructions if you need to know which path was taken through the program.
  • Made allocation of the records array lazy. If no records are recorded for a trace, records will now be null instead of an empty array.