WAKE

a fast, expressive, typesafe language that gives you testability from the ground up.

Changelog

We're still in alpha status, but you can check here to see what you'll get by updating, and/or gauge our progress.


v0.0.6

Features

Better error reporting that highlights the code with the issue

Unchecked annotations on methods, needs, and classes, available for compile-time reflection

Compiler will complain about incompatible table files

Bugfixes

Fixed memory leak in table file reader

Fixed an issue using generics as anything but the first class definition

Fixed a bug requiring table files for the various primitives at link time

Fixed a bug in js std.o when running in browser

Fixed issue where parameterized type arrays required repeating parameters in variable access

Standard Library

Compatibility Notes

Table files are not backwards compatible. If you are using the seed project you must rm -rf libs, merge in the latest seed, and rebuild.

v0.0.5

Features

Constructor arguments in provisions, arguments in behavioral provisions

List literals: typechecked declarations of any length now supported, empty list literal works everywhere

Ternary operator: python style 'x if cond else y'

Type system: Num now valid for if/while/for conditions (thanks Cole W!), types with arbirtrary nesting of arrays of optionals of arrays, etc

Arrays now throw UndefinedIndexException when index does not exist

Bugfixes

innaccurate text at the end of an import error

no code was generated for injection provisions

ambiguiting in optional lists vs lists of optionals

constructor provisions with subclasses still required you provide the parent class

Fixed a giant swath of memory leaks

Fixed segfaults when using empty array literals in invalid places

Standard Library

Text.join(Text[])

UndefinedIndexException

Compatibility Notes

Methods now must begin with lower case to disambiguate with arguments passed into a provider

v0.0.4

Features

Exceptions - throwing, catching, extending, stack traces, catching native errors, printing uncaught exceptions

Foreach - Now supports `foreach _ in _` to name variables as you iterate over them

Bugfixes

Segfault when running foreach over an aliased variable

public arrayed unaliased class members and/or needs were innacessible to other classes

classes can no longer be extended and given methods with incompatible return types

Standard Library

Map.getValues()

Exception

Compatibility Notes

Removed requirement of C++11

Build process no longer tests by default

Table files are not compatible with v0.0.3

v0.0.3

Features

- Brew support

Bugfixes

- Fixed bug in compiler for OSX where it wouldn't read inheritance from compiled files

- Fixed bug in std runtime for OSX that wrote /0 bytes into files

- Fixed bug in wockito for OSX that opened the same file twice that wrote over each other

Standard Library

Compatibility Notes

- Changed syntax of var MyClass <- MyProvider to var MyClass from MyProvider

v0.0.2

Features

- Generics allow parameterized types in needs

- Foreach

Bugfixes

- Missing codegen from typesafe cast

Standard Library

- Argv

Compatibility Notes

- Exists no longer allowed on class members, since other references may reset it to nothing

- Arrayed variables must be referenced with '[]' brackets, ie Num[] is now named Num[] instead of Num

v0.0.1

Massive release including fully-fledged OOP, powerful typesystem, generics, and more.