Hello guile users, I am writing a library mixing some scheme code and C code, and I have two options for interfacing C strings: 1. Use bytevectors; 2. Use strings with byte access semantics (so-called latin-1, which is really a misleading name since it will most certainly contain utf-8- encoded unicode text).
>From the C side, they have nearly identical APIs, and the conversion functions do not transcode anything. >From the scheme side, however: 1. The bytevector library needs to be imported; 2. The function names have way more characters to type; 3. The bytevector library is missing a lot of text functions (like join, split, trim, pad, searching...). If the user wants to always manipulate unicode (decoded) strings, using either bytevectors or latin-1 strings require transcoding to enter the library and to exit the library, so either option is valid. But if the user wants to always manipulate utf-8-encoded strings [1], using bytevectors is impossible or much more difficult (see points above). So, why should I ever use bytevectors? divoplade [1] https://utf8everywhere.org/
