I am happy that Jeene
was mentioned on Ajaxian
today. This is good ;-) it means that the project is more likely to attract potential contributors which is nice since there is quite some work yet to be done.
I thought, I would provide a status update on Jeene and a "backlog" of work that needs to be done.
What is working:
- Partial evaluation of simple operations: '+', '-', '&&' and '||'
- code generation for 'function' expressions and 'return' statements
This means that we can run a number of simple examples. For a quick and dirty performance test checkout: performance_simple1
This is all fine, the basic design is in place. Now it is just a matter of "getting it done" to implement other operators. However, there are some constructs that are more difficult:
What I will be working on next
- Assignment. Since an assignment changes the static/dynamic status of variables, this is more advanced than e.g. '+' which doesn't have side effects. For example if 'x' is a static variable and 'y' is dynamic, then 'y = x;' should cause 'y' to be static from that program point.
- Handling of function calls. For now, I will simply replace a function call with a function call where we replace static expressions in the arguments with their values. Later I will consider 'unrolling'/'inlining' of function calls.
As always, I welcome anyone interested in contributing. I will run a rule: 1-patch approved = commit rights.