* binary-distribution makes no use of cache_dir now
* generate-texinfo hasn't needed asdf-object-cache since git rev 2e266c9674
* 'test' recipes are never used
Since contrib modules are not regression-tested when just built,
and we endeavor to release code that at least builds cleanly,
there is almost no chance that the script could report a failure.
Specifically, stop producing and looking for build-passed
files as a success indicator. Counting the fasls is adequate.
Most build systems distinguish a failed build from a failed test run,
but make.sh has a hard time doing that because of the conflation of the two.
The whole regression suite should be run if you want to ensure a good build,
so that would be a good time to test contribs. Not only that, with ASDF
we obscured a ton of style-warnings, we lost sandboxing of input files,
the ability to use --evaluator-mode, automatic generation and cleanup of
scratch pathnames, and automatic sb-sprof profiling.
So convert contrib tests to use WITH-TEST except some that gave me trouble.
This makes the output a ton more readable, and makes bisection on seldom-used
configurations quicker, not to mention that SB-RT is very lame anyway.
And there is quite literally less code to maintain now. Go figure.
Add the new feature sb-linkable-runtime, that depends on sb-dynamic-core,
the sbcl build will create a file sbcl.o or libsbcl.a that you can link
with additional other object files and libraries to deliver your applications
as a single executable (after combining with a core file) that contains
whatever statically linked C libraries you need as extensions.
CFFI-toolchain and Bazel will be know how to use this features.
Support this feature on Linux, macOS and Windows, on x86 and x86-64.
Dump the parameters to compile C code and link it into a file sbcl.mk.
This new file will be included even if sb-linkable-runtime isn't present,
so CFFI and other software will not have to guess with what compiler and
what options to build dynamically linkable extensions.
Note that without a sb-linkable-runtime, SBCL can still dlopen the C code, but
then you need at least two files to deliver an application with non-Lisp code,
and that doesn't work if the code is provided as a *.a or *.o file
(not a *.so) compiled without -fPIC.
Fix https://bugs.launchpad.net/sbcl/+bug/1500628 better than the previous
attempt, which was reverted in commit a61d893a7f.
Everything has moved, which led the binary-distribution script not to
include test-passed files, and the install script to look for them in
the wrong place anyway.
...that is, also include the file prefix.def, which specifies where
the system is configured to install. Now that I think of it, it might
be more elegant to be able to query the runtime about its default
SBCL_HOME, actually...
Thanks to Bruce O'Neel.
* Imaginary parts were messed up on 64 bit platforms when
filling arrays of (COMPLEX SINGLE-FLOAT). Thanks to Paul Khuong.
* Also delay the transform of FILL till constraint propagation has
run, to get the constant argument form MAKE-ARRAY in properly.
* ...and eradicate remaining references to the SUPPORT file.
* I'm tired of typing the mantra, and it's probably good to make
it easy for users too to run SBCL before installation.
* Add to binary tarball, and mention in INSTALL.
Merge patch from James Bielman fixing self-build under Win32.
... a little bit of an accident ensued; I ran
canonicalize-whitespace on .sh files, which seemed to
work (except on wc.sh) until it scribbled all over
make.sh, confusing the shell interpreter utterly.
... the resulting files have built the system, nevertheless.
"not when there is nothing more to add, but when there is
nothing more to be taken away"
deleted old DocBook manual sources
deleted references to DocBook manual sources (in DOCDOC and
clean.sh and so forth)
minor tidying of doc-building and doc/-cleaning machinery
(hopefully leaving it working basically as before)
Installation related fixes
... Include SUPPORT in binary distros, since install.sh now installs it.
... Align mis-aligned column in INSTALL: OpenBSD works on x86, not PPC.
Allow RUN-PROGRAM to work even when something in $PATH is not
an existent directory:
... patch from Andreas Fuchs sbcl-devel 2003-08-26;
... add a test case;
Also, need find-gnumake.sh in binary distributions:
... make it so!
Eleventh hour accommodation to Solaris sh(1)
... export FOO=bar -> FOO=bar; export FOO
... more test -e -> test -f
... b=${1:?foo bar} -> b=${1:?"foo bar"}
... yay for portable shell programmes.
It's easier to port a shell than a shell script. -- Larry Wall
Contrib-related fixes -
... multiple uses of test -e are now test -f
... don't run make test in install, it's more work than we
want to do as root
... instead, touch $i/test-passed in make-target-contrib.sh
(if, indeed, it has) and test for presence of that file
when installing
... Rationalise AF-* constants in sb-bsd-sockets: AF-LOCAL
is the One True Name.
... In sb-bsd-sockets build, don't hardcode gcc to be in /usr/bin
contrib/ adjustments
... make binary-distribution.sh aware of contrib/
... we run $gnumake test before $gnumake install ourselves, so
don't make the install target depend on test
SPARC floating point fixes
... write a C function to get at the floating point state register
and use it for context-floating-point-modes (SunOS)
... attempt to do the same for SPARC/Linux, then realise that
the current state was more broken than I thought, so
wrote a BUG instead
Portability fix to binary-distribution.sh
gave up on trying to mess with different versions of jade on
different architectures, at which point it became clear
that I wanted the formatted docs to be distributed in
a different package than source or binary, so...
...wrote html-distribution.sh to slurp up the HTML-formatted
documentation
...tweaked binary-distribution.sh so it no longer slurps up the
HTML-formatted documentation