1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-31 17:30:24 +02:00
guile/test-suite/tests
Daniel Llorens 31e9f8b974 Speed up for multi-arg cases of scm_ramap functions
This patch results in a 20%-40% speedup in the > 1 argument cases of
the following microbenchmarks:

(define A (make-shared-array #0(1) (const '()) #e1e7))
; 1, 2, 3 arguments.
(define a 0) ,time (array-for-each (lambda (b) (set! a (+ a b))) A)
(define a 0) ,time (array-for-each (lambda (b c) (set! a (+ a b c))) A A)
(define a 0) ,time (array-for-each (lambda (b c d) (set! a (+ a b c d))) A A A)

(define A (make-shared-array (make-array 1) (const '()) #e1e7))
(define B (make-shared-array #0(1) (const '()) #e1e7))
; 1, 2, 3 arguments.
,time (array-map! A + B)
,time (array-map! A + B B)
,time (array-map! A + B B B)

* libguile/array-map.c (scm_ramap): Note on cproc arguments.

  (rafill): Assume that dst's lbnd is 0.

  (racp): Assume that src's lbnd is 0.

  (ramap): Assume that ra0's lbnd is 0. When there're more than two
  arguments, compute the array handles before the loop. Allocate the arg
  list once and reuse it in the loop.

  (rafe): Do as in ramap(), when there's more than one argument.

  (AREF, ASET): Remove.
2016-11-23 11:49:35 +01:00
..
00-initial-env.test Add optimized tagged integer addition/subtractions for x86_64. 2010-11-19 13:34:43 +01:00
00-socket.test Merge commit 'b9b88351ea' 2014-02-08 14:55:16 +01:00
alist.test test-suite: eq-ness of numbers, characters is unspecified 2013-03-01 11:03:22 -05:00
and-let-star.test Update and-let-star.test 2016-06-21 13:40:02 +02:00
arrays.test Avoid unneeded internal use of array handles 2016-11-23 11:49:35 +01:00
asyncs.test Add asyncs test 2016-11-19 14:54:44 +01:00
atomic.test Compiler support for atomics 2016-09-06 12:18:35 +02:00
bit-operations.test fix bug in ash opcode 2010-03-31 22:29:29 +02:00
bitvectors.test Fix bit-count* bug 2014-07-04 16:52:29 +02:00
brainfuck.test move (test-suite lib) to lower dir; cleans up uninstalled paths. 2012-04-23 21:46:06 +02:00
bytevectors.test Fix size measurement in bytevector_large_set 2016-06-20 17:15:21 +02:00
c-api.test tests: Use NUL instead of /dev/null on MinGW. 2014-06-11 14:36:55 +02:00
chars.test String ports use UTF-8; ignore %default-port-encoding. 2013-08-07 01:22:22 -04:00
coding.test Make temporary file in coding.test work on MS-Windows. 2014-08-13 18:41:15 +03:00
common-list.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
compiler.test Fix slot allocation for prompts 2016-10-11 23:01:38 +02:00
continuations.test with-continuation-barrier calls exit(3) _after_ unwinding 2011-03-30 12:43:50 +02:00
control.test vm: Gracefully handle stack overflows. 2013-12-05 22:19:01 +01:00
coverage.test Add another code coverage test 2016-06-21 09:07:26 +02:00
cross-compilation.test Merge branch 'stable-2.0' 2014-09-30 03:50:47 -04:00
curried-definitions.test fix curried definitions for value defines 2010-04-08 21:01:52 +02:00
dwarf.test Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
ecmascript.test Fix tree-il code generation for ECMAscript `new' expression. 2016-10-25 23:39:30 +02:00
elisp-compiler.test fix `flet' syntax 2012-02-03 18:53:50 -05:00
elisp-reader.test use correct names for quasiquotation operators 2010-12-07 13:21:02 +01:00
elisp.test test-suite: eq-ness of numbers, characters is unspecified 2013-03-01 11:03:22 -05:00
encoding-escapes.test Change `scm_encoding_error' to pass the port and faulty character. 2011-02-02 18:06:29 +01:00
encoding-iso88591.test Improve handling of locales in the test suite. 2014-02-07 21:49:35 -05:00
encoding-iso88597.test Improve handling of locales in the test suite. 2014-02-07 21:49:35 -05:00
encoding-utf8.test Improve handling of locales in the test suite. 2014-02-07 21:49:35 -05:00
eval-string.test add ice-9 eval-string 2011-03-05 23:16:11 +01:00
eval.test Remove frame-procedure 2015-12-01 11:30:54 +01:00
exceptions.test Convert test-suite/tests/exceptions.test to use hygienic macros. 2013-11-22 22:53:51 -05:00
fdes-finalizers.test Add file descriptor finalizers 2016-08-30 23:35:10 +02:00
filesys.test Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
fluids.test Move thread bindings to (ice-9 threads) 2016-10-23 22:29:44 +02:00
foreign.test Foreign procedures are RTL programs 2013-10-18 17:41:33 +02:00
format.test tests: Check 'simple-format' with closed current-output-port. 2014-03-20 09:40:42 +01:00
fractions.test Fix incorrect rationalize tests. 2013-07-21 08:09:46 -04:00
ftw.test test-suite: Skip EACCES' test of file-system-fold' when run as root. 2012-12-10 23:41:06 +01:00
future.test futures: Limit the number of nested futures on the same stack. 2013-03-27 18:09:49 +01:00
gc.test tests: Add more `maybe-gc-flakiness'. 2013-03-22 22:24:27 +01:00
getopt-long.test Implement #:stop-at-first-non-option option for getopt-long 2011-05-26 17:58:18 +01:00
goops.test GOOPS caches created vtables 2016-09-02 09:43:42 +02:00
guardians.test Deprecate vector-ref, vector-length, vector-set! on weak vectors 2014-02-07 12:42:44 +01:00
hash.test Test for deleted weak pairs in hash-for-each. 2014-03-12 02:36:35 -04:00
hooks.test Enclose hooks tests in their own module. 2010-01-07 11:10:36 +01:00
i18n.test i18n: Add new collation test for posterity. 2016-05-22 19:49:44 +02:00
iconv.test U+FFFD is the input substitution character 2016-05-16 10:48:35 +02:00
import.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
interp.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
keywords.test Fix "coding:" cookies in the test suite. 2010-03-02 23:36:29 +01:00
linker.test fix linker.test 2013-06-10 22:42:46 +02:00
list.test Improve error reporting in 'append!' 2012-10-06 06:04:29 -04:00
load.test primitive-load returns the value(s) of the last expression 2012-01-09 16:15:00 +01:00
match.test move (test-suite lib) to lower dir; cleans up uninstalled paths. 2012-04-23 21:46:06 +02:00
match.test.upstream Update (ice-9 match) from Chibi-Scheme. 2011-10-16 18:36:20 +02:00
modules.test Merge branch 'stable-2.0' 2014-09-30 03:50:47 -04:00
multilingual.nottest Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
net-db.test tests: Have `getaddrinfo' test work for Darwin 8. 2012-02-03 10:30:52 +01:00
numbers.test Fix atan procedure when applied to complex numbers. 2016-05-22 19:29:38 +02:00
optargs.test Report the faulty keyword in errors raised by `scm_c_bind_keyword_arguments'. 2013-06-05 00:25:39 +02:00
options.test fix up options.test 2010-09-25 12:12:45 +02:00
pairs.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
parameters.test current-input-port et al are srfi-39 parameters 2011-12-10 21:37:19 +01:00
peg.bench PEG Renames 2013-01-16 10:11:49 +01:00
peg.test PEG Renames 2013-01-16 10:11:49 +01:00
peval.test Constant-folding eq? and eqv? uses deduplication 2016-06-24 17:37:51 +02:00
poe.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
popen-child.scm Fix hanging of popen.test 2010-07-01 22:16:54 +01:00
popen.test Unconditionally build and test the ice-9/popen module. 2014-07-03 19:20:00 +03:00
ports.test Avoid flushing buffers for ftell 2016-08-31 15:39:01 +02:00
posix.test tests: Gracefully handle ENOSYS return for 'setaffinity'. 2016-05-22 19:09:33 +02:00
print.test Merge branch 'stable-2.0' 2014-01-14 23:53:08 -05:00
procprop.test remove @apply memoizer 2013-06-27 22:02:35 +02:00
procs.test Add compose', negate', and `const'. 2010-12-16 23:45:23 +01:00
q.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
r4rs.test Placate a number of `syntax-check' verifications. 2012-01-05 23:38:10 +01:00
r5rs_pitfall.test Rewrite boot-9 map to be recursive and pure 2014-05-01 21:17:28 +02:00
r6rs-arithmetic-bitwise.test Optimize R6RS bitwise operators. 2013-07-21 10:00:48 -04:00
r6rs-arithmetic-fixnums.test Fix fixnum-range changes in R6RS fixnum bitops 2016-06-21 09:32:30 +02:00
r6rs-arithmetic-flonums.test Fix numerator and denominator handling of signed zeroes and infinities. 2013-08-09 06:09:56 -04:00
r6rs-base.test R6RS `string-for-each' should accept multiple string arguments 2012-11-22 22:26:16 +01:00
r6rs-conditions.test Some tweaks to the R6RS support 2010-11-25 23:04:12 +01:00
r6rs-control.test Implementation and test cases for the R6RS (rnrs control) library. 2010-05-20 21:18:02 -04:00
r6rs-enums.test Enumeration set universe comparisons should be done with `equal?' 2010-11-21 15:35:44 -05:00
r6rs-eval.test Fix typo in license comment. 2010-05-20 21:18:04 -04:00
r6rs-exceptions.test Convert guile exceptions to R6RS conditions in R6RS exception handlers. 2013-11-18 00:35:42 -05:00
r6rs-files.test Untabify some test files. 2014-07-03 21:02:23 +03:00
r6rs-hashtables.test (rnrs hashtables): Hash functions of eq? and eqv? hashtables 2016-06-21 09:48:36 +02:00
r6rs-lists.test Fix R6RS `fold-left' so the accumulator is the first argument. 2011-11-01 01:11:46 +01:00
r6rs-ports.test Add tests for make-custom-binary-input/output-port 2016-08-31 11:11:24 +02:00
r6rs-records-inspection.test Implementation for the R6RS (rnrs hashtables) library; 2010-05-20 21:18:02 -04:00
r6rs-records-procedural.test Fix test suite title in comment 2010-05-20 21:18:03 -04:00
r6rs-records-syntactic.test fix r6rs-records-syntactic.test to not shadow a literal 2011-07-01 12:01:58 +02:00
r6rs-unicode.test Implementation and test cases for the R6RS (rnrs unicode) library. 2010-05-20 21:18:03 -04:00
ramap.test Speed up for multi-arg cases of scm_ramap functions 2016-11-23 11:49:35 +01:00
random.test Change uses of scm_is_simple_vector to scm_is_vector 2014-02-08 18:26:49 +01:00
rdelim.test U+FFFD is the input substitution character 2016-05-16 10:48:35 +02:00
reader.test Heed the reader settings implied by #!r6rs 2016-05-22 19:40:37 +02:00
receive.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
records.test make-record-type slight refactor 2010-04-19 19:33:57 +02:00
regexp.test Merge commit '0ce224594a' 2014-02-08 14:48:56 +01:00
rnrs-libraries.test Fix R6RS imports of interfaces that use interfaces 2016-04-14 12:35:55 +02:00
rnrs-test-a.scm move (test-suite lib) to lower dir; cleans up uninstalled paths. 2012-04-23 21:46:06 +02:00
rtl-compilation.test Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
rtl.test Don't serialize uninterned symbols 2016-06-23 15:45:53 +02:00
session.test Fix procedure-arguments on RTL programs, and tweak session.test 2013-11-08 13:29:03 +01:00
signals.test Sloppier matching in setitimer tests 2014-03-26 10:47:40 +01:00
sort.test Support typed arrays in some sort functions 2016-11-23 11:49:35 +01:00
srcprop.test Add tests to verify that 'read' sets source properties when appropriate 2012-02-15 12:23:12 -05:00
srfi-1.test SRFI-1 'length+' raises an error unless passed a proper or circular list. 2014-06-01 19:19:40 -04:00
srfi-2.test Add SRFI-2 (and-let*) test suite. 2016-06-21 13:40:01 +02:00
srfi-4.test Deprecate general "uniform-vector" interface 2014-02-08 14:28:07 +01:00
srfi-6.test Make SRFI-6 string ports Unicode-capable. 2012-06-20 15:50:27 +02:00
srfi-9.test Adapt srfi-9.test to error reporting improvements; update copyright dates. 2013-09-12 18:14:54 -04:00
srfi-10.test add quasisyntax 2009-11-14 17:25:12 +01:00
srfi-11.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
srfi-13.test Fix 'string-copy!' to work properly with overlapping src/dest. 2014-01-08 21:42:24 -05:00
srfi-14.test Improve handling of locales in the test suite. 2014-02-07 21:49:35 -05:00
srfi-17.test adapt tests to new syntax-error form 2010-11-18 11:04:15 +01:00
srfi-18.test Recursively locking a SRFI-18 mutex blocks 2016-11-05 10:30:54 +01:00
srfi-19.test Improve handling of locales in the test suite. 2014-02-07 21:49:35 -05:00
srfi-26.test * tests/srfi-26.test: New. 2004-01-21 00:45:48 +00:00
srfi-27.test Add implementation of SRFI 27 2010-09-27 22:15:51 +02:00
srfi-31.test Rewrite SRFI-31 in terms of `syntax-rules'. 2012-09-11 23:39:32 +02:00
srfi-34.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
srfi-35.test test-suite: eq-ness of numbers, characters is unspecified 2013-03-01 11:03:22 -05:00
srfi-37.test SRFI-37: Fix infinite loop when processing short option with no required arg. 2013-03-25 23:25:57 +01:00
srfi-38.test Add implementation of SRFI 38 2010-11-03 00:19:54 +01:00
srfi-39.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
srfi-41.test Add SRFI-41. 2013-03-27 13:37:45 -04:00
srfi-42.test Remove stale test file. 2012-01-30 20:57:42 +01:00
srfi-43.test Implement SRFI-43 Vector Library. 2014-02-01 01:19:49 -05:00
srfi-45.test SRFI-45: add promise? predicate. 2013-03-26 21:22:11 -04:00
srfi-60.test SRFI-60: Reimplement 'rotate-bit-field' on inums to be more portable. 2014-03-11 21:39:26 -04:00
srfi-64-test.scm Implement SRFI-64 - A Scheme API for test suites. 2014-02-01 01:19:55 -05:00
srfi-64.test Fix srfi-64.test for #:select borkage. The irony... 2016-06-21 22:46:03 +02:00
srfi-67.test Placate a number of `syntax-check' verifications. 2012-01-05 23:38:10 +01:00
srfi-69.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
srfi-88.test Fix "coding:" cookies in the test suite. 2010-03-02 23:36:29 +01:00
srfi-98.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
srfi-105.test String ports use UTF-8; ignore %default-port-encoding. 2013-08-07 01:22:22 -04:00
srfi-111.test Implement SRFI-111 Boxes. 2014-01-24 10:50:51 -05:00
statprof.test Avoid deprecated statprof interface in test 2016-09-14 11:06:33 +02:00
streams.test Change Guile license to LGPLv3+ 2009-06-17 00:22:09 +01:00
strings.test Implement 'string-utf8-length' and 'scm_c_string_utf8_length'. 2016-05-22 19:03:37 +02:00
structs.test Implement `hash' for structs. 2012-10-12 23:21:39 +02:00
suspendable-ports.test Update port documentation, rename sports to suspendable ports 2016-06-09 10:50:32 +02:00
sxml-match-tests.ss sxml-match: Handle multiple-value returns. 2010-05-26 23:41:23 +02:00
sxml.fold.test Remove `fold' from (sxml fold). 2010-04-09 00:32:14 +02:00
sxml.match.test move (test-suite lib) to lower dir; cleans up uninstalled paths. 2012-04-23 21:46:06 +02:00
sxml.simple.test add #:doctype-handler to xml->sxml 2013-01-30 15:29:18 +01:00
sxml.ssax.test update licenses on tests imported from guile-lib 2010-04-07 21:37:50 +02:00
sxml.transform.test update licenses on tests imported from guile-lib 2010-04-07 21:37:50 +02:00
sxml.xpath.test update licenses on tests imported from guile-lib 2010-04-07 21:37:50 +02:00
symbols.test symbols with odd characters print better in #{}# 2011-04-11 13:48:11 +02:00
syncase.test Fix infinite loop in expander 2015-02-13 16:43:01 +01:00
syntax.test Fix syntax.test 2014-12-10 16:25:50 +01:00
texinfo.docbook.test update licenses on tests imported from guile-lib 2010-04-07 21:37:50 +02:00
texinfo.html.test Fix texinfo->html for @acronym, @itemize 2016-06-24 17:09:39 +02:00
texinfo.serialize.test Texinfo serialization: add braces when needed 2016-10-11 22:08:03 +02:00
texinfo.string-utils.test texinfo: Add whitespace after periods. 2013-03-22 22:05:23 +01:00
texinfo.test texinfo: fix @url{@@} parsing 2014-11-09 15:56:33 +00:00
threads.test Back to simple unlock-mutex 2016-11-05 11:50:31 +01:00
time.test Modify socket and time functions for wide strings 2009-08-23 09:29:45 -07:00
tree-il.test Merge branch 'stable-2.0' 2014-09-30 03:50:47 -04:00
types.test (system base types) knows about variables 2015-02-17 10:58:29 +01:00
unicode.test Add (ice-9 unicode) module 2014-09-29 21:54:14 -04:00
vectors.test add vector-move test cases 2011-02-14 20:21:04 +01:00
version.test Relax the `(version)' test. 2010-05-30 22:39:23 +02:00
vlist.test Merge remote-tracking branch 'origin/stable-2.0' 2013-03-28 05:09:53 -04:00
weaks.test Merge commit '9b5da400dd' 2014-02-07 15:36:06 +01:00
web-client.test Generic port facility provides buffering uniformly 2016-04-06 19:21:44 +02:00
web-http.test Avoid deprecated _IONBF in http tests 2016-09-14 11:07:40 +02:00
web-request.test fix web-request.test 2011-07-18 10:37:46 +02:00
web-response.test web: Fix 'close' method of delimited input ports. 2016-05-22 19:48:47 +02:00
web-uri.test Fix uri-decode behavior for "+" 2016-06-20 14:48:15 +02:00