I've been working on an Elsa (not pork) port. I'll add my 2 cents.
My port integrates elsa and LLVM (http://llvm.org) for code generation
for multiple processors.
Pippijn van Steenhoven wrote:
[snip]
1. restructure source tree, use autotools
I'm working on using cmake. autotools is too complicated for my tiny
little brain.
2. remove smbase string
Great idea, but make sure you replace it with something the make unique
string pointers for performance.
3. remove other smbase ADTs and use std:: ones
Great idea.
4. remove even more smbase ADTs and use boost:: ones
Hmmm. I'd not like to have to rely on boost. Of course, I rely on LLVM
so I might be the wrong guy to complain. ;-)
5. remove some unused or unneeded parts of elsa (they have some weird
macro support I don't think actually works)
I've replaced the elsa lexer with the LLVM project clang preprocessor,
works like a charm. It does keep track of macro contexts.
6. remove XML in/output from elsa (yes, it's nice, but it's for the
best and can easily be replaced by "my $xml = XMLout($ast)" after
integrating elsa with perl
This might be a mistake for use by other processing systems. If your
really stuck on perl, I guess. My xml support is bitrotted and diabled
right now, anyway.
7. add (intrusive) perl support to elsa's AST
Hmm.
8. rewrite the deparser in perl and remove it from the C++ code
No comment.
The state of my stuff is that it is a pretty complete gcc computable C
(not C++ yet) compiler that can generate the LLVM IR. I've been
compiling and building programs with newlib and running them under
Linux. The nice thing about LLVM is that I can compile the whole program
(libraries and all) into IR and generate code after the whole program is
linked together. 1 .s and 1 .o file for the whole thing.
-Rich
_______________________________________________
dev-static-analysis mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-static-analysis