summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2025-03-28 07:07:56 -0700
committerKaz Kylheku <kaz@kylheku.com>2025-03-28 07:07:56 -0700
commit09881b5025ef797821d9c6f238b332318795fd0c (patch)
tree9a33d893e979ff76e09cf3d648932c57228df714 /eval.c
parent48a7a911475fbeccc2e1fe078a5db1544909096b (diff)
downloadtxr-09881b5025ef797821d9c6f238b332318795fd0c.tar.gz
txr-09881b5025ef797821d9c6f238b332318795fd0c.tar.bz2
txr-09881b5025ef797821d9c6f238b332318795fd0c.zip
compiler: reduce some equal-based sequence functions.
* stdlib/compiler.tl (compiler comp-fun-form): Recognize two-argument forms of remove, count, pos, member and subst. When these don't specify test, key or map functions, they are equivalent to remqual, countqual, posqual, memqual and subqual. These functions are a bit faster because they have no arguments to default and some of their C implementations call the equal function either directly or via a pointer, rather than via going via funcall. The exceptions are posqual and subqual which actually call pos; but even for these it is still slightly advantageous to convert to to the fixed arity function, because funcall2 doesn't have to default the optional arguments with colon_k.
Diffstat (limited to 'eval.c')
0 files changed, 0 insertions, 0 deletions