From: Alan W. I. <ir...@be...> - 2006-08-18 00:19:32
|
Today, besides cheerleading from the side while Arjen, Werner, and Andrew (Roach) sort out various windows issues, I have also made an important efficiency improvement when there are small changes in the source tree, and I have also been able to make some CMake improvements with both fortran and python. What I noticed while doing other work was that when one make command was followed by another with little or no change in the source tree, way too much work was being done. With a lot of help from the CMake list I finally tracked down the dependency issue, and now the second make takes literally just a second of time on my 2.4GHz box which is a great improvement over what was happening before. I also notice that "make install" is also doing a lot less work with this improvement. So this should be a big help to developers who typically want to make small changes in the source tree followed by a fast make command that only updates what is necessary in the build tree. The improved speed of "make install" is nice as well. For fortran 95 there is a bug in how CMake 2.4.3 parses fortran source files when it looks for modules and include statements. (It doesn't properly ignore comments.) We have a somewhat ugly workaround in place for this first CMake bug (replace "use" by "use_" in fortran source comments). Thus, Andrew Ross and I were happy to hear the CMake developers were actively working on a fix for this bug. However, that causes a potential problem because there is also a second bug in how CMake 2.4.3 tracks fortran module dependencies, and our old workaround for that second bug depended on the first bug _not_ being fixed. Today, I was able to change to a new workaround for the second bug that is completely independent of the first bug. Once I get deeper understanding of the source of the second bug, I will submit a bug report to the CMake developers for their consideration, but meanwhile the (new) workaround for the second bug is working fine and should continue to work fine when the first bug is fixed. The CMake improvement I made for python is the build tree examples now run with ctest. In CMake there is really easy syntax for configuring and installing files with renames so it was a snap to implement this in a way that clearly separated the build tree example tests for python from the install tree example tests for python using one template file in the source tree and two separate files in the build tree that are configured from that template file. Currently our ABS _probably_ separates the two cases, but both build and install locations are mentioned in one rather obfuscated configuration file so it is difficult to be sure of that separation in all circumstances. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |