* libguile/eval.c: Separated some definitions relevant for execution
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Wed, 24 Mar 2004 01:21:50 +0000 (01:21 +0000)
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>
Wed, 24 Mar 2004 01:21:50 +0000 (01:21 +0000)
commit62360b89758b5efb790c0f8455afa286e8fe6ff4
treef8f7d1fd8e5a10866c6d4b2865a210940514fd3a
parentb28f5b3cb2549d311cf973837e6c133d632e6763
* libguile/eval.c: Separated some definitions relevant for execution
from the memoization part of the file.

(copy_tree): New static function

(scm_copy_tree): Rewritten to fix two kinds or bugs: First, cyclic
structures are detected now and will lead to an exception instead
of forcing guile to run in an endless loop, using up all the
system's memory.  Second, arrays in the cdr of an improper list
are now copied.  See the new test cases in eval.test.

* test-suite/tests/eval.test: Added tests which reflect the recent
fixes to copy-tree.
libguile/ChangeLog
libguile/eval.c
test-suite/ChangeLog
test-suite/tests/eval.test