updated sjamaan's min-weak-test w/ scheme.write import added by klovett on Sat Aug 8 20:17:10 2026

;use_chicken 6 csc -block -strict-types -O3 -d0 min-weak-test.scm

;comment out sexp-comment 4 bug
#; ;FIXME Creates Strong Refs!
(import (scheme write))

(import
  (scheme base)
  (chicken base)
  (chicken fixnum)
  (chicken gc)
  (srfi 69 hash) (srfi 69 weak fix))

(define ENOUGH 700) ;to trigger a table resize

(let ((ht (make-hash-table #:test equal? #:hash equal?-hash
                           #:initial 'foo
                           #:size 500
                           #:min-load 0.45 #:max-load 0.85
                           #:weak-keys #t #:weak-values #t)) )
  (do ([i 0 (fx+ i 1)]
       [kv (gensym) (gensym)]
       [kvs '() (cons kv kvs)])
      [(fx= i ENOUGH) kvs]
    (hash-table-set! ht kv kv))
  (gc #t)
  ;!! The GC Should be Enough
  (gc #t)
  ;?? -size uses same bwp-object? test
  (print "Size (after drop & gc): " (hash-table-size ht))
  ;?? -clean! uses same bwp-object? test
  (hash-table-clean! ht)
  (print "Size (after hash-table-clean!: " (hash-table-size ht))
)