]> git.mxchange.org Git - simgear.git/commit
Been hacking at Nasal recently:
authorandy <andy>
Mon, 3 Jul 2006 05:13:27 +0000 (05:13 +0000)
committerandy <andy>
Mon, 3 Jul 2006 05:13:27 +0000 (05:13 +0000)
commitd894f52b975d05f494591a77a8546ebd189973dd
tree4bff095b18e4f2c802f7fb4a4fa9adaeee40e86d
parent735f475c24b76e50f168ba80062f93f61d488058
Been hacking at Nasal recently:

Fix bug with break/continue inside of a foreach or forindex: Don't pop
the vector/index inside OP_EACH, do it at the end of the loop.

In the process, discovered and fixed a scary corruption issue with
continue; it never really worked right, although simple usage was
likely to get away without crashing.  Both the continue's OP_BREAK and
the cleanup code at the end of a loop would pop the "mark" stack,
leading to an underflow.  Introduced an OP_CONTINUE which adjusts
stack but doesn't change markTop

Re-inline the PUSH macro.  This thing is called all over the place
from the inner loop.  If the problem is intra-expression side effects,
then just use another expression in the macro.

Return an empty vector when requesting zero-length subvec, not nil

Have call() return the call stack in the error vector; see docs on
plausible.org/nasal or ask Andy about this feature.

Default closure()'s level argument to zero, not nil

Add an optional "file name" argument to compile()
simgear/nasal/code.c
simgear/nasal/code.h
simgear/nasal/codegen.c
simgear/nasal/gc.c
simgear/nasal/lib.c
simgear/nasal/vector.c