SmartEiffel is back in the trenches. It is now completely part of LibertyEiffel.
Here is the plan:
- really integrate SmartEiffel into Liberty (done)
- separate the C backend from the AST (fix and use the acyclic visitor)
- remove or rewrite the Java backend (using the acyclic visitor)
- rewrite the interpreter as a SmartEiffel backend (maybe using the acyclic visitor)
Extra points to fix:
- sedb — it lost some of its power in the latest releases (some break points disappeared)
- Liberty core — will be removed; that code is dead.
- some bugs in inline agents parsing (SmartEiffel segfault)
- some bugs in boost mode (invalid C code)
The Liberty libraries (both native and wrappers), on the other hand, are here to stay. They deserve being enhanced.
Spread the news :-)
"2. separate the C backend from the AST (fix and use the acyclic visitor)"
ReplyDeleteAre you aware of some bugs in the acyclic visitor?
Integrating LLVM with the acyclic visitor is quite a long task but conceptually simple... just leave - at least at the beginning - all the optimizations to LLVM.... but eventual bugs in the visitor pattern are show-stopper.
I'm not aware of any problems with the pattern… Can you elaborate? Some link?
ReplyDeleteWhat does it have to do with LLVM optimizations? The pattern is about code organization, not optimizations.
Pardon, I wan't clear.
ReplyDeleteI meant: are there any known bug related to the visitor classes?
Oh, LLVM does not have almost nothing to do with it...
It's just a pattern… If there are bugs, they are in the implementation :-)
ReplyDeleteSee http://www.objectmentor.com/resources/articles/acv.pdf