On Wed, Oct 8, 2025 at 8:51 AM Basile Starynkevitch <[email protected]> wrote: > > On Wed, 2025-10-08 at 01:18 -0400, Nikolaos Chatzikonstantinou wrote: > > Hello list, > > > > I just wanted to show you this library that I wrote: > > > > 1. Documentation <https://annoyingusername.codeberg.page/guile-rope/>. > > 2. Project homepage <https://codeberg.org/annoyingusername/guile-rope>. > > > > It provides the (immutable) rope data structure for GNU Guile. I'm en > > route to writing a text editor (with no particular timeline in mind), > > and this library provides one of the needed functionalities to get it > > started. > > At least on Linux, guile-3.0 is using Boehm's garbage collector: > > and Boehm's GC https://en.wikipedia.org/wiki/Boehm_garbage_collector > also contains rope but calls them cord. > > So another approach could be to code glue code interfacing the ropes inside > Boehm GC.
The more of this you do C-side the more you'll have to deal with issues like encodings there, that's why I wrote a pure Guile library, to avoid that headache. (Plus, I don't want to write C, I want to have fun.) The libcord library doesn't link with the Boehm GC, it's distributed alongside it, for some of their examples. Boehm was involved both in the 1995 paper on ropes and the Boehm GC, he probably used libcord as a means to measure/prove the GC (although there may be some anachronism involved in my reasoning due to Boehm GC being released in 1988, but I don't wish to delve into the details too much.) Regards, Nikolaos Chatzikonstantinou
