<div>AFIR, PyPy does the same (using ropes), Strings in Python are immutable.</div><br><div class="gmail_quote_attribution">On May 2 2022, at 3:58 pm, ken.dickey--- via Cuis-dev <cuis-dev@lists.cuis.st> wrote:</div><blockquote><div><div>On 2022-05-02 06:10, Juan Vuletich via Cuis-dev wrote:</div><div>> On 5/1/2022 1:59 AM, Douglas Brebner via Cuis-dev wrote:</div><div>..</div><div>>> What about using Ken's Ropes?</div><div>></div><div>> I think this is independent of Ropes. Ropes are great for very large</div><div>> text. Rope fragments should be sequences of UTF-8 bytes. So Ropes</div><div>> should be a third representation, and should be completely compatible</div><div>> with StringUTF8. Applications should be able to pick their preferred</div><div>> representation.</div><br><div>Quick note. As Ropes are immutable, changes/updates return a new Rope.</div><br><div>This is great for multicore (no locking required), and great for "undo"</div><div>(just go back to the previous rope), but no mutation means no mutation</div><div>in place.</div><br><div>So updates look like</div><div>textStr := textStr at: 37 put: $%.</div><div>or some such.</div><br><div>An application can choose which style to use, but must be aware to use</div><div>the proper style. Undo is easier, but different.</div><br><div>Cedar Mesa is an example of a significant IDE/system which only used</div><div>Ropes, never Strings.</div><br><div>HTH,</div><div>-KenD</div><div>--</div><div>Cuis-dev mailing list</div><div>Cuis-dev@lists.cuis.st</div><div>https://lists.cuis.st/mailman/listinfo/cuis-dev</div></div></blockquote>