Releases: AssemblyScript/assemblyscript
Releases · AssemblyScript/assemblyscript
v0.12.0
0.12.0 (2020-06-15)
Bug Fixes
- Fix version string in SDK dist files (#1336) (e5bfe15)
- Prevent stack overflow in portable fromCharCodes/CodePoints (#1340) (6dce0f2)
Code Refactoring
BREAKING CHANGES
- The internal
dtoa/itoa_streamhelpers (unsafeNumber#toString) inutil/numberhave been renamed todtoa/itoa_buffered, don't take a redundant offset argument anymore, and the underlying core implementation helpers are no longer exposed. Usage now is:dtoa_buffered(buffer + byteOffset, value)
v0.11.0
0.11.0 (2020-06-14)
Code Refactoring
Features
BREAKING CHANGES
- The values of
ASC_TARGEThave been flipped, with JS (portable) now being0, WASM32 being1andWASM64being2. - The result of a
**binary operation is now the common denominator integer if both operands are integers. Previously, the result was a float as if callingMath/f.pow.
v0.10.2
v0.10.1
New features
- Added an experimental GC finalization hook to perform custom cleanup on free
- Implemented
radixargument onNumber#toString - Allow disabling arbitrary globals with
--use TheGlobal= - Emit a warning when exporting a generic element with no concrete instances
- Implemented portable variants of
TypedArray.wrap - Use node-like resolution instead of relative paths in
asinit-generated tsconfigs, if possible - Updated Binaryen to latest incl. support for
f32x4/f64x2.ceil/floor/trunc/nearest
Relevant fixes
- Fixed
Array#flatdefinitions - Improved error messages on unusual usages of
void,nullandundefinedtypes - Fixed a resolver issue when calling function expressions
- Disabled aggressive ARC optimizations due to a pending issue
- Fixed a compiler issue when referencing variables in their own initializer
- Fixed an assertion on accesses to variables that failed to compile earlier
- Fixed Wasm module exports reference in
asinit-generated index file
v0.10.0
Breaking changes
- Added a
seedimport (alongabortandtrace) for seeding the random number generator - Arrays no longer inherit from ArrayBufferView, but are now distinct
- The loader API now more closely aligns with the WebAssembly API
- Various compiler API changes (i.e. decoupled the parser from the program)
- Classes initialized from object literals can no longer define a constructor
- Moved examples from the main repo to their own repo
- Modules now become validated by default (disable with
--noValidate,--validateis gone) - Reworked memory options (added
--noExportMemory,--initialMemory,--maximumMemory, with--sharedMemorynow being a boolean flag) - Renamed the
--asmjsFilecommand line option to--jsFile(alias:-j)
Improvements
- Simplified WASI integration via
import "wasi"(implements abort, trace, seed) - Implemented virtual overloading and interfaces (consider this minimal viable)
- Reworked optimization pass pipeline / more aggressive inlining
- Added support for Binaryen's
lowMemoryUnusedfeature - Added
--lowMemoryLimitoption for embedded scenarios with less than one page of memory - Added support for
StaticArrayto the loader - Non-MVP types are now always present to aid conditional compilation (i.e. same source, with and without SIMD)
- Added
Array<T>#flat - Updated stdlib to Unicode 13.0.0
- Added a
--yesoption to asinit to accept all prompts - Added
memory.datato explicitly create static memory segments - Expose
setArgumentsLength(for varargs calls) only when required - Added
v128.pmin<T>,v128.pmax<T>,v128.abs<T>,v128.bitmask<T>incl. their respective inline-assembler variants
Relevant fixes
- Fixed column numbers in diagnostics being off by one
- Made
ascrespect absolute output paths - Fixed various issues with object literal compilation
- Fixed WASI struct sizes to match the specification
- Fixed default export issues
v0.9.4
v0.9.3
New features
- Added
StaticArray<T>, a more efficient array variant - Added support for context dependent sigma symbols to
String#toLowerCase - Refactored the compiler so it can compile itself (binary is not yet runnable)
- Added
afterInitializetransform hook - Updated Binaryen to latest
Relevant fixes
- Fixed various code generation, type propagation and resolver issues
v0.9.2
New features
- Added a
--tableBaseCLI option (like--memoryBase, but for tables) - Added support for
x instanceof GenericClass - Updated Binaryen to latest
Relevant fixes
- Fixed
nullrelated edge cases when inferring array literals - Fixed several code generation issues
- Aligned
Map#setandSet#addwith the spec, returningthis - Fixed WASI import scheme to be
wasi_snapshot_preview1
v0.9.1
Relevant fixes
- Reverted exclusive use of the mutable
__argumentsLengthglobal introduced in 0.9.0 due to compatibility concerns with node < 12 and Safari. Exporting a__setArgumentsLengthhelper function for now. The loader has been updated to recognize both.
New features
- Updated Binaryen to latest. Might be relevant for users of transforms, where the exact same version is required.
- Command line options have been divided into categories to be easier to grasp, and documentation updated accordingly.
v0.9.0
Breaking changes
- The explicit start function generated with
--explicitStarthas been renamed to_start(was__start) to match WASI. - The
__setargchelper to set the number of arguments to a varargs call has been removed and replaced with an exported mutable global__argumentsLength. The loader has been updated accordingly. - For consistency, the loader's
__getInt8Arrayetc. functions now copy, and new__getInt8ArrayViewfunctions with the old behavior have been introduced. - The
call_indirectbuiltin has been removed due to expected problems with closures. - Distribution files are now being built with
ES2016as the target, exposing ES classes instead of ES5 prototypes.
New features
- Binaryen has AssemblyScript-specific optimization passes now targeting reference counting.
- Optimization pass order is no longer inherited from Binaryen but has been customized to account for AS specifics.
- Tables can now be exported using the
--exportTableflag. - The implementations of the Math functions
exp,exp2,log,log2andpowhave been replaced with faster variants. - New standard library functions:
String#toUpperCase,String#toLowerCase,String#localeCompare.TypedArray#set - The stub runtime now exports the
__resethelper to clear the heap externally. - Added support for the SIMD
avgr_ufamily of instructions. - Updated the WASI implementation to
wasi_snapshot(preview1). - The type of an array literal can now be inferred from its contents.
- The compiler can now detect if the entire program is acyclic (no cyclic classes), omitting unnecessary parts of the GC in this case.
And, of course, lots of fixes.