cs: update Rumble layer for incremental promotion in GC

This commit is contained in:
Matthew Flatt 2020-08-14 06:11:26 -06:00
parent 3aa2d99000
commit 9619205a9d
6 changed files with 23 additions and 15 deletions

View File

@ -335,7 +335,7 @@ RACKET_FOR_BOOTFILES = $(RACKET)
RACKET_FOR_BUILD = $(RACKET)
# This branch name changes each time the pb boot files are updated:
PB_BRANCH == circa-7.8.0.7-1
PB_BRANCH == circa-7.8.0.8-3
PB_REPO == https://github.com/racket/pb
# Alternative source for Chez Scheme boot files, normally set by

View File

@ -45,7 +45,7 @@ RACKETCS_SUFFIX =
RACKET =
RACKET_FOR_BOOTFILES = $(RACKET)
RACKET_FOR_BUILD = $(RACKET)
PB_BRANCH = circa-7.8.0.7-1
PB_BRANCH = circa-7.8.0.8-3
PB_REPO = https://github.com/racket/pb
EXTRA_REPOS_BASE =
CS_CROSS_SUFFIX =
@ -304,14 +304,14 @@ maybe-fetch-pb:
if [ "$(RACKET_FOR_BOOTFILES)" = "" ] ; then $(MAKE) fetch-pb EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" ; fi
fetch-pb-from:
mkdir -p racket/src/ChezScheme/boot
if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.7-1 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.7-1 ; fi
cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.7-1
if [ ! -d racket/src/ChezScheme/boot/pb ] ; then git clone -q -b circa-7.8.0.8-3 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.8-3 ; fi
cd racket/src/ChezScheme/boot/pb && git checkout -q circa-7.8.0.8-3
pb-stage:
cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.7-1
cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.7-1
cd racket/src/ChezScheme/boot/pb && git branch circa-7.8.0.8-3
cd racket/src/ChezScheme/boot/pb && git checkout circa-7.8.0.8-3
cd racket/src/ChezScheme/boot/pb && git add . && git commit --amend -m "new build"
pb-push:
cd racket/src/ChezScheme/boot/pb && git push -u origin circa-7.8.0.7-1
cd racket/src/ChezScheme/boot/pb && git push -u origin circa-7.8.0.8-3
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 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)"

View File

@ -12,7 +12,7 @@
(define collection 'multi)
(define version "7.8.0.7")
(define version "7.8.0.8")
(define deps `("racket-lib"
["racket" #:version ,version]))

View File

@ -2,7 +2,7 @@
;; Check to make we're using a build of Chez Scheme
;; that has all the features we need.
(define-values (need-maj need-min need-sub need-dev)
(values 9 5 3 36))
(values 9 5 3 37))
(unless (guard (x [else #f]) (eval 'scheme-fork-version-number))
(error 'compile-file

View File

@ -96,21 +96,29 @@
(cond
[(null? roots)
;; Plain old collection, after all:
(collect gen)
(collect gen 1 gen)
#f]
[else
(let ([domains (weaken-accounting-domains domains)])
;; Accounting collection:
(let ([counts (collect gen gen (weaken-accounting-roots roots))])
(let ([counts (collect gen 1 gen (weaken-accounting-roots roots))])
(lambda () (k counts domains))))])))]
[(and request-incremental?
(fx= gen (sub1 (collect-maximum-generation))))
;; "Incremental" mode by not promoting to the maximum generation
(collect gen gen)
(collect gen 1 gen)
#f]
[(fx= gen 0)
;; Plain old minor collection:
(collect 0 1 1)
#f]
[(fx= gen (collect-maximum-generation))
;; Plain old major collection:
(collect gen 1 gen)
#f]
[else
;; Plain old collection:
(collect gen)
;; Plain old collection that does not necessairy promote to `gen`+1:
(collect gen 1 (fx+ gen 1))
#f])])
(when (fx= gen (collect-maximum-generation))
(set! request-incremental? #f))

View File

@ -16,7 +16,7 @@
#define MZSCHEME_VERSION_X 7
#define MZSCHEME_VERSION_Y 8
#define MZSCHEME_VERSION_Z 0
#define MZSCHEME_VERSION_W 7
#define MZSCHEME_VERSION_W 8
/* A level of indirection makes `#` work as needed: */
#define AS_a_STR_HELPER(x) #x