Commit graph

8 commits

Author SHA1 Message Date
Douglas Katzman 0abf67fd58 Relax requirement on current directory during build
After this it is more-or-less possible to have the SBCL root directory
be a subdirectory of the current dir. Everything in src/cold finds required
files as siblings, so if SBCL is in "mumble/something/sbcl", you needn't
change dir into "sbcl" but instead, while in "mumble" it works to load
"something/sbcl/src/cold/shared"

A quick not-too-exciting example:
* (setq *sbcl-local-target-features-file* "sbcl/local-target-features.lisp-expr")
"sbcl/local-target-features.lisp-expr"
* (load "sbcl/src/cold/shared")
T

In real-world usage, the SBCL directory would be buried deeper in the tree
and you don't want to physically change dir into it because reasons.

It should be easier to parallelize crossbuild-runner too. With suitable
input and output directories, each architecture can place its artifacts into
a different fasl tree while pulling sources from the common location.
2021-06-30 11:25:13 -04:00
Manuel Giraud 7c0b715e75 fix make-c-runtime.sh to work with other hosts. 2020-06-23 11:52:21 -04:00
Douglas Katzman 31270120b7 Remove stray newline from write-primitive-object 2019-03-05 11:32:22 -05:00
Douglas Katzman 825d4d0070 Really prevent #!+ vs #+ confusion now
Files which are part of the build framework, namely "make-*.lisp" and anything
under src/cold except for src/cold/warm always interpret #+/- as host features,
which is obvious. In those files, the reader can't parse target feature sexprs,
but the value of SB-XC:*FEATURES* may be tested with code.

Files which are sources, namely everything else, can _only_ refer to target
features in "#+"/"#-" (sans #\!) expressions, unless within a #+(host-feature)
escape. Thus it is identical, for the time being, to using #!+ or #!-.

As far as implementation, the default *READTABLE* never has its macros changed,
so you can't just slurp a file containing target feature conditionals -
instead *READTABLE* must be bound from *XC-READTABLE*. You may continue to use
the features named :sb-xc-host and :sb-xc with either the bang or non-bang
conditional syntax. So ultimately, "#!" syntax serves no purpose at all,
and we can replace every occurrence with normal syntax.

Note also that DO-STEMS-AND-FLAGS requires a third argument to indicate whether
the flags pertain to make-host-1 or -2 which avoid erroneous injection of
the :IGNORE-FAILURE-P flag when it is intended for the host. I don't love it,
but lacking proof that the CMUCL workaround isn't needed, I preserved the
behavior while improving upon it as well.
2019-01-28 00:52:12 -05:00
Douglas Katzman 6921afc1e4 Unbreak make-c-runtime
This should be executed on every build as a self-check,
but as the comment says, it doesn't work to do so.
2018-11-12 13:46:39 -05:00
Douglas Katzman 182834a384 Unbreak standalone build of C executable sans core 2018-02-27 20:41:39 -05:00
Douglas Katzman 18269d2f15 Reduce number of source files needed to write C headers 2017-10-18 17:11:38 -04:00
Douglas Katzman 7d15c1799d Add script to generate C headers
without building the cross-compiler.
Still seems a bit much that it requires 81 source files.
2017-09-30 18:07:42 -04:00