Clone wiki

amber / ProgressReport

Progress report

This page is based on an old list of what works and not, and is probably not properly up-to-date, especially with regards to known bugs.

C parity Done

  • All flow control constructs from C: blocks, if/else, for, while, do, goto, switch.
  • All types inherited from C: chars, integers, floats, static arrays, pointers.
  • Module, import, variable and function declarations.
  • Assignment, arithmetic, comparison, address of, dereference, call, index expressions.
  • Integer, floating point and string literals.
  • Constant folding for these.

Higher level features

  • Control flow constructs: foreach, scope, try/catch/finally
  • struct operators
  • implemented, known bugs Classes and interfaces.
  • Types with various bugs
    • Associative arrays
    • Dynamic arrays
    • Delegates
  • Protection attributes.
    • varargs
    • Nested functions

Generics / templates (has bugs)

  • Type parameters.
  • Value parameters.
  • Alias parameters.
  • mixin
  • Conditional compilation: static if, version, debug.
  • string mixin

Runtime functionality

  • Threading
  • Some reflection
  • Some other language support

Notably missing/not fully implemented is allocation support.

Amber specifics

  • guard statement
  • Annotations (they are added to the semantic tree, but cannot be used for much yet)
  • A different approach to compile time reflection - most of the information is not plugged in yet though

Planned / started

  • Completing and solidifying runtime reflection
  • Allocator support - this does not necessarily mean a GC
  • Improved library support
  • Other stuffs