[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