2.0.0: I-did-not-expect-to-bump-the-major-version-this-early edition
Breaking Changes:
- The first line and second line are no longer guaranteed to be separate statements. In particular the documentation accidentally suggested that two lines can be (but are not recommended to be) in separate files, necessitating a breaking change.
DirectContextModelOptions.modelRecipBaseCount
is now required. The value of 2 is identical to the 1.x behavior.- Deprecated APIs have been removed.
OptimizerProgressInfo.temperature
: Useratio
instead.optimizeSparseSelectors
function andPacker.optimizeSparseSelectors
method: UsePacker.optimize
instad.PackerOptions.learningRateNum/Denom
: UsePackerOptions.recipLearningRate
instead.
Compression improvements:
- Added a new tunable
modelRecipBaseCount
parameter (-Zmd
in the CLI) with a new default, allowing ~3% additional improvements. (4e8041c, 2071861, 717f7ee) - The decoder is now slightly smaller. (9cf1845)
UI/API improvements:
- #14:
-O1
is now a quick search that only takes ~10s for typical inputs. The old-O1
is renamed to-O2
. (df5c8ed) - The CLI now defaults to
-O1
if no optimizable arguments are given. Use-O0
to explicitly disable the optimization. (a610f68) - The estimated compressed size is now more accurate. (8732d3d)
- The online demo is now slightly more mobile friendly. (10b0bbe)
Bugfixes:
- #7: The output no longer pollutes the global scope by default. New
allowFreeVars
option (-D
in the CLI) can be used to allow the decoder to be "dirty". (70fae12, ecd8116) - #15: The optimizer now works in Node.js 14. It is still strongly recommended to use Node.js 16 because 14 is significantly slower. (13d9c8d)
- Fixed a bug where
-Zco -M
(but not-M -Zco
) was incorrectly allowed in the CLI. (ecd8116) Packed.freeVars
was missing one variable. (740f2b5)