Here's a short summary of the changes:
- Significantly faster at loading code
- All Reia core types are identical to their Erlang counterparts
- Methods of all core types are now self-hosted in Reia (some such as List couldn't be before)
- All code is compiled: no more metacircular evaluation
- Records are used extensively in the compiler implementation, making the code easier to understand and change
- Standard bitwise operators from the C family of languages are now implemented
- Standard +=, *= etc assignment operators are now implemented
- "Magic Rebinding": members of lists, tuples, and dicts can now be assigned directly. "Bang" operator allows modification of the methods of receivers.
- Concurrent object model is gone (to be reintroduced in Reia 2.0)
- Old standard library is gone (to be rewritten with immutable objects)
These represent that majority of hurdles which needed to be overcome before a Reia 0.1 release. However, one major feature is still missing: immutable objects. Reia will implement all types, including its core types, and user defined types, as immutable objects. You can think of these like objects in any other language, except once constructed they cannot be changed. Objects with changing state will be provided by the concurrent object model of Reia 2.0.
This means Reia will be an "everything is an object" language after all. I will provide the details of immutable objects in a follow up blog post.