DeHydra: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Add a very gross buglist)
(Redirecting to mdc:Dehydra)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
DeHydra is a tool inspired by [http://www.spinroot.com/uno/ UNO].
#REDIRECT [[MDC:Dehydra]]
 
DeHydra integrates a low level C++ core and a JavaScript engine for user scripts. [http://blog.mozilla.com/tglek/2007/02/01/lossy-ast-traversals-for-good-code-health/ More info].
 
C++ core deals with parsing, name resolution, scoping, control flow graphs.
 
A user can utilize the JS engine to:
* Write scripts using that core to accomplish custom analyses without recompilation.
* Work on these scripts to make them progressively as sound and as complete as possible.
 
== Quickstart ==
 
Step 1.
 
In a new file(test.js) define functions process & path_end:
function process(vars, state) {
  if (!state)
    state = 0;
  print(state + ": " + vars);
}
function path_end(state) {
  print(state)
}
 
== More Details ==
 
[http://people.mozilla.org/~tglek/dehydra/paper.pdf Dehydra Paper]
 
== Bugs ==
 
* P1: Need information about static variables (both global definitions and statics inside functions)
* P2: Need information about typedefs to properly determine type hierarchies
* P3: Need information about namespaces
* P2: Won't process jsemit.ii or jsgc.ii from actionmonkey correctly (crashes)
* P1: Won't process toolkit/components/places/src/*.ii correctly (asserts)
* P3: It would be nice if dehydra kept information about types and typedefs around, so that when the types were used the script has immediate access to the type declarations, instead of having to cache them (not a big deal)

Latest revision as of 16:49, 1 May 2008

Redirect to: