Summary
provide ##core#inline-routines for cheap SRFI-4 vector primitives
Metadata
- Id: f2950b713ac893bd355bce0d40093c827533fb28
- Trac id: 757
- Type: enhancement
- Reporter: felix
- Owner: felix
- Cc:
- Status: closed
- Component: compiler
- Estimated difficulty: medium
- Resolution: fixed
- Priority: minor
- Milestone: 5.1
- Version: 4.7.x
- Changetime: 2019-04-11 13:52:48 UTC
- Created: 2011-12-17 17:44:51 UTC
- Keywords:
Description
`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.
Changes and comments
[2011-12-17 17:49:49 UTC] felix changed description
[2011-12-20 07:27:28 UTC] felix wrote:
Note: renaming `C_a_i_XXXvector_ref` and friends will require updating the names in `unboxing.scm`.
[2016-02-20 13:07:02 UTC] sjamaan set milestone to 5.1
[2016-02-20 13:07:02 UTC] sjamaan wrote:
Putting it on the roadmap, tentatively for 5.1
[2016-08-20 13:55:35 UTC] sjamaan wrote:
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.
[2016-08-20 13:55:35 UTC] sjamaan wrote:
1471694168184367
[2016-08-25 21:03:59 UTC] sjamaan set difficulty to medium
[2019-04-07 12:23:24 UTC] sjamaan wrote:
Getting ready for 5.1, moving tickets which won't make it in to 5.2.
[2019-04-07 12:23:24 UTC] sjamaan changed milestone from 5.1 to 5.2
[2019-04-11 13:52:48 UTC] sjamaan changed status from new to closed
[2019-04-11 13:52:48 UTC] sjamaan set resolution to fixed
[2019-04-11 13:52:48 UTC] sjamaan changed milestone from 5.2 to 5.1
[2019-04-11 13:52:48 UTC] sjamaan wrote:
Implemented with ea10de3