Hi,
I wanted to update people on my DXR progress, since I seemed to have
picked a bad day for finding people on irc. I wrote a post that
summarizes things here:
http://vocamus.net/dave/?p=516
I don't have this hosted on a server or box that is meant for a public
thrashing (I'm also still developing, so this might break at any time),
but I wanted to share a link with you guys so you could try it out
yourselves:
http://scotland.proximity.on.ca/dxr/nsHTMLImageAccessible-js.html
The UI is still very much a work in progress, and I would value
thoughtful feedback on how you'd like to see it improved. A couple of
obvious things:
* I don't turn things into links yet, because I haven't generated the
HTML for the rest of the tree. Right now it takes ~4-10 seconds to
create an html file, so I need to make that faster.
* Anything with a blue box around it indicates something my
tokenizer/markup code couldn't identify. I've gotten this list down to
only a few things, for example member variables. I just need to add
those to my dehydra script.
* Pink vs. Purple: dehydra doesn't always tell me where things are
exactly. For example, if you look at:
http://scotland.proximity.on.ca/dxr/nsHTMLImageAccessible-js.html#l410
accessNode is pink (meaning a "fuzzy match") because dehydra tells me
that it was found in line 421. My method now is to take every token I
get for a line, and figure out which file + function (i.e., the line
range for the function) I'm in. I then try to match it in the given
line (that's what purple means), but if that fails, I go looking for the
closest match within the function (including the parameter list). This
is part of what makes me slow generating the html, and I'll probably
need some help rethinking about how to do this.
* If you look at:
http://scotland.proximity.on.ca/dxr/nsHTMLImageAccessible-js.html#l395
You see that aAreaCollection is missed, since this is a multi-line decl
for the function, and I'm not going back far enough. I'm not sure how
to handle this exaclty--maybe I need to keep track of the last blank
line, and use that as part of my "fuzzy match region"
* I need some help figuring out how to show decl info. For example,
what should happen in lines 64-66? Does clicking on the func name give
you caller info? Does clicking on the line number? I think using line
numbers is going to make it hard for users to understand, since they
will seem to be off-by-N all the time. What about line 59? How should
I show that decl in the UI?
There are other things, but I won't go into them now. Basically, this
is getting closer, and I'm finally convinced that it will be doable. At
the very worst, I can do progressive enhancement against MXR, and
provide ident links for things I can't match properly.
Thanks to all of you who have been helping me, and to those of you who
will hopefully help me going forward.
Dave
_______________________________________________
dev-static-analysis mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-static-analysis