Add loopy--instr-let-var*, loopy--instr-let-const*,
loopy--instr-let-var, loopy--instr-let-const. These macros are similar
to macroexp-let2* in that the const versions try to pass constant values
directly without creating a variable in the Loopy expansion.
Only evaluate values like
:test
and:by
once.Add
loopy--instr-let-var*
,loopy--instr-let-const*
,loopy--instr-let-var
,loopy--instr-let-const
. These macros are similar tomacroexp-let2*
in that theconst
versions try to pass constant values directly without creating a variable in the Loopy expansion.Update
array
,array-ref
,cons
,list
,list-ref
,seq
,seq-ref
,seq-index
,adjoin
,union
,nunion
Don't update
numbers
until after we remove the non-keyword args.Replace some uses of
seq-let
withcl-destructuring-bind
.Use
loopy--bind-main-body
in some places.Add some TODOs.
Fix
list-ref
tests to not modify literal constant list.Fix
seq-ref
tests to not modify literal constant list.Make
loopy--find-start-by-end-dir-vals
return the test function.Add
:test
toarray
,array-ref
,sequence
,sequence-index
, andsequence-ref
.nthcdr
instead ofelt
.Add
sequence
,sequence-ref
,sequence-index
,array
, andarray-ref
tests for:downfrom
and:upfrom
as needed.