On Fri, 11 Mar 2022, Maxime Devos <maximede...@telenet.be> wrote: > Olivier Dion via General Guile related discussions schreef op do 10-03- > 2022 om 18:46 [-0500]: >> I haven't check the implementation details, but I think it's just a >> question of buffering. `get-bytevector-n` will block just like >> `get-bytevector-some` when the port is empty. The former will return up >> to N bytes and the latter might return more than N bytes. > > I don't think that get-bytevector-some can return more, and it could > return less: > > Return either [...] or a new bytevector containing some of the > available bytes (at least one),
More or less is relative to the N value compared with get-bytevector-n. So realy the `some` value is unknown. You just know you will have at least a byte yes. > Also, gnunet-scheme depends on the behaviour of it (*) being able to > return less without blocking (in gnu/gnunet/utils/tokeniser.scm). If > the behaviour was different, there would have been many test failures. > > (*) actually, it uses the variant 'get-bytevector-some!' instead of > 'get-bytevector-some'. Re-using the same vector would certainly reduce memory usage/fragmentation I suppose. Internally, the latter use the former I think. Regards, old -- Olivier Dion Polymtl