diff options
author | Daniel Llorens <daniel.llorens@bluewin.ch> | 2013-04-25 15:18:05 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-01-27 21:48:02 +0100 |
commit | 2bd96d9ecd73b71b3666c7d1931ec3e33e5f49fb (patch) | |
tree | 971cdeffaed8b7561cd58490fbac5205e1810a6d /module/rnrs | |
parent | cdd7cc9e9b3750a759ab442249a6f004a503fba5 (diff) | |
download | guile-2bd96d9ecd73b71b3666c7d1931ec3e33e5f49fb.tar.gz |
Fix corner cases of scm_ramapc
* libguile/array-map.c
- (scm_ramapc): mismatched axes limit unrollk (kroll). Reorganize
the function to do all checking as we go.
- (scm_ra_matchp): unused; remove.
- (find_unrollk): inlined in scm_ramapc; remove.
- (klen): inlined in scm_ramapc; remove.
- (rafill): n is size_t.
- (racp): n is size_t. Use n and not i0end to bound the loop.
- (ramap): Use n and not i0end to bound the loop. This is needed for the rank
0 case to work with the new scm_ramapc, as inc may be set to 0 in that case.
- (rafe): idem.
* test-suite/tests/ramap.test
- check that size mismatch prevents unrolling (matching behavior III) with
both array-copy! and array-map!.
- check that non-contiguous stride in non-ref args prevents unrolling
(rank 2, discontinuous) with both array-copy! and array-map!.
- check rank 0 cases with array-for-each, array-map!.
Diffstat (limited to 'module/rnrs')
0 files changed, 0 insertions, 0 deletions