Closed burgerrg closed 1 year ago
Looks like the problem is that resweeping weak pointers via forward_or_bwp
needs to be more like relocate_impure_help_help
instead of relocate_pure_help_help
: check the "from" and "to" generations and potentially record a new dirty card. I have a candidate repair, but will test more before pushing.
Thank you!
The code above results in:
Many thanks to Oscar Waddell for tripping the bug and finding a succinct way to reproduce it. It occurs in Chez Scheme 9.5.8 as well and seems to be related to the change to incremental generation promotion. (Matthew, thanks for the ephemeron-cons test in 4.ms, which Oscar copied to use weak-cons instead.)