Hi!

Andy Wingo <wi...@pobox.com> skribis:

> As a thought experiment, I don't see why things should have to slow
> down.  Master has `scm_c_take_gc_bytevector', which can be used to wrap
> the existing scm_t_port::write_buf, ::read_buf, and ::putback_buf
> members.  At the cost of three allocations per port and three words per
> allocation (bytevector tag, length, and pointer), we could give access
> to these internal buffers to Scheme without affecting the C code at all.
>
> We could go farther and allocate the buffers as bytevectors directly,
> which would entail an additional indirection for C to get at the length
> and data, but the length and data would all be contiguous anyway so in
> practice I don't see it being too bad.

Yes, that seems doable.  What was the initial goal already?

Ludo’.

Reply via email to