Syntax improvement FTW
I'm sure some of you will be excited to know that I've finally gotten around to implementing infix operators in Epoch. Right now all I've got is basic arithmetic, but the framework should be very easy to extend to pretty much any operator imaginable.
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
- 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.