diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-08-31 22:33:29 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-08-31 22:33:29 -0700 |
commit | 2d2cfdc16d4d96fa685853d96b8b7f86ec7dd27d (patch) | |
tree | 47e113fb435ce842002faaa3c48c08dd05c541e7 /eval.c | |
parent | 7dc1bd077837c61d2ebdeb53f7ae896a760011fe (diff) | |
download | txr-2d2cfdc16d4d96fa685853d96b8b7f86ec7dd27d.tar.gz txr-2d2cfdc16d4d96fa685853d96b8b7f86ec7dd27d.tar.bz2 txr-2d2cfdc16d4d96fa685853d96b8b7f86ec7dd27d.zip |
interpreter: trivial let goes through let* case.
* eval.c (bindings_helper): If there are no bindings or just
one binding, then go through the sequential case. Thus trivial
let is treated like let*. This avoids the continuation-related
overheads incurred in the parallel case.
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1656,7 +1656,7 @@ static val bindings_helper(val vars, val env, val sequential, val iter, var; list_collect_decl (new_bindings, ptail); - if (sequential) { + if (sequential || vars == nil || cdr(vars) == nil) { for (iter = vars; iter; iter = cdr(iter)) { val item = car(iter); val value = nil; |