Hi all, since I started this stuff, I took a first stab at the Brave GNU World questionaire. Please feel free to add to it (search for ???), correct me where I'm wrong or your opinion varies, or tear it to pieces ... your choice. I have heavily borrowed from the FAQ and the mail list. Cheers, Erich QUESTIONS: ---------------------------------------------------------------------- * What is it? (FAQ 3.1) Cons is a software construction utility--that is, an alternative to "make". It is implemented as a Perl script, which gives it many powerful capabilities not found in other software construction systems. ---------------------------------------------------------------------- * Who would use it? anyone using make or similar for software construction purposes. ---------------------------------------------------------------------- * Why would they use it instead of similar projects? There are big differences between Cons and make in the philosophy of how to determine whether a derived file (i.e. target) is out of date or not. Where make completely relies on timestamps, Cons creates an md5-signature of all files under its control and compares those as well. Suppose you have the following chain of files: util.c : source util.o : object code util : linked executable. suppose util.o is overwritten accidently with something else and contains garbage. Then make will not derive util.o, because it's timestamp is newer than that of util.c. However, make will attempt to derive the executable util from the garbage file. :-( In make you get arround this only with deleting the garbage file, or a ``make clean'' if you cannot locate the error. Cons is much smarter in this case, it will create checksums of all three files, compare those to stored ones and find that the contents of util.o has changed as well as the date. It will recreate util.o from util.c as expected, calculate the new checksum for the derived file. Then it finds that the new checksum is identical to the stored checksum and it will *not* recreate the executable. Cons has found that the ingredients to util have not really changed, despite recreating util.o. IMHO this is the beautiful side of Cons: Cons tries to do the right thing, no more, no less. A very nice introduction to Cons can be found in ``The Perl Journal'' issue #9, Spring 1998 (see below) In Fact the signature includes the build command, so if flags on the command line change, this is taken into account as well. Cons will recompile all files with the affected change of flags (optimazation, say). ---------------------------------------------------------------------- * (Programming) language used in this project? perl, requires 5.003 or later, the md5 and File::Copy modules. ---------------------------------------------------------------------- * Special features/strengths? + see above (Why would they use it instead of similar projects?) + runs on Windows and Unixes (FAQ 3.8) + smart dependency analysis using md5-signatures + extensible in any way using perl. One can extend on . build methods/commands, . scanner for included files . signature creation and dependency analysis + dymamic addition of targets during build run e.g. adding files generated by a utility, the precise list of which is not known beforehand. + Cons can deal with files in repositories ? works with IDEs ? which ones ? ??? additions from list, I'm sure they are out there. ---------------------------------------------------------------------- * Special problems? Syntax of Cons input files is perl heavy (FAQ 4.3) Cons is somewhat C/C++ centric, it can be taught about other languages using the Cons::Plus module of Johan Holmberg. ---------------------------------------------------------------------- * Who is working on it? original author: Bob Sidebotham maintainer: Rajesh Vaidheeswarran (stable version) Steven Knight (development version) ??? correct? out of FAQ 3.9, 3.10 ---------------------------------------------------------------------- * History of the project? ??? ---------------------------------------------------------------------- * Plans for the close and distant future? There is a substantial TODO list ??? I looked into the cons-2.3.0 TODO list. Is this uptodate ? ??? Is some of this stuff already built in ? ??? ??? parallel Cons ? ??? modular Cons ? ---------------------------------------------------------------------- * Do you need help? If so: of what kind? ??? suggestions ? ---------------------------------------------------------------------- * Interesting/fun stories that might juice up the story? ??? Would this be a place to add a few lines about production uses of ??? Cons ? suggestions/contributions ? ---------------------------------------------------------------------- * Website/FTP addresses? http://www.dsmit.com/cons/ (homepage) Cons is also available on CPAN: http://www.CPAN.org/authors/id/K/KN/KNIGHT/ address@hidden (mail list) The Perl Journal, issue #9, Spring 1998, http://www.sysadminmag.com/tpj/issues/vol3_1/ For more information about Cons::Plus look at ftp://mercury.iar.se/jhftp/cons/Cons-Plus-0.05.tar.gz ftp://mercury.iar.se/jhftp/cons/cons-plus.pdf ---------------------------------------------------------------------- * License?! (FAQ 3.12) Cons is distributed under the GNU Public License (GPL), so you can use it, modify it, or even redistribute it without charge (so long as you provide source code when you redistribute it). Prior to Cons version 2.0, Fore Systems made Cons available under a license similar to the BSD license. ---------------------------------------------------------------------- * Standard documents to read in this context? documentation comes with the script, try perldoc cons FAQ Article in The Perl Journal, #9 Spring 1998 ---------------------------------------------------------------------- * Anything you would like to see mentioned? Cons has a sibling ``SCons'', which is written in python. That was written by Steven Knight ??? correct? and is a part of the software carpentry project. ??? links? documentation? There is a parallel build variant of Cons, which is not merged into the official release, for those interested it can be found at http://www.baldmt.com/parallel-cons/ ??? There is a newer version by Thomas Gleerup, right ? Is it ??? available somewhere ---------------------------------------------------------------------- * Answer to a question I forgot?