Chez Scheme: parallel garbage collection

All allocation is now thread-local, which recovers a small bit of
performance that was lost when adding thread-local allocation
alongside global allocation.

Parallelism uses thread contexts created by Chez Scheme threads (which
correspond to Racket places and future-running threads), but it
creates its own OS-level threads to perform collection. The number of
collection-helper threads is limited to the number of active Chez
Scheme threads. Only the main "sweep" pass runs in parallel --- that
is, after roots have been traversed, and before weak references and
finalization are handled --- but that's the bulk of collection work.
Also, memory-accounting collections always run as single-threaded.
This commit is contained in:
Matthew Flatt 2020-09-06 16:39:33 -06:00
parent 78fedb3b24
commit 8305e5eaef
34 changed files with 1448 additions and 641 deletions

View File

@ -72,6 +72,9 @@ VM = cs
# Target selector: `minimal` or `skip` # Target selector: `minimal` or `skip`
INITIAL_SETUP_MODE = minimal INITIAL_SETUP_MODE = minimal
# Target selector: `` or `-as-is`
AS_IS=
in-place: in-place:
if [ "$(CPUS)" = "" ] ; \ if [ "$(CPUS)" = "" ] ; \
then $(MAKE) plain-in-place ; \ then $(MAKE) plain-in-place ; \
@ -118,8 +121,8 @@ plain-in-place-setup:
as-is: as-is:
if [ "$(CPUS)" = "" ] ; \ if [ "$(CPUS)" = "" ] ; \
then $(MAKE) plain-as-is ; \ then $(MAKE) plain-as-is AS_IS="-as-is" ; \
else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" ; fi else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" AS_IS="-as-is" ; fi
plain-as-is: plain-as-is:
$(MAKE) plain-base $(MAKE) plain-base
@ -335,7 +338,7 @@ RACKET_FOR_BOOTFILES = $(RACKET)
RACKET_FOR_BUILD = $(RACKET) RACKET_FOR_BUILD = $(RACKET)
# This branch name changes each time the pb boot files are updated: # This branch name changes each time the pb boot files are updated:
PB_BRANCH == circa-7.8.0.10-2 PB_BRANCH == circa-7.8.0.10-6
PB_REPO == https://github.com/racket/pb PB_REPO == https://github.com/racket/pb
# Alternative source for Chez Scheme boot files, normally set by # Alternative source for Chez Scheme boot files, normally set by
@ -392,7 +395,7 @@ win-cs-in-place-setup:
$(MAKE) plain-in-place-setup PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) $(MAKE) plain-in-place-setup PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX)
cs-base: cs-base:
$(MAKE) maybe-fetch-pb $(MAKE) maybe-fetch-pb$(AS_IS)
if [ "$(RACKETCS_SUFFIX)" = "" ] ; \ if [ "$(RACKETCS_SUFFIX)" = "" ] ; \
then $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-csdefault" ; \ then $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-csdefault" ; \
else $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-csdefault" ; fi else $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-csdefault" ; fi
@ -418,9 +421,6 @@ cs-minimal-in-place-after-base-cross:
$(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET="$(RACKET_FOR_BUILD)" PLT_SETUP_OPTIONS="--no-pkg-deps $(PLT_SETUP_OPTIONS)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET="$(RACKET_FOR_BUILD)" PLT_SETUP_OPTIONS="--no-pkg-deps $(PLT_SETUP_OPTIONS)"
no-fetch-pb:
echo done
fetch-pb: fetch-pb:
if [ "$(EXTRA_REPOS_BASE)" = "" ] ; \ if [ "$(EXTRA_REPOS_BASE)" = "" ] ; \
then $(MAKE) fetch-pb-from ; \ then $(MAKE) fetch-pb-from ; \
@ -430,6 +430,9 @@ maybe-fetch-pb:
if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; \ if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; \
then $(MAKE) fetch-pb ; fi then $(MAKE) fetch-pb ; fi
maybe-fetch-pb-as-is:
echo done
PB_DIR == racket/src/ChezScheme/boot/pb PB_DIR == racket/src/ChezScheme/boot/pb
fetch-pb-from: fetch-pb-from:

104
Makefile
View File

@ -1,6 +1,7 @@
# Generated from ".makefile" # Generated from ".makefile"
# Target values for VM: ("cs" "bc") # Target values for VM: ("cs" "bc")
# Target values for INITIAL_SETUP_MODE: ("minimal" "skip") # Target values for INITIAL_SETUP_MODE: ("minimal" "skip")
# Target values for AS_IS: ("" "-as-is")
# Target values for CS_CROSS_SUFFIX: ("-cross" "") # Target values for CS_CROSS_SUFFIX: ("-cross" "")
# Target values for NEXT_TARGET: ("plain-server" "plain-client-from-site" "plain-installers-from-built" "plain-site-from-installers" "plain-snapshot-at-site") # Target values for NEXT_TARGET: ("plain-server" "plain-client-from-site" "plain-installers-from-built" "plain-site-from-installers" "plain-snapshot-at-site")
# Target values for CLIENT_BASE: ("base" "cs-base" "bc-base") # Target values for CLIENT_BASE: ("base" "cs-base" "bc-base")
@ -18,6 +19,7 @@ PLT_SETUP_OPTIONS =
CPUS = CPUS =
VM = cs VM = cs
INITIAL_SETUP_MODE = minimal INITIAL_SETUP_MODE = minimal
AS_IS=
ALL_PKG_UPDATE_OPTIONS = --all --auto --no-setup --scope installation $(PKG_UPDATE_OPTIONS) ALL_PKG_UPDATE_OPTIONS = --all --auto --no-setup --scope installation $(PKG_UPDATE_OPTIONS)
ALL_PKG_INSTALL_OPTIONS = $(JOB_OPTIONS) --no-setup --pkgs --skip-installed --scope installation --deps search-auto $(REQUIRED_PKGS) $(PKGS) ALL_PKG_INSTALL_OPTIONS = $(JOB_OPTIONS) --no-setup --pkgs --skip-installed --scope installation --deps search-auto $(REQUIRED_PKGS) $(PKGS)
ALL_PLT_SETUP_OPTIONS = $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) ALL_PLT_SETUP_OPTIONS = $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)
@ -45,7 +47,7 @@ RACKETCS_SUFFIX =
RACKET = RACKET =
RACKET_FOR_BOOTFILES = $(RACKET) RACKET_FOR_BOOTFILES = $(RACKET)
RACKET_FOR_BUILD = $(RACKET) RACKET_FOR_BUILD = $(RACKET)
PB_BRANCH = circa-7.8.0.10-2 PB_BRANCH = circa-7.8.0.10-6
PB_REPO = https://github.com/racket/pb PB_REPO = https://github.com/racket/pb
EXTRA_REPOS_BASE = EXTRA_REPOS_BASE =
CS_CROSS_SUFFIX = CS_CROSS_SUFFIX =
@ -133,14 +135,14 @@ DRIVE_DESCRIBE =
DRIVE_CMD_q = -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR) DRIVE_CMD_q = -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)
DOC_CATALOGS = build/built/catalog build/native/catalog DOC_CATALOGS = build/built/catalog build/native/catalog
main: main:
$(MAKE) in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" $(MAKE) in-place AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)"
win: win:
$(MAKE) win-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
in-place: in-place:
if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-in-place AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi
plain-in-place: plain-in-place:
$(MAKE) base-config $(MAKE) base-config
$(MAKE) $(VM)-$(INITIAL_SETUP_MODE)-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) $(VM)-$(INITIAL_SETUP_MODE)-in-place AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
$(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
win-in-place: win-in-place:
$(MAKE) win-base-config $(MAKE) win-base-config
@ -154,18 +156,18 @@ plain-minimal-in-place-after-base:
plain-in-place-setup: plain-in-place-setup:
$(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) $(IN_PLACE_SETUP_OPTIONS) $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) $(IN_PLACE_SETUP_OPTIONS)
as-is: as-is:
if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-as-is CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-as-is AS_IS="-as-is" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" AS_IS="-as-is" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi
plain-as-is: plain-as-is:
$(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) plain-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)"
$(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
win-as-is: win-as-is:
$(MAKE) win-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
$(MAKE) win-$(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) win-$(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
unix-style: unix-style:
if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-unix-style CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-unix-style JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-unix-style AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-unix-style JOB_OPTIONS="-j $(CPUS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi
plain-unix-style: plain-unix-style:
if [ "$(PREFIX)" = "" ] ; then $(MAKE) error-need-prefix ; fi if [ "$(PREFIX)" = "" ] ; then $(MAKE) error-need-prefix ; fi
$(MAKE) $(VM)-base MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --prefix=$(PREFIX) --enable-macprefix" CONFIG_IN_PLACE_ARGS="" SELF_ROOT_CONFIG_FLAG="-Z" SKIP_DESTDIR_FIX="skip" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) $(VM)-base MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --prefix=$(PREFIX) --enable-macprefix" CONFIG_IN_PLACE_ARGS="" SELF_ROOT_CONFIG_FLAG="-Z" SKIP_DESTDIR_FIX="skip" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
$(MAKE) set-src-catalog DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) set-src-catalog DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)" SRC_CATALOG="$(SRC_CATALOG)"
$(MAKE) local-catalog DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)" $(MAKE) local-catalog DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)"
"$(DESTDIR)$(PREFIX)/bin/raco" pkg install $(JOB_OPTIONS) --catalog build/local/catalog --auto -i $(REQUIRED_PKGS) $(PKGS) "$(DESTDIR)$(PREFIX)/bin/raco" pkg install $(JOB_OPTIONS) --catalog build/local/catalog --auto -i $(REQUIRED_PKGS) $(PKGS)
@ -181,10 +183,10 @@ local-catalog:
set-src-catalog: set-src-catalog:
if [ ! "$(SRC_CATALOG)" = "$(DEFAULT_SRC_CATALOG)" ] ; then "$(DESTDIR)$(PREFIX)/bin/raco" pkg config -i --set catalogs "$(SRC_CATALOG)" ""; fi if [ ! "$(SRC_CATALOG)" = "$(DEFAULT_SRC_CATALOG)" ] ; then "$(DESTDIR)$(PREFIX)/bin/raco" pkg config -i --set catalogs "$(SRC_CATALOG)" ""; fi
base: base:
if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-base JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-base JOB_OPTIONS="-j $(CPUS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi
plain-base: plain-base:
$(MAKE) base-config $(MAKE) base-config
$(MAKE) $(VM)-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) $(VM)-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
win-base: win-base:
$(MAKE) win-base-config $(MAKE) win-base-config
$(MAKE) win-$(VM)-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-$(VM)-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
@ -195,11 +197,11 @@ win-base-config:
IF NOT EXIST build\config cmd /c mkdir build\config IF NOT EXIST build\config cmd /c mkdir build\config
cmd /c echo #hash((links-search-files . ())) > build\config\config.rktd cmd /c echo #hash((links-search-files . ())) > build\config\config.rktd
bc: bc:
$(MAKE) bc-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) bc-in-place AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-bc: win-bc:
$(MAKE) win-bc-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-bc-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
bc-in-place: bc-in-place:
$(MAKE) in-place VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) in-place VM=bc AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-bc-in-place: win-bc-in-place:
$(MAKE) win-in-place VM=bc DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-in-place VM=bc DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
bc-as-is: bc-as-is:
@ -207,7 +209,7 @@ bc-as-is:
win-bc-as-is: win-bc-as-is:
$(MAKE) win-as-is VM=bc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-as-is VM=bc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
bc-unix-style: bc-unix-style:
$(MAKE) unix-style VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) unix-style VM=bc AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
bc-minimal-in-place: bc-minimal-in-place:
$(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
$(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket/bin/racket$(RACKETBC_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket/bin/racket$(RACKETBC_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
@ -252,11 +254,11 @@ racket/src/build/cross/bc/Makefile: racket/src/bc/configure racket/src/cfg-bc ra
native-for-cross: native-for-cross:
$(MAKE) native-bc-for-cross MORE_CROSS_CONFIGURE_ARGS="$(MORE_CROSS_CONFIGURE_ARGS)" $(MAKE) native-bc-for-cross MORE_CROSS_CONFIGURE_ARGS="$(MORE_CROSS_CONFIGURE_ARGS)"
cs: cs:
$(MAKE) cs-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) cs-in-place AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-cs: win-cs:
$(MAKE) win-cs-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-cs-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
cs-in-place: cs-in-place:
$(MAKE) in-place VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) in-place VM=cs AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-cs-in-place: win-cs-in-place:
$(MAKE) win-in-place VM=cs DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-in-place VM=cs DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
cs-as-is: cs-as-is:
@ -264,15 +266,15 @@ cs-as-is:
win-cs-as-is: win-cs-as-is:
$(MAKE) win-as-is VM=cs DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-as-is VM=cs DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
cs-unix-style: cs-unix-style:
$(MAKE) unix-style VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) unix-style VM=cs AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
cs-minimal-in-place: cs-minimal-in-place:
$(MAKE) cs-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) cs-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
$(MAKE) cs-minimal-in-place-after-base$(CS_CROSS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) cs-minimal-in-place-after-base$(CS_CROSS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-cs-minimal-in-place: win-cs-minimal-in-place:
$(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" $(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)"
$(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
cs-skip-in-place: cs-skip-in-place:
$(MAKE) cs-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) cs-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
win-cs-skip-in-place: win-cs-skip-in-place:
$(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" $(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)"
cs-in-place-setup: cs-in-place-setup:
@ -280,7 +282,7 @@ cs-in-place-setup:
win-cs-in-place-setup: win-cs-in-place-setup:
$(MAKE) plain-in-place-setup PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) plain-in-place-setup PLAIN_RACKET=racket\racket$(RACKETCS_SUFFIX) IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
cs-base: cs-base:
$(MAKE) maybe-fetch-pb EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" $(MAKE) maybe-fetch-pb$(AS_IS) EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)"
if [ "$(RACKETCS_SUFFIX)" = "" ] ; then $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-csdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; else $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-csdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; fi if [ "$(RACKETCS_SUFFIX)" = "" ] ; then $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-csdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; else $(MAKE) cs-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-csdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; fi
cd racket/src/build/cs/c && $(MAKE) CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" cd racket/src/build/cs/c && $(MAKE) CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)"
$(MAKE) base-config $(MAKE) base-config
@ -296,22 +298,22 @@ cs-minimal-in-place-after-base:
$(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket/bin/racket$(RACKETCS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket/bin/racket$(RACKETCS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
cs-minimal-in-place-after-base-cross: cs-minimal-in-place-after-base-cross:
$(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET="$(RACKET_FOR_BUILD)" PLT_SETUP_OPTIONS="--no-pkg-deps $(PLT_SETUP_OPTIONS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET="$(RACKET_FOR_BUILD)" PLT_SETUP_OPTIONS="--no-pkg-deps $(PLT_SETUP_OPTIONS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
no-fetch-pb:
echo done
fetch-pb: fetch-pb:
if [ "$(EXTRA_REPOS_BASE)" = "" ] ; then $(MAKE) fetch-pb-from ; else $(MAKE) fetch-pb-from PB_REPO="$(EXTRA_REPOS_BASE)pb/.git" ; fi if [ "$(EXTRA_REPOS_BASE)" = "" ] ; then $(MAKE) fetch-pb-from ; else $(MAKE) fetch-pb-from PB_REPO="$(EXTRA_REPOS_BASE)pb/.git" ; fi
maybe-fetch-pb: maybe-fetch-pb:
if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; then $(MAKE) fetch-pb EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" ; fi if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; then $(MAKE) fetch-pb EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" ; fi
maybe-fetch-pb-as-is:
echo done
fetch-pb-from: fetch-pb-from:
mkdir -p racket/src/ChezScheme/boot mkdir -p racket/src/ChezScheme/boot
if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.10-2 https://github.com/racket/pb racket/src/ChezScheme/boot/pb ; else cd racket/src/ChezScheme/boot/pb && git fetch -q origin circa-7.8.0.10-2:remotes/origin/circa-7.8.0.10-2 ; fi if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.10-6 https://github.com/racket/pb racket/src/ChezScheme/boot/pb ; else cd racket/src/ChezScheme/boot/pb && git fetch -q origin circa-7.8.0.10-6:remotes/origin/circa-7.8.0.10-6 ; fi
cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.10-2 cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.10-6
pb-stage: pb-stage:
cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.10-2 cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.10-6
cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.10-2 cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.10-6
cd racket/src/ChezScheme/boot/pb && git add . && git commit --amend -m "new build" cd racket/src/ChezScheme/boot/pb && git add . && git commit --amend -m "new build"
pb-push: pb-push:
cd racket/src/ChezScheme/boot/pb && git push -u origin circa-7.8.0.10-2 cd racket/src/ChezScheme/boot/pb && git push -u origin circa-7.8.0.10-6
win-cs-base: win-cs-base:
IF "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-bc-then-cs-base SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=bc PLAIN_RACKET=racket\racketbc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" IF "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-bc-then-cs-base SETUP_BOOT_MODE=--boot WIN32_BUILD_LEVEL=bc PLAIN_RACKET=racket\racketbc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)"
IF not "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-just-cs-base SETUP_BOOT_MODE=--chain DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" IF not "$(RACKET_FOR_BUILD)" == "" $(MAKE) win-just-cs-base SETUP_BOOT_MODE=--chain DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)"
@ -333,23 +335,23 @@ native-cs-for-cross:
racket/src/build/cross/cs/c/Makefile: racket/src/cs/c/configure racket/src/cs/c/Makefile.in racket/src/build/cross/cs/c/Makefile: racket/src/cs/c/configure racket/src/cs/c/Makefile.in
cd racket/src/build/cross/cs/c; ../../../../cs/c/configure --enable-csdefault $(MORE_CROSS_CONFIGURE_ARGS) cd racket/src/build/cross/cs/c; ../../../../cs/c/configure --enable-csdefault $(MORE_CROSS_CONFIGURE_ARGS)
both: both:
$(MAKE) cs IN_PLACE_SETUP_OPTIONS="--error-out build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) cs IN_PLACE_SETUP_OPTIONS="--error-out build/step" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
$(MAKE) also-bc IN_PLACE_SETUP_OPTIONS="--error-in build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) also-bc IN_PLACE_SETUP_OPTIONS="--error-in build/step" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
plain-also: plain-also:
$(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
also-cs: also-cs:
$(MAKE) plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-also VM=cs AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
also-bc: also-bc:
$(MAKE) plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) plain-also VM=bc AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-both: win-both:
$(MAKE) win-cs DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-cs DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
$(MAKE) win-also-bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) win-also-bc AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-plain-also: win-plain-also:
$(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-also-cs: win-also-cs:
$(MAKE) win-plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) win-plain-also VM=cs AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win-also-bc: win-also-bc:
$(MAKE) win-plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) win-plain-also VM=bc AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
bootstrapped-repo: bootstrapped-repo:
if [ "$(EXTRA_REPOS_BASE)" = "" ] ; then $(MAKE) update-bootstrapped-normal GIT_UPDATE_ARGS_qq="$(GIT_UPDATE_ARGS_qq)" ; else $(MAKE) update-bootstrapped-as-extra GIT_CLONE_ARGS_qq="" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_PULL_ARGS_qq="$(GIT_PULL_ARGS_qq)" ; fi if [ "$(EXTRA_REPOS_BASE)" = "" ] ; then $(MAKE) update-bootstrapped-normal GIT_UPDATE_ARGS_qq="$(GIT_UPDATE_ARGS_qq)" ; else $(MAKE) update-bootstrapped-as-extra GIT_CLONE_ARGS_qq="" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_PULL_ARGS_qq="$(GIT_PULL_ARGS_qq)" ; fi
update-bootstrapped-normal: update-bootstrapped-normal:
@ -366,14 +368,14 @@ pkgs-catalog:
$(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -U -G build/config racket/src/pkgs-config.rkt "$(DEFAULT_SRC_CATALOG)" "$(SRC_CATALOG)" $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -U -G build/config racket/src/pkgs-config.rkt "$(DEFAULT_SRC_CATALOG)" "$(SRC_CATALOG)"
$(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects racket/src/pkgs-check.rkt racket/share/pkgs-catalog $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects racket/src/pkgs-check.rkt racket/share/pkgs-catalog
with-setup-flags: with-setup-flags:
if [ "$(SERVER_COMPILE_MACHINE)" = "-M" ] ; then $(MAKE) $(NEXT_TARGET) SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; else $(MAKE) $(NEXT_TARGET) BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; fi if [ "$(SERVER_COMPILE_MACHINE)" = "-M" ] ; then $(MAKE) $(NEXT_TARGET) SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; else $(MAKE) $(NEXT_TARGET) AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; fi
random: random:
echo $(MORE_CONFIGURE_ARGS) echo $(MORE_CONFIGURE_ARGS)
server: server:
$(MAKE) with-setup-flags NEXT_TARGET=plain-server BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) with-setup-flags NEXT_TARGET=plain-server AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
plain-server: plain-server:
rm -rf build/zo rm -rf build/zo
$(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) plain-base AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)"
$(MAKE) server-from-base BUILD_STAMP="$(BUILD_STAMP)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DOC_SEARCH="$(DOC_SEARCH)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" $(MAKE) server-from-base BUILD_STAMP="$(BUILD_STAMP)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DOC_SEARCH="$(DOC_SEARCH)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)"
server-from-base: server-from-base:
$(MAKE) build/site.rkt $(MAKE) build/site.rkt
@ -425,7 +427,7 @@ binary-catalog-server:
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/serve-catalog --mode binary "$(CONFIG)" "$(CONFIG_MODE)" "$(SERVER_HOSTS)" $(SERVER_PORT) $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/serve-catalog --mode binary "$(CONFIG)" "$(CONFIG_MODE)" "$(SERVER_HOSTS)" $(SERVER_PORT)
client: client:
if [ ! -d build/log ] ; then rm -rf build/user ; fi if [ ! -d build/log ] ; then rm -rf build/user ; fi
$(MAKE) $(CLIENT_BASE) MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) $(DISABLE_STATIC_LIBS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) $(CLIENT_BASE) MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) $(DISABLE_STATIC_LIBS)" AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)"
$(MAKE) distro-build-from-server JOB_OPTIONS="$(JOB_OPTIONS)" PLAIN_RACKET="$(PLAIN_RACKET)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SVR_CAT="$(SVR_CAT)" $(MAKE) distro-build-from-server JOB_OPTIONS="$(JOB_OPTIONS)" PLAIN_RACKET="$(PLAIN_RACKET)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SVR_CAT="$(SVR_CAT)"
$(MAKE) $(BUNDLE_FROM_SERVER_TARGET) COPY_ARGS="$(COPY_ARGS)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" $(MAKE) $(BUNDLE_FROM_SERVER_TARGET) COPY_ARGS="$(COPY_ARGS)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)"
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q) $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q)
@ -438,7 +440,7 @@ win-client:
$(WIN32_PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q) $(WIN32_PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q)
$(MAKE) win-installer-from-bundle DIST_BASE="$(DIST_BASE)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" TGZ_MODE="$(TGZ_MODE)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)" $(MAKE) win-installer-from-bundle DIST_BASE="$(DIST_BASE)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" TGZ_MODE="$(TGZ_MODE)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)"
client-compile-any: client-compile-any:
$(MAKE) client SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUNDLE_FROM_SERVER_TARGET=bundle-cross-from-server BUILD_STAMP="$(BUILD_STAMP)" CLIENT_BASE="$(CLIENT_BASE)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" COPY_ARGS="$(COPY_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) client SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUNDLE_FROM_SERVER_TARGET=bundle-cross-from-server AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLIENT_BASE="$(CLIENT_BASE)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" COPY_ARGS="$(COPY_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
distro-build-from-server: distro-build-from-server:
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -N raco -l- raco pkg install --catalog $(SVR_CAT) --scope user --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) distro-build-client $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -N raco -l- raco pkg install --catalog $(SVR_CAT) --scope user --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) distro-build-client
bundle-from-server: bundle-from-server:
@ -480,14 +482,14 @@ win-test-client:
$(WIN32_PLAIN_RACKET) -G bundle/racket/etc -X bundle/racket/collects -C -A bundle/user -l raco pkg install --catalog $(SVR_CAT) --scope installation --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) $(PKG_INSTALL_OPTIONS) --recompile-only $(PKG_SOURCE_MODE) $(TEST_PKGS) $(WIN32_PLAIN_RACKET) -G bundle/racket/etc -X bundle/racket/collects -C -A bundle/user -l raco pkg install --catalog $(SVR_CAT) --scope installation --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) $(PKG_INSTALL_OPTIONS) --recompile-only $(PKG_SOURCE_MODE) $(TEST_PKGS)
bundle\racket\raco test $(TEST_ARGS_q) bundle\racket\raco test $(TEST_ARGS_q)
client-from-site: client-from-site:
$(MAKE) with-setup-flags NEXT_TARGET=plain-client-from-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) with-setup-flags NEXT_TARGET=plain-client-from-site AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
plain-client-from-site: plain-client-from-site:
make client SERVER_CATALOG_PATH=$(SITE_PATH)catalog/ SERVER_COLLECTS_PATH=$(SITE_PATH)origin/ DIST_CATALOGS_q='$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)catalog/ ""' DOC_SEARCH="$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)doc/local-redirect/index.html" $(PROP_ARGS) make client SERVER_CATALOG_PATH=$(SITE_PATH)catalog/ SERVER_COLLECTS_PATH=$(SITE_PATH)origin/ DIST_CATALOGS_q='$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)catalog/ ""' DOC_SEARCH="$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)doc/local-redirect/index.html" $(PROP_ARGS)
installers: installers:
rm -rf build/installers rm -rf build/installers
$(MAKE) server SERVE_DURING_CMD_qq='-l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) server SERVE_DURING_CMD_qq='-l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
installers-from-built: installers-from-built:
$(MAKE) with-setup-flags NEXT_TARGET=plain-installers-from-built BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) with-setup-flags NEXT_TARGET=plain-installers-from-built AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
plain-installers-from-built: plain-installers-from-built:
$(MAKE) built-catalog-server SERVE_DURING_CMD_qq='-l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) built-catalog-server SERVE_DURING_CMD_qq='-l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)"
drive-clients: drive-clients:
@ -495,20 +497,20 @@ drive-clients:
describe-clients: describe-clients:
$(MAKE) drive-clients DRIVE_DESCRIBE=--describe CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_SEARCH="$(DOC_SEARCH)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" RELEASE_MODE="$(RELEASE_MODE)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SOURCE_MODE="$(SOURCE_MODE)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" $(MAKE) drive-clients DRIVE_DESCRIBE=--describe CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_SEARCH="$(DOC_SEARCH)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" RELEASE_MODE="$(RELEASE_MODE)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SOURCE_MODE="$(SOURCE_MODE)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)"
site: site:
$(MAKE) installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) installers AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
$(MAKE) site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) site-from-installers AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
site-from-installers: site-from-installers:
$(MAKE) with-setup-flags NEXT_TARGET=plain-site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) with-setup-flags NEXT_TARGET=plain-site-from-installers AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
plain-site-from-installers: plain-site-from-installers:
rm -rf build/docs rm -rf build/docs
rm -rf "build/zo`pwd`/build/docs" rm -rf "build/zo`pwd`/build/docs"
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/install-for-docs build/docs "$(CONFIG)" "$(CONFIG_MODE)" "$(PKGS)" $(DOC_CATALOGS) $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/install-for-docs build/docs "$(CONFIG)" "$(CONFIG_MODE)" "$(PKGS)" $(DOC_CATALOGS)
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/assemble-site "$(CONFIG)" "$(CONFIG_MODE)" "$(DIST_BASE)" $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/assemble-site "$(CONFIG)" "$(CONFIG_MODE)" "$(DIST_BASE)"
snapshot-site: snapshot-site:
$(MAKE) site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) site AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
$(MAKE) snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) snapshot-at-site AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
snapshot-at-site: snapshot-at-site:
$(MAKE) with-setup-flags NEXT_TARGET=plain-snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" $(MAKE) with-setup-flags NEXT_TARGET=plain-snapshot-at-site AS_IS="$(AS_IS)" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)"
plain-snapshot-at-site: plain-snapshot-at-site:
$(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/manage-snapshots "$(CONFIG)" "$(CONFIG_MODE)" "$(DIST_BASE)" $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/manage-snapshots "$(CONFIG)" "$(CONFIG_MODE)" "$(DIST_BASE)"
win32-in-place: win32-in-place:
@ -526,9 +528,9 @@ win32-cs-as-is:
win32-cs-base: win32-cs-base:
$(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" $(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)"
win32-both: win32-both:
$(MAKE) win-both CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-both AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)"
win32-also-cs: win32-also-cs:
$(MAKE) win-also-cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) win-also-cs AS_IS="$(AS_IS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" CS_HOST_WORKAREA_PREFIX="$(CS_HOST_WORKAREA_PREFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PKG_UPDATE_OPTIONS="$(PKG_UPDATE_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)"
win32-client: win32-client:
$(MAKE) win-client BUILD_STAMP="$(BUILD_STAMP)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" WIN32_CLIENT_BASE="$(WIN32_CLIENT_BASE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)" $(MAKE) win-client BUILD_STAMP="$(BUILD_STAMP)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" WIN32_CLIENT_BASE="$(WIN32_CLIENT_BASE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)"
win32-distro-build-from-server: win32-distro-build-from-server:

View File

@ -47,19 +47,19 @@ MTZlibLib=..\zlib\zlibmt.lib
MDLZ4Lib=..\lz4\lib\liblz4.lib MDLZ4Lib=..\lz4\lib\liblz4.lib
MTLZ4Lib=..\lz4\lib\liblz4mt.lib MTLZ4Lib=..\lz4\lib\liblz4mt.lib
csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-oce.c gc-ocd.c\ csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-par.c gc-oce.c gc-ocd.c\
number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\ number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\
foreign.c prim.c prim5.c flushcache.c\ foreign.c prim.c prim5.c flushcache.c\
windows.c\ windows.c\
schlib.c thread.c expeditor.c scheme.c compress-io.c random.c schlib.c thread.c expeditor.c scheme.c compress-io.c random.c
cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-oce.obj gc-ocd.obj\ cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-par.obj gc-oce.obj gc-ocd.obj\
number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\ number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\
foreign.obj prim.obj prim5.obj flushcache.obj\ foreign.obj prim.obj prim5.obj flushcache.obj\
windows.obj\ windows.obj\
schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj
hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h gc.c thread.h sort.h itest.c hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h atomic.h gc.c thread.h sort.h itest.c
.SUFFIXES: .SUFFIXES:

View File

@ -46,19 +46,19 @@ MTZlibLib=..\zlib\zlibmt.lib
MDLZ4Lib=..\lz4\lib\liblz4.lib MDLZ4Lib=..\lz4\lib\liblz4.lib
MTLZ4Lib=..\lz4\lib\liblz4mt.lib MTLZ4Lib=..\lz4\lib\liblz4mt.lib
csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-oce.c gc-ocd.c\ csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-par.c gc-oce.c gc-ocd.c\
number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\ number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\
foreign.c prim.c prim5.c flushcache.c\ foreign.c prim.c prim5.c flushcache.c\
windows.c\ windows.c\
schlib.c thread.c expeditor.c scheme.c compress-io.c random.c schlib.c thread.c expeditor.c scheme.c compress-io.c random.c
cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-oce.obj gc-ocd.obj\ cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-par.obj gc-oce.obj gc-ocd.obj\
number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\ number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\
foreign.obj prim.obj prim5.obj flushcache.obj\ foreign.obj prim.obj prim5.obj flushcache.obj\
windows.obj\ windows.obj\
schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj
hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h gc.c thread.h sort.h itest.c hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h atomic.h gc.c thread.h sort.h itest.c
.SUFFIXES: .SUFFIXES:

View File

@ -47,19 +47,19 @@ MTZlibLib=..\zlib\zlibmt.lib
MDLZ4Lib=..\lz4\lib\liblz4.lib MDLZ4Lib=..\lz4\lib\liblz4.lib
MTLZ4Lib=..\lz4\lib\liblz4mt.lib MTLZ4Lib=..\lz4\lib\liblz4mt.lib
csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-oce.c gc-ocd.c\ csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-par.c gc-oce.c gc-ocd.c\
number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\ number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\
foreign.c prim.c prim5.c flushcache.c\ foreign.c prim.c prim5.c flushcache.c\
windows.c\ windows.c\
schlib.c thread.c expeditor.c scheme.c compress-io.c random.c schlib.c thread.c expeditor.c scheme.c compress-io.c random.c
cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-oce.obj gc-ocd.obj\ cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.obj gc-par.obj gc-oce.obj gc-ocd.obj\
number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\ number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\
foreign.obj prim.obj prim5.obj flushcache.obj\ foreign.obj prim.obj prim5.obj flushcache.obj\
windows.obj\ windows.obj\
schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj
hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h gc.c thread.h sort.h itest.c hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h atomic.h gc.c thread.h sort.h itest.c
.SUFFIXES: .SUFFIXES:

View File

@ -47,19 +47,19 @@ MTZlibLib=..\zlib\zlibmt.lib
MDLZ4Lib=..\lz4\lib\liblz4.lib MDLZ4Lib=..\lz4\lib\liblz4.lib
MTLZ4Lib=..\lz4\lib\liblz4mt.lib MTLZ4Lib=..\lz4\lib\liblz4mt.lib
csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-oce.c gc-ocd.c\ csrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-par.c gc-oce.c gc-ocd.c\
number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\ number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c\
foreign.c prim.c prim5.c flushcache.c\ foreign.c prim.c prim5.c flushcache.c\
windows.c\ windows.c\
schlib.c thread.c expeditor.c scheme.c compress-io.c random.c schlib.c thread.c expeditor.c scheme.c compress-io.c random.c
cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.c gc-oce.obj gc-ocd.obj\ cobj=statics.obj segment.obj alloc.obj symbol.obj intern.obj gcwrapper.obj gc-011.c gc-par.obj gc-oce.obj gc-ocd.obj\
number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\ number.obj schsig.obj io.obj new-io.obj print.obj fasl.obj vfasl.obj stats.obj\
foreign.obj prim.obj prim5.obj flushcache.obj\ foreign.obj prim.obj prim5.obj flushcache.obj\
windows.obj\ windows.obj\
schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj schlib.obj thread.obj expeditor.obj scheme.obj compress-io.obj random.obj
hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h gc.c thread.h sort.h itest.c hsrc=system.h types.h version.h globals.h externs.h compress-io.h segment.h atomic.h gc.c thread.h sort.h itest.c
.SUFFIXES: .SUFFIXES:

View File

@ -35,13 +35,13 @@ KernelLib=../boot/$m/libkernel.a
KernelLibLinkDeps=${zlibDep} ${LZ4Dep} KernelLibLinkDeps=${zlibDep} ${LZ4Dep}
KernelLibLinkLibs=${zlibLib} ${LZ4Lib} KernelLibLinkLibs=${zlibLib} ${LZ4Lib}
kernelsrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-ocd.c gc-oce.c\ kernelsrc=statics.c segment.c alloc.c symbol.c intern.c gcwrapper.c gc-011.c gc-par.c gc-ocd.c gc-oce.c\
number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c foreign.c prim.c prim5.c flushcache.c\ number.c schsig.c io.c new-io.c print.c fasl.c vfasl.c stats.c foreign.c prim.c prim5.c flushcache.c\
schlib.c thread.c expeditor.c scheme.c compress-io.c random.c schlib.c thread.c expeditor.c scheme.c compress-io.c random.c
kernelobj=${kernelsrc:%.c=%.$o} ${mdobj} kernelobj=${kernelsrc:%.c=%.$o} ${mdobj}
kernelhdr=system.h types.h version.h globals.h externs.h segment.h gc.c sort.h thread.h config.h compress-io.h itest.c nocurses.h popcount.h kernelhdr=system.h types.h version.h globals.h externs.h segment.h atomic.h gc.c sort.h thread.h config.h compress-io.h itest.c nocurses.h popcount.h
mainsrc=main.c mainsrc=main.c
@ -64,12 +64,12 @@ endif
scheme.o: itest.c scheme.o: itest.c
scheme.o main.o: config.h scheme.o main.o: config.h
${kernelobj}: system.h types.h version.h externs.h globals.h segment.h thread.h config.h sort.h compress-io.h nocurses.h popcount.h ${kernelobj}: system.h types.h version.h externs.h globals.h segment.h atomic.h thread.h config.h sort.h compress-io.h nocurses.h popcount.h
${kernelobj}: ${Include}/equates.h ${Include}/scheme.h ${kernelobj}: ${Include}/equates.h ${Include}/scheme.h
${mainobj}: ${Include}/scheme.h ${mainobj}: ${Include}/scheme.h
${kernelobj}: ${zlibHeaderDep} ${LZ4HeaderDep} ${kernelobj}: ${zlibHeaderDep} ${LZ4HeaderDep}
gc-011.o gc-ocd.o gc-oce.o: gc.c gc-011.o gc-par.o gc-ocd.o gc-oce.o: gc.c
gc-011.o gc-ocd.o: ${Include}/gc-ocd.inc gc-011.o gc-par.o gc-ocd.o: ${Include}/gc-ocd.inc
gc-oce.o: ${Include}/gc-oce.inc gc-oce.o: ${Include}/gc-oce.inc
vfasl.o: ${Include}/vfasl.inc vfasl.o: ${Include}/vfasl.inc

View File

@ -24,13 +24,15 @@ void S_alloc_init() {
ISPC s; IGEN g; UINT i; ISPC s; IGEN g; UINT i;
if (S_boot_time) { if (S_boot_time) {
ptr tc = TO_PTR(S_G.thread_context);
/* reset the allocation tables */ /* reset the allocation tables */
for (g = 0; g <= static_generation; g++) { for (g = 0; g <= static_generation; g++) {
S_G.bytes_of_generation[g] = 0; S_G.bytes_of_generation[g] = 0;
for (s = 0; s <= max_real_space; s++) { for (s = 0; s <= max_real_space; s++) {
S_G.base_loc[g][s] = FIX(0); BASELOC_AT(tc, s, g) = FIX(0);
S_G.next_loc[g][s] = FIX(0); NEXTLOC_AT(tc, s, g) = FIX(0);
S_G.bytes_left[g][s] = 0; BYTESLEFT_AT(tc, s, g) = 0;
S_G.bytes_of_space[g][s] = 0; S_G.bytes_of_space[g][s] = 0;
} }
} }
@ -48,35 +50,35 @@ void S_alloc_init() {
S_G.nonprocedure_code = FIX(0); S_G.nonprocedure_code = FIX(0);
S_protect(&S_G.null_vector); S_protect(&S_G.null_vector);
find_room(space_new, 0, type_typed_object, size_vector(0), S_G.null_vector); find_room(tc, space_new, 0, type_typed_object, size_vector(0), S_G.null_vector);
VECTTYPE(S_G.null_vector) = (0 << vector_length_offset) | type_vector; VECTTYPE(S_G.null_vector) = (0 << vector_length_offset) | type_vector;
S_protect(&S_G.null_fxvector); S_protect(&S_G.null_fxvector);
find_room(space_new, 0, type_typed_object, size_fxvector(0), S_G.null_fxvector); find_room(tc, space_new, 0, type_typed_object, size_fxvector(0), S_G.null_fxvector);
FXVECTOR_TYPE(S_G.null_fxvector) = (0 << fxvector_length_offset) | type_fxvector; FXVECTOR_TYPE(S_G.null_fxvector) = (0 << fxvector_length_offset) | type_fxvector;
S_protect(&S_G.null_bytevector); S_protect(&S_G.null_bytevector);
find_room(space_new, 0, type_typed_object, size_bytevector(0), S_G.null_bytevector); find_room(tc, space_new, 0, type_typed_object, size_bytevector(0), S_G.null_bytevector);
BYTEVECTOR_TYPE(S_G.null_bytevector) = (0 << bytevector_length_offset) | type_bytevector; BYTEVECTOR_TYPE(S_G.null_bytevector) = (0 << bytevector_length_offset) | type_bytevector;
S_protect(&S_G.null_string); S_protect(&S_G.null_string);
find_room(space_new, 0, type_typed_object, size_string(0), S_G.null_string); find_room(tc, space_new, 0, type_typed_object, size_string(0), S_G.null_string);
STRTYPE(S_G.null_string) = (0 << string_length_offset) | type_string; STRTYPE(S_G.null_string) = (0 << string_length_offset) | type_string;
S_protect(&S_G.null_immutable_vector); S_protect(&S_G.null_immutable_vector);
find_room(space_new, 0, type_typed_object, size_vector(0), S_G.null_immutable_vector); find_room(tc, space_new, 0, type_typed_object, size_vector(0), S_G.null_immutable_vector);
VECTTYPE(S_G.null_immutable_vector) = (0 << vector_length_offset) | type_vector | vector_immutable_flag; VECTTYPE(S_G.null_immutable_vector) = (0 << vector_length_offset) | type_vector | vector_immutable_flag;
S_protect(&S_G.null_immutable_fxvector); S_protect(&S_G.null_immutable_fxvector);
find_room(space_new, 0, type_typed_object, size_fxvector(0), S_G.null_immutable_fxvector); find_room(tc, space_new, 0, type_typed_object, size_fxvector(0), S_G.null_immutable_fxvector);
FXVECTOR_TYPE(S_G.null_immutable_fxvector) = (0 << fxvector_length_offset) | type_fxvector | fxvector_immutable_flag; FXVECTOR_TYPE(S_G.null_immutable_fxvector) = (0 << fxvector_length_offset) | type_fxvector | fxvector_immutable_flag;
S_protect(&S_G.null_immutable_bytevector); S_protect(&S_G.null_immutable_bytevector);
find_room(space_new, 0, type_typed_object, size_bytevector(0), S_G.null_immutable_bytevector); find_room(tc, space_new, 0, type_typed_object, size_bytevector(0), S_G.null_immutable_bytevector);
BYTEVECTOR_TYPE(S_G.null_immutable_bytevector) = (0 << bytevector_length_offset) | type_bytevector | bytevector_immutable_flag; BYTEVECTOR_TYPE(S_G.null_immutable_bytevector) = (0 << bytevector_length_offset) | type_bytevector | bytevector_immutable_flag;
S_protect(&S_G.null_immutable_string); S_protect(&S_G.null_immutable_string);
find_room(space_new, 0, type_typed_object, size_string(0), S_G.null_immutable_string); find_room(tc, space_new, 0, type_typed_object, size_string(0), S_G.null_immutable_string);
STRTYPE(S_G.null_immutable_string) = (0 << string_length_offset) | type_string | string_immutable_flag; STRTYPE(S_G.null_immutable_string) = (0 << string_length_offset) | type_string | string_immutable_flag;
} }
} }
@ -101,7 +103,7 @@ void S_reset_scheme_stack(tc, n) ptr tc; iptr n; {
if (*x == snil) { if (*x == snil) {
if (n < default_stack_size) n = default_stack_size; if (n < default_stack_size) n = default_stack_size;
/* stacks are untyped objects */ /* stacks are untyped objects */
find_room(space_new, 0, typemod, n, SCHEMESTACK(tc)); find_room(tc, space_new, 0, typemod, n, SCHEMESTACK(tc));
break; break;
} }
if ((m = CACHEDSTACKSIZE(*x)) >= n) { if ((m = CACHEDSTACKSIZE(*x)) >= n) {
@ -150,12 +152,10 @@ ptr S_compute_bytes_allocated(xg, xs) ptr xg; ptr xs; {
while (g <= gmax) { while (g <= gmax) {
n += S_G.bytesof[g][countof_phantom]; n += S_G.bytesof[g][countof_phantom];
for (s = smin; s <= smax; s++) { for (s = smin; s <= smax; s++) {
ptr next_loc = S_G.next_loc[g][s]; ptr next_loc;
/* add in bytes previously recorded */ /* add in bytes previously recorded */
n += S_G.bytes_of_space[g][s]; n += S_G.bytes_of_space[g][s];
/* add in bytes in active segments */ /* add in bytes in active segments */
if (next_loc != FIX(0))
n += (uptr)next_loc - (uptr)S_G.base_loc[g][s];
next_loc = NEXTLOC_AT(tc, s, g); next_loc = NEXTLOC_AT(tc, s, g);
if (next_loc != FIX(0)) if (next_loc != FIX(0))
n += (uptr)next_loc - (uptr)BASELOC_AT(tc, s, g); n += (uptr)next_loc - (uptr)BASELOC_AT(tc, s, g);
@ -186,27 +186,8 @@ static void maybe_fire_collector() {
S_fire_collector(); S_fire_collector();
} }
static ptr more_room_segment(ISPC s, IGEN g, iptr n, iptr *_new_bytes) /* suitable mutex (either tc_mutex or gc_tc_mutex) must be held */
{ static void close_off_segment(ptr tc, ptr old, ptr base_loc, ptr sweep_loc, ISPC s, IGEN g)
iptr nsegs, seg;
ptr new;
S_pants_down += 1;
nsegs = (uptr)(n + ptr_bytes + bytes_per_segment - 1) >> segment_offset_bits;
/* block requests to minimize fragmentation and improve cache locality */
if (s == space_code && nsegs < 16) nsegs = 16;
seg = S_find_segments(s, g, nsegs);
new = build_ptr(seg, 0);
*_new_bytes = nsegs * bytes_per_segment;
return new;
}
static void close_off_segment(ptr old, ptr base_loc, ptr sweep_loc, ISPC s, IGEN g)
{ {
if (base_loc) { if (base_loc) {
seginfo *si; seginfo *si;
@ -219,84 +200,66 @@ static void close_off_segment(ptr old, ptr base_loc, ptr sweep_loc, ISPC s, IGEN
/* lay down an end-of-segment marker */ /* lay down an end-of-segment marker */
*(ptr*)TO_VOIDP(old) = forward_marker; *(ptr*)TO_VOIDP(old) = forward_marker;
/* add to sweep list */ /* in case this is during a GC, add to sweep list */
si = SegInfo(addr_get_segment(base_loc)); si = SegInfo(addr_get_segment(base_loc));
si->sweep_next = S_G.to_sweep[g][s];
si->sweep_start = sweep_loc; si->sweep_start = sweep_loc;
S_G.to_sweep[g][s] = si; si->sweep_next = TO_VOIDP(SWEEPNEXT_AT(tc, s, g));
SWEEPNEXT_AT(tc, s, g) = TO_PTR(si);
} }
} }
static void more_room_done(IGEN g)
{
if (g == 0 && S_pants_down == 1) maybe_fire_collector();
S_pants_down -= 1;
}
/* find_more_room
* S_find_more_room is called from the macro find_room when
* the current segment is too full to fit the allocation.
*
* A forward_marker followed by a pointer to
* the newly obtained segment is placed at next_loc to show
* gc where the end of this segment is and where the next
* segment of this type resides. Allocation occurs from the
* beginning of the newly obtained segment. The need for the
* eos marker explains the ptr_bytes byte factor in
* S_find_more_room.
*/
/* S_find_more_room is always called with mutex */
ptr S_find_more_room(s, g, n, old) ISPC s; IGEN g; iptr n; ptr old; {
ptr new;
iptr new_bytes;
close_off_segment(old, S_G.base_loc[g][s], S_G.sweep_loc[g][s], s, g);
new = more_room_segment(s, g, n, &new_bytes);
/* base address of current block of segments to track amount of allocation
and to register a closed-off segment in the sweep list */
S_G.base_loc[g][s] = new;
/* in case a GC has started: */
S_G.sweep_loc[g][s] = new;
S_G.next_loc[g][s] = (ptr)((uptr)new + n);
S_G.bytes_left[g][s] = (new_bytes - n) - ptr_bytes;
more_room_done(g);
return new;
}
ptr S_find_more_thread_room(ptr tc, ISPC s, IGEN g, iptr n, ptr old) { ptr S_find_more_thread_room(ptr tc, ISPC s, IGEN g, iptr n, ptr old) {
iptr nsegs, seg;
ptr new; ptr new;
iptr new_bytes; iptr new_bytes;
tc_mutex_acquire() #ifdef PTHREADS
if (S_use_gc_tc_mutex)
gc_tc_mutex_acquire();
else
tc_mutex_acquire();
#else
tc_mutex_acquire();
#endif
/* closing off segment effectively moves to global space: */ close_off_segment(tc, old, BASELOC_AT(tc, s, g), SWEEPLOC_AT(tc, s, g), s, g);
close_off_segment(old, BASELOC_AT(tc, s, g), SWEEPLOC_AT(tc, s, g), s, g);
new = more_room_segment(s, g, n, &new_bytes); S_pants_down += 1;
nsegs = (uptr)(n + ptr_bytes + bytes_per_segment - 1) >> segment_offset_bits;
/* block requests to minimize fragmentation and improve cache locality */
if (s == space_code && nsegs < 16) nsegs = 16;
seg = S_find_segments(tc, s, g, nsegs);
new = build_ptr(seg, 0);
new_bytes = nsegs * bytes_per_segment;
BASELOC_AT(tc, s, g) = new; BASELOC_AT(tc, s, g) = new;
SWEEPLOC_AT(tc, s, g) = new; SWEEPLOC_AT(tc, s, g) = new;
BYTESLEFT_AT(tc, s, g) = (new_bytes - n) - ptr_bytes; BYTESLEFT_AT(tc, s, g) = (new_bytes - n) - ptr_bytes;
NEXTLOC_AT(tc, s, g) = (ptr)((uptr)new + n); NEXTLOC_AT(tc, s, g) = (ptr)((uptr)new + n);
more_room_done(g); if (g == 0 && S_pants_down == 1) maybe_fire_collector();
tc_mutex_release() S_pants_down -= 1;
#ifdef PTHREADS
if (S_use_gc_tc_mutex)
gc_tc_mutex_release();
else
tc_mutex_release();
#else
tc_mutex_release();
#endif
return new; return new;
} }
/* tc_mutex must be held */ /* tc_mutex must be held */
void S_close_off_thread_local_segment(ptr tc, ISPC s, IGEN g) { void S_close_off_thread_local_segment(ptr tc, ISPC s, IGEN g) {
/* closing off segment effectively moves to global space: */ close_off_segment(tc, NEXTLOC_AT(tc, s, g), BASELOC_AT(tc, s, g), SWEEPLOC_AT(tc, s, g), s, g);
close_off_segment(NEXTLOC_AT(tc, s, g), BASELOC_AT(tc, s, g), SWEEPLOC_AT(tc, s, g), s, g);
BASELOC_AT(tc, s, g) = (ptr)0; BASELOC_AT(tc, s, g) = (ptr)0;
BYTESLEFT_AT(tc, s, g) = 0; BYTESLEFT_AT(tc, s, g) = 0;
@ -319,14 +282,14 @@ void S_reset_allocation_pointer(tc) ptr tc; {
S_pants_down += 1; S_pants_down += 1;
seg = S_find_segments(space_new, 0, 1); seg = S_find_segments(tc, space_new, 0, 1);
/* NB: if allocate_segments didn't already ensure we don't use the last segment /* NB: if allocate_segments didn't already ensure we don't use the last segment
of memory, we'd have to reject it here so cp2-alloc can avoid a carry check for of memory, we'd have to reject it here so cp2-alloc can avoid a carry check for
small allocation requests, using something like this: small allocation requests, using something like this:
if (seg == (((uptr)1 << (ptr_bits - segment_offset_bits)) - 1)) if (seg == (((uptr)1 << (ptr_bits - segment_offset_bits)) - 1))
seg = S_find_segments(space_new, 0, 1); seg = S_find_segments(tc, space_new, 0, 1);
*/ */
S_G.bytes_of_space[0][space_new] += bytes_per_segment; S_G.bytes_of_space[0][space_new] += bytes_per_segment;
@ -340,20 +303,23 @@ void S_reset_allocation_pointer(tc) ptr tc; {
S_pants_down -= 1; S_pants_down -= 1;
} }
void S_record_new_dirty_card(ptr *ppp, IGEN to_g) { void S_record_new_dirty_card(ptr tc, ptr *ppp, IGEN to_g) {
uptr card = (uptr)TO_PTR(ppp) >> card_offset_bits; uptr card = (uptr)TO_PTR(ppp) >> card_offset_bits;
dirtycardinfo *ndc;
dirtycardinfo *ndc = S_G.new_dirty_cards; gc_tc_mutex_acquire();
ndc = S_G.new_dirty_cards;
if (ndc != NULL && ndc->card == card) { if (ndc != NULL && ndc->card == card) {
if (to_g < ndc->youngest) ndc->youngest = to_g; if (to_g < ndc->youngest) ndc->youngest = to_g;
} else { } else {
dirtycardinfo *next = ndc; dirtycardinfo *next = ndc;
find_room_voidp(space_new, 0, ptr_align(sizeof(dirtycardinfo)), ndc); find_room_voidp(tc, space_new, 0, ptr_align(sizeof(dirtycardinfo)), ndc);
ndc->card = card; ndc->card = card;
ndc->youngest = to_g; ndc->youngest = to_g;
ndc->next = next; ndc->next = next;
S_G.new_dirty_cards = ndc; S_G.new_dirty_cards = ndc;
} }
gc_tc_mutex_release();
} }
FORCEINLINE void mark_segment_dirty(seginfo *si, IGEN from_g, IGEN to_g) { FORCEINLINE void mark_segment_dirty(seginfo *si, IGEN from_g, IGEN to_g) {
@ -384,7 +350,7 @@ void S_dirty_set(ptr *loc, ptr x) {
if (!IMMEDIATE(x)) { if (!IMMEDIATE(x)) {
seginfo *t_si = SegInfo(ptr_get_segment(x)); seginfo *t_si = SegInfo(ptr_get_segment(x));
if (t_si->generation < si->generation) if (t_si->generation < si->generation)
S_record_new_dirty_card(loc, t_si->generation); S_record_new_dirty_card(get_thread_context(), loc, t_si->generation);
} }
} else { } else {
IGEN from_g = si->generation; IGEN from_g = si->generation;
@ -445,7 +411,7 @@ void S_scan_remembered_set() {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
uptr ap, eap, real_eap; uptr ap, eap, real_eap;
tc_mutex_acquire() tc_mutex_acquire();
ap = (uptr)AP(tc); ap = (uptr)AP(tc);
eap = (uptr)EAP(tc); eap = (uptr)EAP(tc);
@ -464,7 +430,7 @@ void S_scan_remembered_set() {
S_reset_allocation_pointer(tc); S_reset_allocation_pointer(tc);
} }
tc_mutex_release() tc_mutex_release();
} }
/* S_get_more_room is called from genereated machine code when there is /* S_get_more_room is called from genereated machine code when there is
@ -492,7 +458,14 @@ ptr S_get_more_room_help(ptr tc, uptr ap, uptr type, uptr size) {
eap = (uptr)EAP(tc); eap = (uptr)EAP(tc);
real_eap = (uptr)REAL_EAP(tc); real_eap = (uptr)REAL_EAP(tc);
tc_mutex_acquire() #ifdef PTHREADS
if (S_use_gc_tc_mutex)
gc_tc_mutex_acquire();
else
tc_mutex_acquire();
#else
tc_mutex_acquire();
#endif
S_scan_dirty(TO_VOIDP(eap), TO_VOIDP(real_eap)); S_scan_dirty(TO_VOIDP(eap), TO_VOIDP(real_eap));
eap = real_eap; eap = real_eap;
@ -512,7 +485,7 @@ ptr S_get_more_room_help(ptr tc, uptr ap, uptr type, uptr size) {
} else if (eap - ap > alloc_waste_maximum) { } else if (eap - ap > alloc_waste_maximum) {
AP(tc) = (ptr)ap; AP(tc) = (ptr)ap;
EAP(tc) = (ptr)eap; EAP(tc) = (ptr)eap;
find_room(space_new, 0, type, size, x); find_room(tc, space_new, 0, type, size, x);
} else { } else {
uptr bytes = eap - ap; uptr bytes = eap - ap;
S_G.bytes_of_space[0][space_new] -= bytes; S_G.bytes_of_space[0][space_new] -= bytes;
@ -523,11 +496,18 @@ ptr S_get_more_room_help(ptr tc, uptr ap, uptr type, uptr size) {
x = TYPE(ap, type); x = TYPE(ap, type);
AP(tc) = (ptr)(ap + size); AP(tc) = (ptr)(ap + size);
} else { } else {
find_room(space_new, 0, type, size, x); find_room(tc, space_new, 0, type, size, x);
} }
} }
tc_mutex_release() #ifdef PTHREADS
if (S_use_gc_tc_mutex)
gc_tc_mutex_release();
else
tc_mutex_release();
#else
tc_mutex_release();
#endif
return x; return x;
} }
@ -550,16 +530,12 @@ void S_list_bits_set(p, bits) ptr p; iptr bits; {
if (!si->list_bits) { if (!si->list_bits) {
void *list_bits; void *list_bits;
if (si->generation == 0) {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
thread_find_room_voidp(tc, ptr_align(segment_bitmap_bytes), list_bits);
} else {
tc_mutex_acquire()
find_room_voidp(space_data, si->generation, ptr_align(segment_bitmap_bytes), list_bits); if (si->generation == 0)
tc_mutex_release() newspace_find_room_voidp(tc, ptr_align(segment_bitmap_bytes), list_bits);
} else
find_room_voidp(tc, space_data, si->generation, ptr_align(segment_bitmap_bytes), list_bits);
memset(list_bits, 0, segment_bitmap_bytes); memset(list_bits, 0, segment_bitmap_bytes);
@ -576,21 +552,10 @@ void S_list_bits_set(p, bits) ptr p; iptr bits; {
si->list_bits[segment_bitmap_byte(p)] |= segment_bitmap_bits(p, bits); si->list_bits[segment_bitmap_byte(p)] |= segment_bitmap_bits(p, bits);
} }
/* tc_mutex must be held */ ptr S_cons_in(tc, s, g, car, cdr) ptr tc; ISPC s; IGEN g; ptr car, cdr; {
ptr S_cons_in_global(s, g, car, cdr) ISPC s; IGEN g; ptr car, cdr; {
ptr p; ptr p;
find_room(s, g, type_pair, size_pair, p); find_room(tc, s, g, type_pair, size_pair, p);
INITCAR(p) = car;
INITCDR(p) = cdr;
return p;
}
ptr S_cons_in(s, g, car, cdr) ISPC s; IGEN g; ptr car, cdr; {
ptr tc = get_thread_context();
ptr p;
thread_find_room_g(tc, s, g, type_pair, size_pair, p);
INITCAR(p) = car; INITCAR(p) = car;
INITCDR(p) = cdr; INITCDR(p) = cdr;
return p; return p;
@ -600,7 +565,7 @@ ptr Scons(car, cdr) ptr car, cdr; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_pair, size_pair, p); newspace_find_room(tc, type_pair, size_pair, p);
INITCAR(p) = car; INITCAR(p) = car;
INITCDR(p) = cdr; INITCDR(p) = cdr;
return p; return p;
@ -610,7 +575,7 @@ ptr S_ephemeron_cons_in(gen, car, cdr) IGEN gen; ptr car, cdr; {
ptr p; ptr p;
ptr tc = get_thread_context(); ptr tc = get_thread_context();
thread_find_room_g(tc, space_ephemeron, gen, type_pair, size_ephemeron, p); find_room(tc, space_ephemeron, gen, type_pair, size_ephemeron, p);
INITCAR(p) = car; INITCAR(p) = car;
INITCDR(p) = cdr; INITCDR(p) = cdr;
EPHEMERONPREVREF(p) = 0; EPHEMERONPREVREF(p) = 0;
@ -623,12 +588,10 @@ ptr S_box2(ref, immobile) ptr ref; IBOOL immobile; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
if (immobile) { if (immobile)
tc_mutex_acquire() find_room(tc, space_immobile_impure, 0, type_typed_object, size_box, p);
find_room(space_immobile_impure, 0, type_typed_object, size_box, p); else
tc_mutex_release() newspace_find_room(tc, type_typed_object, size_box, p);
} else
thread_find_room(tc, type_typed_object, size_box, p);
BOXTYPE(p) = type_box; BOXTYPE(p) = type_box;
INITBOXREF(p) = ref; INITBOXREF(p) = ref;
return p; return p;
@ -642,7 +605,7 @@ ptr S_symbol(name) ptr name; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_symbol, size_symbol, p); newspace_find_room(tc, type_symbol, size_symbol, p);
/* changes here should be reflected in the oblist collection code in gc.c */ /* changes here should be reflected in the oblist collection code in gc.c */
INITSYMVAL(p) = sunbound; INITSYMVAL(p) = sunbound;
INITSYMCODE(p,S_G.nonprocedure_code); INITSYMCODE(p,S_G.nonprocedure_code);
@ -659,7 +622,7 @@ ptr S_rational(n, d) ptr n, d; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, size_ratnum, p); newspace_find_room(tc, type_typed_object, size_ratnum, p);
RATTYPE(p) = type_ratnum; RATTYPE(p) = type_ratnum;
RATNUM(p) = n; RATNUM(p) = n;
RATDEN(p) = d; RATDEN(p) = d;
@ -671,7 +634,7 @@ ptr S_tlc(ptr keyval, ptr ht, ptr next) {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, size_tlc, p); newspace_find_room(tc, type_typed_object, size_tlc, p);
TLCTYPE(p) = type_tlc; TLCTYPE(p) = type_tlc;
INITTLCKEYVAL(p) = keyval; INITTLCKEYVAL(p) = keyval;
INITTLCHT(p) = ht; INITTLCHT(p) = ht;
@ -679,8 +642,7 @@ ptr S_tlc(ptr keyval, ptr ht, ptr next) {
return p; return p;
} }
/* S_vector_in is always called with mutex */ ptr S_vector_in(tc, s, g, n) ptr tc; ISPC s; IGEN g; iptr n; {
ptr S_vector_in(s, g, n) ISPC s; IGEN g; iptr n; {
ptr p; iptr d; ptr p; iptr d;
if (n == 0) return S_G.null_vector; if (n == 0) return S_G.null_vector;
@ -689,8 +651,7 @@ ptr S_vector_in(s, g, n) ISPC s; IGEN g; iptr n; {
S_error("", "invalid vector size request"); S_error("", "invalid vector size request");
d = size_vector(n); d = size_vector(n);
/* S_vector_in always called with mutex */ find_room(tc, s, g, type_typed_object, d, p);
find_room(s, g, type_typed_object, d, p);
VECTTYPE(p) = (n << vector_length_offset) | type_vector; VECTTYPE(p) = (n << vector_length_offset) | type_vector;
return p; return p;
} }
@ -707,7 +668,7 @@ ptr S_vector(n) iptr n; {
tc = get_thread_context(); tc = get_thread_context();
d = size_vector(n); d = size_vector(n);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
VECTTYPE(p) = (n << vector_length_offset) | type_vector; VECTTYPE(p) = (n << vector_length_offset) | type_vector;
return p; return p;
} }
@ -724,7 +685,7 @@ ptr S_fxvector(n) iptr n; {
tc = get_thread_context(); tc = get_thread_context();
d = size_fxvector(n); d = size_fxvector(n);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
FXVECTOR_TYPE(p) = (n << fxvector_length_offset) | type_fxvector; FXVECTOR_TYPE(p) = (n << fxvector_length_offset) | type_fxvector;
return p; return p;
} }
@ -745,40 +706,42 @@ ptr S_bytevector2(n, immobile) iptr n; IBOOL immobile; {
tc = get_thread_context(); tc = get_thread_context();
d = size_bytevector(n); d = size_bytevector(n);
if (immobile) { if (immobile)
tc_mutex_acquire() find_room(tc, space_immobile_data, 0, type_typed_object, d, p);
find_room(space_immobile_data, 0, type_typed_object, d, p); else
tc_mutex_release() newspace_find_room(tc, type_typed_object, d, p);
} else
thread_find_room(tc, type_typed_object, d, p);
BYTEVECTOR_TYPE(p) = (n << bytevector_length_offset) | type_bytevector; BYTEVECTOR_TYPE(p) = (n << bytevector_length_offset) | type_bytevector;
return p; return p;
} }
ptr S_null_immutable_vector() { ptr S_null_immutable_vector() {
ptr tc = get_thread_context();
ptr v; ptr v;
find_room(space_new, 0, type_typed_object, size_vector(0), v); find_room(tc, space_new, 0, type_typed_object, size_vector(0), v);
VECTTYPE(v) = (0 << vector_length_offset) | type_vector | vector_immutable_flag; VECTTYPE(v) = (0 << vector_length_offset) | type_vector | vector_immutable_flag;
return v; return v;
} }
ptr S_null_immutable_fxvector() { ptr S_null_immutable_fxvector() {
ptr tc = get_thread_context();
ptr v; ptr v;
find_room(space_new, 0, type_typed_object, size_fxvector(0), v); find_room(tc, space_new, 0, type_typed_object, size_fxvector(0), v);
VECTTYPE(v) = (0 << fxvector_length_offset) | type_fxvector | fxvector_immutable_flag; VECTTYPE(v) = (0 << fxvector_length_offset) | type_fxvector | fxvector_immutable_flag;
return v; return v;
} }
ptr S_null_immutable_bytevector() { ptr S_null_immutable_bytevector() {
ptr tc = get_thread_context();
ptr v; ptr v;
find_room(space_new, 0, type_typed_object, size_bytevector(0), v); find_room(tc, space_new, 0, type_typed_object, size_bytevector(0), v);
VECTTYPE(v) = (0 << bytevector_length_offset) | type_bytevector | bytevector_immutable_flag; VECTTYPE(v) = (0 << bytevector_length_offset) | type_bytevector | bytevector_immutable_flag;
return v; return v;
} }
ptr S_null_immutable_string() { ptr S_null_immutable_string() {
ptr tc = get_thread_context();
ptr v; ptr v;
find_room(space_new, 0, type_typed_object, size_string(0), v); find_room(tc, space_new, 0, type_typed_object, size_string(0), v);
VECTTYPE(v) = (0 << string_length_offset) | type_string | string_immutable_flag; VECTTYPE(v) = (0 << string_length_offset) | type_string | string_immutable_flag;
return v; return v;
} }
@ -791,7 +754,7 @@ ptr S_stencil_vector(mask) uptr mask; {
tc = get_thread_context(); tc = get_thread_context();
d = size_stencil_vector(n); d = size_stencil_vector(n);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
VECTTYPE(p) = (mask << stencil_vector_mask_offset) | type_stencil_vector; VECTTYPE(p) = (mask << stencil_vector_mask_offset) | type_stencil_vector;
return p; return p;
} }
@ -800,7 +763,7 @@ ptr S_record(n) iptr n; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, n, p); newspace_find_room(tc, type_typed_object, n, p);
return p; return p;
} }
@ -809,7 +772,7 @@ ptr S_closure(cod, n) ptr cod; iptr n; {
ptr p; iptr d; ptr p; iptr d;
d = size_closure(n); d = size_closure(n);
thread_find_room(tc, type_closure, d, p); newspace_find_room(tc, type_closure, d, p);
CLOSENTRY(p) = cod; CLOSENTRY(p) = cod;
return p; return p;
} }
@ -820,7 +783,7 @@ ptr S_mkcontinuation(s, g, nuate, stack, length, clength, link, ret, winders, at
ptr p; ptr p;
ptr tc = get_thread_context(); ptr tc = get_thread_context();
thread_find_room_g(tc, s, g, type_closure, size_continuation, p); find_room(tc, s, g, type_closure, size_continuation, p);
CLOSENTRY(p) = nuate; CLOSENTRY(p) = nuate;
CONTSTACK(p) = stack; CONTSTACK(p) = stack;
CONTLENGTH(p) = length; CONTLENGTH(p) = length;
@ -836,7 +799,7 @@ ptr Sflonum(x) double x; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_flonum, size_flonum, p); newspace_find_room(tc, type_flonum, size_flonum, p);
FLODAT(p) = x; FLODAT(p) = x;
return p; return p;
} }
@ -845,21 +808,19 @@ ptr S_inexactnum(rp, ip) double rp, ip; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, size_inexactnum, p); newspace_find_room(tc, type_typed_object, size_inexactnum, p);
INEXACTNUM_TYPE(p) = type_inexactnum; INEXACTNUM_TYPE(p) = type_inexactnum;
INEXACTNUM_REAL_PART(p) = rp; INEXACTNUM_REAL_PART(p) = rp;
INEXACTNUM_IMAG_PART(p) = ip; INEXACTNUM_IMAG_PART(p) = ip;
return p; return p;
} }
/* S_thread is always called with mutex */ ptr S_thread(tc) ptr tc; {
ptr S_thread(xtc) ptr xtc; {
ptr p; ptr p;
/* don't use thread_find_room since we may be building the current thread */ find_room(tc, space_new, 0, type_typed_object, size_thread, p);
find_room(space_new, 0, type_typed_object, size_thread, p);
TYPEFIELD(p) = (ptr)type_thread; TYPEFIELD(p) = (ptr)type_thread;
THREADTC(p) = (uptr)xtc; THREADTC(p) = (uptr)tc;
return p; return p;
} }
@ -867,7 +828,7 @@ ptr S_exactnum(a, b) ptr a, b; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, size_exactnum, p); newspace_find_room(tc, type_typed_object, size_exactnum, p);
EXACTNUM_TYPE(p) = type_exactnum; EXACTNUM_TYPE(p) = type_exactnum;
EXACTNUM_REAL_PART(p) = a; EXACTNUM_REAL_PART(p) = a;
EXACTNUM_IMAG_PART(p) = b; EXACTNUM_IMAG_PART(p) = b;
@ -892,7 +853,7 @@ ptr S_string(s, n) const char *s; iptr n; {
tc = get_thread_context(); tc = get_thread_context();
d = size_string(n); d = size_string(n);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
STRTYPE(p) = (n << string_length_offset) | type_string; STRTYPE(p) = (n << string_length_offset) | type_string;
/* fill the string with valid characters */ /* fill the string with valid characters */
@ -971,7 +932,7 @@ ptr Sstring_utf8(s, n) const char *s; iptr n; {
tc = get_thread_context(); tc = get_thread_context();
d = size_string(cc); d = size_string(cc);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
STRTYPE(p) = (cc << string_length_offset) | type_string; STRTYPE(p) = (cc << string_length_offset) | type_string;
/* fill the string */ /* fill the string */
@ -1041,7 +1002,7 @@ ptr S_bignum(tc, n, sign) ptr tc; iptr n; IBOOL sign; {
S_error("", "invalid bignum size request"); S_error("", "invalid bignum size request");
d = size_bignum(n); d = size_bignum(n);
thread_find_room(tc, type_typed_object, d, p); newspace_find_room(tc, type_typed_object, d, p);
BIGTYPE(p) = (uptr)n << bignum_length_offset | sign << bignum_sign_offset | type_bignum; BIGTYPE(p) = (uptr)n << bignum_length_offset | sign << bignum_sign_offset | type_bignum;
return p; return p;
} }
@ -1050,7 +1011,7 @@ ptr S_code(tc, type, n) ptr tc; iptr type, n; {
ptr p; iptr d; ptr p; iptr d;
d = size_code(n); d = size_code(n);
thread_find_room_g(tc, space_code, 0, type_typed_object, d, p); find_room(tc, space_code, 0, type_typed_object, d, p);
CODETYPE(p) = type; CODETYPE(p) = type;
CODELEN(p) = n; CODELEN(p) = n;
/* we record the code modification here, even though we haven't /* we record the code modification here, even though we haven't
@ -1065,20 +1026,21 @@ ptr S_relocation_table(n) iptr n; {
ptr p; iptr d; ptr p; iptr d;
d = size_reloc_table(n); d = size_reloc_table(n);
thread_find_room(tc, typemod, d, p); newspace_find_room(tc, typemod, d, p);
RELOCSIZE(p) = n; RELOCSIZE(p) = n;
return p; return p;
} }
ptr S_weak_cons(ptr car, ptr cdr) { ptr S_weak_cons(ptr car, ptr cdr) {
return S_cons_in(space_weakpair, 0, car, cdr); ptr tc = get_thread_context();
return S_cons_in(tc, space_weakpair, 0, car, cdr);
} }
ptr S_phantom_bytevector(sz) uptr sz; { ptr S_phantom_bytevector(sz) uptr sz; {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
ptr p; ptr p;
thread_find_room(tc, type_typed_object, size_phantom, p); newspace_find_room(tc, type_typed_object, size_phantom, p);
PHANTOMTYPE(p) = type_phantom; PHANTOMTYPE(p) = type_phantom;
PHANTOMLEN(p) = 0; PHANTOMLEN(p) = 0;
@ -1093,7 +1055,7 @@ void S_phantom_bytevector_adjust(ph, new_sz) ptr ph; uptr new_sz; {
seginfo *si; seginfo *si;
IGEN g; IGEN g;
tc_mutex_acquire() tc_mutex_acquire();
si = SegInfo(ptr_get_segment(ph)); si = SegInfo(ptr_get_segment(ph));
g = si->generation; g = si->generation;
@ -1102,5 +1064,5 @@ void S_phantom_bytevector_adjust(ph, new_sz) ptr ph; uptr new_sz; {
S_adjustmembytes(new_sz - old_sz); S_adjustmembytes(new_sz - old_sz);
PHANTOMLEN(ph) = new_sz; PHANTOMLEN(ph) = new_sz;
tc_mutex_release() tc_mutex_release();
} }

View File

@ -0,0 +1,124 @@
#if !defined(PTHREADS)
# define STORE_FENCE() do { } while (0)
#elif defined(__arm64__)
# define STORE_FENCE() __asm__ __volatile__ ("dmb ishst" : : : "memory")
# define ACQUIRE_FENCE() __asm__ __volatile__ ("dmb ish" : : : "memory")
# define RELEASE_FENCE() ACQUIRE_FENCE()
#elif defined(__arm__)
# if arm_isa_version == 7
# define STORE_FENCE() __asm__ __volatile__ ("dmb ishst" : : : "memory")
# define ACQUIRE_FENCE() __asm__ __volatile__ ("dmb ish" : : : "memory")
# define RELEASE_FENCE() ACQUIRE_FENCE()
# else
# define STORE_FENCE() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory")
# define ACQUIRE_FENCE() STORE_FENCE()
# define RELEASE_FENCE() STORE_FENCE()
# endif
#elif defined(__powerpc64__)
# define STORE_FENCE() __asm__ __volatile__ ("lwsync" : : : "memory")
# define ACQUIRE_FENCE() __asm__ __volatile__ ("sync" : : : "memory")
# define RELEASE_FENCE() ACQUIRE_FENCE()
#elif defined(__powerpc__) || defined(__POWERPC__)
# define STORE_FENCE() __asm__ __volatile__ ("sync" : : : "memory")
# define ACQUIRE_FENCE() STORE_FENCE()
# define RELEASE_FENCE() STORE_FENCE()
#else
# define STORE_FENCE() do { } while (0)
#endif
#ifndef ACQUIRE_FENCE
# define ACQUIRE_FENCE() do { } while (0)
#endif
#ifndef RELEASE_FENCE
# define RELEASE_FENCE() do { } while (0)
#endif
#if !defined(PTHREADS)
# define CAS_ANY_FENCE(a, old, new) ((*(a) == (old)) ? (*(a) = (new), 1) : 0)
#elif defined(__arm64__)
FORCEINLINE int CAS_LOAD_ACQUIRE(volatile void *addr, void *old_val, void *new_val) {
int ret;
__asm__ __volatile__ ("mov %0, #0\n\t"
"0:\n\t"
"ldaxr r12, [%1, #0]\n\t"
"cmp r12, %2\n\t"
"bne 1f\n\t"
"stxr r7, %3, [%1, #0]\n\t"
"cmp r7, #0\n\t"
"bne 1f\n\t"
"moveq %0, #1\n\t"
"1:\n\t"
: "=&r" (ret)
: "r" (addr), "r" (old_val), "r" (new_val)
: "cc", "memory", "r12", "r7");
return ret;
}
/* same as above, but ldaxr -> ldxr and stxr -> stlxr */
FORCEINLINE int CAS_STORE_RELEASE(volatile void *addr, void *old_val, void *new_val) {
int ret;
__asm__ __volatile__ ("mov %0, #0\n\t"
"0:\n\t"
"ldxr r12, [%1, #0]\n\t"
"cmp r12, %2\n\t"
"bne 1f\n\t"
"stlxr r7, %3, [%1, #0]\n\t"
"cmp r7, #0\n\t"
"bne 1f\n\t"
"moveq %0, #1\n\t"
"1:\n\t"
: "=&r" (ret)
: "r" (addr), "r" (old_val), "r" (new_val)
: "cc", "memory", "r12", "r7");
return ret;
}
#elif defined(__arm__)
FORCEINLINE int S_cas_any_fence(volatile void *addr, void *old_val, void *new_val) {
int ret;
__asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5\n\t"
"mov %0, #0\n\t"
"0:\n\t"
"ldrex r12, [%1, #0]\n\t"
"cmp r12, %2\n\t"
"bne 1f\n\t"
"strex r7, %3, [%1, #0]\n\t"
"cmp r7, #0\n\t"
"bne 1f\n\t"
"moveq %0, #1\n\t"
"1:\n\t"
: "=&r" (ret)
: "r" (addr), "r" (old_val), "r" (new_val)
: "cc", "memory", "r12", "r7");
return ret;
}
# define CAS_ANY_FENCE(a, old, new) S_cas_any_fence(a, old, new)
#elif (__GNUC__ >= 5) || defined(__clang__)
# define CAS_ANY_FENCE(a, old, new) __sync_bool_compare_and_swap(a, old, new)
#elif defined(_MSC_VER)
# if ptr_bits == 64
# define CAS_ANY_FENCE(a, old, new) (_InterlockedCompareExchange64((__int64 *)(a), (__int64)(new), (__int64)(old)) == (__int64)(old))
# else
# define CAS_ANY_FENCE(a, old, new) (_InterlockedCompareExchange64((long *)(a), (long)(new), (long)(old)) == (long)(old))
# endif
#elif defined(__i386__) || defined(__x86_64__)
# if ptr_bits == 64
# define CAS_OP_SIZE "q"
# else
# define CAS_OP_SIZE ""
# endif
FORCEINLINE int S_cas_any_fence(volatile void *addr, void *old_val, void *new_val) {
char result;
__asm__ __volatile__("lock; cmpxchg" CAS_OP_SIZE " %3, %0; setz %1"
: "=m"(*(void **)addr), "=q"(result)
: "m"(*(void **)addr), "r" (new_val), "a"(old_val)
: "memory");
return (int) result;
}
# define CAS_ANY_FENCE(a, old, new) S_cas_any_fence(a, old, new)
#else
# define CAS_ANY_FENCE(a, old, new) ((*(a) == (old)) ? (*(a) = (new), 1) : 0)
#endif
#ifdef CAS_ANY_FENCE
# define CAS_LOAD_ACQUIRE(a, old, new) CAS_ANY_FENCE(a, old, new)
# define CAS_STORE_RELEASE(a, old, new) CAS_ANY_FENCE(a, old, new)
#endif

View File

@ -66,7 +66,7 @@ extern void S_reset_allocation_pointer PROTO((ptr tc));
extern ptr S_compute_bytes_allocated PROTO((ptr xg, ptr xs)); extern ptr S_compute_bytes_allocated PROTO((ptr xg, ptr xs));
extern ptr S_bytes_finalized PROTO(()); extern ptr S_bytes_finalized PROTO(());
extern ptr S_find_more_room PROTO((ISPC s, IGEN g, iptr n, ptr old)); extern ptr S_find_more_room PROTO((ISPC s, IGEN g, iptr n, ptr old));
extern void S_record_new_dirty_card PROTO((ptr *ppp, IGEN to_g)); extern void S_record_new_dirty_card PROTO((ptr tc, ptr *ppp, IGEN to_g));
extern ptr S_find_more_thread_room PROTO((ptr tc, IGEN g, ISPC s, iptr n, ptr old)); extern ptr S_find_more_thread_room PROTO((ptr tc, IGEN g, ISPC s, iptr n, ptr old));
extern void S_close_off_thread_local_segment PROTO((ptr tc, ISPC s, IGEN g)); extern void S_close_off_thread_local_segment PROTO((ptr tc, ISPC s, IGEN g));
extern void S_dirty_set PROTO((ptr *loc, ptr x)); extern void S_dirty_set PROTO((ptr *loc, ptr x));
@ -77,13 +77,12 @@ extern void S_get_more_room PROTO((void));
extern ptr S_get_more_room_help PROTO((ptr tc, uptr ap, uptr type, uptr size)); extern ptr S_get_more_room_help PROTO((ptr tc, uptr ap, uptr type, uptr size));
extern ptr S_list_bits_ref PROTO((ptr p)); extern ptr S_list_bits_ref PROTO((ptr p));
extern void S_list_bits_set PROTO((ptr p, iptr bits)); extern void S_list_bits_set PROTO((ptr p, iptr bits));
extern ptr S_cons_in PROTO((ISPC s, IGEN g, ptr car, ptr cdr)); extern ptr S_cons_in PROTO((ptr tc, ISPC s, IGEN g, ptr car, ptr cdr));
extern ptr S_cons_in_global PROTO((ISPC s, IGEN g, ptr car, ptr cdr));
extern ptr S_ephemeron_cons_in PROTO((IGEN g, ptr car, ptr cdr)); extern ptr S_ephemeron_cons_in PROTO((IGEN g, ptr car, ptr cdr));
extern ptr S_symbol PROTO((ptr name)); extern ptr S_symbol PROTO((ptr name));
extern ptr S_rational PROTO((ptr n, ptr d)); extern ptr S_rational PROTO((ptr n, ptr d));
extern ptr S_tlc PROTO((ptr keyval, ptr tconc, ptr next)); extern ptr S_tlc PROTO((ptr keyval, ptr tconc, ptr next));
extern ptr S_vector_in PROTO((ISPC s, IGEN g, iptr n)); extern ptr S_vector_in PROTO((ptr tc, ISPC s, IGEN g, iptr n));
extern ptr S_vector PROTO((iptr n)); extern ptr S_vector PROTO((iptr n));
extern ptr S_fxvector PROTO((iptr n)); extern ptr S_fxvector PROTO((iptr n));
extern ptr S_bytevector PROTO((iptr n)); extern ptr S_bytevector PROTO((iptr n));
@ -180,6 +179,9 @@ extern void S_check_heap PROTO((IBOOL aftergc, IGEN target_gen));
/* gc-011.c */ /* gc-011.c */
extern void S_gc_011 PROTO((ptr tc)); extern void S_gc_011 PROTO((ptr tc));
/* gc-par.c */
extern ptr S_gc_par PROTO((ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots));
/* gc-ocd.c */ /* gc-ocd.c */
extern ptr S_gc_ocd PROTO((ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots)); extern ptr S_gc_ocd PROTO((ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots));
@ -380,7 +382,7 @@ extern INT matherr PROTO((struct exception *x));
extern void S_segment_init PROTO((void)); extern void S_segment_init PROTO((void));
extern void *S_getmem PROTO((iptr bytes, IBOOL zerofill)); extern void *S_getmem PROTO((iptr bytes, IBOOL zerofill));
extern void S_freemem PROTO((void *addr, iptr bytes)); extern void S_freemem PROTO((void *addr, iptr bytes));
extern iptr S_find_segments PROTO((ISPC s, IGEN g, iptr n)); extern iptr S_find_segments PROTO((ptr tc, ISPC s, IGEN g, iptr n));
extern void S_free_chunk PROTO((chunkinfo *chunk)); extern void S_free_chunk PROTO((chunkinfo *chunk));
extern void S_free_chunks PROTO((void)); extern void S_free_chunks PROTO((void));
extern uptr S_curmembytes PROTO((void)); extern uptr S_curmembytes PROTO((void));

View File

@ -809,7 +809,7 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) {
faslin(tc, &rtd_uid, t, pstrbuf, f); faslin(tc, &rtd_uid, t, pstrbuf, f);
tc_mutex_acquire() tc_mutex_acquire();
/* look for rtd on uid's property list */ /* look for rtd on uid's property list */
plist = SYMSPLIST(rtd_uid); plist = SYMSPLIST(rtd_uid);
@ -824,7 +824,7 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) {
if (!rtd_equiv(tmp, rtd)) if (!rtd_equiv(tmp, rtd))
S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(tmp), f->uf->path); S_error2("", "incompatible record type ~s in ~a", RECORDDESCNAME(tmp), f->uf->path);
} }
tc_mutex_release() tc_mutex_release();
return; return;
} }
} }
@ -838,7 +838,7 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) {
/* register rtd on uid's property list */ /* register rtd on uid's property list */
SETSYMSPLIST(rtd_uid, Scons(S_G.rtd_key, Scons(rtd, plist))); SETSYMSPLIST(rtd_uid, Scons(S_G.rtd_key, Scons(rtd, plist)));
tc_mutex_release() tc_mutex_release();
return; return;
} }
@ -879,7 +879,7 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) {
keyval = Scons(FIX(0), FIX(0)); keyval = Scons(FIX(0), FIX(0));
break; break;
case eq_hashtable_subtype_weak: case eq_hashtable_subtype_weak:
keyval = S_cons_in(space_weakpair, 0, FIX(0), FIX(0)); keyval = S_cons_in(tc, space_weakpair, 0, FIX(0), FIX(0));
break; break;
case eq_hashtable_subtype_ephemeron: case eq_hashtable_subtype_ephemeron:
default: default:
@ -1001,7 +1001,7 @@ static void faslin(ptr tc, ptr *x, ptr t, ptr *pstrbuf, faslFile f) {
return; return;
} }
case fasl_type_weak_pair: case fasl_type_weak_pair:
*x = S_cons_in(space_weakpair, 0, FIX(0), FIX(0)); *x = S_cons_in(tc, space_weakpair, 0, FIX(0), FIX(0));
faslin(tc, &INITCAR(*x), t, pstrbuf, f); faslin(tc, &INITCAR(*x), t, pstrbuf, f);
faslin(tc, &INITCDR(*x), t, pstrbuf, f); faslin(tc, &INITCDR(*x), t, pstrbuf, f);
return; return;

View File

@ -59,7 +59,7 @@ void S_record_code_mod(ptr tc, uptr addr, uptr bytes) {
#ifdef DEBUG #ifdef DEBUG
printf(" record_code_mod new range %x to %x\n", addr, end); fflush(stdout); printf(" record_code_mod new range %x to %x\n", addr, end); fflush(stdout);
#endif #endif
CODERANGESTOFLUSH(tc) = S_cons_in(space_new, 0, make_mod_range(addr, end), ls); CODERANGESTOFLUSH(tc) = S_cons_in(tc, space_new, 0, make_mod_range(addr, end), ls);
return; return;
} }

View File

@ -141,7 +141,7 @@ static ptr lookup(s) const char *s; {
x = lookup_static(s); x = lookup_static(s);
if (x == addr_to_ptr(0)) return x; if (x == addr_to_ptr(0)) return x;
tc_mutex_acquire() tc_mutex_acquire();
b = ptrhash(x); b = ptrhash(x);
for (p = Svector_ref(S_G.foreign_names, b); p != Snil; p = Scdr(p)) { for (p = Svector_ref(S_G.foreign_names, b); p != Snil; p = Scdr(p)) {
@ -154,14 +154,14 @@ static ptr lookup(s) const char *s; {
Svector_ref(S_G.foreign_names, b))); Svector_ref(S_G.foreign_names, b)));
quit: quit:
tc_mutex_release() tc_mutex_release();
return x; return x;
} }
void Sforeign_symbol(s, v) const char *s; void *v; { void Sforeign_symbol(s, v) const char *s; void *v; {
iptr b; ptr x; iptr b; ptr x;
tc_mutex_acquire() tc_mutex_acquire();
#ifdef HPUX #ifdef HPUX
v = proc2entry(v,name); v = proc2entry(v,name);
@ -174,7 +174,7 @@ void Sforeign_symbol(s, v) const char *s; void *v; {
} else if (ptr_to_addr(x) != v) } else if (ptr_to_addr(x) != v)
S_error1("Sforeign_symbol", "duplicate symbol entry for ~s", Sstring_utf8(s, -1)); S_error1("Sforeign_symbol", "duplicate symbol entry for ~s", Sstring_utf8(s, -1));
tc_mutex_release() tc_mutex_release();
} }
/* like Sforeign_symbol except it silently redefines the symbol /* like Sforeign_symbol except it silently redefines the symbol
@ -182,7 +182,7 @@ void Sforeign_symbol(s, v) const char *s; void *v; {
void Sregister_symbol(s, v) const char* s; void *v; { void Sregister_symbol(s, v) const char* s; void *v; {
iptr b; ptr p; iptr b; ptr p;
tc_mutex_acquire() tc_mutex_acquire();
b = symhash(s); b = symhash(s);
for (p = Svector_ref(S_G.foreign_static, b); p != Snil; p = Scdr(p)) for (p = Svector_ref(S_G.foreign_static, b); p != Snil; p = Scdr(p))
@ -194,14 +194,14 @@ void Sregister_symbol(s, v) const char* s; void *v; {
Svector_ref(S_G.foreign_static, b))); Svector_ref(S_G.foreign_static, b)));
quit: quit:
tc_mutex_release() tc_mutex_release();
} }
static ptr remove_foreign_entry(s) const char *s; { static ptr remove_foreign_entry(s) const char *s; {
iptr b; iptr b;
ptr tbl, p1, p2; ptr tbl, p1, p2;
tc_mutex_acquire() tc_mutex_acquire();
b = symhash(s); b = symhash(s);
tbl = S_G.foreign_static; tbl = S_G.foreign_static;
@ -214,11 +214,11 @@ static ptr remove_foreign_entry(s) const char *s; {
} else { } else {
SETCDR(p1, Scdr(p2)) SETCDR(p1, Scdr(p2))
} }
tc_mutex_release() tc_mutex_release();
return Strue; return Strue;
} }
} }
tc_mutex_release() tc_mutex_release();
return Sfalse; return Sfalse;
} }
@ -226,7 +226,7 @@ static ptr remove_foreign_entry(s) const char *s; {
static void load_shared_object(path) const char *path; { static void load_shared_object(path) const char *path; {
void *handle; void *handle;
tc_mutex_acquire() tc_mutex_acquire();
handle = dlopen(path, RTLD_NOW); handle = dlopen(path, RTLD_NOW);
if (handle == (void *)NULL) if (handle == (void *)NULL)
@ -234,7 +234,7 @@ static void load_shared_object(path) const char *path; {
Sstring_utf8(dlerror(), -1)); Sstring_utf8(dlerror(), -1));
S_foreign_dynamic = Scons(addr_to_ptr(handle), S_foreign_dynamic); S_foreign_dynamic = Scons(addr_to_ptr(handle), S_foreign_dynamic);
tc_mutex_release() tc_mutex_release();
return; return;
} }

View File

@ -0,0 +1,14 @@
/* gc-par.c
*/
#define GCENTRY S_gc_par_entry
#define ENABLE_PARALLEL
#include "gc.c"
ptr S_gc_par(ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) {
MAX_CG = max_cg;
MIN_TG = min_tg;
MAX_TG = max_tg;
return S_gc_par_entry(tc, count_roots);
}

File diff suppressed because it is too large Load Diff

View File

@ -188,7 +188,7 @@ void S_immobilize_object(x) ptr x; {
si = MaybeSegInfo(ptr_get_segment(x)); si = MaybeSegInfo(ptr_get_segment(x));
if ((si != NULL) && (si->generation != static_generation)) { if ((si != NULL) && (si->generation != static_generation)) {
tc_mutex_acquire() tc_mutex_acquire();
/* Try a little to to support cancellation of segment-level /* Try a little to to support cancellation of segment-level
* immobilzation --- but we don't try too hard */ * immobilzation --- but we don't try too hard */
@ -202,7 +202,7 @@ void S_immobilize_object(x) ptr x; {
objects must be marked; only those in the locked list must be objects must be marked; only those in the locked list must be
marked. Non-locked objects on `space_new` cannot be immobilized. */ marked. Non-locked objects on `space_new` cannot be immobilized. */
tc_mutex_release() tc_mutex_release();
} }
} }
@ -215,7 +215,7 @@ void S_mobilize_object(x) ptr x; {
si = MaybeSegInfo(ptr_get_segment(x)); si = MaybeSegInfo(ptr_get_segment(x));
if ((si != NULL) && (si->generation != static_generation)) { if ((si != NULL) && (si->generation != static_generation)) {
tc_mutex_acquire() tc_mutex_acquire();
if (si->must_mark == 0) if (si->must_mark == 0)
S_error_abort("S_mobilize_object(): object was definitely not immobilzed"); S_error_abort("S_mobilize_object(): object was definitely not immobilzed");
@ -224,7 +224,7 @@ void S_mobilize_object(x) ptr x; {
if (si->must_mark < MUST_MARK_INFINITY) if (si->must_mark < MUST_MARK_INFINITY)
--si->must_mark; --si->must_mark;
tc_mutex_release() tc_mutex_release();
} }
} }
@ -260,7 +260,7 @@ IBOOL Slocked_objectp(x) ptr x; {
if (IMMEDIATE(x) || (si = MaybeSegInfo(ptr_get_segment(x))) == NULL || (g = si->generation) == static_generation) return 1; if (IMMEDIATE(x) || (si = MaybeSegInfo(ptr_get_segment(x))) == NULL || (g = si->generation) == static_generation) return 1;
tc_mutex_acquire() tc_mutex_acquire();
ans = 0; ans = 0;
for (ls = S_G.locked_objects[g]; ls != Snil; ls = Scdr(ls)) { for (ls = S_G.locked_objects[g]; ls != Snil; ls = Scdr(ls)) {
@ -270,7 +270,7 @@ IBOOL Slocked_objectp(x) ptr x; {
} }
} }
tc_mutex_release() tc_mutex_release();
return ans; return ans;
} }
@ -278,7 +278,7 @@ IBOOL Slocked_objectp(x) ptr x; {
ptr S_locked_objects(void) { ptr S_locked_objects(void) {
IGEN g; ptr ans; ptr ls; IGEN g; ptr ans; ptr ls;
tc_mutex_acquire() tc_mutex_acquire();
ans = Snil; ans = Snil;
for (g = 0; g <= static_generation; INCRGEN(g)) { for (g = 0; g <= static_generation; INCRGEN(g)) {
@ -287,7 +287,7 @@ ptr S_locked_objects(void) {
} }
} }
tc_mutex_release() tc_mutex_release();
return ans; return ans;
} }
@ -297,7 +297,8 @@ void Slock_object(x) ptr x; {
/* weed out pointers that won't be relocated */ /* weed out pointers that won't be relocated */
if (!IMMEDIATE(x) && (si = MaybeSegInfo(ptr_get_segment(x))) != NULL && (g = si->generation) != static_generation) { if (!IMMEDIATE(x) && (si = MaybeSegInfo(ptr_get_segment(x))) != NULL && (g = si->generation) != static_generation) {
tc_mutex_acquire() ptr tc = get_thread_context();
tc_mutex_acquire();
S_pants_down += 1; S_pants_down += 1;
/* immobilize */ /* immobilize */
if (si->must_mark < MUST_MARK_INFINITY) { if (si->must_mark < MUST_MARK_INFINITY) {
@ -306,13 +307,13 @@ void Slock_object(x) ptr x; {
S_G.must_mark_gen0 = 1; S_G.must_mark_gen0 = 1;
} }
/* add x to locked list. remove from unlocked list */ /* add x to locked list. remove from unlocked list */
S_G.locked_objects[g] = S_cons_in((g == 0 ? space_new : space_impure), g, x, S_G.locked_objects[g]); S_G.locked_objects[g] = S_cons_in(tc, (g == 0 ? space_new : space_impure), g, x, S_G.locked_objects[g]);
if (S_G.enable_object_counts) { if (S_G.enable_object_counts) {
if (g != 0) S_G.countof[g][countof_pair] += 1; if (g != 0) S_G.countof[g][countof_pair] += 1;
} }
(void)remove_first_nomorep(x, &S_G.unlocked_objects[g], 0); (void)remove_first_nomorep(x, &S_G.unlocked_objects[g], 0);
S_pants_down -= 1; S_pants_down -= 1;
tc_mutex_release() tc_mutex_release();
} }
} }
@ -320,7 +321,8 @@ void Sunlock_object(x) ptr x; {
seginfo *si; IGEN g; seginfo *si; IGEN g;
if (!IMMEDIATE(x) && (si = MaybeSegInfo(ptr_get_segment(x))) != NULL && (g = si->generation) != static_generation) { if (!IMMEDIATE(x) && (si = MaybeSegInfo(ptr_get_segment(x))) != NULL && (g = si->generation) != static_generation) {
tc_mutex_acquire() ptr tc = get_thread_context();
tc_mutex_acquire();
S_pants_down += 1; S_pants_down += 1;
/* mobilize, if we haven't lost track */ /* mobilize, if we haven't lost track */
if (si->must_mark < MUST_MARK_INFINITY) if (si->must_mark < MUST_MARK_INFINITY)
@ -328,13 +330,13 @@ void Sunlock_object(x) ptr x; {
/* remove first occurrence of x from locked list. if there are no /* remove first occurrence of x from locked list. if there are no
others, add x to unlocked list */ others, add x to unlocked list */
if (remove_first_nomorep(x, &S_G.locked_objects[g], (si->space == space_new) && (si->generation > 0))) { if (remove_first_nomorep(x, &S_G.locked_objects[g], (si->space == space_new) && (si->generation > 0))) {
S_G.unlocked_objects[g] = S_cons_in((g == 0 ? space_new : space_impure), g, x, S_G.unlocked_objects[g]); S_G.unlocked_objects[g] = S_cons_in(tc, (g == 0 ? space_new : space_impure), g, x, S_G.unlocked_objects[g]);
if (S_G.enable_object_counts) { if (S_G.enable_object_counts) {
if (g != 0) S_G.countof[g][countof_pair] += 1; if (g != 0) S_G.countof[g][countof_pair] += 1;
} }
} }
S_pants_down -= 1; S_pants_down -= 1;
tc_mutex_release() tc_mutex_release();
} }
} }
@ -353,7 +355,7 @@ ptr s_help_unregister_guardian(ptr *pls, ptr tconc, ptr result) {
ptr S_unregister_guardian(ptr tconc) { ptr S_unregister_guardian(ptr tconc) {
ptr result, tc; IGEN g; ptr result, tc; IGEN g;
tc_mutex_acquire() tc_mutex_acquire();
tc = get_thread_context(); tc = get_thread_context();
/* in the interest of thread safety, gather entries only in the current thread, ignoring any others */ /* in the interest of thread safety, gather entries only in the current thread, ignoring any others */
result = s_help_unregister_guardian(&GUARDIANENTRIES(tc), tconc, Snil); result = s_help_unregister_guardian(&GUARDIANENTRIES(tc), tconc, Snil);
@ -361,15 +363,15 @@ ptr S_unregister_guardian(ptr tconc) {
for (g = 0; g <= static_generation; INCRGEN(g)) { for (g = 0; g <= static_generation; INCRGEN(g)) {
result = s_help_unregister_guardian(&S_G.guardians[g], tconc, result); result = s_help_unregister_guardian(&S_G.guardians[g], tconc, result);
} }
tc_mutex_release() tc_mutex_release();
return result; return result;
} }
#ifndef WIN32 #ifndef WIN32
void S_register_child_process(INT child) { void S_register_child_process(INT child) {
tc_mutex_acquire() tc_mutex_acquire();
S_child_processes[0] = Scons(FIX(child), S_child_processes[0]); S_child_processes[0] = Scons(FIX(child), S_child_processes[0]);
tc_mutex_release() tc_mutex_release();
} }
#endif /* WIN32 */ #endif /* WIN32 */
@ -384,7 +386,7 @@ void S_set_enable_object_counts(IBOOL eoc) {
ptr S_object_counts(void) { ptr S_object_counts(void) {
IGEN grtd, g; ptr ls; iptr i; ptr outer_alist; IGEN grtd, g; ptr ls; iptr i; ptr outer_alist;
tc_mutex_acquire() tc_mutex_acquire();
outer_alist = Snil; outer_alist = Snil;
@ -441,7 +443,7 @@ ptr S_object_counts(void) {
} }
} }
tc_mutex_release() tc_mutex_release();
return outer_alist; return outer_alist;
} }
@ -457,12 +459,12 @@ void S_set_enable_object_backreferences(IBOOL eoc) {
ptr S_object_backreferences(void) { ptr S_object_backreferences(void) {
IGEN g; ptr ls = Snil; IGEN g; ptr ls = Snil;
tc_mutex_acquire() tc_mutex_acquire();
for (g = S_G.max_nonstatic_generation+1; g--; ) for (g = S_G.max_nonstatic_generation+1; g--; )
ls = Scons(S_G.gcbackreference[g], ls); ls = Scons(S_G.gcbackreference[g], ls);
tc_mutex_release() tc_mutex_release();
return ls; return ls;
} }
@ -564,6 +566,22 @@ void S_check_heap(aftergc, mcg) IBOOL aftergc; IGEN mcg; {
check_dirty(); check_dirty();
{
ptr ls;
for (ls = S_threads; ls != Snil; ls = Scdr(ls)) {
ptr t_tc = (ptr)THREADTC(Scar(ls));
for (s = 0; s <= max_real_space; s += 1) {
for (g = 0; g <= static_generation; INCRGEN(g)) {
if ((NEXTLOC_AT(t_tc, s, g) == (ptr)0) != (BASELOC_AT(t_tc, s, g) == (ptr)0)) {
S_checkheap_errors += 1;
printf("!!! inconsistent thread NEXT %p and BASE %p\n",
TO_VOIDP(NEXTLOC_AT(t_tc, s, g)), TO_VOIDP(BASELOC_AT(t_tc, s, g)));
}
}
}
}
}
for (i = PARTIAL_CHUNK_POOLS; i >= -1; i -= 1) { for (i = PARTIAL_CHUNK_POOLS; i >= -1; i -= 1) {
chunkinfo *chunk = i == -1 ? S_chunks_full : S_chunks[i]; chunkinfo *chunk = i == -1 ? S_chunks_full : S_chunks[i];
while (chunk != NULL) { while (chunk != NULL) {
@ -658,8 +676,8 @@ void S_check_heap(aftergc, mcg) IBOOL aftergc; IGEN mcg; {
pp1 = TO_VOIDP(build_ptr(seg, 0)); pp1 = TO_VOIDP(build_ptr(seg, 0));
pp2 = TO_VOIDP(build_ptr(seg + 1, 0)); pp2 = TO_VOIDP(build_ptr(seg + 1, 0));
nl = TO_VOIDP(S_G.next_loc[g][s]); nl = NULL;
if (!(pp1 <= nl && nl < pp2)) { {
ptr ls; ptr ls;
for (ls = S_threads; ls != Snil; ls = Scdr(ls)) { for (ls = S_threads; ls != Snil; ls = Scdr(ls)) {
ptr t_tc = (ptr)THREADTC(Scar(ls)); ptr t_tc = (ptr)THREADTC(Scar(ls));
@ -978,11 +996,6 @@ ptr S_do_gc(IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) {
/* now transfer old_g info to new_g, and clear old_g info */ /* now transfer old_g info to new_g, and clear old_g info */
S_G.bytes_of_generation[new_g] = S_G.bytes_of_generation[old_g]; S_G.bytes_of_generation[old_g] = 0; S_G.bytes_of_generation[new_g] = S_G.bytes_of_generation[old_g]; S_G.bytes_of_generation[old_g] = 0;
for (s = 0; s <= max_real_space; s += 1) { for (s = 0; s <= max_real_space; s += 1) {
S_G.to_sweep[new_g][s] = S_G.to_sweep[old_g][s]; S_G.to_sweep[old_g][s] = NULL;
S_G.base_loc[new_g][s] = S_G.base_loc[old_g][s]; S_G.base_loc[old_g][s] = FIX(0);
S_G.next_loc[new_g][s] = S_G.next_loc[old_g][s]; S_G.next_loc[old_g][s] = FIX(0);
S_G.sweep_loc[new_g][s] = S_G.sweep_loc[old_g][s]; S_G.sweep_loc[old_g][s] = FIX(0);
S_G.bytes_left[new_g][s] = S_G.bytes_left[old_g][s]; S_G.bytes_left[old_g][s] = 0;
S_G.bytes_of_space[new_g][s] = S_G.bytes_of_space[old_g][s]; S_G.bytes_of_space[old_g][s] = 0; S_G.bytes_of_space[new_g][s] = S_G.bytes_of_space[old_g][s]; S_G.bytes_of_space[old_g][s] = 0;
S_G.occupied_segments[new_g][s] = S_G.occupied_segments[old_g][s]; S_G.occupied_segments[old_g][s] = NULL; S_G.occupied_segments[new_g][s] = S_G.occupied_segments[old_g][s]; S_G.occupied_segments[old_g][s] = NULL;
for (si = S_G.occupied_segments[new_g][s]; si != NULL; si = si->next) { for (si = S_G.occupied_segments[new_g][s]; si != NULL; si = si->next) {
@ -996,6 +1009,7 @@ ptr S_do_gc(IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) {
NEXTLOC_AT(t_tc, s, new_g) = NEXTLOC_AT(t_tc, s, old_g); NEXTLOC_AT(t_tc, s, old_g) = (ptr)0; NEXTLOC_AT(t_tc, s, new_g) = NEXTLOC_AT(t_tc, s, old_g); NEXTLOC_AT(t_tc, s, old_g) = (ptr)0;
BYTESLEFT_AT(t_tc, s, new_g) = BYTESLEFT_AT(t_tc, s, old_g); BYTESLEFT_AT(t_tc, s, old_g) = 0; BYTESLEFT_AT(t_tc, s, new_g) = BYTESLEFT_AT(t_tc, s, old_g); BYTESLEFT_AT(t_tc, s, old_g) = 0;
SWEEPLOC_AT(t_tc, s, new_g) = SWEEPLOC_AT(t_tc, s, old_g); SWEEPLOC_AT(t_tc, s, old_g) = 0; SWEEPLOC_AT(t_tc, s, new_g) = SWEEPLOC_AT(t_tc, s, old_g); SWEEPLOC_AT(t_tc, s, old_g) = 0;
SWEEPNEXT_AT(t_tc, s, new_g) = SWEEPNEXT_AT(t_tc, s, old_g); SWEEPNEXT_AT(t_tc, s, old_g) = 0;
} }
} }
} }
@ -1091,13 +1105,18 @@ ptr S_do_gc(IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) {
ptr S_gc(ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) { ptr S_gc(ptr tc, IGEN max_cg, IGEN min_tg, IGEN max_tg, ptr count_roots) {
if (min_tg == static_generation if (min_tg == static_generation
|| S_G.enable_object_counts || S_G.enable_object_backreferences || S_G.enable_object_counts || S_G.enable_object_backreferences
|| (count_roots != Sfalse)) || (count_roots != Sfalse)) {
return S_gc_oce(tc, max_cg, min_tg, max_tg, count_roots); return S_gc_oce(tc, max_cg, min_tg, max_tg, count_roots);
else if (max_cg == 0 && min_tg == 1 && max_tg == 1 #if defined(PTHREADS)
} else if (S_collect_waiting_threads != 0) {
return S_gc_par(tc, max_cg, min_tg, max_tg, Sfalse);
#endif
} else if (max_cg == 0 && min_tg == 1 && max_tg == 1
&& !S_G.must_mark_gen0 && S_G.locked_objects[0] == Snil && !S_G.must_mark_gen0 && S_G.locked_objects[0] == Snil
&& (S_G.min_mark_gen > 0)) { && (S_G.min_mark_gen > 0)) {
S_gc_011(tc); S_gc_011(tc);
return Svoid; return Svoid;
} else } else {
return S_gc_ocd(tc, max_cg, min_tg, max_tg, Sfalse); return S_gc_ocd(tc, max_cg, min_tg, max_tg, Sfalse);
} }
}

View File

@ -40,6 +40,13 @@ EXTERN scheme_mutex_t S_tc_mutex;
EXTERN s_thread_cond_t S_collect_cond; EXTERN s_thread_cond_t S_collect_cond;
EXTERN s_thread_cond_t S_collect_thread0_cond; EXTERN s_thread_cond_t S_collect_thread0_cond;
EXTERN INT S_tc_mutex_depth; EXTERN INT S_tc_mutex_depth;
EXTERN scheme_mutex_t S_gc_tc_mutex;
EXTERN IBOOL S_use_gc_tc_mutex;
EXTERN int S_collect_waiting_threads;
EXTERN ptr S_collect_waiting_tcs[maximum_parallel_collect_threads];
# ifdef IMPLICIT_ATOMIC_AS_EXPLICIT
EXTERN s_thread_mutex_t S_implicit_mutex;
# endif
#endif #endif
/* segment.c */ /* segment.c */
@ -96,11 +103,6 @@ EXTERN struct S_G_struct {
/* alloc.c */ /* alloc.c */
ptr *protected[max_protected]; ptr *protected[max_protected];
uptr protect_next; uptr protect_next;
seginfo *to_sweep[static_generation+1][max_real_space+1];
ptr base_loc[static_generation+1][max_real_space+1];
ptr next_loc[static_generation+1][max_real_space+1];
ptr sweep_loc[static_generation+1][max_real_space+1];
iptr bytes_left[static_generation+1][max_real_space+1];
uptr bytes_of_space[static_generation+1][max_real_space+1]; uptr bytes_of_space[static_generation+1][max_real_space+1];
uptr bytes_of_generation[static_generation+1]; uptr bytes_of_generation[static_generation+1];
uptr bitmask_overhead[static_generation+1]; uptr bitmask_overhead[static_generation+1];

View File

@ -38,9 +38,10 @@ void S_intern_init() {
} }
static void oblist_insert(ptr sym, iptr idx, IGEN g) { static void oblist_insert(ptr sym, iptr idx, IGEN g) {
ptr tc = get_thread_context();
bucket *b, *oldb, **pb; bucket *b, *oldb, **pb;
find_room_voidp(g == 0 ? space_new : space_data, g, ptr_align(sizeof(bucket)), b); find_room_voidp(tc, g == 0 ? space_new : space_data, g, ptr_align(sizeof(bucket)), b);
b->sym = sym; b->sym = sym;
if (g == 0) { if (g == 0) {
b->next = S_G.oblist[idx]; b->next = S_G.oblist[idx];
@ -53,7 +54,7 @@ static void oblist_insert(ptr sym, iptr idx, IGEN g) {
if (g != static_generation) { if (g != static_generation) {
bucket_list *bl; bucket_list *bl;
find_room_voidp(g == 0 ? space_new : space_data, g, ptr_align(sizeof(bucket_list)), bl); find_room_voidp(tc, g == 0 ? space_new : space_data, g, ptr_align(sizeof(bucket_list)), bl);
bl->car = b; bl->car = b;
bl->cdr = S_G.buckets_of_generation[g]; bl->cdr = S_G.buckets_of_generation[g];
S_G.buckets_of_generation[g] = bl; S_G.buckets_of_generation[g] = bl;
@ -155,7 +156,7 @@ ptr S_intern(const unsigned char *s) {
ptr sym; ptr sym;
bucket *b; bucket *b;
tc_mutex_acquire() tc_mutex_acquire();
b = S_G.oblist[idx]; b = S_G.oblist[idx];
while (b != NULL) { while (b != NULL) {
@ -166,7 +167,7 @@ ptr S_intern(const unsigned char *s) {
iptr i; iptr i;
for (i = 0; ; i += 1) { for (i = 0; ; i += 1) {
if (i == n) { if (i == n) {
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
if (Sstring_ref(str, i) != s[i]) break; if (Sstring_ref(str, i) != s[i]) break;
@ -180,7 +181,7 @@ ptr S_intern(const unsigned char *s) {
INITSYMHASH(sym) = FIX(hc); INITSYMHASH(sym) = FIX(hc);
oblist_insert(sym, idx, 0); oblist_insert(sym, idx, 0);
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
@ -191,7 +192,7 @@ ptr S_intern_sc(const string_char *name, iptr n, ptr name_str) {
ptr sym; ptr sym;
bucket *b; bucket *b;
tc_mutex_acquire() tc_mutex_acquire();
b = S_G.oblist[idx]; b = S_G.oblist[idx];
while (b != NULL) { while (b != NULL) {
@ -202,7 +203,7 @@ ptr S_intern_sc(const string_char *name, iptr n, ptr name_str) {
iptr i; iptr i;
for (i = 0; ; i += 1) { for (i = 0; ; i += 1) {
if (i == n) { if (i == n) {
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
if (STRIT(str, i) != name[i]) break; if (STRIT(str, i) != name[i]) break;
@ -218,7 +219,7 @@ ptr S_intern_sc(const string_char *name, iptr n, ptr name_str) {
INITSYMHASH(sym) = FIX(hc); INITSYMHASH(sym) = FIX(hc);
oblist_insert(sym, idx, 0); oblist_insert(sym, idx, 0);
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
@ -228,7 +229,7 @@ ptr S_intern3(const string_char *pname, iptr plen, const string_char *uname, ipt
ptr sym; ptr sym;
bucket *b; bucket *b;
tc_mutex_acquire() tc_mutex_acquire();
b = S_G.oblist[idx]; b = S_G.oblist[idx];
while (b != NULL) { while (b != NULL) {
@ -239,7 +240,7 @@ ptr S_intern3(const string_char *pname, iptr plen, const string_char *uname, ipt
iptr i; iptr i;
for (i = 0; ; i += 1) { for (i = 0; ; i += 1) {
if (i == ulen) { if (i == ulen) {
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
if (STRIT(str, i) != uname[i]) break; if (STRIT(str, i) != uname[i]) break;
@ -257,7 +258,7 @@ ptr S_intern3(const string_char *pname, iptr plen, const string_char *uname, ipt
INITSYMHASH(sym) = FIX(hc); INITSYMHASH(sym) = FIX(hc);
oblist_insert(sym, idx, 0); oblist_insert(sym, idx, 0);
tc_mutex_release() tc_mutex_release();
return sym; return sym;
} }
@ -269,7 +270,7 @@ void S_intern_gensym(sym) ptr sym; {
iptr idx = OBINDEX(hc, S_G.oblist_length); iptr idx = OBINDEX(hc, S_G.oblist_length);
bucket *b; bucket *b;
tc_mutex_acquire() tc_mutex_acquire();
b = S_G.oblist[idx]; b = S_G.oblist[idx];
while (b != NULL) { while (b != NULL) {
@ -280,7 +281,7 @@ void S_intern_gensym(sym) ptr sym; {
iptr i; iptr i;
for (i = 0; ; i += 1) { for (i = 0; ; i += 1) {
if (i == ulen) { if (i == ulen) {
tc_mutex_release() tc_mutex_release();
S_error1("intern-gensym", "unique name ~s already interned", uname_str); S_error1("intern-gensym", "unique name ~s already interned", uname_str);
} }
if (STRIT(str, i) != uname[i]) break; if (STRIT(str, i) != uname[i]) break;
@ -293,7 +294,7 @@ void S_intern_gensym(sym) ptr sym; {
INITSYMHASH(sym) = FIX(hc); INITSYMHASH(sym) = FIX(hc);
oblist_insert(sym, idx, GENERATION(sym)); oblist_insert(sym, idx, GENERATION(sym));
tc_mutex_release() tc_mutex_release();
} }
/* must hold mutex */ /* must hold mutex */

View File

@ -57,7 +57,7 @@ void S_machine_init() {}
#define SIGN_FLIP(r, a, b) ((~((a ^ b) | (r ^ ~b))) >> (ptr_bits-1)) #define SIGN_FLIP(r, a, b) ((~((a ^ b) | (r ^ ~b))) >> (ptr_bits-1))
#if __GNUC__ >= 5 #if (__GNUC__ >= 5) || defined(__clang__)
# define USE_OVERFLOW_INTRINSICS 1 # define USE_OVERFLOW_INTRINSICS 1
#else #else
# define USE_OVERFLOW_INTRINSICS 0 # define USE_OVERFLOW_INTRINSICS 0

View File

@ -224,9 +224,7 @@ static void s_instantiate_code_object() {
cookie = S_get_scheme_arg(tc, 2); cookie = S_get_scheme_arg(tc, 2);
proc = S_get_scheme_arg(tc, 3); proc = S_get_scheme_arg(tc, 3);
tc_mutex_acquire()
new = S_code(tc, CODETYPE(old), CODELEN(old)); new = S_code(tc, CODETYPE(old), CODELEN(old));
tc_mutex_release()
S_immobilize_object(new); S_immobilize_object(new);

View File

@ -132,7 +132,7 @@ static ptr s_profile_release_counters PROTO((void));
ptr S_strerror(INT errnum) { ptr S_strerror(INT errnum) {
ptr p; char *msg; ptr p; char *msg;
tc_mutex_acquire() tc_mutex_acquire();
#ifdef WIN32 #ifdef WIN32
msg = Swide_to_utf8(_wcserror(errnum)); msg = Swide_to_utf8(_wcserror(errnum));
if (msg == NULL) if (msg == NULL)
@ -144,7 +144,7 @@ ptr S_strerror(INT errnum) {
#else #else
p = (msg = strerror(errnum)) == NULL ? Sfalse : Sstring_utf8(msg, -1); p = (msg = strerror(errnum)) == NULL ? Sfalse : Sstring_utf8(msg, -1);
#endif #endif
tc_mutex_release() tc_mutex_release();
return p; return p;
} }
@ -214,12 +214,11 @@ static ptr s_make_immobile_bytevector(uptr len) {
} }
static ptr s_make_immobile_vector(uptr len, ptr fill) { static ptr s_make_immobile_vector(uptr len, ptr fill) {
ptr tc = get_thread_context();
ptr v; ptr v;
uptr i; uptr i;
tc_mutex_acquire() v = S_vector_in(tc, space_immobile_impure, 0, len);
v = S_vector_in(space_immobile_impure, 0, len);
tc_mutex_release()
S_immobilize_object(v); S_immobilize_object(v);
@ -401,8 +400,9 @@ static void s_showalloc(IBOOL show_dump, const char *outfn) {
static char spacechar[space_total+1] = { alloc_space_chars, '?', 't' }; static char spacechar[space_total+1] = { alloc_space_chars, '?', 't' };
chunkinfo *chunk; seginfo *si; ISPC s; IGEN g; chunkinfo *chunk; seginfo *si; ISPC s; IGEN g;
ptr sorted_chunks; ptr sorted_chunks;
ptr tc = get_thread_context();
tc_mutex_acquire() tc_mutex_acquire();
if (outfn == NULL) { if (outfn == NULL) {
out = stderr; out = stderr;
@ -417,10 +417,10 @@ static void s_showalloc(IBOOL show_dump, const char *outfn) {
if (out == NULL) { if (out == NULL) {
ptr msg = S_strerror(errno); ptr msg = S_strerror(errno);
if (msg != Sfalse) { if (msg != Sfalse) {
tc_mutex_release() tc_mutex_release();
S_error2("fopen", "open of ~s failed: ~a", Sstring_utf8(outfn, -1), msg); S_error2("fopen", "open of ~s failed: ~a", Sstring_utf8(outfn, -1), msg);
} else { } else {
tc_mutex_release() tc_mutex_release();
S_error1("fopen", "open of ~s failed", Sstring_utf8(outfn, -1)); S_error1("fopen", "open of ~s failed", Sstring_utf8(outfn, -1));
} }
} }
@ -434,8 +434,8 @@ static void s_showalloc(IBOOL show_dump, const char *outfn) {
/* add in bytes previously recorded */ /* add in bytes previously recorded */
bytes[g][s] += S_G.bytes_of_space[g][s]; bytes[g][s] += S_G.bytes_of_space[g][s];
/* add in bytes in active segments */ /* add in bytes in active segments */
if (S_G.next_loc[g][s] != FIX(0)) if (NEXTLOC_AT(tc, s, g) != FIX(0))
bytes[g][s] += (uptr)S_G.next_loc[g][s] - (uptr)S_G.base_loc[g][s]; bytes[g][s] += (uptr)NEXTLOC_AT(tc, s, g) - (uptr)BASELOC_AT(tc, s, g);
} }
} }
@ -627,7 +627,7 @@ static void s_showalloc(IBOOL show_dump, const char *outfn) {
fclose(out); fclose(out);
} }
tc_mutex_release() tc_mutex_release();
} }
#include <signal.h> #include <signal.h>
@ -914,9 +914,7 @@ static ptr s_set_reloc(p, n, e) ptr p, n, e; {
} }
static ptr s_flush_instruction_cache() { static ptr s_flush_instruction_cache() {
tc_mutex_acquire()
S_flush_instruction_cache(get_thread_context()); S_flush_instruction_cache(get_thread_context());
tc_mutex_release()
return Svoid; return Svoid;
} }
@ -924,9 +922,7 @@ static ptr s_make_code(flags, free, name, arity_mark, n, info, pinfos)
iptr flags, free, n; ptr name, arity_mark, info, pinfos; { iptr flags, free, n; ptr name, arity_mark, info, pinfos; {
ptr co; ptr co;
tc_mutex_acquire()
co = S_code(get_thread_context(), type_code | (flags << code_flags_offset), n); co = S_code(get_thread_context(), type_code | (flags << code_flags_offset), n);
tc_mutex_release()
CODEFREE(co) = free; CODEFREE(co) = free;
CODENAME(co) = name; CODENAME(co) = name;
CODEARITYMASK(co) = arity_mark; CODEARITYMASK(co) = arity_mark;

View File

@ -55,7 +55,7 @@ static void main_init() {
/* create dependency for linker */ /* create dependency for linker */
scheme_statics(); scheme_statics();
/* force thread inline allocation to go through find_room until ready */ /* force thread inline newspace allocation to go through find_room until ready */
AP(tc) = (ptr)0; AP(tc) = (ptr)0;
EAP(tc) = (ptr)0; EAP(tc) = (ptr)0;
REAL_EAP(tc) = (ptr)0; REAL_EAP(tc) = (ptr)0;
@ -66,8 +66,8 @@ static void main_init() {
if (S_boot_time) S_G.protect_next = 0; if (S_boot_time) S_G.protect_next = 0;
S_segment_init(); S_segment_init();
S_alloc_init();
S_thread_init(); S_thread_init();
S_alloc_init();
S_intern_init(); S_intern_init();
S_gc_init(); S_gc_init();
S_number_init(); S_number_init();

View File

@ -128,9 +128,9 @@ void S_split_and_resize() {
* argument register values */ * argument register values */
n = CONTCLENGTH(k) + (value_count * sizeof(ptr)) + stack_slop; n = CONTCLENGTH(k) + (value_count * sizeof(ptr)) + stack_slop;
if (n >= SCHEMESTACKSIZE(tc)) { if (n >= SCHEMESTACKSIZE(tc)) {
tc_mutex_acquire() tc_mutex_acquire();
S_reset_scheme_stack(tc, n); S_reset_scheme_stack(tc, n);
tc_mutex_release() tc_mutex_release();
} }
} }
@ -272,7 +272,7 @@ void S_overflow(tc, frame_request) ptr tc; iptr frame_request; {
} }
/* create a continuation */ /* create a continuation */
tc_mutex_acquire() tc_mutex_acquire();
STACKLINK(tc) = S_mkcontinuation(space_new, STACKLINK(tc) = S_mkcontinuation(space_new,
0, 0,
CODEENTRYPOINT(nuate), CODEENTRYPOINT(nuate),
@ -283,7 +283,7 @@ void S_overflow(tc, frame_request) ptr tc; iptr frame_request; {
*split_point, *split_point,
Snil, Snil,
Sfalse); Sfalse);
tc_mutex_release() tc_mutex_release();
/* overwrite old return address with dounderflow */ /* overwrite old return address with dounderflow */
*split_point = TO_PTR(DOUNDERFLOW); *split_point = TO_PTR(DOUNDERFLOW);
@ -296,9 +296,9 @@ void S_overflow(tc, frame_request) ptr tc; iptr frame_request; {
/* allocate a new stack, retaining same relative sfp */ /* allocate a new stack, retaining same relative sfp */
sfp_offset = (uptr)TO_PTR(sfp) - (uptr)TO_PTR(split_point); sfp_offset = (uptr)TO_PTR(sfp) - (uptr)TO_PTR(split_point);
tc_mutex_acquire() tc_mutex_acquire();
S_reset_scheme_stack(tc, above_split_size + frame_request); S_reset_scheme_stack(tc, above_split_size + frame_request);
tc_mutex_release() tc_mutex_release();
SFP(tc) = (ptr)((uptr)SCHEMESTACK(tc) + sfp_offset); SFP(tc) = (ptr)((uptr)SCHEMESTACK(tc) + sfp_offset);
/* copy up everything above the split point. we don't know where the /* copy up everything above the split point. we don't know where the
@ -324,14 +324,14 @@ void S_abnormal_exit() {
static void reset_scheme() { static void reset_scheme() {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
tc_mutex_acquire() tc_mutex_acquire();
/* eap should always be up-to-date now that we write-through to the tc /* eap should always be up-to-date now that we write-through to the tc
when making any changes to eap when eap is a real register */ when making any changes to eap when eap is a real register */
S_scan_dirty(TO_VOIDP(EAP(tc)), TO_VOIDP(REAL_EAP(tc))); S_scan_dirty(TO_VOIDP(EAP(tc)), TO_VOIDP(REAL_EAP(tc)));
S_reset_allocation_pointer(tc); S_reset_allocation_pointer(tc);
S_reset_scheme_stack(tc, stack_slop); S_reset_scheme_stack(tc, stack_slop);
FRAME(tc,0) = TO_PTR(DOUNDERFLOW); FRAME(tc,0) = TO_PTR(DOUNDERFLOW);
tc_mutex_release() tc_mutex_release();
} }
/* error_resets occur with the system in an unknown state, /* error_resets occur with the system in an unknown state,
@ -516,7 +516,7 @@ void S_fire_collector() {
/* printf("really firing collector!\n"); fflush(stdout); */ /* printf("really firing collector!\n"); fflush(stdout); */
tc_mutex_acquire() tc_mutex_acquire();
/* check again in case some other thread beat us to the punch */ /* check again in case some other thread beat us to the punch */
if (!Sboolean_value(S_symbol_value(crp_id))) { if (!Sboolean_value(S_symbol_value(crp_id))) {
/* printf("firing collector nthreads = %d\n", list_length(S_threads)); fflush(stdout); */ /* printf("firing collector nthreads = %d\n", list_length(S_threads)); fflush(stdout); */
@ -524,7 +524,7 @@ void S_fire_collector() {
for (ls = S_threads; ls != Snil; ls = Scdr(ls)) for (ls = S_threads; ls != Snil; ls = Scdr(ls))
SOMETHINGPENDING(THREADTC(Scar(ls))) = Strue; SOMETHINGPENDING(THREADTC(Scar(ls))) = Strue;
} }
tc_mutex_release() tc_mutex_release();
} }
} }
@ -664,7 +664,7 @@ ptr S_allocate_scheme_signal_queue() {
void S_register_scheme_signal(sig) iptr sig; { void S_register_scheme_signal(sig) iptr sig; {
struct sigaction act; struct sigaction act;
tc_mutex_acquire() tc_mutex_acquire();
if (!scheme_signals_registered) { if (!scheme_signals_registered) {
ptr ls; ptr ls;
scheme_signals_registered = 1; scheme_signals_registered = 1;
@ -672,7 +672,7 @@ void S_register_scheme_signal(sig) iptr sig; {
SIGNALINTERRUPTQUEUE(THREADTC(Scar(ls))) = S_allocate_scheme_signal_queue(); SIGNALINTERRUPTQUEUE(THREADTC(Scar(ls))) = S_allocate_scheme_signal_queue();
} }
} }
tc_mutex_release() tc_mutex_release();
sigfillset(&act.sa_mask); sigfillset(&act.sa_mask);
act.sa_flags = 0; act.sa_flags = 0;

View File

@ -37,7 +37,7 @@ Low-level Memory management strategy:
#include <sys/types.h> #include <sys/types.h>
static void out_of_memory PROTO((void)); static void out_of_memory PROTO((void));
static void initialize_seginfo PROTO((seginfo *si, ISPC s, IGEN g)); static void initialize_seginfo PROTO((seginfo *si, ptr tc, ISPC s, IGEN g));
static seginfo *allocate_segments PROTO((uptr nreq)); static seginfo *allocate_segments PROTO((uptr nreq));
static void expand_segment_table PROTO((uptr base, uptr end, seginfo *si)); static void expand_segment_table PROTO((uptr base, uptr end, seginfo *si));
static void contract_segment_table PROTO((uptr base, uptr end)); static void contract_segment_table PROTO((uptr base, uptr end));
@ -225,7 +225,7 @@ static INT find_index(iptr n) {
return (index < PARTIAL_CHUNK_POOLS-1) ? index : PARTIAL_CHUNK_POOLS-1; return (index < PARTIAL_CHUNK_POOLS-1) ? index : PARTIAL_CHUNK_POOLS-1;
} }
static void initialize_seginfo(seginfo *si, ISPC s, IGEN g) { static void initialize_seginfo(seginfo *si, NO_THREADS_UNUSED ptr tc, ISPC s, IGEN g) {
INT d; INT d;
si->space = s; si->space = s;
@ -234,6 +234,10 @@ static void initialize_seginfo(seginfo *si, ISPC s, IGEN g) {
si->old_space = 0; si->old_space = 0;
si->use_marks = 0; si->use_marks = 0;
si->must_mark = 0; si->must_mark = 0;
#ifdef PTHREADS
si->lock = 0;
si->creator_tc = tc;
#endif
si->list_bits = NULL; si->list_bits = NULL;
si->min_dirty_byte = 0xff; si->min_dirty_byte = 0xff;
for (d = 0; d < cards_per_segment; d += sizeof(ptr)) { for (d = 0; d < cards_per_segment; d += sizeof(ptr)) {
@ -253,7 +257,7 @@ static void initialize_seginfo(seginfo *si, ISPC s, IGEN g) {
si->sweep_next = NULL; si->sweep_next = NULL;
} }
iptr S_find_segments(s, g, n) ISPC s; IGEN g; iptr n; { iptr S_find_segments(tc, s, g, n) ptr tc; ISPC s; IGEN g; iptr n; {
chunkinfo *chunk, *nextchunk; chunkinfo *chunk, *nextchunk;
seginfo *si, *nextsi, **prevsi; seginfo *si, *nextsi, **prevsi;
iptr nunused_segs, j; iptr nunused_segs, j;
@ -277,7 +281,7 @@ iptr S_find_segments(s, g, n) ISPC s; IGEN g; iptr n; {
} }
chunk->nused_segs += 1; chunk->nused_segs += 1;
initialize_seginfo(si, s, g); initialize_seginfo(si, tc, s, g);
si->next = S_G.occupied_segments[g][s]; si->next = S_G.occupied_segments[g][s];
S_G.occupied_segments[g][s] = si; S_G.occupied_segments[g][s] = si;
S_G.number_of_empty_segments -= 1; S_G.number_of_empty_segments -= 1;
@ -315,7 +319,7 @@ iptr S_find_segments(s, g, n) ISPC s; IGEN g; iptr n; {
nextsi->next = S_G.occupied_segments[g][s]; nextsi->next = S_G.occupied_segments[g][s];
S_G.occupied_segments[g][s] = si; S_G.occupied_segments[g][s] = si;
for (j = n, nextsi = si; j > 0; j -= 1, nextsi = nextsi->next) { for (j = n, nextsi = si; j > 0; j -= 1, nextsi = nextsi->next) {
initialize_seginfo(nextsi, s, g); initialize_seginfo(nextsi, tc, s, g);
} }
S_G.number_of_empty_segments -= n; S_G.number_of_empty_segments -= n;
return si->number; return si->number;
@ -335,7 +339,7 @@ iptr S_find_segments(s, g, n) ISPC s; IGEN g; iptr n; {
/* we couldn't find space, so ask for more */ /* we couldn't find space, so ask for more */
si = allocate_segments(n); si = allocate_segments(n);
for (nextsi = si; n > 0; n -= 1, nextsi += 1) { for (nextsi = si; n > 0; n -= 1, nextsi += 1) {
initialize_seginfo(nextsi, s, g); initialize_seginfo(nextsi, tc, s, g);
/* add segment to appropriate list of occupied segments */ /* add segment to appropriate list of occupied segments */
nextsi->next = S_G.occupied_segments[g][s]; nextsi->next = S_G.occupied_segments[g][s];
S_G.occupied_segments[g][s] = nextsi; S_G.occupied_segments[g][s] = nextsi;

View File

@ -38,14 +38,14 @@
#define SEGMENT_T3_IDX(i) ((i)>>(segment_t2_bits+segment_t1_bits)) #define SEGMENT_T3_IDX(i) ((i)>>(segment_t2_bits+segment_t1_bits))
FORCEINLINE seginfo *SegInfo(uptr i) { FORCEINLINE seginfo *SegInfo(uptr i) {
return S_segment_info[SEGMENT_T3_IDX(i)]->t2[SEGMENT_T2_IDX(i)]->t1[SEGMENT_T1_IDX(i)]; return AS_IMPLICIT_ATOMIC(seginfo *, S_segment_info[SEGMENT_T3_IDX(i)]->t2[SEGMENT_T2_IDX(i)]->t1[SEGMENT_T1_IDX(i)]);
} }
FORCEINLINE seginfo *MaybeSegInfo(uptr i) { FORCEINLINE seginfo *MaybeSegInfo(uptr i) {
t2table *t2i; t1table *t1i; t2table *t2i; t1table *t1i;
if ((t2i = S_segment_info[SEGMENT_T3_IDX(i)]) == NULL) return NULL; if ((t2i = AS_IMPLICIT_ATOMIC(t2table *, S_segment_info[SEGMENT_T3_IDX(i)])) == NULL) return NULL;
if ((t1i = t2i->t2[SEGMENT_T2_IDX(i)]) == NULL) return NULL; if ((t1i = AS_IMPLICIT_ATOMIC(t1table *, t2i->t2[SEGMENT_T2_IDX(i)])) == NULL) return NULL;
return t1i->t1[SEGMENT_T1_IDX(i)]; return AS_IMPLICIT_ATOMIC(seginfo *, t1i->t1[SEGMENT_T1_IDX(i)]);
} }
#else /* segment_t3_bits */ #else /* segment_t3_bits */

View File

@ -45,3 +45,4 @@
#include "segment.h" #include "segment.h"
#include "atomic.h"

View File

@ -35,6 +35,14 @@ void S_thread_init() {
s_thread_cond_init(&S_collect_cond); s_thread_cond_init(&S_collect_cond);
s_thread_cond_init(&S_collect_thread0_cond); s_thread_cond_init(&S_collect_thread0_cond);
S_tc_mutex_depth = 0; S_tc_mutex_depth = 0;
s_thread_mutex_init(&S_gc_tc_mutex.pmutex);
S_tc_mutex.owner = 0;
S_tc_mutex.count = 0;
S_use_gc_tc_mutex = 0;
# ifdef IMPLICIT_ATOMIC_AS_EXPLICIT
s_thread_mutex_init(&S_implicit_mutex);
# endif
#endif /* PTHREADS */ #endif /* PTHREADS */
} }
} }
@ -42,31 +50,37 @@ void S_thread_init() {
/* this needs to be reworked. currently, S_create_thread_object is /* this needs to be reworked. currently, S_create_thread_object is
called from main to create the base thread, from fork_thread when called from main to create the base thread, from fork_thread when
there is already an active current thread, and from S_activate_thread there is already an active current thread, and from S_activate_thread
when there is no current thread. we have to avoid thread-local when there is no current thread. scheme.c does part of the initialization of the
allocation in at least the latter case, so we call vector_in and
cons_in and arrange for S_thread to use find_room rather than
thread_find_room. scheme.c does part of the initialization of the
base thread (e.g., parameters, current input/output ports) in one base thread (e.g., parameters, current input/output ports) in one
or more places. */ or more places. */
ptr S_create_thread_object(who, p_tc) const char *who; ptr p_tc; { ptr S_create_thread_object(who, p_tc) const char *who; ptr p_tc; {
ptr thread, tc; ptr thread, tc;
INT i; INT i;
tc_mutex_acquire() tc_mutex_acquire();
if (S_threads == Snil) { if (S_threads == Snil) {
tc = TO_PTR(S_G.thread_context); tc = TO_PTR(S_G.thread_context);
} else { /* clone parent */ } else { /* clone parent */
ptr p_v = PARAMETERS(p_tc); ptr p_v = PARAMETERS(p_tc);
iptr i, n = Svector_length(p_v); iptr i, n = Svector_length(p_v);
/* use S_vector_in to avoid thread-local allocation */ ptr v;
ptr v = S_vector_in(space_new, 0, n);
tc = TO_PTR(malloc(size_tc)); tc = TO_PTR(malloc(size_tc));
if (tc == (ptr)0) if (tc == (ptr)0)
S_error(who, "unable to malloc thread data structure"); S_error(who, "unable to malloc thread data structure");
memcpy(TO_VOIDP(tc), TO_VOIDP(p_tc), size_tc); memcpy(TO_VOIDP(tc), TO_VOIDP(p_tc), size_tc);
for (i = 0; i < num_thread_local_allocation_segments; i++) {
BASELOC(tc, i) = (ptr)0;
NEXTLOC(tc, i) = (ptr)0;
BYTESLEFT(tc, i) = 0;
SWEEPLOC(tc, i) = (ptr)0;
}
v = S_vector_in(tc, space_new, 0, n);
for (i = 0; i < n; i += 1) for (i = 0; i < n; i += 1)
INITVECTIT(v, i) = Svector_ref(p_v, i); INITVECTIT(v, i) = Svector_ref(p_v, i);
@ -110,10 +124,9 @@ ptr S_create_thread_object(who, p_tc) const char *who; ptr p_tc; {
DSTBV(tc) = SRCBV(tc) = Sfalse; DSTBV(tc) = SRCBV(tc) = Sfalse;
/* S_thread had better not do thread-local allocation */
thread = S_thread(tc); thread = S_thread(tc);
S_threads = S_cons_in_global(space_new, 0, thread, S_threads); S_threads = S_cons_in(tc, space_new, 0, thread, S_threads);
S_nthreads += 1; S_nthreads += 1;
SETSYMVAL(S_G.active_threads_id, SETSYMVAL(S_G.active_threads_id,
FIX(UNFIX(SYMVAL(S_G.active_threads_id)) + 1)); FIX(UNFIX(SYMVAL(S_G.active_threads_id)) + 1));
@ -128,14 +141,10 @@ ptr S_create_thread_object(who, p_tc) const char *who; ptr p_tc; {
LZ4OUTBUFFER(tc) = 0; LZ4OUTBUFFER(tc) = 0;
for (i = 0; i < num_thread_local_allocation_segments; i++) { SWEEPER(tc) = -1;
BASELOC(tc, i) = (ptr)0; LOCKSTATUS(tc) = Strue;
NEXTLOC(tc, i) = (ptr)0;
BYTESLEFT(tc, i) = 0;
SWEEPLOC(tc, i) = (ptr)0;
}
tc_mutex_release() tc_mutex_release();
return thread; return thread;
} }
@ -202,7 +211,7 @@ static IBOOL destroy_thread(tc) ptr tc; {
ptr *ls; IBOOL status; ptr *ls; IBOOL status;
status = 0; status = 0;
tc_mutex_acquire() tc_mutex_acquire();
ls = &S_threads; ls = &S_threads;
while (*ls != Snil) { while (*ls != Snil) {
ptr thread = Scar(*ls); ptr thread = Scar(*ls);
@ -258,7 +267,7 @@ static IBOOL destroy_thread(tc) ptr tc; {
} }
ls = &Scdr(*ls); ls = &Scdr(*ls);
} }
tc_mutex_release() tc_mutex_release();
return status; return status;
} }
@ -270,7 +279,7 @@ ptr S_fork_thread(thunk) ptr thunk; {
thread = S_create_thread_object("fork-thread", get_thread_context()); thread = S_create_thread_object("fork-thread", get_thread_context());
CP(THREADTC(thread)) = thunk; CP(THREADTC(thread)) = thunk;
if ((status = s_thread_create(start_thread, (void *)THREADTC(thread))) != 0) { if ((status = s_thread_create(start_thread, TO_VOIDP(THREADTC(thread)))) != 0) {
destroy_thread((ptr)THREADTC(thread)); destroy_thread((ptr)THREADTC(thread));
S_error1("fork-thread", "failed: ~a", S_strerror(status)); S_error1("fork-thread", "failed: ~a", S_strerror(status));
} }
@ -447,6 +456,7 @@ IBOOL S_condition_wait(c, m, t) s_thread_cond_t *c; scheme_mutex_t *m; ptr t; {
long nsec; long nsec;
INT status; INT status;
IBOOL is_collect; IBOOL is_collect;
iptr collect_index = 0;
if ((count = m->count) == 0 || !s_thread_equal(m->owner, self)) if ((count = m->count) == 0 || !s_thread_equal(m->owner, self))
S_error1("condition-wait", "thread does not own mutex ~s", m); S_error1("condition-wait", "thread does not own mutex ~s", m);
@ -467,6 +477,17 @@ IBOOL S_condition_wait(c, m, t) s_thread_cond_t *c; scheme_mutex_t *m; ptr t; {
is_collect = (c == &S_collect_cond || c == &S_collect_thread0_cond); is_collect = (c == &S_collect_cond || c == &S_collect_thread0_cond);
if (is_collect) {
/* Remember the index where we record this tc, because a thread
might temporarily wait for collection, but then get woken
up (e.g., to make the main thread drive the collection) before
a collection actually happens. In that case, we may track fewer
tcs than possible, but it should be close enough on average. */
collect_index = S_collect_waiting_threads++;
if (collect_index < maximum_parallel_collect_threads)
S_collect_waiting_tcs[collect_index] = tc;
}
if (is_collect || DISABLECOUNT(tc) == 0) { if (is_collect || DISABLECOUNT(tc) == 0) {
deactivate_thread_signal_collect(tc, !is_collect) deactivate_thread_signal_collect(tc, !is_collect)
} }
@ -481,6 +502,12 @@ IBOOL S_condition_wait(c, m, t) s_thread_cond_t *c; scheme_mutex_t *m; ptr t; {
reactivate_thread(tc) reactivate_thread(tc)
} }
if (is_collect) {
--S_collect_waiting_threads;
if (collect_index < maximum_parallel_collect_threads)
S_collect_waiting_tcs[collect_index] = (ptr)0;
}
if (status == 0) { if (status == 0) {
return 1; return 1;
} else if (status == ETIMEDOUT) { } else if (status == ETIMEDOUT) {

View File

@ -76,44 +76,35 @@ typedef int IFASLCODE; /* fasl type codes */
#define ALREADY_PTR(p) (p) #define ALREADY_PTR(p) (p)
/* inline allocation --- mutex required */ #define SG_AT_TO_INDEX(s, g) (((g) * (1 + max_real_space)) + (s))
/* find room allocates n bytes in space s and generation g into
* destination x, tagged with ty, punting to find_more_room if
* no space is left in the current segment. n is assumed to be
* an integral multiple of the object alignment. */
#define find_room_T(s, g, t, n, T, x) { \
ptr X = S_G.next_loc[g][s];\
S_G.next_loc[g][s] = (ptr)((uptr)X + (n));\
if ((S_G.bytes_left[g][s] -= (n)) < 0) X = S_find_more_room(s, g, n, X);\
(x) = T(TYPE(X, t)); \
}
#define find_room(s, g, t, n, x) find_room_T(s, g, t, n, ALREADY_PTR, x)
#define find_room_voidp(s, g, n, x) find_room_T(s, g, typemod, n, TO_VOIDP, x)
#define SG_AT_TO_INDEX(s, g) ((g * (1 + max_real_space)) + s)
#define BASELOC_AT(tc, s, g) BASELOC(tc, SG_AT_TO_INDEX(s, g)) #define BASELOC_AT(tc, s, g) BASELOC(tc, SG_AT_TO_INDEX(s, g))
#define NEXTLOC_AT(tc, s, g) NEXTLOC(tc, SG_AT_TO_INDEX(s, g)) #define NEXTLOC_AT(tc, s, g) NEXTLOC(tc, SG_AT_TO_INDEX(s, g))
#define BYTESLEFT_AT(tc, s, g) BYTESLEFT(tc, SG_AT_TO_INDEX(s, g)) #define BYTESLEFT_AT(tc, s, g) BYTESLEFT(tc, SG_AT_TO_INDEX(s, g))
#define SWEEPLOC_AT(tc, s, g) SWEEPLOC(tc, SG_AT_TO_INDEX(s, g)) #define SWEEPLOC_AT(tc, s, g) SWEEPLOC(tc, SG_AT_TO_INDEX(s, g))
#define SWEEPNEXT_AT(tc, s, g) SWEEPNEXT(tc, SG_AT_TO_INDEX(s, g))
/* inline allocation --- no mutex required */ /* inline allocation --- no mutex required */
/* Like `find_room`, but allocating into thread-local space. */ /* find room allocates n bytes in space s and generation g into
#define thread_find_room_g_T(tc, s, g, t, n, T, x) { \ * destination x, tagged with ty, punting to find_more_room if
ptr X = NEXTLOC_AT(tc, s, g); \ * no space is left in the current segment. n is assumed to be
NEXTLOC_AT(tc, s, g) = (ptr)((uptr)X + (n)); \ * an integral multiple of the object alignment. */
if ((BYTESLEFT_AT(tc, s, g) -= (n)) < 0) X = S_find_more_thread_room(tc, s, g, n, X); \ #define find_room_T(tc, s, g, t, n, T, x) do { \
iptr L_IDX = SG_AT_TO_INDEX(s, g); \
iptr N_BYTES = n; \
ptr X = NEXTLOC(tc, L_IDX); \
NEXTLOC(tc, L_IDX) = (ptr)((uptr)X + N_BYTES); \
if ((BYTESLEFT(tc, L_IDX) -= (n)) < 0) X = S_find_more_thread_room(tc, s, g, N_BYTES, X); \
(x) = T(TYPE(X, t)); \ (x) = T(TYPE(X, t)); \
} } while(0)
#define thread_find_room_g(tc, s, g, t, n, x) thread_find_room_g_T(tc, s, g, t, n, ALREADY_PTR, x) #define find_room(tc, s, g, t, n, x) find_room_T(tc, s, g, t, n, ALREADY_PTR, x)
#define thread_find_room_g_voidp(tc, s, g, n, x) thread_find_room_g_T(tc, s, g, typemod, n, TO_VOIDP, x) #define find_room_voidp(tc, s, g, n, x) find_room_T(tc, s, g, typemod, n, TO_VOIDP, x)
/* thread-local inline allocation --- no mutex required */ /* new-space inline allocation --- no mutex required */
/* Like `thread_find_room_g`, but always `space_new` and generation 0, /* Like `find_room`, but always `space_new` and generation 0,
so using the same bump pointer as most new allocation */ so using the same bump pointer as most new allocation */
#define thread_find_room_T(tc, t, n, T, x) { \ #define newspace_find_room_T(tc, t, n, T, x) do { \
ptr _tc = tc;\ ptr _tc = tc;\
uptr _ap = (uptr)AP(_tc);\ uptr _ap = (uptr)AP(_tc);\
if ((uptr)n > ((uptr)EAP(_tc) - _ap)) {\ if ((uptr)n > ((uptr)EAP(_tc) - _ap)) {\
@ -123,10 +114,10 @@ typedef int IFASLCODE; /* fasl type codes */
(x) = T(TYPE(_ap,t)); \ (x) = T(TYPE(_ap,t)); \
AP(_tc) = (ptr)(_ap + n);\ AP(_tc) = (ptr)(_ap + n);\
}\ }\
} } while(0)
#define thread_find_room(tc, t, n, x) thread_find_room_T(tc, t, n, ALREADY_PTR, x) #define newspace_find_room(tc, t, n, x) newspace_find_room_T(tc, t, n, ALREADY_PTR, x)
#define thread_find_room_voidp(tc, n, x) thread_find_room_T(tc, typemod, n, TO_VOIDP, x) #define newspace_find_room_voidp(tc, n, x) newspace_find_room_T(tc, typemod, n, TO_VOIDP, x)
#ifndef NO_PRESERVE_FLONUM_EQ #ifndef NO_PRESERVE_FLONUM_EQ
# define PRESERVE_FLONUM_EQ # define PRESERVE_FLONUM_EQ
@ -166,6 +157,10 @@ typedef struct _seginfo {
octet min_dirty_byte; /* dirty byte for full segment, effectively min(dirty_bytes) */ octet min_dirty_byte; /* dirty byte for full segment, effectively min(dirty_bytes) */
octet *list_bits; /* for `$list-bits-ref` and `$list-bits-set!` */ octet *list_bits; /* for `$list-bits-ref` and `$list-bits-set!` */
uptr number; /* the segment number */ uptr number; /* the segment number */
#ifdef PTHREADS
ptr lock; /* for parallel GC */
ptr creator_tc; /* for parallelism heuristic; might not match an active thread */
#endif
struct _chunkinfo *chunk; /* the chunk this segment belongs to */ struct _chunkinfo *chunk; /* the chunk this segment belongs to */
struct _seginfo *next; /* pointer to the next seginfo (used in occupied_segments and unused_segs) */ struct _seginfo *next; /* pointer to the next seginfo (used in occupied_segments and unused_segs) */
struct _seginfo *sweep_next; /* next in list of segments allocated during GC => need to sweep */ struct _seginfo *sweep_next; /* next in list of segments allocated during GC => need to sweep */
@ -375,7 +370,7 @@ typedef struct {
#define deactivate_thread_signal_collect(tc, check_collect) { \ #define deactivate_thread_signal_collect(tc, check_collect) { \
if (ACTIVE(tc)) {\ if (ACTIVE(tc)) {\
ptr code;\ ptr code;\
tc_mutex_acquire()\ tc_mutex_acquire();\
code = CP(tc);\ code = CP(tc);\
if (Sprocedurep(code)) CP(tc) = code = CLOSCODE(code);\ if (Sprocedurep(code)) CP(tc) = code = CLOSCODE(code);\
Slock_object(code);\ Slock_object(code);\
@ -394,7 +389,7 @@ typedef struct {
#define deactivate_thread(tc) deactivate_thread_signal_collect(tc, 1) #define deactivate_thread(tc) deactivate_thread_signal_collect(tc, 1)
#define reactivate_thread(tc) {\ #define reactivate_thread(tc) {\
if (!ACTIVE(tc)) {\ if (!ACTIVE(tc)) {\
tc_mutex_acquire()\ tc_mutex_acquire(); \
SETSYMVAL(S_G.active_threads_id,\ SETSYMVAL(S_G.active_threads_id,\
FIX(UNFIX(SYMVAL(S_G.active_threads_id)) + 1));\ FIX(UNFIX(SYMVAL(S_G.active_threads_id)) + 1));\
Sunlock_object(CP(tc));\ Sunlock_object(CP(tc));\
@ -406,20 +401,55 @@ typedef struct {
C code on tc_mutex. it is used by do_error to release tc_mutex C code on tc_mutex. it is used by do_error to release tc_mutex
the appropriate number of times. the appropriate number of times.
*/ */
#define tc_mutex_acquire() {\ #define tc_mutex_acquire() do { \
S_mutex_acquire(&S_tc_mutex); \ S_mutex_acquire(&S_tc_mutex); \
S_tc_mutex_depth += 1; \ S_tc_mutex_depth += 1; \
} } while (0);
#define tc_mutex_release() {\ #define tc_mutex_release() do { \
S_tc_mutex_depth -= 1; \ S_tc_mutex_depth -= 1; \
S_mutex_release(&S_tc_mutex); \ S_mutex_release(&S_tc_mutex); \
} } while (0);
#define gc_tc_mutex_acquire() S_mutex_acquire(&S_gc_tc_mutex)
#define gc_tc_mutex_release() S_mutex_release(&S_gc_tc_mutex)
#ifdef IMPLICIT_ATOMIC_AS_EXPLICIT
# define AS_IMPLICIT_ATOMIC(T, X) ({ \
T RESLT; \
s_thread_mutex_lock(&S_implicit_mutex); \
RESLT = X; \
s_thread_mutex_unlock(&S_implicit_mutex); \
RESLT; \
})
# define BEGIN_IMPLICIT_ATOMIC() s_thread_mutex_lock(&S_implicit_mutex)
# define END_IMPLICIT_ATOMIC() s_thread_mutex_unlock(&S_implicit_mutex)
#else
# define AS_IMPLICIT_ATOMIC(T, X) X
# define BEGIN_IMPLICIT_ATOMIC() do { } while (0)
# define END_IMPLICIT_ATOMIC() do { } while (0)
#endif
#define S_cas_load_acquire_voidp(a, old, new) CAS_LOAD_ACQUIRE(a, old, new)
#define S_cas_store_release_voidp(a, old, new) CAS_STORE_RELEASE(a, old, new)
#define S_cas_load_acquire_ptr(a, old, new) CAS_LOAD_ACQUIRE(a, TO_VOIDP(old), TO_VOIDP(new))
#define S_cas_store_release_ptr(a, old, new) CAS_STORE_RELEASE(a, TO_VOIDP(old), TO_VOIDP(new))
#define S_store_release() RELEASE_FENCE()
#else #else
#define get_thread_context() TO_PTR(S_G.thread_context) #define get_thread_context() TO_PTR(S_G.thread_context)
#define deactivate_thread(tc) {} #define deactivate_thread(tc) {}
#define reactivate_thread(tc) {} #define reactivate_thread(tc) {}
#define tc_mutex_acquire() {} #define tc_mutex_acquire() do {} while (0)
#define tc_mutex_release() {} #define tc_mutex_release() do {} while (0)
#define gc_tc_mutex_acquire() do {} while (0)
#define gc_tc_mutex_release() do {} while (0)
#define S_cas_load_acquire_voidp(a, old, new) (*(a) = new, 1)
#define S_cas_store_release_voidp(a, old, new) (*(a) = new, 1)
#define S_cas_load_acquire_ptr(a, old, new) (*(a) = new, 1)
#define S_cas_store_release_ptr(a, old, new) (*(a) = new, 1)
#define S_store_release() do { } while (0)
#define BEGIN_IMPLICIT_ATOMIC() do { } while (0)
#define END_IMPLICIT_ATOMIC() do { } while (0)
#define AS_IMPLICIT_ATOMIC(T, X) X
#endif #endif
#ifdef __MINGW32__ #ifdef __MINGW32__

View File

@ -466,21 +466,14 @@ typedef char tputsputcchar;
# define WRITE write # define WRITE write
#endif #endif
#ifdef PTHREADS
# define NO_THREADS_UNUSED /* empty */
#else
# define NO_THREADS_UNUSED UNUSED
#endif
/* Use "/dev/urandom" everywhere except Windows */ /* Use "/dev/urandom" everywhere except Windows */
#define USE_DEV_URANDOM_UUID #define USE_DEV_URANDOM_UUID
#if defined(__arm64__) /* For debugging: */
# define STORE_FENCE() __asm__ __volatile__ ("dmb ishst" : : : "memory") /* #define IMPLICIT_ATOMIC_AS_EXPLICIT */
#elif defined(__arm__)
# if arm_isa_version == 7
# define STORE_FENCE() __asm__ __volatile__ ("dmb ishst" : : : "memory")
# else
# define STORE_FENCE() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r" (0) : "memory")
# endif
#elif defined(__powerpc64__)
# define STORE_FENCE() __asm__ __volatile__ ("lwsync" : : : "memory")
#elif defined(__powerpc__) || defined(__POWERPC__)
# define STORE_FENCE() __asm__ __volatile__ ("sync" : : : "memory")
#else
# define STORE_FENCE() /* empty */
#endif

View File

@ -243,7 +243,7 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
if (bv) { if (bv) {
void *base_addr = &BVIT(bv, sizeof(vfasl_header) + offset); void *base_addr = &BVIT(bv, sizeof(vfasl_header) + offset);
thread_find_room(tc, typemod, header.data_size, data); newspace_find_room(tc, typemod, header.data_size, data);
memcpy(TO_VOIDP(data), base_addr, header.data_size); memcpy(TO_VOIDP(data), base_addr, header.data_size);
table = ptr_add(TO_PTR(base_addr), header.data_size); table = ptr_add(TO_PTR(base_addr), header.data_size);
} else { } else {
@ -252,9 +252,9 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
uptr sz = vspace_offsets[s+1] - vspace_offsets[s]; uptr sz = vspace_offsets[s+1] - vspace_offsets[s];
if (sz > 0) { if (sz > 0) {
if ((s == vspace_reloc) && !S_G.retain_static_relocation) { if ((s == vspace_reloc) && !S_G.retain_static_relocation) {
thread_find_room(tc, typemod, sz, vspaces[s]) newspace_find_room(tc, typemod, sz, vspaces[s]);
} else { } else {
find_room(vspace_spaces[s], static_generation, typemod, sz, vspaces[s]) find_room(tc, vspace_spaces[s], static_generation, typemod, sz, vspaces[s]);
} }
if (S_fasl_stream_read(stream, TO_VOIDP(vspaces[s]), sz) < 0) if (S_fasl_stream_read(stream, TO_VOIDP(vspaces[s]), sz) < 0)
S_error("fasl-read", "input truncated"); S_error("fasl-read", "input truncated");
@ -268,12 +268,12 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
data = (ptr)0; /* => initialize below */ data = (ptr)0; /* => initialize below */
to_static = 1; to_static = 1;
} else { } else {
thread_find_room(tc, typemod, header.data_size, data) newspace_find_room(tc, typemod, header.data_size, data);
if (S_fasl_stream_read(stream, TO_VOIDP(data), header.data_size) < 0) if (S_fasl_stream_read(stream, TO_VOIDP(data), header.data_size) < 0)
S_error("fasl-read", "input truncated"); S_error("fasl-read", "input truncated");
} }
thread_find_room(tc, typemod, ptr_align(header.table_size), table) newspace_find_room(tc, typemod, ptr_align(header.table_size), table);
if (S_fasl_stream_read(stream, TO_VOIDP(table), header.table_size) < 0) if (S_fasl_stream_read(stream, TO_VOIDP(table), header.table_size) < 0)
S_error("fasl-read", "input truncated"); S_error("fasl-read", "input truncated");
} }
@ -390,7 +390,7 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
ptr end_syms = TYPE(VSPACE_END(vspace_symbol), type_symbol); ptr end_syms = TYPE(VSPACE_END(vspace_symbol), type_symbol);
if (sym != end_syms) { if (sym != end_syms) {
tc_mutex_acquire() tc_mutex_acquire();
while (sym < end_syms) { while (sym < end_syms) {
ptr isym; ptr isym;
@ -432,7 +432,7 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
in_seg_off += size_symbol; in_seg_off += size_symbol;
} }
tc_mutex_release() tc_mutex_release();
} }
} }
@ -464,7 +464,7 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
RECORDINSTTYPE(rtd) = S_G.base_rtd; RECORDINSTTYPE(rtd) = S_G.base_rtd;
RECORDDESCUID(rtd) = S_G.base_rtd; RECORDDESCUID(rtd) = S_G.base_rtd;
tc_mutex_acquire() tc_mutex_acquire();
while (1) { while (1) {
ptr new_rtd, meta_rtd, parent_rtd; ptr new_rtd, meta_rtd, parent_rtd;
@ -497,7 +497,7 @@ ptr S_vfasl(ptr bv, void *stream, iptr offset, iptr input_len)
} }
} }
tc_mutex_release() tc_mutex_release();
} }
/* Replace rtd references to interned references */ /* Replace rtd references to interned references */
@ -1262,7 +1262,7 @@ static iptr vfasl_symbol_to_index(vfasl_info *vfi, ptr pp)
static void fasl_init_entry_tables() static void fasl_init_entry_tables()
{ {
tc_mutex_acquire() tc_mutex_acquire();
if (!S_G.c_entries) { if (!S_G.c_entries) {
iptr i; iptr i;
@ -1286,7 +1286,7 @@ static void fasl_init_entry_tables()
} }
} }
tc_mutex_release() tc_mutex_release();
} }
static void vfasl_check_install_library_entry(vfasl_info *vfi, ptr name) static void vfasl_check_install_library_entry(vfasl_info *vfi, ptr name)
@ -1427,7 +1427,7 @@ static ptr vfasl_hash_table_ref(vfasl_hash_table *ht, ptr key) {
static void *vfasl_malloc(uptr sz) { static void *vfasl_malloc(uptr sz) {
ptr tc = get_thread_context(); ptr tc = get_thread_context();
void *p; void *p;
thread_find_room_voidp(tc, ptr_align(sz), p) newspace_find_room_voidp(tc, ptr_align(sz), p);
return p; return p;
} }

View File

@ -270,8 +270,8 @@ partialx:
$(MAKE) allxhelp o=3 eval=interpret cp0=t rmg=2 $(MAKE) allxhelp o=3 eval=interpret cp0=t rmg=2
allx: prettyclean allx: prettyclean
$(MAKE) allxhelp o=0 $(MAKE) allxhelp o=0 eoc=f
$(MAKE) allxhelp o=3 $(MAKE) allxhelp o=3 eoc=f
$(MAKE) allxhelp o=0 cp0=t cl=3 $(MAKE) allxhelp o=0 cp0=t cl=3
$(MAKE) allxhelp o=3 cp0=t cl=3 $(MAKE) allxhelp o=3 cp0=t cl=3
$(MAKE) allxhelp o=0 spi=t rmg=2 p=t $(MAKE) allxhelp o=0 spi=t rmg=2 p=t

View File

@ -802,7 +802,7 @@
($oops 'collect "cannot collect when multiple threads are active")) ($oops 'collect "cannot collect when multiple threads are active"))
(let-values ([(trip g gmintarget gmaxtarget count-roots) (p gc-trip)]) (let-values ([(trip g gmintarget gmaxtarget count-roots) (p gc-trip)])
(set! gc-trip trip) (set! gc-trip trip)
(let ([cpu (current-time 'time-thread)] [real (current-time 'time-monotonic)]) (let ([cpu (current-time 'time-process)] [real (current-time 'time-monotonic)])
(set! gc-bytes (+ gc-bytes (bytes-allocated))) (set! gc-bytes (+ gc-bytes (bytes-allocated)))
(when (collect-notify) (when (collect-notify)
(fprintf (console-output-port) (fprintf (console-output-port)
@ -819,7 +819,7 @@
(fprintf (console-output-port) "done]~%") (fprintf (console-output-port) "done]~%")
(flush-output-port (console-output-port))) (flush-output-port (console-output-port)))
(set! gc-bytes (- gc-bytes (bytes-allocated))) (set! gc-bytes (- gc-bytes (bytes-allocated)))
(set! gc-cpu (add-duration gc-cpu (time-difference (current-time 'time-thread) cpu))) (set! gc-cpu (add-duration gc-cpu (time-difference (current-time 'time-process) cpu)))
(set! gc-real (add-duration gc-real (time-difference (current-time 'time-monotonic) real))) (set! gc-real (add-duration gc-real (time-difference (current-time 'time-monotonic) real)))
(set! gc-count (1+ gc-count)) (set! gc-count (1+ gc-count))
gc-result))))))) gc-result)))))))

View File

@ -1496,6 +1496,7 @@
(define-constant static-generation 7) (define-constant static-generation 7)
(define-constant num-thread-local-allocation-segments (fx* (fx+ 1 (constant static-generation)) (define-constant num-thread-local-allocation-segments (fx* (fx+ 1 (constant static-generation))
(fx+ 1 (constant max-real-space)))) (fx+ 1 (constant max-real-space))))
(define-constant maximum-parallel-collect-threads 8)
;;; make sure gc sweeps all ptrs ;;; make sure gc sweeps all ptrs
(define-primitive-structure-disps tc typemod (define-primitive-structure-disps tc typemod
@ -1571,13 +1572,18 @@
[ptr DSTBV] [ptr DSTBV]
[ptr SRCBV] [ptr SRCBV]
[double fpregs (constant asm-fpreg-max)] [double fpregs (constant asm-fpreg-max)]
[xptr sweep-stack] ;; thread-local allocation and parallel collection:
[xptr sweep-stack-start]
[xptr sweep-stack-limit]
[xptr base-loc (constant num-thread-local-allocation-segments)] [xptr base-loc (constant num-thread-local-allocation-segments)]
[xptr next-loc (constant num-thread-local-allocation-segments)] [xptr next-loc (constant num-thread-local-allocation-segments)]
[iptr bytes-left (constant num-thread-local-allocation-segments)] [iptr bytes-left (constant num-thread-local-allocation-segments)]
[xptr sweep-loc (constant num-thread-local-allocation-segments)])) [xptr sweep-loc (constant num-thread-local-allocation-segments)]
[xptr sweep-next (constant num-thread-local-allocation-segments)]
[iptr sweeper]
[xptr sweep-stack]
[xptr sweep-stack-start]
[xptr sweep-stack-limit]
[iptr sweep-change]
[xptr lock-status]))
(define tc-field-list (define tc-field-list
(let f ([ls (oblist)] [params '()]) (let f ([ls (oblist)] [params '()])

View File

@ -96,6 +96,8 @@
;; - (as-mark-end <statment> ...) : declares that <statement>s implement counting, ;; - (as-mark-end <statment> ...) : declares that <statement>s implement counting,
;; which means that it's included for mark mode ;; which means that it's included for mark mode
;; - (skip-forwarding) : disable forward-pointer installation in copy mode ;; - (skip-forwarding) : disable forward-pointer installation in copy mode
;; - (check-lock-failed) : bail out if a lock aquire failed; use this before dereferencing
;; an object reference that might not have been relocated
;; - (assert <expr>) : assertion ;; - (assert <expr>) : assertion
;; ;;
;; In the above declarations, nonterminals like <space> can be ;; In the above declarations, nonterminals like <space> can be
@ -472,6 +474,13 @@
(copy-type ratnum-type) (copy-type ratnum-type)
(trace-now ratnum-numerator) (trace-now ratnum-numerator)
(trace-now ratnum-denominator) (trace-now ratnum-denominator)
(case-mode
[(copy) (when (CHECK_LOCK_FAILED _tc_)
;; create failed relocates so that the heap checker isn't unhappy
(set! (ratnum-numerator _copy_) (cast ptr 0))
(set! (ratnum-denominator _copy_) (cast ptr 0)))]
[(mark) (check-lock-failed)]
[else])
(mark) (mark)
(vfasl-pad-word) (vfasl-pad-word)
(count countof-ratnum)] (count countof-ratnum)]
@ -483,6 +492,13 @@
(copy-type exactnum-type) (copy-type exactnum-type)
(trace-now exactnum-real) (trace-now exactnum-real)
(trace-now exactnum-imag) (trace-now exactnum-imag)
(case-mode
[(copy) (when (CHECK_LOCK_FAILED _tc_)
;; create failed relocates so that the heap checker isn't unhappy
(set! (exactnum-real _copy_) (cast ptr 0))
(set! (exactnum-imag _copy_) (cast ptr 0)))]
[(mark) (check-lock-failed)]
[else])
(mark) (mark)
(vfasl-pad-word) (vfasl-pad-word)
(count countof-exactnum)] (count countof-exactnum)]
@ -575,9 +591,11 @@
(count countof-phantom) (count countof-phantom)
;; Separate from `count`, because we want to track sizes even ;; Separate from `count`, because we want to track sizes even
;; if counting is not enabled: ;; if counting is not enabled:
(GC_TC_MUTEX_ACQUIRE)
(set! (array-ref (array-ref S_G.bytesof _tg_) countof-phantom) (set! (array-ref (array-ref S_G.bytesof _tg_) countof-phantom)
+= +=
(phantom-length _)))] (phantom-length _))
(GC_TC_MUTEX_RELEASE))]
[measure (set! measure_total += (phantom-length _))] [measure (set! measure_total += (phantom-length _))]
[else])])])) [else])])]))
@ -611,7 +629,7 @@
(cond (cond
[(&& (!= cdr_p _) [(&& (!= cdr_p _)
(&& (== (TYPEBITS cdr_p) type_pair) (&& (== (TYPEBITS cdr_p) type_pair)
(&& (= (ptr_get_segment cdr_p) (ptr_get_segment _)) (&& (== (ptr_get_segment cdr_p) (ptr_get_segment _))
(&& (!= (FWDMARKER cdr_p) forward_marker) (&& (!= (FWDMARKER cdr_p) forward_marker)
;; Checking `marked_mask`, in ;; Checking `marked_mask`, in
;; case the cdr pair is locked ;; case the cdr pair is locked
@ -691,7 +709,9 @@
[(== (continuation-stack-length _) opportunistic-1-shot-flag) [(== (continuation-stack-length _) opportunistic-1-shot-flag)
(set! (continuation-stack-length _copy_) (continuation-stack-clength _)) (set! (continuation-stack-length _copy_) (continuation-stack-clength _))
;; May need to recur at end to promote link: ;; May need to recur at end to promote link:
(set! conts_to_promote (S_cons_in space_new 0 _copy_ conts_to_promote))] (GC_TC_MUTEX_ACQUIRE)
(set! conts_to_promote (S_cons_in _tc_ space_new 0 _copy_ conts_to_promote))
(GC_TC_MUTEX_RELEASE)]
[else [else
(copy continuation-stack-length)])] (copy continuation-stack-length)])]
[else [else
@ -703,6 +723,7 @@
(trace ref)] (trace ref)]
[(sweep sweep-in-old) [(sweep sweep-in-old)
(trace ref) ; can't trace `val` directly, because we need an impure relocate (trace ref) ; can't trace `val` directly, because we need an impure relocate
(check-lock-failed)
(define val : ptr (ref _))] (define val : ptr (ref _))]
[vfasl-copy [vfasl-copy
(set! (ref _copy_) vfasl-val)] (set! (ref _copy_) vfasl-val)]
@ -717,6 +738,7 @@
(case-flag as-dirty? (case-flag as-dirty?
[on (trace (just code))] [on (trace (just code))]
[off (trace-pure (just code))]) [off (trace-pure (just code))])
(check-lock-failed)
(INITSYMCODE _ code)] (INITSYMCODE _ code)]
[measure] [measure]
[vfasl-copy [vfasl-copy
@ -740,7 +762,9 @@
;; determine if key is old, since keyval might or might not have been ;; determine if key is old, since keyval might or might not have been
;; swept already. NB: assuming keyvals are always pairs. ;; swept already. NB: assuming keyvals are always pairs.
(when (&& (!= next Sfalse) (OLDSPACE keyval)) (when (&& (!= next Sfalse) (OLDSPACE keyval))
(set! tlcs_to_rehash (S_cons_in space_new 0 _copy_ tlcs_to_rehash)))] (GC_TC_MUTEX_ACQUIRE)
(set! tlcs_to_rehash (S_cons_in _tc_ space_new 0 _copy_ tlcs_to_rehash))
(GC_TC_MUTEX_RELEASE))]
[else [else
(trace-nonself tlc-keyval) (trace-nonself tlc-keyval)
(trace-nonself tlc-next)])) (trace-nonself tlc-next)]))
@ -784,6 +808,7 @@
[(sweep sweep-in-old self-test) [(sweep sweep-in-old self-test)
;; Bignum pointer mask may need forwarding ;; Bignum pointer mask may need forwarding
(trace-pure (record-type-pm rtd)) (trace-pure (record-type-pm rtd))
(check-lock-failed)
(set! num (record-type-pm rtd))] (set! num (record-type-pm rtd))]
[else])]) [else])])
(let* ([index : iptr (- (BIGLEN num) 1)] (let* ([index : iptr (- (BIGLEN num) 1)]
@ -852,7 +877,7 @@
(let* ([grtd : IGEN (GENERATION c_rtd)]) (let* ([grtd : IGEN (GENERATION c_rtd)])
(set! (array-ref (array-ref S_G.countof grtd) countof_rtd_counts) += 1) (set! (array-ref (array-ref S_G.countof grtd) countof_rtd_counts) += 1)
;; Allocate counts struct in same generation as rtd. Initialize timestamp & counts. ;; Allocate counts struct in same generation as rtd. Initialize timestamp & counts.
(thread_find_room_g _tc_ space_data grtd type_typed_object size_rtd_counts counts) (find_room _tc_ space_data grtd type_typed_object size_rtd_counts counts)
(set! (rtd-counts-type counts) type_rtd_counts) (set! (rtd-counts-type counts) type_rtd_counts)
(set! (rtd-counts-timestamp counts) (array-ref S_G.gctimestamp 0)) (set! (rtd-counts-timestamp counts) (array-ref S_G.gctimestamp 0))
(let* ([g : IGEN 0]) (let* ([g : IGEN 0])
@ -865,7 +890,8 @@
;; For max_copied_generation, the list will get copied again in `rtds_with_counts` fixup; ;; For max_copied_generation, the list will get copied again in `rtds_with_counts` fixup;
;; meanwhile, allocating in `space_impure` would copy and sweep old list entries causing ;; meanwhile, allocating in `space_impure` would copy and sweep old list entries causing
;; otherwise inaccessible rtds to be retained ;; otherwise inaccessible rtds to be retained
(S_cons_in (cond [(<= grtd MAX_CG) space_new] [else space_impure]) (S_cons_in _tc_
(cond [(<= grtd MAX_CG) space_new] [else space_impure])
(cond [(<= grtd MAX_CG) 0] [else grtd]) (cond [(<= grtd MAX_CG) 0] [else grtd])
c_rtd c_rtd
(array-ref S_G.rtds_with_counts grtd))) (array-ref S_G.rtds_with_counts grtd)))
@ -1004,7 +1030,7 @@
(set! mask >>= 1)))] (set! mask >>= 1)))]
[else [else
(trace-pure (* (ENTRYNONCOMPACTLIVEMASKADDR oldret))) (trace-pure (* (ENTRYNONCOMPACTLIVEMASKADDR oldret)))
(check-lock-failed)
(let* ([num : ptr (ENTRYLIVEMASK oldret)] (let* ([num : ptr (ENTRYLIVEMASK oldret)]
[index : iptr (BIGLEN num)]) [index : iptr (BIGLEN num)])
(while (while
@ -1038,6 +1064,7 @@
(case-mode (case-mode
[sweep-in-old] [sweep-in-old]
[else [else
(check-lock-failed)
(set! field (cast ptr (+ (cast uptr c_p) co)))]))] (set! field (cast ptr (+ (cast uptr c_p) co)))]))]
[else [else
(trace-pure (just c_p))])) (trace-pure (just c_p))]))
@ -1094,6 +1121,7 @@
(case-mode (case-mode
[sweep [sweep
(check-lock-failed)
(cond (cond
[(&& (== from_g static_generation) [(&& (== from_g static_generation)
(&& (! S_G.retain_static_relocation) (&& (! S_G.retain_static_relocation)
@ -1102,6 +1130,8 @@
[else [else
(let* ([t_si : seginfo* (SegInfo (ptr_get_segment t))]) (let* ([t_si : seginfo* (SegInfo (ptr_get_segment t))])
(when (-> t_si old_space) (when (-> t_si old_space)
(cond
[(SEGMENT_LOCK_ACQUIRE t_si)
(set! n (size_reloc_table (reloc-table-size t))) (set! n (size_reloc_table (reloc-table-size t)))
(count countof-relocation-table (just n) 1 sweep) (count countof-relocation-table (just n) 1 sweep)
(cond (cond
@ -1110,8 +1140,12 @@
(mark_typemod_data_object _tc_ t n t_si)] (mark_typemod_data_object _tc_ t n t_si)]
[else [else
(let* ([oldt : ptr t]) (let* ([oldt : ptr t])
(thread_find_room_g _tc_ space_data from_g typemod n t) (find_room _tc_ space_data from_g typemod n t)
(memcpy_aligned (TO_VOIDP t) (TO_VOIDP oldt) n))]))) (memcpy_aligned (TO_VOIDP t) (TO_VOIDP oldt) n))])
(SEGMENT_LOCK_RELEASE t_si)]
[else
(RECORD_LOCK_FAILED _tc_ t_si)
(check-lock-failed)])))
(set! (reloc-table-code t) _) (set! (reloc-table-code t) _)
(set! (code-reloc _) t)]) (set! (code-reloc _) t)])
(S_record_code_mod tc_in (cast uptr (TO_PTR (& (code-data _ 0)))) (cast uptr (code-length _)))] (S_record_code_mod tc_in (cast uptr (TO_PTR (& (code-data _ 0)))) (cast uptr (code-length _)))]
@ -1388,12 +1422,15 @@
(case (lookup 'mode config) (case (lookup 'mode config)
[(copy) [(copy)
(code-block (code-block
"change = 1;" "ENABLE_LOCK_ACQUIRE"
"if (CHECK_LOCK_FAILED(tc_in)) return 0xff;"
"check_triggers(si);" "check_triggers(si);"
(code-block (code-block
"ptr new_p;" "ptr new_p;"
"IGEN tg = TARGET_GENERATION(si);" "IGEN tg = TARGET_GENERATION(si);"
(body) (body)
"if (CHECK_LOCK_FAILED(tc_in)) return 0xff;"
"SWEEPCHANGE(tc_in) = SWEEP_CHANGE_PROGRESS;"
"FWDMARKER(p) = forward_marker;" "FWDMARKER(p) = forward_marker;"
"FWDADDRESS(p) = new_p;" "FWDADDRESS(p) = new_p;"
(and (lookup 'maybe-backreferences? config #f) (and (lookup 'maybe-backreferences? config #f)
@ -1402,14 +1439,18 @@
"return tg;"))] "return tg;"))]
[(mark) [(mark)
(code-block (code-block
"change = 1;" "ENABLE_LOCK_ACQUIRE"
"if (CHECK_LOCK_FAILED(tc_in)) return 0xff;"
"check_triggers(si);" "check_triggers(si);"
(ensure-segment-mark-mask "si" "" '()) (ensure-segment-mark-mask "si" "" '())
(body) (body)
"SWEEPCHANGE(tc_in) = SWEEP_CHANGE_PROGRESS;"
"ADD_BACKREFERENCE(p, si->generation);" "ADD_BACKREFERENCE(p, si->generation);"
"return si->generation;")] "return si->generation;")]
[(sweep) [(sweep)
(code-block (code-block
(and (not (lookup 'as-dirty? config #f))
"ENABLE_LOCK_ACQUIRE")
(and (lookup 'maybe-backreferences? config #f) (and (lookup 'maybe-backreferences? config #f)
"PUSH_BACKREFERENCE(p)") "PUSH_BACKREFERENCE(p)")
(body) (body)
@ -1417,6 +1458,10 @@
"POP_BACKREFERENCE()") "POP_BACKREFERENCE()")
(and (lookup 'as-dirty? config #f) (and (lookup 'as-dirty? config #f)
"return youngest;"))] "return youngest;"))]
[(sweep-in-old)
(code-block
"ENABLE_LOCK_ACQUIRE"
(body))]
[(measure) [(measure)
(body)] (body)]
[(self-test) [(self-test)
@ -1548,6 +1593,7 @@
(statements (cdr l) config))] (statements (cdr l) config))]
[`(trace-early ,field) [`(trace-early ,field)
(code (trace-statement field config #t 'pure) (code (trace-statement field config #t 'pure)
(check-lock-failure-statement config)
(statements (cdr l) (if (symbol? field) (statements (cdr l) (if (symbol? field)
(cons `(copy-extra ,field) config) (cons `(copy-extra ,field) config)
config)))] config)))]
@ -1726,7 +1772,7 @@
(hashtable-set! (lookup 'used config) 'p_sz #t) (hashtable-set! (lookup 'used config) 'p_sz #t)
(code (format "~a, ~a, p_sz, new_p);" (code (format "~a, ~a, p_sz, new_p);"
(case mode (case mode
[(copy) "thread_find_room_g(tc_in, p_spc, tg"] [(copy) "find_room(tc_in, p_spc, tg"]
[(vfasl-copy) "FIND_ROOM(vfi, p_vspc"]) [(vfasl-copy) "FIND_ROOM(vfi, p_vspc"])
(as-c 'type (lookup 'basetype config))) (as-c 'type (lookup 'basetype config)))
(statements (let ([extra (lookup 'copy-extra config #f)]) (statements (let ([extra (lookup 'copy-extra config #f)])
@ -1776,6 +1822,7 @@
(unless (null? (cdr l)) (unless (null? (cdr l))
(error 'skip-forwarding "not at end")) (error 'skip-forwarding "not at end"))
(code "*dest = new_p;" (code "*dest = new_p;"
"SWEEPCHANGE(tc_in) = SWEEP_CHANGE_PROGRESS;"
"return tg;")] "return tg;")]
[else [else
(statements (cdr l) config)])] (statements (cdr l) config)])]
@ -1808,6 +1855,10 @@
(statements (list count-stmt) config)))] (statements (list count-stmt) config)))]
[else [else
(statements (cdr l) config)])] (statements (cdr l) config)])]
[`(check-lock-failed)
(code
(check-lock-failure-statement config)
(statements (cdr l) config))]
[`(define ,id : ,type ,rhs) [`(define ,id : ,type ,rhs)
(let* ([used (lookup 'used config)] (let* ([used (lookup 'used config)]
[prev-used? (hashtable-ref used id #f)]) [prev-used? (hashtable-ref used id #f)])
@ -2153,7 +2204,7 @@
[no-sweep? (or (memq 'no-sweep flags) [no-sweep? (or (memq 'no-sweep flags)
(eq? known-space 'space-data))] (eq? known-space 'space-data))]
[within-loop-statement [within-loop-statement
(lambda (decl si step count?) (lambda (decl si step count? final)
(code-block (code-block
"uptr offset = 0;" "uptr offset = 0;"
"while (offset < p_sz) {" "while (offset < p_sz) {"
@ -2162,6 +2213,7 @@
(format " ~a->marked_mask[segment_bitmap_byte(mark_p)] |= segment_bitmap_bit(mark_p);" si) (format " ~a->marked_mask[segment_bitmap_byte(mark_p)] |= segment_bitmap_bit(mark_p);" si)
(and count? (format " ~a->marked_count += ~a;" si step)) (and count? (format " ~a->marked_count += ~a;" si step))
(format " offset += ~a;" step) (format " offset += ~a;" step)
final
"}"))] "}"))]
[type (let ([t (lookup 'basetype config)]) [type (let ([t (lookup 'basetype config)])
(if (eq? t 'typemod) (if (eq? t 'typemod)
@ -2191,18 +2243,27 @@
" seginfo *mark_si; IGEN g;" " seginfo *mark_si; IGEN g;"
" si->marked_count += ((uptr)build_ptr(seg+1,0)) - addr;" " si->marked_count += ((uptr)build_ptr(seg+1,0)) - addr;"
" seg++;" " seg++;"
" /* Note: taking a sequence of locks for a span of segments */"
" while (seg < end_seg) {" " while (seg < end_seg) {"
" ENABLE_LOCK_ACQUIRE"
" mark_si = SegInfo(seg);" " mark_si = SegInfo(seg);"
" SEGMENT_LOCK_MUST_ACQUIRE(mark_si);"
" g = mark_si->generation;" " g = mark_si->generation;"
" if (!fully_marked_mask[g]) init_fully_marked_mask(tc_in, g);" " if (!fully_marked_mask[g]) init_fully_marked_mask(tc_in, g);"
" mark_si->marked_mask = fully_marked_mask[g];" " mark_si->marked_mask = fully_marked_mask[g];"
" mark_si->marked_count = bytes_per_segment;" " mark_si->marked_count = bytes_per_segment;"
" SEGMENT_LOCK_RELEASE(mark_si);"
" seg++;" " seg++;"
" }" " }"
" mark_si = SegInfo(end_seg);" " mark_si = SegInfo(end_seg);"
" {"
" ENABLE_LOCK_ACQUIRE"
" SEGMENT_LOCK_MUST_ACQUIRE(mark_si);"
(ensure-segment-mark-mask "mark_si" " " '()) (ensure-segment-mark-mask "mark_si" " " '())
" /* no need to set a bit: just make sure `marked_mask` is non-NULL */" " /* no need to set a bit: it's enough to have made `marked_mask` non-NULL */"
" mark_si->marked_count += addr + p_sz - (uptr)build_ptr(end_seg,0);" " mark_si->marked_count += addr + p_sz - (uptr)build_ptr(end_seg,0);"
" SEGMENT_LOCK_RELEASE(mark_si);"
" }"
"}")]))] "}")]))]
[within-segment? [within-segment?
(code (code
@ -2221,7 +2282,7 @@
"mark_p = (ptr)((uptr)mark_p + byte_alignment);" "mark_p = (ptr)((uptr)mark_p + byte_alignment);"
(loop sz)))))))] (loop sz)))))))]
[else [else
(within-loop-statement #f "si" "byte_alignment" #f)]))] (within-loop-statement #f "si" "byte_alignment" #f #f)]))]
[else [else
(let ([step "byte_alignment"]) (let ([step "byte_alignment"])
(code-block (code-block
@ -2229,14 +2290,17 @@
"if (addr_get_segment(addr) == addr_get_segment(addr + p_sz - 1))" "if (addr_get_segment(addr) == addr_get_segment(addr + p_sz - 1))"
(code-block (code-block
"si->marked_count += p_sz;" "si->marked_count += p_sz;"
(within-loop-statement #f "si" step #f)) (within-loop-statement #f "si" step #f #f))
"else" "else"
(within-loop-statement (code (within-loop-statement (code
" seginfo *mark_si = SegInfo(ptr_get_segment(mark_p));" " seginfo *mark_si = SegInfo(ptr_get_segment(mark_p));"
" ENABLE_LOCK_ACQUIRE"
" SEGMENT_LOCK_MUST_ACQUIRE(mark_si);"
(ensure-segment-mark-mask "mark_si" " " '())) (ensure-segment-mark-mask "mark_si" " " '()))
"mark_si" "mark_si"
step step
#t)))]) #t
" SEGMENT_LOCK_RELEASE(mark_si);")))])
(cond (cond
[no-sweep? #f] [no-sweep? #f]
[else [else
@ -2248,6 +2312,20 @@
(code-block push))] (code-block push))]
[else push]))])))) [else push]))]))))
(define (check-lock-failure-statement config)
(let ([mode (lookup 'mode config)])
(case mode
[(copy mark sweep)
(code
"if (CHECK_LOCK_FAILED(tc_in))"
(case mode
[(copy mark) (code-block "return 0xff;")]
[(sweep sweep-in-old)
(if (lookup 'as-dirty? config #f)
(code-block "return 0xff;")
(code-block "return;"))]))]
[else #f])))
(define (field-expression field config arg protect?) (define (field-expression field config arg protect?)
(if (symbol? field) (if (symbol? field)
(cond (cond
@ -2284,7 +2362,7 @@
(define (ensure-segment-mark-mask si inset flags) (define (ensure-segment-mark-mask si inset flags)
(code (code
(format "~aif (!~a->marked_mask) {" inset si) (format "~aif (!~a->marked_mask) {" inset si)
(format "~a thread_find_room_g_voidp(tc_in, space_data, ~a->generation, ptr_align(segment_bitmap_bytes), ~a->marked_mask);" (format "~a find_room_voidp(tc_in, space_data, ~a->generation, ptr_align(segment_bitmap_bytes), ~a->marked_mask);"
inset si si) inset si si)
(if (memq 'no-clear flags) (if (memq 'no-clear flags)
(format "~a /* no clearing needed */" inset) (format "~a /* no clearing needed */" inset)