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)