anarki icon indicating copy to clipboard operation
anarki copied to clipboard

Migrate `master` and `stable` branches to `unsafe-set-immutable-c[ad]r!`

Open rocketnia opened this issue 2 years ago • 0 comments

On Arc Forum, tubsy notes that mutating cons cells doesn't work in the latest official Arc 3.2 release:

arc> (= x '(1 2 3))
(1 2 3)
arc> x
(1 2 3)
arc> (scar x 'a)
a
arc> x
(344739504129 . 10059776)

@akkartik further observes that the Anarki stable branch is broken this way as well.

This is probably because #183's updates to unsafe code for Chez Scheme-based versions of Racket were only applied to Anarki's master branch.

A couple of days after #183 was merged, Racket introduced unsafe-set-immutable-car! and unsafe-set-immutable-cdr! specifically as a more stable unsafe way to mutate immutable cons cells going forward. This was available starting with the Racket 8.0 release. We should probably migrate both the master and stable branches to that.

rocketnia avatar Jan 12 '23 16:01 rocketnia