diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-08-09 05:59:34 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-08-09 05:59:34 -0700 |
commit | 9a067618e82ca2a34960376725952c3439db6fa0 (patch) | |
tree | 77ec7dc01c6f3edba548033c533ccdb34887fa37 /tests/002 | |
parent | d7fabf2e890ee21abaaab2bf2396f3f12c57a58d (diff) | |
download | txr-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 'tests/002')
0 files changed, 0 insertions, 0 deletions