I've been pretty lax with keeping track of the changes and updates in R7, but there's a general list a couple posts ago which covers the major additions.
As of this point I have the remaining major items, plus a couple of random TODOs scattered through the code:
- Unary operators
- Parenthetical expressions (for overriding precedences)
- Custom message allocator to avoid locking on the heap when sending task messages
- Fix some bugs in nested response map support
- Improve syntax for nested structure initialization
- Buffer entity (both stack and heap types)
- Type aliases (aka. typedefs)
- Map and reduce functions
- Futures
- Change task IDs to string variables for easier metaprogramming
- Perform complete code review for exception safety, documentation, code cleanliness, error handling robustness, and elimination of hardcoded strings/magic numbers
Still quite a load of work ahead, but the list shrinks steadily [smile]
R7 is mostly a maintenance release with a couple of nice new features; however, I'm already looking ahead to R8 and thinking about what role it needs to take on in order to best advance the Epoch project. At this point my plan is to introduce GPGPU support in R8, making it the first "killer" version of the language with actual support for the areas in which I want to make Epoch shine.