Opened 13 years ago
Closed 6 years ago
#757 closed enhancement (fixed)
provide ##core#inline-routines for cheap SRFI-4 vector primitives
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | minor | Milestone: | 5.1 |
Component: | compiler | Version: | 4.7.x |
Keywords: | Cc: | ||
Estimated difficulty: | medium |
Description (last modified by )
XXXvector-length
, XXXvector-ref
and XXXvector-set!
would be much more efficient if routines callable via ##core#inline[_allocate]
would be available for them (just as it currently is for, say, vector-ref
). Since the structure-tag is not available in the C runtime, it has to be explicitly passed, e.g.
C_word C_i_XXXvector_ref(C_word tag, C_word vec, C_word index); C_word C_i_XXXvector_set(C_word tag, C_word vec, C_word index, C_word x); C_word C_i_XXXvector_length(C_word tag, C_word vec);
(need allocating ..._ref
for f64/s32/u32 vector)
Note that the existing C_a_i_f64/S32/u32vector_ref
are incorrectly named and should be C_u_a_i_...
or something similar.
Change History (7)
comment:1 Changed 13 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 13 years ago by
comment:4 Changed 8 years ago by
We could also simply make the tags available in a global variable, like we do (or did) for the extended numeric types and the error-hook. This would be slightly more flexible, for example if we changed the representation to have a dedicated custom type.
comment:5 Changed 8 years ago by
Estimated difficulty: | → medium |
---|
comment:6 Changed 6 years ago by
Milestone: | 5.1 → 5.2 |
---|
Getting ready for 5.1, moving tickets which won't make it in to 5.2.
comment:7 Changed 6 years ago by
Milestone: | 5.2 → 5.1 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Implemented with ea10de3
Note: renaming
C_a_i_XXXvector_ref
and friends will require updating the names inunboxing.scm
.