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)