Since my last post there were several significant changes in both the code and the language that upcoming version (1.7.16) may be called ELENA 2012. First of all I made a deep redesign of ELENA VM bytecodes to make them more generic. Efforts were made to reduce the number of VMTs (in the previous versions practically every argument list or action symbol has its own VMT). Multi-dispatching mechanism was changed (though some efforts should be applied to optimize the current implementation). Another significant language change was in the argument list syntax. As a result the whole code base should be rewritten (the process is not over yet) so the new language API will be called LIB27. There will be significant changes in dynamic programming as well (the work still in progress)
To name few changes:
- multi-dispatching (subj hint is obsolete, argument list dispatcher should be used )
- argument list extender and dispatcher
- it is no longer possible to auto determine the message subject by an argument list
- embedded symbols
- constructor (new verb is no longer supported)
- #role keyword is no longer supported - #class should be used instead
- #try keyword is no longer supported - #if should be used instead
- stack allocated objects (argument lists and action symbols)
Because of the amount of the work I made a decision to release a current version as 1.7.15b (which is still unstable, some key features is missing, not all the code migrated). As a result a first Linux alpha version will be release probably in a new year.
To be continued...