chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] Fix #757 by adding inlineable versions of


From: felix . winkelmann
Subject: Re: [Chicken-hackers] [PATCH] Fix #757 by adding inlineable versions of srfi-4 accessors, length checks and predicates
Date: Thu, 11 Apr 2019 13:52:13 +0200

> Hi all,
>
> Here's a reasonably straightforward patch to make XXXvector-ref,
> XXXvector-set!, XXXvector-length and XXXvector? inlineable, as
> per #757.  The predicate wasn't really part of the ticket but it
> seemed like a good thing to add (we can use it instead of copy/pasting
> all the checks inside the accessors).
>
> It's a bit ugly because it adds quite a large swath of code to
> runtime.c, but it should definitely speed things up.

Pushed. I wonder, though, whether all the accessor code
wouldn't be more compact using some fat C macros. On the
other hand that doesn't help readability much...

>
> Some notes/questions:
>
> - Could these be added to lfa2 for predicate extinguishing and
>    perhaps unboxing accessors too?  How would that work?

Unboxing works only for floating-point values, integers are
not affected. For lfa2 it would definitely make sense. Maybe you
can add a ticket for that?

> - Should we move the constructors to runtime.c as well, like
>    we have C_vector and C_a_i_vector?  I think it's probably
>    overkill, but who knows.

Would be an option.

> - Should we add a special case rewrite to c-platform.scm like
>    we have rewrite-make-vector?  Same here, probably total
>    overkill.

I doubt all the (possible) performance improvement is
worth the additional code + complexity.


felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]