mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
36 lines
1.7 KiB
Plaintext
36 lines
1.7 KiB
Plaintext
There are a number of hacks that I've used to make the system work
|
|
that even I can see are ugly. Some which come to mind..
|
|
|
|
It's dependent on being compiled in a rigid sequence, all in a single
|
|
compilation pass, particularly in the cross-compilation phase.
|
|
There's very little support for compiling modules in parallel
|
|
or recompiling the system incrementally.
|
|
|
|
The way the cross-compiler uses UNCROSS is ugly.
|
|
|
|
The heavy use of %PYTHON:DEFMACRO to construct basic macros is
|
|
arguably ugly. But it's better than what I tried before that, and the
|
|
system is still slightly contaminated with fallout from what I tried..
|
|
When I was first trying to bootstrap the system, I went off on a wild
|
|
goose chase of trying to define everything (even fundamental macros
|
|
like DEFUN and DEFMACRO) in terms of ordinary functions and Lisp
|
|
special operators. I later realized that I could do without this, but
|
|
a number of the changes that I made to the code while on that chase
|
|
still live on, and the code is unnecessarily unclear because of them.
|
|
|
|
The contrapuntal intertwingling of the cross-compiler and
|
|
target Lisp build sequences is, well, baroque.
|
|
|
|
Using host floating point numbers to represent target floating point
|
|
numbers, or host characters to represent target characters, is theoretically
|
|
shaky. (The characters are OK as long as the characters are
|
|
in the ANSI-guaranteed character set, though.)
|
|
|
|
Despite my attempts to make the compiler portable, it still makes assumptions
|
|
about the cross-compilation host Common Lisp:
|
|
Simple bit vectors are distinct from simple vectors (in
|
|
DEFINE-STORAGE-BASE and elsewhere). (Actually, I'm not sure
|
|
that things would really break if this weren't so, but I
|
|
strongly suspect that they would.)
|
|
SINGLE-FLOAT is distinct from DOUBLE-FLOAT.
|