Skip to content

Status and Roadmap

Daniel Wirtz edited this page Mar 15, 2018 · 167 revisions

NOTE: Current state of development is also tracked in GitHub projects.


Most importantly: While the initial prototype had some preliminary support for memory management through linking with a C-based runtime and thus strings, arrays and classes, these features are not yet implemented in AssemblyScript NEXT.

See also: Status / roadmap

Roadmap

  • Get a memory allocator/GC combo up and running
  • Write more tests and fix what's revealed

Feature status

Tokenization and parsing

  • Core and everything below
  • Template strings

Types

  • Core types
    • Integers
    • Floats
    • Pointer-likes
    • Inference
  • Generics
    • Constraints
    • Inference
      • For built-ins
  • Class types
    • Basics
  • Function types

Expressions

  • Literals
    • Integers
    • Floats
    • Strings
    • Arrays
    • Objects (TBD)
  • Unary
    • Prefix
      • Negate
      • Invert
      • Increment
      • Decrement
    • Postfix
      • Increment
      • Decrement
  • Binary
    • Less-than/-equals
    • Greater-than/-equals
    • Not-/Equals
    • Addition/Subtraction
      • Compound
    • Multiplication
      • Compound
    • Division
      • Compound
    • Remainder
      • Compound
      • Float modulus / fmod (TBD)
    • Shifts
      • Signed
      • Unsigned
    • Bitwise
      • And
      • Or
      • Xor
    • Logical
      • And
      • Or
  • Ternary

Variables

  • Locals
  • Globals
  • Shadowing

Control constructs

  • Return
  • Break / Continue
    • With label
  • If
  • While
  • Do-While
  • For
  • Switch
    • On strings (TBD: hashmap or case extension)
  • Throw
    • Catch (waiting for exceptions spec 🦄)

File-level imports and exports

  • Import/export resolution
  • Re-exports
  • Wildcard imports

Module-level imports and exports

  • Functions
  • Constant globals
  • Namespaced functions and constant globals
  • Class members

Classes

  • Memory layout
  • Constructors
  • Methods
    • Static
    • Instance
    • Virtual, i.e., abstract
  • Field access
    • Static
    • Instance
  • Getters/setters
    • Static
    • Instance

Standard library

  • Built-ins
    • Math
    • Memory access
    • Control flow
    • Host operations
    • Assertions
    • Host imported
  • Arrays
    • Basics
  • Strings
    • Basics
  • Sets
  • Maps

... and one day ...

  • 🦄 Compile AssemblyScript to WebAssembly

 

Clone this wiki locally