In fact, the framework is specifically designed to allow the programmer to define his own new infix operators, including setting their precedence level. This should make Epoch quite a bit more expressive and succinct than it has been thus far - and I haven't even touched the syntax skinning concept yet.
I have a huge amount of stuff to get done for R7, and possibly won't get much free time to hack on it for a while; but here's the general list of what else is coming:
- Full set of infix operators
- Unary operators
- Parenthetical expressions (for overriding precedences)
- Improved support for literals in the cast operation
- Removal of hardcoded strings in the VM code; using a keyword table instead
- Replace message allocator with a custom pooled allocator to avoid locking on the heap during new/delete
- Fix some memory leak issues
- Correct nested response map issues
- Improved error reporting, esp. during task validation
- Improved syntax for initializing structures
- Buffer entity (support for both stack and heap allocation)
- Better VM-level error reporting
- Type aliases (i.e. typedefs)
- Map/reduce functions
- Futures
- Change task IDs to string variables so we can refer to tasks from code
- Introduce a new TaskHandle type in the VM (currently we just use Integer)
- Stop directly using size_t etc. and instead use descriptive typedefs
- Improvements to exception safety
- Correct some cases involving private vs. protected
- Simplify type metadata lookups, e.g. TypeInfo::GetStorageSize()
- Perform a complete code review, for exception safety, documentation, code cleanliness, error handling robustness, and elimination of hardcoded strings/magic numbers
Expect R7 sometime around the heat death of the universe.