cons-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: please comment: more advertisement liked ?


From: Erich Waelde
Subject: Re: please comment: more advertisement liked ?
Date: Tue, 22 Jan 2002 22:20:39 +0100

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?







reply via email to

[Prev in Thread] Current Thread [Next in Thread]