Our contrib build graph was already expressed in contrib/Makefile,
so ASDF wasn't doing anything to determine an execution schedule.
The new make-contrib.lisp script can parse '.asd' files more-or-less as-is,
removing ASDF from the critical path. With blocklist=sb-simd, this change
decreased the time in parallelized make-target-contrib to under 5 seconds
for me (down from >10) when run on as many cores as there are contrib dirs.
All defsystems are treated as if containing ":serial t", and there are
two invented keywords to bind/assign special variables around compilation.
We still install '.asd' files in $SBCL_HOME/contrib, and build uiop and asdf
so there should be no observable difference to users.
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.
Record filesystem information during the build in debug information
relative to SYS, not to /home/kevin/sbcl or equivalent.
... change to core code: tiny if ugly;
... change to warm load: only to refer to files as lpns rather
than physical namestrings;
... change to vanilla-modules: tiny;
... change to asdf modules: well, erm, less tiny. I'm not pleased
by the need to duplicate similar logic in every .asd, but
I think it's a similar symptom to the duplication of the
TEST-OP logic in many of them: the coupling between asdf
and the rest of the system is slightly wrong.
(At startup, SYS by default has translations that refer back to
the build-time values; distributors may wish to alter this for
their binaries, for instance by setting translations to
distribution-known values when dumping any final image)
Slight change to REQUIRE/PROVIDE protocol
... as observed by Tony Martinez sbcl-devel 2003-05-13, REQUIRE
takes a string designator, so allow this
... update to latest ASDF, which changes the asdf hook slightly
such that individual modules are required (ha!) to
PROVIDE themselves; make it so.
* sb-contrib/sb-aclrepl.asd:
- Remove work-around for optimization notes
* sb-contrib/{toplevel,repl}.lisp:
- Rework fresh-line handling to accomodate that *repl-read-fun* causes
a newline of which the output-stream is unaware.
* sb-aclrepl/sb-aclrepl.asd:
- Work around 'eql method specialization optimization notes
* sb-aclrepl:repl.lisp:
- Refactor read-cmd into small functions
- Add relative history numbers, eg, `:-2'
- Add history pattern match search, eg, `::foo'
- Add optional redo query to history command, eg, `:24 ?'
- src/code/toplevel.lisp: Remove changes to REPL and rename
REPL to REPL-FUN and add hook.
- sb-aclrepl/tests.lisp: Add display tests.
- sb-aclrepl/toplevel.lisp: New file. Toplevel REPL with support
for catching signals
- sb-aclrepl/README: state that sb-aclrepl must be loaded in
~/.sbclrc.
* src/code/toplevel.lisp: Add special variables to convert SB-IMPL::REPL
into a recursively invokable funcion
* src/code/debug.lisp: Add hook for SB-DEBUG::DEBUG-LOOP
* contrib/sb-aclrepl/tests.lisp: add tests for bignum inspection
* contrib/sb-aclrepl/repl.lisp: convert to use new SB-IMPL::REPL function,
add some debugger commands
* contrib/sb-aclrepl/debug.lisp: use SB-DEBUG::*DEBUG-LOOP-FUN* hook.
however, hook is not yet enabled by default while debugger function
continues development.
* sb-aclrepl changes
- Update README with examples and contact information
- Strip out break-stack concept from repl.lisp
- Fix bug in trimming *history* when *max-history* is reached
- Add display of single-float, double-float, bignum hexidecimal contents
- Fix reporting of object addresses (mask lowtag bits)
- Add ":i slot <id>" command
- Some non-active experimental code is in toplevel.lisp and debug.lisp,
but this is #+ignore'd while in development.
* contrib/sb-rt/Makefile: fixed to install sb-rt as an ASDF system
* contrib/sb-rt/rt.lisp: renamed from sb-rt.lisp
* contrib/sb-aclrepl/sb-aclrepl.asd: Reworked to create a separate
sb-aclrepl-tests ASDF system
Add SB-RT (a regression tester framework) as a contrib
... not with a great fanfare, though, as philosophically it's for
contrib use, not general public use;
... make sb-aclrepl and sb-bsd-sockets use sb-rt, not their own
local copies of rt.