Quiet. Too quiet. Fix bug in pprinting backquotes, introduced *sigh* when fixing the last bug... ... we need to print once to a string stream, to look at the first character to make sure that it's not a @ or a . ... and then we need to print again, but this time to the real stream (which is at a different logical block position) ... yes, possibly there is a better way. Also put identity where mouth is: add self to SUPPORT
tidying... ...fiddling with TRACE docs in anticipation of actually making it do PROFILEing as intended ...small doc/ fixes ...(re-?)deleted FOP-CHARACTER since it's still speculative generality (will presumably be added back when Unicode comes, but isn't helpful now, and would be only infinitesimally helpful then, since it's untested now and so easy to add then) ...MORE LOC: broke some long lines ...stdlog seemed to be unused.
At the request of the type system's most heavy user... ... refactor NEGATION-TYPEs ... make NEGATE an operation in TYPE-CLASS ... define type methods for :NEGATE, replacing one god-awful NOT type translator ... define a (cached) TYPE-NEGATION function ... replace too many uses of (specifier-type `(not ,(type-specifier foo))) with (type-negation foo) We pass as many tests as we used to (both here and in PFD's suite) and we now go faster than we did before 0.8.6 on PFD's random tester. Sounds good to me. (This was initially part I of a two part refactor. This stage turns out to be enough for now; if it hadn't been, it should be possible to achieve even greater speed by changing the representation of CONS types to include not just CAR and CDR types but also their negations; then operations on CONS types such as UNION and NEGATE would be much much faster, at a slight cost in initialization).
Fix for CONS.SUBTYPEP.xx from PFD's test suite ... more work in the CONS union method. ALERT ALERT ALERT this change reportedly makes PFD's random tester crawl, slowing it by a factor of 15 on input terms (type specifiers) of size 50. Options include * ignoring this; * having a cutoff in time or complexity beyond which we return NIL, NIL; * optimizing (NOT <cons>) some more; * ... but at least it's slightly more correct now.
Tidy up a bit GET-FOREGROUND now prints 'Resuming thread n' messages on thread swith, to make it slightly harder to get lost THREAD-REPL-PROMPT-FUN goes away: it was a kludge anyway and most of what it did is done in the standard prompt function gc_thread_pid no more. Don't need sys/ptrace.h. Delete call to mach_init() which doesn't exist anyway. Ignore uninteresting signals in parent thread, and lose parent_sighandler
Yay PFD real tests! ... REHASH-THRESHOLD may be specified to be of type (REAL 0 1) [ aside: (REAL (0) 1) would be much preferred for aesthetic reasons ] but we'd better not divide by it unconditionally, because otherwise confusion ensues ... define a constant below which we shall not go
Ouch. That was hard work. ... contrib fix primarily for SunOS but also I think for Darwin; at least, if it was working it was only by accident. ... uname -m never returns either "solaris" or "darwin", so that code was wrong to start with; ... change the protocol so that we do EXTRA_CFLAGS rather than a complete override; now we don't need the solaris or darwin clauses in asdf-module.mk that weren't being used anyway; ... delete more stuff in make-target-contrib.sh so that we can actually see the effect of these changes rather than blindly reusing an old alien.so (which explains why I hadn't noticed this before, *sigh*; I ran a completely clean build on Solaris for the first time in months yesterday) ... now sb-bsd-sockets and dependents work again. I hope I haven't broken x86-64 in the process.