tags 19415 + notabug close 19415 merge 19415 19417 thanks Panicz Maciej Godek <godek.mac...@gmail.com> writes:
> This bug was traced by Matt Wette and described here: > > http://lists.gnu.org/archive/html/guile-user/2014-12/msg00023.html > > In short, the bug manifests itself when at least two consecutive let > forms are used with an assoc list argument which starts with identical > elements, and the first appearance gets mutated before the second: > > (begin > (let ((l '((a . X)(b . Y)(c . 7)))) > (assoc-set! l 'b 'Z)) > (let ((l '((a . X)(b . Y)))) > l)) > ===> ((a . X) (b . Z)) > > The issue is known to appear in guile 2.0.11 and 2.0.5 As later explained on guile-user, mutating literal data is not permitted in scheme and leads to unspecified behavior. Our compiler aggressively shares data between literals in the same compilation unit. See <http://bugs.gnu.org/16060> for a related wishlist item. Thanks, Mark