Extract history


[Home] [FAQ] [User Guide (PS)] [User Guide (HTML)] [Examples] [History]

I started programming an early version of extract while working in the Physics division of ORNL under Soren Sorensen. Soren had a version written in Fortran77 that he had created from an even older tool he'd used at CERN. Since string handling is not a F77 specialty, his version was not portable everywhere he wanted to use it, and so he agreed to pay me to write one in C. This became Extract1.0, developed sometime around late 1990 or early 1991. The feature set was limited to a couple of fixed keys (I think @TYPE and @ROUT), and was obviously designed around Fortran77.

When I started working at the University of Tennessee, I began expanding extract for my own coding needs on the BLACS and ScaLAPACK projects. My colleagues on these projects, first Antoine Petitet and later Susan Blackford, began to use it as well. This became extract2.0, developed over quite a period, starting sometime late in 1991 and ending sometime in 1994. Extract2.0 had arbitrary user-defined keys, macros, indenting, and the ability to skip whole sections of code. It also expanded to support C as well as Fortran77, and provide the first code-formatting options (I so hated the LAPACK coding style utilized in ScaLAPACK, that I had to make features that would enforce it after I was finished coding in my own style :). The user's guide to 2.0 is available here.

Extract development really heated up when Victor Eijkhout joined the group. We didn't work on the same project, but his project also used some Fortran, where extract can do a lot of cpp-like things that really help the poor sod trying to write portable Fortran77, and this, along with the fact that we shared an office, resulted in Victor using extract rather heavily. Being the kind of guy who believes that complexity is the point, Victor drove the evolution of extract forward at a much greater rate than it had previously enjoyed. Victor was responsible for a lot of the added features available in extract3.0, and, along with myself, remained the engine of its ridiculously expanding feature set until 1995 or so. It was at this stage of development that extract started to have most of the characteristics of a complete language: loops, conditionals, macro formatting, I/O, etc.

The switch from 2.0 to 3.0 was the one and only time where the command syntax and user flags changed in significant ways, and both Antoine and Susan made it clear it had better be the last. Extract 3.0 was also the first time I began seriously considering releasing extract as a general tool, mainly because it had aquired its first non-local users, in that some of our ScaLAPACK collaborators from Berkeley, such as Ken Stanley, began to use it as well.

As Victor left the group, the next post-doc destined to continue the feature creep arrived, Andy Cleary. Andy helped to expand 3.0, these expansions eventually became 3.1, which was included doing arithmetic and makefile support, among many other refinements. Andy's tenure as the outside engine of extract evolution began sometime in 1995, and ended sometime around 1997 or so.

Extract 4.0 is the current version, and it was released in early 2000. It added procedures to the language, among other things.


[Home] [FAQ] [User Guide (PS)] [User Guide (HTML)] [Examples] [History]