Posted in dehydra, squash on July 13th, 2007 No Comments »
New Repository Since I do not yet have write access to oink svn, I have been doing all of my development in ad-hoc repositories within the svn checkout. This made it rather hard to collaborate with others. I finally got sick of the situation (and stumbled upon hgsvn) and converted all 11 svn repositories to [...]
Posted in squash on June 12th, 2007 No Comments »
This is incredibly exciting: I believe that I finally solved the messy and mind-numbingly boring CPP/C++ integration problem! Having code displaced or generated due to CPP-expansion should no longer be a fatal problem for Squash. I believe macro-expansion is (or was) the single biggest problem between me and large-scale automated refactoring of the Mozilla codebase. [...]
Posted in squash on May 11th, 2007 3 Comments »
I have gotten used to dodging CPP-expansion issues by fudging column & line information until the position info in squash mostly matches the source positions in the original source code. That sufficed for rewriting declarations, but I have finally hit a brick wall.
Posted in squash on May 10th, 2007 4 Comments »
Automatic code rewriting business can be a little depressing sometimes. I tend to run into funny issues caused by CPP, oink limitations or just unpleasant-to-rewrite parts of C++. After banging my head against the wall due to all these issues I finally arrived at a workable approach for the easy part of the outparam rewrite.
Posted in squash on May 7th, 2007 5 Comments »
Squash Outparams The following took me a few days to achieve. ./squash -sq-rewrite-outparams out2.txt -sq-implementation nsBidiPresUtils -sq-no-squash -o-lang GNU_Cplusplus ~/work/ff-build/dom/src/base/nsFocusController.i where out2.txt contains instructions on which functions to modify nsFocusController::GetFocusedElement,0=mCurrentElement, produces — /Users/tarasglek/work/mozilla/dom/src/base/nsFocusController.h +++ /Users/tarasglek/work/mozilla/dom/src/base/nsFocusController.h @@ -72,1 +72,1 @@ – NS_IMETHOD GetFocusedElement(nsIDOMElement** aResult); + nsIDOMElement* GetFocusedElement(); This still doesn’t add the already_AddRefed or other important [...]
Automated Analyses and Rewrites Dehydra and Squash are now mature enough to assist with mundane tasks like renames and various kinds of tedious code inspection. If you ever suspect that part of the Mozilla hacking you are doing could be done by a tool, contact me to see if I have a suitable tool for [...]
Squash If you are working on any C++ refactoring, especially if it involves function calls, spans multiple files or feels like you need a compiler in your head to help you, drop me a note to see if squash can help. Squash provides a great deal of control over the refactoring process because it is [...]
Posted in DeCOMtamination, squash on February 28th, 2007 No Comments »
Looking for developers to test the web frontend for squash I got the web frontend to squash working. Right now I’m looking for people to test it on my test server before I open it to the wild web. It ended up in a further frontend script explosion, but all of the pieces seem to [...]
Posted in DeCOMtamination, squash on January 24th, 2007 No Comments »
Squash may now be ready as a class member renaming tool for early adopters. I would like people to use me as a frontend to squash. Email me your requests for renames and I will reply with giant patches. This way squash can be immediately useful. Plus I can fix bugs in squash and figure [...]
Posted in DeCOMtamination, squash on January 11th, 2007 2 Comments »
Out-param Rewriting Work Since the last post I worked on rewriting functions that use out-parameters to use return values instead. I got as far as rewriting method definitions and simple call sites, but decided to hold off further work until the rest of squash is more complete. Squash Development Roadmap Robert O’Callahan helped me devise [...]