summaryrefslogtreecommitdiffstats
path: root/stream.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-08-09 05:59:34 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-08-09 05:59:34 -0700
commit9a067618e82ca2a34960376725952c3439db6fa0 (patch)
tree77ec7dc01c6f3edba548033c533ccdb34887fa37 /stream.h
parentd7fabf2e890ee21abaaab2bf2396f3f12c57a58d (diff)
downloadtxr-9a067618e82ca2a34960376725952c3439db6fa0.tar.gz
txr-9a067618e82ca2a34960376725952c3439db6fa0.tar.bz2
txr-9a067618e82ca2a34960376725952c3439db6fa0.zip
compiler: inline-lambda: optimize constant apply list.
* share/txr/stdlib/compiler.tl (comp-inline-lambda): Pass nil to new argument of lambda-apply-transform, indicating top-level call. (lambda-apply-transform): Takes new argument indicating whether it's a recursive call. If the apply list expression is constant, then it is evaluated and treated as a list of arguments which are then turned into quoted constants individually and passed as fixed args in a recursive call. This eliminates the generation of code dealing with run-time evaluation and destructuring of the apply arguments.
Diffstat (limited to 'stream.h')
0 files changed, 0 insertions, 0 deletions