From fb677d956913817baa0c680f4eae0ed981d9add5 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 16 Apr 2020 17:25:04 -0600 Subject: [PATCH] cs: sync with Chez Scheme update The Chez Scheme change avoids a leak while collecting in counting mode, which is used by Racket's memory-accounting mode. Also, add a small repair for 4256214981. --- pkgs/base/info.rkt | 2 +- racket/src/cs/compile-file.ss | 2 +- racket/src/cs/rumble/memory.ss | 2 +- racket/src/racket/src/schvers.h | 2 +- racket/src/thread/custodian.rkt | 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/base/info.rkt b/pkgs/base/info.rkt index 977cbc969a..2db358e2f5 100644 --- a/pkgs/base/info.rkt +++ b/pkgs/base/info.rkt @@ -12,7 +12,7 @@ (define collection 'multi) -(define version "7.7.0.1") +(define version "7.7.0.2") (define deps `("racket-lib" ["racket" #:version ,version])) diff --git a/racket/src/cs/compile-file.ss b/racket/src/cs/compile-file.ss index 6a03bc1026..7d5feda538 100644 --- a/racket/src/cs/compile-file.ss +++ b/racket/src/cs/compile-file.ss @@ -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 25)) + (values 9 5 3 26)) (unless (guard (x [else #f]) (eval 'scheme-fork-version-number)) (error 'compile-file diff --git a/racket/src/cs/rumble/memory.ss b/racket/src/cs/rumble/memory.ss index 38494d8979..139cbd1f24 100644 --- a/racket/src/cs/rumble/memory.ss +++ b/racket/src/cs/rumble/memory.ss @@ -115,7 +115,7 @@ ;; that value may include underused pages that have locked objects. ;; Using just `post-allocated` is too small, because it may force an ;; immediate major GC too soon. Split the difference. - (set! trigger-major-gc-allocated (* GC-TRIGGER-FACTOR post-allocated)) + (set! trigger-major-gc-allocated (* GC-TRIGGER-FACTOR (- post-allocated (bytes-finalized)))) (set! trigger-major-gc-allocated+overhead (* GC-TRIGGER-FACTOR post-allocated+overhead))) (update-eq-hash-code-table-size!) (update-struct-procs-table-sizes!) diff --git a/racket/src/racket/src/schvers.h b/racket/src/racket/src/schvers.h index 35c4cf11a0..8ef07ed859 100644 --- a/racket/src/racket/src/schvers.h +++ b/racket/src/racket/src/schvers.h @@ -16,7 +16,7 @@ #define MZSCHEME_VERSION_X 7 #define MZSCHEME_VERSION_Y 7 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 1 +#define MZSCHEME_VERSION_W 2 /* A level of indirection makes `#` work as needed: */ #define AS_a_STR_HELPER(x) #x diff --git a/racket/src/thread/custodian.rkt b/racket/src/thread/custodian.rkt index c1986bf7f8..c0ff393c7f 100644 --- a/racket/src/thread/custodian.rkt +++ b/racket/src/thread/custodian.rkt @@ -570,6 +570,7 @@ (set-custodian-memory-limits! c new-limits) (when (and (pair? old-limits) (or (null? new-limits) + (not (custodian-gc-roots c)) (zero? (hash-count (custodian-gc-roots c))))) (hash-remove! custodians-with-limits c)) (or any-limits? (pair? new-limits))))