bug#79479: Issue with substring/shared
Nikolaos Chatzikonstantinou <[email protected]> Thu, 9 Oct 2025 07:26:28 -0400
| Newsgroups | gmane.lisp.guile.bugs |
|---|---|
| Message-ID | <CAAQmekdRhSjMxwDfDk63=zCNkQ5LsnGMLy=gepT=bs7Ng-Bwhw@mail.gmail.com> |
--0000000000002861a90640b813cf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Sep 21, 2025 at 12:47=E2=80=AFAM Nikolaos Chatzikonstantinou <[email protected]> wrote: > > Hello bug-guile, > > I have a structure (srfi srfi-9 gnu) that keeps parts of strings in a > binary tree (it's a rope). The intention was to have it immutable, so > I used substring/shared. I kept getting errors on my unit tests when I > referenced individual characters; I could not replicate these errors > on the REPL. Eventually I realized that substring/shared caused them. I want to offer a small (<100 LoC) reproducible example now. I'm using 3.0.10. Try to run the test suite with autocompilation disabled (--no-auto-compile), and you should get failure (if success, try running again, rarely it succeeds.) If you compile the test.scm file, then it should work fine. I am not sure that I can figure this one out myself further, but somehow it is related to my projects tests being left uncompiled. Does anyone have an insight to the problem here? Regards, Nikolaos Chatzikonstantinou --0000000000002861a90640b813cf Content-Type: text/x-scheme; charset="US-ASCII"; name="rope.scm" Content-Disposition: attachment; filename="rope.scm" Content-Transfer-Encoding: base64 Content-ID: <f_mgjbvuom0> X-Attachment-Id: f_mgjbvuom0 Ozsgcm9wZSwgYW4gaW1wbGVtZW50YXRpb24gb2Ygc3RyaW5nIHJvcGVzIGluIEdOVSBHdWlsZS4K OzsgQ29weXJpZ2h0IChDKSAyMDI1ICBOaWtvbGFvcyBDaGF0emlrb25zdGFudGlub3UKOzsKOzsg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKOzsgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KOzsKOzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7IE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOzsgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzsKOzsgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK OzsgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgoKKGRlZmluZS1tb2R1bGUgKGRhdGEgcm9wZSkKICAjOmV4cG9ydCAo cm9wZS1yZWYKICAgICAgICAgICAgc3RyaW5nLT5yYW5kb20tcm9wZSkpCgooZGVmaW5lIChyb3Bl LWxlbmd0aCByb3BlKQogICJUaGUgbGVuZ3RoIG9mIHRoZSByb3BlIChhbHNvIGFjY2VwdHMgc3Ry aW5ncykuIgogIChpZiAoc3RyaW5nPyByb3BlKQogICAgICAoc3RyaW5nLWxlbmd0aCByb3BlKQog ICAgICAoKyAocm9wZS1sZW5ndGggKGNhciByb3BlKSkKICAgICAgICAgKHJvcGUtbGVuZ3RoIChj ZHIgcm9wZSkpKSkpCgooZGVmaW5lIChyb3BlLXJlZiByb3BlIGluZGV4KQogICJGZXRjaCB0aGUg Y2hhcmFjdGVyIG9mIHRoZSByb3BlIGF0IHRoZSBnaXZlbiBpbmRleC4iCiAgKGlmIChzdHJpbmc/ IHJvcGUpCiAgICAgIChzdHJpbmctcmVmIHJvcGUgaW5kZXgpCiAgICAgIChsZXQgKChuIChyb3Bl LWxlbmd0aCAoY2FyIHJvcGUpKSkpCiAgICAgICAgKGlmICg8PSBuIGluZGV4KQogICAgICAgICAg ICAocm9wZS1yZWYgKGNkciByb3BlKSAoLSBpbmRleCBuKSkKICAgICAgICAgICAgKHJvcGUtcmVm IChjYXIgcm9wZSkgaW5kZXgpKSkpKQoKKGRlZmluZSAoc3RyaW5nLT5yYW5kb20tcm9wZSBzKQog ICJHZW5lcmF0ZSBhIHJhbmRvbSByb3BlIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gc3RyaW5nLiIK ICAoaWYgKHN0cmluZy1udWxsPyBzKQogICAgICAiIgogICAgICAobGV0IGxvb3AgKChzIHMpKQog ICAgICAgIChsZXQgKChuIChyYW5kb20gKHN0cmluZy1sZW5ndGggcykpKSkKICAgICAgICAgIChp ZiAoemVybz8gbikgcwogICAgICAgICAgICAgIChsZXQgKChsZWZ0ICAobG9vcCAoc3Vic3RyaW5n L3NoYXJlZCBzIDAgbikpKQogICAgICAgICAgICAgICAgICAgIChyaWdodCAobG9vcCAoc3Vic3Ry aW5nL3NoYXJlZCBzIG4pKSkpCiAgICAgICAgICAgICAgICAoY29ucyBsZWZ0IHJpZ2h0KSkpKSkp KQoKKGRlZmluZSAocm9wZSBsZWZ0IHJpZ2h0KQogICJSb3BlIGNvbnN0cnVjdG9yLiIKICAoY29u ZCAoKGFuZCAoc3RyaW5nPyBsZWZ0KQogICAgICAgICAgICAgIChzdHJpbmctbnVsbD8gbGVmdCkp ICByaWdodCkKICAgICAgICAoKGFuZCAoc3RyaW5nPyByaWdodCkKICAgICAgICAgICAgICAoc3Ry aW5nLW51bGw/IHJpZ2h0KSkgbGVmdCkKICAgICAgICAoZWxzZSAoY29ucyBsZWZ0IHJpZ2h0KSkp KQo= --0000000000002861a90640b813cf Content-Type: text/x-scheme; charset="US-ASCII"; name="test.scm" Content-Disposition: attachment; filename="test.scm" Content-Transfer-Encoding: base64 Content-ID: <f_mgjbw2kc1> X-Attachment-Id: f_mgjbw2kc1 Ozsgcm9wZSwgYW4gaW1wbGVtZW50YXRpb24gb2Ygc3RyaW5nIHJvcGVzIGluIEdOVSBHdWlsZS4K OzsgQ29weXJpZ2h0IChDKSAyMDI1ICBOaWtvbGFvcyBDaGF0emlrb25zdGFudGlub3UKOzsgCjs7 IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5Cjs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cjs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCjs7IChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCjs7Cjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7Cjs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KCih1c2UtbW9kdWxlcyAoc3JmaSBzcmZpLTY0KQogICAgICAgICAg ICAgKGRhdGEgcm9wZSkpCgo7OzsgU2VlZCB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKKHNl dCEgKnJhbmRvbS1zdGF0ZSogKHJhbmRvbS1zdGF0ZS1mcm9tLXBsYXRmb3JtKSkKCihkZWZpbmUg ZnV6enlpbmctc3RyaW5nCiAgIlRoaXMgbG9uZyBzdHJpbmcgaXMgdXNlZCBmb3IgZnV6enlpbmcg cHVycG9zZXMgdG8gY3JlYXRlIGxvbmcgcmFuZG9tIHJvcGVzLiIpCihkZWZpbmUgcm9wZSAoc3Ry aW5nLT5yYW5kb20tcm9wZSBmdXp6eWluZy1zdHJpbmcpKQoKKHRlc3QtYmVnaW4gIlJvcGUiKQoo dGVzdC1lcXYgInJlZiB3aXRoIHplcm8gaW5kZXguIgogIChzdHJpbmctcmVmIGZ1enp5aW5nLXN0 cmluZyAwKQogIChyb3BlLXJlZiByb3BlIDApKQoodGVzdC1lbmQgIlJvcGUiKQo= --0000000000002861a90640b813cf--