Skip to content

Slice version 0.9 #1054

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jan 25, 2020
Merged

Slice version 0.9 #1054

merged 3 commits into from
Jan 25, 2020

Conversation

dcodeIO
Copy link
Member

@dcodeIO dcodeIO commented Jan 11, 2020

Breaking changes

  • The explicit start function generated with --explicitStart has been renamed to _start (was __start) to match WASI.
  • The __setargc helper 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 __getInt8Array etc. functions now copy, and new __getInt8ArrayView functions with the old behavior have been introduced.
  • The call_indirect builtin has been removed due to expected problems with closures.
  • Distribution files are now being built with ES2016 as 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 --exportTable flag.
  • The implementations of the Math functions exp, exp2, log, log2 and pow have been replaced with faster variants.
  • New standard library functions: String#toUpperCase, String#toLowerCase, String#localeCompare. TypedArray#set
  • The stub runtime now exports the __reset helper to clear the heap externally.
  • Added support for the SIMD avgr_u family 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.

@MaxGraey
Copy link
Member

MaxGraey commented Jan 21, 2020

Improvments

  • New optimization passes for ARC.
  • Reworked optimization pipeline for binaryen.
  • Added --exportTable flag. And table non-exported by default.
  • exp, exp2, log, log2 and pow math functions was improved and now use faster implementations for -O3 optimization level.
  • Added String#toUpperCase, String#toLowerCase, String#localeCompare.
  • Added TypedArray#set
  • __reset now exported for stub runtime.
  • Added avgr_u instruction for SIMD.
  • Added wasi_snapshot.

Fixes

  • Fixed various TLSF corruptions.
  • Fixed String#substr.
  • Fixed tokenization of \x-escaped string sequences.
  • Fixed Map#keys and Map#values returns.
  • Fixed TypedArray.wrap.
  • Other minor fixed and improvements.

@dcodeIO
Copy link
Member Author

dcodeIO commented Jan 25, 2020

  • Omit full collection support if the entire program is acyclic, significantly reducing the size of simple programs

@dcodeIO dcodeIO merged commit 08c0111 into master Jan 25, 2020
@MaxGraey
Copy link
Member

Improvments

  • allow inferring type for array literals

@dcodeIO dcodeIO deleted the v0.9 branch March 15, 2020 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants