mit-scheme.git
5 years agoAdd some LETREC and LETREC* tests.
Taylor R Campbell [Sun, 10 Feb 2019 22:20:32 +0000 (22:20 +0000)]
Add some LETREC and LETREC* tests.

5 years agoUse internal definitions for LETREC* and unary LETREC.
Taylor R Campbell [Sun, 10 Feb 2019 22:09:48 +0000 (22:09 +0000)]
Use internal definitions for LETREC* and unary LETREC.

The compiler will recognize these better than LET and SET!; teaching
it to recognize LET and SET! is more trouble than I want to deal with
at the moment.  Internal definitions at the scode level have LETREC*
semantics anyway, and with only a single binding, LETREC and LETREC*
coincide.

5 years agoUse arity-dispatched procedures for MAP, FOR-EACH, &c.
Taylor R Campbell [Sun, 10 Feb 2019 04:34:34 +0000 (04:34 +0000)]
Use arity-dispatched procedures for MAP, FOR-EACH, &c.

Requires shuffling initialization order in make.scm a little bit so
that we can call MAKE-ARITY-DISPATCHED-PROCEDURE in list.scm.

Saves a trip through the microcode to compute the lexpr for each call
to MAP and FOR-EACH, which turned up hot in profiles.

5 years agoIntegrate NULL-LIST?.
Taylor R Campbell [Sun, 10 Feb 2019 04:32:05 +0000 (04:32 +0000)]
Integrate NULL-LIST?.

This is used all over common SRFI 1 list operations, so what should
have been a pair of conditional branches turned into unknown
procedure calls, sometimes through a trampoline to fill in default
arguments, which turned up in profiling the compiler.

5 years agoAdd GENERAL-CAR-CDR to usual integrations.
Taylor R Campbell [Sun, 10 Feb 2019 04:26:40 +0000 (04:26 +0000)]
Add GENERAL-CAR-CDR to usual integrations.

The compiler explicitly calls this for every RTL accessor, so that
would explain why this primitive was turning up hot.  Should speed up
the compiler a little to avoid diving into microcoded primitives for
every attempt to get a piece out of an RTL expression during the RTL
passes!

5 years agoPut char-set microcode table back in data structure. Edwin needs this.
Chris Hanson [Sun, 10 Feb 2019 00:20:33 +0000 (16:20 -0800)]
Put char-set microcode table back in data structure.  Edwin needs this.

5 years agoCache char set table.
Taylor R Campbell [Sat, 9 Feb 2019 16:14:15 +0000 (16:14 +0000)]
Cache char set table.

This is a provisional kludge to make string searches by character set
in Edwin less obscenely expensive than they are at the moment, which
is killing IMAIL.

Formerly we just cached these in the char-set object itself.

5 years agoIntegrate record accessors and modifiers where convenient.
Taylor R Campbell [Sat, 9 Feb 2019 16:14:57 +0000 (16:14 +0000)]
Integrate record accessors and modifiers where convenient.

Limited to record types with:

- a defined predicate name we can pass to GUARANTEE, and
- no parent type so we can statically determine the field offsets.

Obviously it would be better if the compiler could do the flow
analysis to figure out where it can statically partially evaluate
RECORD-ACCESSOR and RECORD-MODIFIER, but, y'know, exercise for the
reader.

5 years agoDefer unmasking timer interrupt until after daemon is marked running.
Taylor R Campbell [Wed, 9 Jan 2019 04:04:51 +0000 (04:04 +0000)]
Defer unmasking timer interrupt until after daemon is marked running.

Otherwise we might re-enter on timer interrupt.

5 years agoAvoid consing closures if we're low on space.
Taylor R Campbell [Wed, 9 Jan 2019 04:04:12 +0000 (04:04 +0000)]
Avoid consing closures if we're low on space.

5 years agoCan't see why I chose to discard recent samples a decade ago.
Taylor R Campbell [Sun, 6 Jan 2019 04:14:15 +0000 (04:14 +0000)]
Can't see why I chose to discard recent samples a decade ago.

5 years agoDust off stack sampler.
Taylor R Campbell [Sun, 6 Jan 2019 04:14:01 +0000 (04:14 +0000)]
Dust off stack sampler.

Use of compiled-code-address? will be needed by the
riastrah-20181220-closentry{...} branch.

5 years agoTest restarting trapped references.
Taylor R Campbell [Fri, 4 Jan 2019 05:50:47 +0000 (05:50 +0000)]
Test restarting trapped references.

This is busted on x86 because of a compiler bug involving register
reuse, to be fixed on the riastradh-20181220-closentry{...} branch.

5 years agoFix the rest of the indentation in this file.
Taylor R Campbell [Sat, 9 Feb 2019 16:54:43 +0000 (16:54 +0000)]
Fix the rest of the indentation in this file.

No functional change.

5 years agoFix bug in test introduced by eliding open-block for SYNTAX.
Taylor R Campbell [Sat, 9 Feb 2019 16:53:52 +0000 (16:53 +0000)]
Fix bug in test introduced by eliding open-block for SYNTAX.

While here, fix indentation.

5 years agoEliminate simple-top-level-environment.
Chris Hanson [Sat, 26 Jan 2019 23:21:51 +0000 (15:21 -0800)]
Eliminate simple-top-level-environment.

This hasn't worked as intended since the reader was rewritten.

5 years agoChange param:reader-fold-case? to be settable.
Chris Hanson [Sat, 26 Jan 2019 23:21:33 +0000 (15:21 -0800)]
Change param:reader-fold-case? to be settable.

5 years agox11: Fix declaration of x_graphics_set_clip_rectangle.
Matt Birkholz [Thu, 24 Jan 2019 19:42:24 +0000 (12:42 -0700)]
x11: Fix declaration of x_graphics_set_clip_rectangle.

5 years agox11 version 1.3
Matt Birkholz [Wed, 23 Jan 2019 21:42:19 +0000 (14:42 -0700)]
x11 version 1.3

5 years agox11: Punt import-x11.
Matt Birkholz [Wed, 23 Jan 2019 21:57:20 +0000 (14:57 -0700)]
x11: Punt import-x11.

5 years agoruntime.pkg: Trim old, unnecessary package exports.
Matt Birkholz [Wed, 23 Jan 2019 21:08:18 +0000 (14:08 -0700)]
runtime.pkg: Trim old, unnecessary package exports.

The (runtime x-graphics) package doesn't use have-select? nor (lately)
make-image-type.  (The (x11 device) package imports make-image-type.)

5 years agox11: Link to deprecated (runtime x-graphics) bindings when loaded.
Matt Birkholz [Wed, 23 Jan 2019 20:46:35 +0000 (13:46 -0700)]
x11: Link to deprecated (runtime x-graphics) bindings when loaded.

5 years agox11: Rename device type to "x".
Matt Birkholz [Wed, 23 Jan 2019 20:44:17 +0000 (13:44 -0700)]
x11: Rename device type to "x".

5 years agoDon't return open block at top level when syntaxing a single form.
Chris Hanson [Mon, 21 Jan 2019 04:22:28 +0000 (20:22 -0800)]
Don't return open block at top level when syntaxing a single form.

5 years agox11: Fix x-graphics-vdc-extent and x-graphics-set-clip-rectangle.
Matt Birkholz [Sun, 20 Jan 2019 19:38:04 +0000 (11:38 -0800)]
x11: Fix x-graphics-vdc-extent and x-graphics-set-clip-rectangle.

x-graphics-vdc-extent should have had one argument and returned a
vector, and x-graphics-set-clip-rectangle needed to accept floats.

5 years agoChange tests to use sub-tests as originally intended.
Chris Hanson [Sat, 12 Jan 2019 21:03:39 +0000 (13:03 -0800)]
Change tests to use sub-tests as originally intended.

I messed it up the first time and Taylor had to patch around my mess.

5 years agoEliminate unnecessary consing in char-set-empty?.
Chris Hanson [Sat, 12 Jan 2019 21:03:05 +0000 (13:03 -0800)]
Eliminate unnecessary consing in char-set-empty?.

5 years agoFind all relevant shared objects. Handle NMV headers in vectors.
Chris Hanson [Sat, 12 Jan 2019 07:41:17 +0000 (23:41 -0800)]
Find all relevant shared objects.  Handle NMV headers in vectors.

5 years agoFix pasto for LIARC build of SOS.
Taylor R Campbell [Sat, 12 Jan 2019 01:37:43 +0000 (01:37 +0000)]
Fix pasto for LIARC build of SOS.

5 years agogitignore LIARC build products.
Taylor R Campbell [Sat, 12 Jan 2019 01:26:08 +0000 (01:26 +0000)]
gitignore LIARC build products.

5 years agoDon't leave the intermediate run-build shell process hanging around.
Taylor R Campbell [Sat, 12 Jan 2019 00:05:34 +0000 (00:05 +0000)]
Don't leave the intermediate run-build shell process hanging around.

5 years agoRun the ChaCha self-tests too.
Taylor R Campbell [Fri, 11 Jan 2019 09:42:12 +0000 (09:42 +0000)]
Run the ChaCha self-tests too.

5 years agoRefuse to let the MD5 primitives run unless self-test passes.
Taylor R Campbell [Fri, 11 Jan 2019 09:37:48 +0000 (09:37 +0000)]
Refuse to let the MD5 primitives run unless self-test passes.

5 years agoFix buffer overflow in self-test. Derp.
Taylor R Campbell [Fri, 11 Jan 2019 09:36:56 +0000 (09:36 +0000)]
Fix buffer overflow in self-test.  Derp.

This self-test was not used; there's a separate test in test-md5.scm
which is fine.  (The result in this self-test is also correct -- it
just never got tested anywhere.)

5 years agoFix byte ordering: encode state words in little-endian; don't memcpy!
Taylor R Campbell [Fri, 11 Jan 2019 09:36:00 +0000 (09:36 +0000)]
Fix byte ordering: encode state words in little-endian; don't memcpy!

How did I miss this earlier!?

5 years agoExploit oddness to get bit-for-bit identical results on +/-.
Taylor R Campbell [Fri, 11 Jan 2019 08:35:19 +0000 (08:35 +0000)]
Exploit oddness to get bit-for-bit identical results on +/-.

Fixes test failure on NetBSD/powerpc:

;|logit-logistic-1/2/(.2310585786300049 1.)| failed 1 sub-tests out of 1 in 0. seconds:
     assertion 1: value was -.23105857863000487 but expected an object = to -.2310585786300049

5 years agoUse a much simpler endian-independent execute cache mechanism.
Taylor R Campbell [Fri, 11 Jan 2019 06:35:27 +0000 (06:35 +0000)]
Use a much simpler endian-independent execute cache mechanism.

Requires no changes to the SVM1 byte code, so existing unlinked .com
files will continue to work (except for those created in the past
couple hours with my big-endian bodge that entailed no changes to the
little-endian hack), although built bands will confuse the microcode
because what cmpint stores in execute caches in memory changed.

- Before linking, an execution cache is simply the two words, as
  before on little-endian systems:

    <frame size> (fixnum)
    <name> (symbol)

- After linking, the frame size remains untouched and the name is
  replaced by the untagged address of the target:

    <frame size> (fixnum)
    <target> (untagged)

- INVOCATION:UUO-LINK now generates an (indirect-jump (pc-relative
  <cache>)) instruction, which already does the right thing:
  dereferences PC + offset to find a instruction address, and then
  jumps to that address.

5 years agoFix lambda-body -> scode-lambda-body straggler.
Taylor R Campbell [Fri, 11 Jan 2019 05:16:55 +0000 (05:16 +0000)]
Fix lambda-body -> scode-lambda-body straggler.

5 years agoDesign big-endian uuo link execute caches.
Taylor R Campbell [Fri, 11 Jan 2019 04:53:02 +0000 (04:53 +0000)]
Design big-endian uuo link execute caches.

The little-endian hack to overwrite the tag with instructions doesn't
work on big-endian because it's the datum, not the tag, that's at the
end of the word in the frame size.

There's no room for the instructions before anything here, so add
another word and move the frame size to the end.  Kinda wasteful --
for that matter, it's not clear why we need to have any instructions
here at all, when we could just have INVOCATION:UUO-LINK compile to
an IJUMP instruction itself.

5 years agoTeach SVM back end how to assemble big-endian instruction streams.
Taylor R Campbell [Fri, 11 Jan 2019 04:52:15 +0000 (04:52 +0000)]
Teach SVM back end how to assemble big-endian instruction streams.

Gotta do 'em backwards because the words are backwards in a bit
string on big-endian systems.

5 years agoFix ordering of _words_ in fasumped bit strings on big-endian.
Taylor R Campbell [Fri, 11 Jan 2019 04:51:25 +0000 (04:51 +0000)]
Fix ordering of _words_ in fasumped bit strings on big-endian.

Apparently the byte order within a word affects the word order within
a bit string.

5 years agoTweaks to make Edwin cross-compilable.
Taylor R Campbell [Fri, 11 Jan 2019 04:50:02 +0000 (04:50 +0000)]
Tweaks to make Edwin cross-compilable.

5 years agoNothing architecturally limits powerpc to high memory.
Taylor R Campbell [Fri, 11 Jan 2019 04:47:54 +0000 (04:47 +0000)]
Nothing architecturally limits powerpc to high memory.

Individual operating systems may, but none that I've encountered.

We may revisit this if we change SVM1 to always work in high memory.

5 years agoUse HOST_CC, default CC, to compile findprim.
Taylor R Campbell [Fri, 11 Jan 2019 04:45:19 +0000 (04:45 +0000)]
Use HOST_CC, default CC, to compile findprim.

This needs to run on the host system, not on the target system.

This way we can cross-compile the microcode if you have a C
cross-compiler handy, which makes iterating development a lot faster
when the target's native C compiler is painfully slow.

5 years agoMake powerpc floating-point exceptions fit in fixnums on 32-bit.
Taylor R Campbell [Thu, 10 Jan 2019 04:04:22 +0000 (04:04 +0000)]
Make powerpc floating-point exceptions fit in fixnums on 32-bit.

5 years agoLoad with load-option so this gets LIARC bundles correctly.
Taylor R Campbell [Thu, 10 Jan 2019 04:03:32 +0000 (04:03 +0000)]
Load with load-option so this gets LIARC bundles correctly.

5 years agoMkdir lib/lib with -p in configure so it is idempotent.
Taylor R Campbell [Thu, 10 Jan 2019 04:03:21 +0000 (04:03 +0000)]
Mkdir lib/lib with -p in configure so it is idempotent.

5 years agoDisable constant-folding machine-dependent primitives in LIARC.
Taylor R Campbell [Thu, 10 Jan 2019 04:01:57 +0000 (04:01 +0000)]
Disable constant-folding machine-dependent primitives in LIARC.

These are not valid across word size changes, but LIARC does not
expose compiler:cross-compiling?.

5 years agoOne more round of rework for LIARC.
Taylor R Campbell [Thu, 10 Jan 2019 03:57:42 +0000 (03:57 +0000)]
One more round of rework for LIARC.

Keep the host actions and target actions separated by a stamp file as
with other cross-compilation.

Name the targets:

- cross-host does the actions on the host (some day, all of them),
  and creates stamp_cross-host

- cross-target does the actions on the target, which all depend on
  the host actions only through stamp_cross-host

- all does cross-host and then cross-target.

With any luck, this should preserve the behaviour of non-cross
builds.

Still missing: Makefile.tools doesn't work _from_ a system with LIARC
yet to cross-compile, because we have no way to build a fresh runtime
or create bundles outside the standard build.

=> We should not depend on a full fresh runtime, only on the macros.

=> We should have a way to link bundles.  (For that matter, we should
   have a notion of shared libraries that can be loaded independently
   and with shared read-only physical memory, rather than as a bodgy
   sequence of bands copying the data around.)

5 years agoFix bug: characters with bucky bits not printing right.
Chris Hanson [Wed, 9 Jan 2019 07:45:31 +0000 (23:45 -0800)]
Fix bug: characters with bucky bits not printing right.

5 years agoAvoid WRITE in URI->STRING.
Taylor R Campbell [Wed, 9 Jan 2019 03:49:39 +0000 (03:49 +0000)]
Avoid WRITE in URI->STRING.

We use this early on in loading an image -- before we have
initialized all the LIARC objects (indeed, in the course of
initializing LIARC objects), which may themselves have predicates in
the print method dispatcher.

5 years agoRestore printing strings in #[uri ...].
Taylor R Campbell [Wed, 9 Jan 2019 03:49:23 +0000 (03:49 +0000)]
Restore printing strings in #[uri ...].

5 years agoSimplify pathnames for conversion to standard URIs to avoid dottiness.
Taylor R Campbell [Wed, 9 Jan 2019 03:48:54 +0000 (03:48 +0000)]
Simplify pathnames for conversion to standard URIs to avoid dottiness.

5 years agoUse intermediate stamp for compinit.[ch] to avoid parallel clobber.
Taylor R Campbell [Wed, 9 Jan 2019 03:48:30 +0000 (03:48 +0000)]
Use intermediate stamp for compinit.[ch] to avoid parallel clobber.

5 years agoUpdate liarc to modern debugging info/wrapper formats.
Taylor R Campbell [Wed, 9 Jan 2019 03:48:12 +0000 (03:48 +0000)]
Update liarc to modern debugging info/wrapper formats.

5 years agoFix up makefile targets for liarc.
Taylor R Campbell [Wed, 9 Jan 2019 03:47:53 +0000 (03:47 +0000)]
Fix up makefile targets for liarc.

5 years agoNUL-terminate bytevectors too.
Taylor R Campbell [Wed, 9 Jan 2019 03:46:26 +0000 (03:46 +0000)]
NUL-terminate bytevectors too.

This shouldn't be necessary but we use these for primitive names with
routines that expect them to be NUL-terminated, so this is more
convenient until we either length-delimit the primitive names or
explicitly NUL-terminate them or whatever.

5 years agoAtomic write-to-temporary/rename-to-permanent so liarc is ^Cable.
Taylor R Campbell [Wed, 9 Jan 2019 03:46:15 +0000 (03:46 +0000)]
Atomic write-to-temporary/rename-to-permanent so liarc is ^Cable.

5 years agoUse load-option so we get the LIARC bundle.
Taylor R Campbell [Wed, 9 Jan 2019 03:45:35 +0000 (03:45 +0000)]
Use load-option so we get the LIARC bundle.

5 years agoDisable cross-compilation finishing stage for liarc.
Taylor R Campbell [Tue, 8 Jan 2019 07:17:08 +0000 (07:17 +0000)]
Disable cross-compilation finishing stage for liarc.

5 years agoDon't build microcode in cross-host; build in cross-target.
Taylor R Campbell [Tue, 8 Jan 2019 06:48:47 +0000 (06:48 +0000)]
Don't build microcode in cross-host; build in cross-target.

5 years agoSuppress uninitialized variable warnings.
Taylor R Campbell [Tue, 8 Jan 2019 06:06:46 +0000 (06:06 +0000)]
Suppress uninitialized variable warnings.

GCC is easily confused by the code we generate.

5 years agoCompile and link liarc objects as shared with no fatal warnings.
Taylor R Campbell [Tue, 8 Jan 2019 06:28:02 +0000 (06:28 +0000)]
Compile and link liarc objects as shared with no fatal warnings.

5 years agoNeed to wait for runtime to compile before building liarc ucode.
Taylor R Campbell [Tue, 8 Jan 2019 05:54:54 +0000 (05:54 +0000)]
Need to wait for runtime to compile before building liarc ucode.

5 years agoTeach stackify about bytevectors.
Taylor R Campbell [Tue, 8 Jan 2019 05:38:38 +0000 (05:38 +0000)]
Teach stackify about bytevectors.

XXX Really it should use bytevectors as the basic type now, and we
should teach it about strings, but this is more expedient since it
was written when string == bytevector and mostly this works out.

5 years agoTeach the makefile how to make the .pkd files for liarc rules.
Taylor R Campbell [Tue, 8 Jan 2019 05:19:14 +0000 (05:19 +0000)]
Teach the makefile how to make the .pkd files for liarc rules.

5 years agoAvoid compiler:cross-compiling? in liarc.
Taylor R Campbell [Tue, 8 Jan 2019 05:31:57 +0000 (05:31 +0000)]
Avoid compiler:cross-compiling? in liarc.

5 years agoFix typo: SOS_BUILD_TARGETS, not SOS_TARGETS. Actually build SOS!
Taylor R Campbell [Wed, 9 Jan 2019 03:51:59 +0000 (03:51 +0000)]
Fix typo: SOS_BUILD_TARGETS, not SOS_TARGETS.  Actually build SOS!

5 years agoConvert to SCHEME_OBJECT * first before subtracting membase.
Taylor R Campbell [Tue, 8 Jan 2019 16:40:11 +0000 (16:40 +0000)]
Convert to SCHEME_OBJECT * first before subtracting membase.

This system (with or without the change) requires all addresses that
are tagged to be word-aligned, which expands the address space by a
factor of four on 32-bit systems, but means we can't tag pointers to
unaligned instruction addresses.

This means that i386 compiled code won't be able to take advantage of
membase, but it can't anyway without changes to the compiler, which
doesn't know about membase as is.

However, this _also_ means that multiclosures in SVM won't work
because only the first entry (and every four or eight entries) is
guaranteed to be word-aligned.  We could address this by aligning the
entries, and maybe remove the ENTER-CLOSURE instruction overhead by
using indirection for entries like riastradh-20181220-closentry-v3
does for amd64.

(Don't want to change CC_ENTRY_NEW_ADDRESS or anything because
there's an outstanding branch that changes them already for other
reasons.)

5 years agoFix dependency ordering.
Taylor R Campbell [Tue, 8 Jan 2019 07:37:32 +0000 (07:37 +0000)]
Fix dependency ordering.

5 years agoIsolate directories for clean-compiler rule.
Taylor R Campbell [Tue, 8 Jan 2019 07:17:19 +0000 (07:17 +0000)]
Isolate directories for clean-compiler rule.

5 years agoDon't hang in non-parallel makes waiting for input.
Taylor R Campbell [Tue, 8 Jan 2019 06:34:00 +0000 (06:34 +0000)]
Don't hang in non-parallel makes waiting for input.

5 years agoFix stray backslash that was harmless without LIARC.
Taylor R Campbell [Tue, 8 Jan 2019 05:23:23 +0000 (05:23 +0000)]
Fix stray backslash that was harmless without LIARC.

5 years agoRework makefile to use intermediate variables, not rules.
Taylor R Campbell [Tue, 8 Jan 2019 02:34:10 +0000 (02:34 +0000)]
Rework makefile to use intermediate variables, not rules.

This gives the opportunity for the variables to be files, not phony
rules, to limit rebuilds.  Disadvantage: must be written in
dependency order because make expands variables in dependencies as it
reads them, not lazily.  But this reduces the size of the makefile
quite a bit.

Use stamp_tools to trigger (incremental) rebuild of toolchain.

5 years agoRewrite printing of #[...] forms, for simplicity now and later for sharing.
Chris Hanson [Tue, 8 Jan 2019 08:46:39 +0000 (00:46 -0800)]
Rewrite printing of #[...] forms, for simplicity now and later for sharing.

In order to properly implement datum labels for things inside of bracketed
forms, we need to be able to walk the items that are being printed there.
Previously this would have been very difficult since the insides of these forms
were printed by custom printers.  Now they are exposed as individual objects
that can be walked.

Further work is necessary to include these objects when walking the tree.

5 years agoIntegrate PROMISE?.
Taylor R Campbell [Sun, 6 Jan 2019 04:17:06 +0000 (04:17 +0000)]
Integrate PROMISE?.

Small but measurable speed improvement, getting to diminishing
returns after a nearly 7x speed increase on promise-heavy stream
code.

5 years agoTry EQ? first before the passed-in equality procedure in MEMV &c.
Taylor R Campbell [Sun, 6 Jan 2019 04:01:32 +0000 (04:01 +0000)]
Try EQ? first before the passed-in equality procedure in MEMV &c.

- EQ? must imply the passed-in equality procedure anyway.
- EQ? is open-coded and quick.
- MEMV turns up hot in profiles of the compiler.
- Small but measurable performance improvement compiling the tests.

5 years agoIntegrate GUARANTEE.
Taylor R Campbell [Sat, 5 Jan 2019 19:29:24 +0000 (19:29 +0000)]
Integrate GUARANTEE.

For this to be effective, SF makes the assumption that predicates do
not modify their own definitions, like

(define (foo? x) (set! foo? (lambda (x) x #f)) #t)
(guarantee foo? 42)

Such is the depravity of arbitrary side effects not represented in a
type system...!

5 years agoFix format words generated by svm1 compiler for internal procedures.
Taylor R Campbell [Mon, 7 Jan 2019 06:42:18 +0000 (06:42 +0000)]
Fix format words generated by svm1 compiler for internal procedures.

Continuation parser relies on the next-continuation-offset for
internal procedures in interrupt frames.

5 years agoConfigure outcome should not depend on whether lib/all.com exists!
Taylor R Campbell [Mon, 7 Jan 2019 05:27:38 +0000 (05:27 +0000)]
Configure outcome should not depend on whether lib/all.com exists!

This meant you got a different (and broken) build if you simply reran
configure, which is awfully confusing.  Now we use the native release
marker to change the default behaviour of configure reliably.

What idiot did this, git blame?  ...oh.

5 years agoRegenerate configure if out of date, not just if nonexistent.
Taylor R Campbell [Mon, 7 Jan 2019 05:07:56 +0000 (05:07 +0000)]
Regenerate configure if out of date, not just if nonexistent.

5 years agogitignore cross objects and Makefile.tools.
Taylor R Campbell [Mon, 7 Jan 2019 03:53:09 +0000 (03:53 +0000)]
gitignore cross objects and Makefile.tools.

5 years agoClean .nib, .ext, and .dkp too.
Taylor R Campbell [Mon, 7 Jan 2019 02:57:43 +0000 (02:57 +0000)]
Clean .nib, .ext, and .dkp too.

5 years agoRework makefile for cross-compilation with a toolchain again.
Taylor R Campbell [Mon, 7 Jan 2019 00:27:04 +0000 (00:27 +0000)]
Rework makefile for cross-compilation with a toolchain again.

We use Makefile.tools only if --enable-cross-compiling is true.
Everything it builds goes under tools/, or should if there are no
bugs -- even intermediate .bin, .com, &c., files.

New usage model does not require any external trees:

% ./configure --enable-cross-compiling --enable-native-code=i386
% make cross-host

% make all

However, the host must be a recent master with new CREF and SF
features for separate source and object roots, so we can't rely on
this to work until we cut a new release with those features.

(It shouldn't be necessary to run _anything_ on the target system,
but we're a ways away from that: we need the cross-compiler to be
able to cope with macros across subsystem dependencies, and we need a
`static' linker, not just a fasloader-and-disk-save.)

5 years agoGenerate the trivial constructor in the objdir, not srcdir.
Taylor R Campbell [Mon, 7 Jan 2019 00:25:26 +0000 (00:25 +0000)]
Generate the trivial constructor in the objdir, not srcdir.

Define cref/source-root and cref/object-root in host-adapter.scm so
we can still load compiler.sf into old Schemes, which will never have
this distinction.

5 years agoTeach cref and sf about separate source and object directories.
Taylor R Campbell [Sun, 6 Jan 2019 17:01:34 +0000 (17:01 +0000)]
Teach cref and sf about separate source and object directories.

5 years agoExpose fasl-format:x86-64 as another name for the amd64 format.
Taylor R Campbell [Sun, 6 Jan 2019 23:17:58 +0000 (23:17 +0000)]
Expose fasl-format:x86-64 as another name for the amd64 format.

Relevant because MIT_SCHEME_NATIVE_CODE gets set to x86-64, and gets
plopped into `fasl-format:@MIT_SCHEME_NATIVE_CODE' in the makefile.

5 years agoChange identify-world to show a very brief summary.
Chris Hanson [Mon, 7 Jan 2019 07:50:47 +0000 (23:50 -0800)]
Change identify-world to show a very brief summary.

* Remove versions from all of the subsystems, except the release.
* Remove microcode and runtime subsystems entirely.

5 years agoGeneralize list-like printing, and support list-breadth limit properly.
Chris Hanson [Mon, 7 Jan 2019 07:32:15 +0000 (23:32 -0800)]
Generalize list-like printing, and support list-breadth limit properly.

5 years agoClean up wording around bitless characters.
Chris Hanson [Mon, 7 Jan 2019 00:32:57 +0000 (16:32 -0800)]
Clean up wording around bitless characters.

5 years agoRemove unused and unexported guarantee-FOO procedures.
Chris Hanson [Mon, 7 Jan 2019 00:32:41 +0000 (16:32 -0800)]
Remove unused and unexported guarantee-FOO procedures.

5 years agoChange most places that use bitless-char? to just throw away the bucket bits.
Chris Hanson [Mon, 7 Jan 2019 00:19:59 +0000 (16:19 -0800)]
Change most places that use bitless-char? to just throw away the bucket bits.

5 years agoDo the annual copyright update.
Chris Hanson [Sun, 6 Jan 2019 06:58:28 +0000 (22:58 -0800)]
Do the annual copyright update.

5 years agoIn update-copyright, replace use of old regexp with regsexp.
Chris Hanson [Sun, 6 Jan 2019 06:56:22 +0000 (22:56 -0800)]
In update-copyright, replace use of old regexp with regsexp.

Also adjust the various filename patterns to reflect the current directory
structure.

5 years agoClean the compiler subdir too.
Chris Hanson [Sun, 6 Jan 2019 06:41:18 +0000 (22:41 -0800)]
Clean the compiler subdir too.

5 years agoAllow alist->bundle to accept #F as predicate.
Chris Hanson [Sun, 6 Jan 2019 02:28:40 +0000 (18:28 -0800)]
Allow alist->bundle to accept #F as predicate.

Also beef up bundle tests a bit.

5 years agoFix problem with using bundle? as a bundle predicate.
Chris Hanson [Sun, 6 Jan 2019 02:12:26 +0000 (18:12 -0800)]
Fix problem with using bundle? as a bundle predicate.

5 years agoNew printer parameter param:print-hash-number-in-objects?.
Chris Hanson [Sun, 6 Jan 2019 01:52:10 +0000 (17:52 -0800)]
New printer parameter param:print-hash-number-in-objects?.

5 years agoUse dispatch-tag-print-name.
Chris Hanson [Sun, 6 Jan 2019 01:47:40 +0000 (17:47 -0800)]
Use dispatch-tag-print-name.

5 years agoExport dispatch-tag-print-name for convenience.
Chris Hanson [Sun, 6 Jan 2019 01:46:52 +0000 (17:46 -0800)]
Export dispatch-tag-print-name for convenience.