GSRC Bookshelf for fundamental VLSI CAD problems
Proposed Consensus Points for Source Code Standards
(to be greatly expanded)

Aug 11 1999, Igor Markov and Christopher Hylands

  1. It is desirable to minimize the total size and the
     number of different Makefiles in the build system.

  2. Windows NT support is important, and slight modifications
     in the Unix build systems are tolerable as steps toward
     goal 1. We may not support NT4.0 when Windows 2000 
     (NT 5.0) is available.

  3. Solaris 7, RH Linux 6.0 and NT4.0 with Cygwin are the primary
     development platforms (with g++ and Sun CC where applicable).
     They have equal weight.  Ideally, software should work on all
     of  those, but we only require that it work on at least one
     of the three platforms. This is necessary for porting. Support
     for MSVC++ would be a nice fourth choice.  We also hope that
     our software will work with g++ on many other platforms, such
     as *BSD, SCO and OS/2.

  4. Currently C++ compilers are g++2.95.1, CC4.2 (CC5.0 is broken 
     as of Sept 2, 1999), MSVC++ 6.0 and higher (perhaps, 5.0 as well?).
     g++2.95.1 is the primary C++ compiler.
     Support for CC4.2 may be withdrawn in the future
     due to the lack of support of ``new-style'' headers for
     the ANSI-standard C++ standard library and member templates.
     The Sun JDK1.2.2 is the preferred Java environment

  5. autoconf is the standard configuration environment.
     Groups may choose other configuration systems,
     but they are encouraged to use autoconf.  

  6. The software will use CVS as a version control system.  At
     the minimum, the releases on the gigascale and gigasource will
     be checked in using CVS.  Individual groups may use other
     version control systems, but releases will need to be checked
     in to the master source tree using the cvs import facility.

     Individual groups are strongly encouraged to use version
     control internally so a to ensure a better end product

     Individual groups may want to use a local CVS repository.
     Groups at Berkeley are strongly encouraged to use the gigasource
     CVS repository

  7. The software will have regression tests.  Obviously 100% code
     coverage is not always practical, but having some sort
     of test framework will help with porting and modifications. 

  8. The recommended language for conversion and other text processing
     scripts is PERL. Everything should work with PERL 5.003 and higher.

 see the slides of our talk at Berkeley for more details 
 (will be moved here later)