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

Reply via email to