2017-12-05 15:28:01 +01:00
2017-12-05 15:06:44 +01:00
2017-09-28 13:08:25 +02:00
2017-12-05 15:28:01 +01:00
2017-12-05 15:06:44 +01:00
2017-12-05 13:35:14 +01:00
2017-12-02 20:58:39 +01:00
2017-12-05 01:45:15 +01:00
2017-09-29 17:22:15 +02:00
2017-09-29 17:22:15 +02:00
2017-12-05 15:28:01 +01:00
2017-12-05 15:28:01 +01:00
2017-12-05 15:06:44 +01:00

AssemblyScript NEXT

Build Status

This repository contains compiler components for the next iteration of the AssemblyScript compiler written in AssemblyScript itself.

Note that the code uses some features and standard library components that are not yet supported by any version of asc. To account for this, the code has been written in "portable AssemblyScript", a TypeScript-compatible subset of a subset of a superset of JavaScript, that also compiles to JavaScript using TSC.

Why is this necessary?

Well, it isn't, but: In order to be able to compile the AssemblyScript compiler itself to WebAssembly eventually, we cannot depend on TypeScript because it is written in vanilla TypeScript and makes use of quite a few non-AOT-compatible dynamic features of JavaScript.

Cons:

  • A lot of work
  • Dealing with TypeScript compatibility issues

Pros:

  • One day compiling to WebAssembly for performance
  • Necessary features only, reducing binary size
  • Linking against Binaryen compiled to WebAssembly, reducing overhead

Side effects:

  • Good fire test for the compiler
  • Good benchmark when comparing both versions
  • Benefits standard library design ideas

Getting started

If you'd like to try out NEXT today or even plan to contribute, this is how you do it:

$> git clone https://github.com/AssemblyScript/next.git
$> cd next
$> npm install
$> node bin\asc yourModule.ts

Building a browser bundle to dist/assemblyscript.js (still requires binaryen.js):

$> npm run build

Running the tests:

$> npm test

Development status

For now, see the compiler tests for an overview of what's supposed to be working already.

Description
No description provided
Readme Apache-2.0 52 MiB
Languages
WebAssembly 74.3%
TypeScript 24.1%
JavaScript 1.6%