making clisp build more robust

Bruno Haible <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <1676621.9IvLhULHnI@omega>
Hi,

The first thing many people see from clisp are build failures.

Two months ago, I tried to list the causes of these build failures:
  1. GC-safety bugs
  2. address range layout and MAP_FIXED
  3. C compiler miscompiles something (e.g. Solaris cc)
  4. Assembler, can be turned off by -DNO_ASM (= -DSAFETY=3) - but ari80386.d
     still makes trouble (e.g. Solaris x86 with cc)
  5. Use of rarely used C interfaces, like <asm/page.h> and such.
  6. #if-ology that are not tested by Makefile.devel's multibuild.

Here's what has been done about them and can be done in the future.

1. We have a reliable way to detect GC-safety bugs:
   build with CC=g++ and --debug-gcsafety, then run "make check".
   But this relies of good test coverage in the test suite.

   New GC-safety bugs occasionally crop in again. That's life. But it is
   helpful if continuous integration builds would catch and signal them soon.

2.+4. I added an option --enable-portability that, among other things,
   - Enables the most conservative memory model (-DNO_ADDRESS_SPACE_ASSUMPTIONS).
     On 32-bit platforms this is the WIDE_SOFT model, on 64-bit platforms it is
     ONE_FREE_BIT_HEAPCODES with SPVW_PAGES (and thus no generational GC).
   - Disables generational GC,
   - Disables all use of ari*.d assembly language files (-DNO_ARI_ASM).

3. Solaris cc is unusable, both on SPARC and x86/x86_64. Any better idea than
   to document in unix/PLATFORMS to avoid it?

5. In general, gnulib is the way to go, in order to avoid the maintenance
   effort of using rarely used C interfaces. I think we're using it well,
   nothing more to do here.

6. There are now 'multibuild-*' targets in Makefile.devel. But it's only in
   combination with continuous integration that they provide their full
   benefits.

Bruno


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.