[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
What is the point of bytevectors?
From: |
divoplade |
Subject: |
What is the point of bytevectors? |
Date: |
Sat, 12 Sep 2020 09:49:53 +0200 |
User-agent: |
Evolution 3.34.2 |
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/
- What is the point of bytevectors?,
divoplade <=