1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-02 04:40:29 +02:00
guile/testsuite
Andy Wingo 7e4760e413 fix bug in compilation of and' and or'; more robust underflow detection.
* module/system/il/compile.scm (codegen): Rewrite handling of `and' and
  `or' ghil compilation, because it was broken if drop was #t. Tricky
  bug, this one! Took me days to track down!

* module/system/repl/repl.scm: Export call-with-backtrace, which probably
  should go in some other file.

* src/vm.c (scm_vm_save_stack): Handle the fp==0 case for errors before
  we have a frame.

* src/vm_engine.h (NEW_FRAME, FREE_FRAME): Stricter underflow checking,
  raising the stack base to the return address, in an attempt to prevent
  inadvertant stack smashing (the symptom of the and/or miscompilation
  bug).
  (CHECK_IP): A check that the current IP is within the bounds of the
  current program. Not normally compiled in. Perhaps it should be?

* src/vm_system.c (halt): Set vp->ip to NULL. Paranoia, I know.
  (return): Call CHECK_IP(), if such a thing is compiled in.

* testsuite/Makefile.am (vm_test_files):
* testsuite/t-catch.scm:
* testsuite/t-map.scm:
* testsuite/t-or.scm: New tests.
2008-08-11 18:35:58 +02:00
..
Makefile.am fix bug in compilation of and' and or'; more robust underflow detection. 2008-08-11 18:35:58 +02:00
run-vm-tests.scm build fixes 2008-08-07 13:29:15 +02:00
t-basic-contructs.scm Encode the length of constant lists/vectors on 2 octets instead of 1. 2008-04-25 19:09:30 +02:00
t-catch.scm fix bug in compilation of and' and or'; more robust underflow detection. 2008-08-11 18:35:58 +02:00
t-closure.scm Fixed a Scheme translation bug; cleaned compilation with GCC 4. 2008-04-25 19:09:30 +02:00
t-closure2.scm Fixed a Scheme translation bug; cleaned compilation with GCC 4. 2008-04-25 19:09:30 +02:00
t-closure3.scm Fixed a Scheme translation bug; cleaned compilation with GCC 4. 2008-04-25 19:09:30 +02:00
t-do-loop.scm Fixed a Scheme translation bug; cleaned compilation with GCC 4. 2008-04-25 19:09:30 +02:00
t-global-bindings.scm * src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the 2008-04-25 19:09:30 +02:00
t-macros.scm Added support for defmacro' and define-macro' in the compiler. 2008-04-25 19:09:30 +02:00
t-macros2.scm Added support for defmacro' and define-macro' in the compiler. 2008-04-25 19:09:30 +02:00
t-map.scm fix bug in compilation of and' and or'; more robust underflow detection. 2008-08-11 18:35:58 +02:00
t-match.scm fix use-syntax / use-modules confusion -- fixes testsuites 2008-05-14 14:54:52 +02:00
t-mutual-toplevel-defines.scm Add instructions for doing very late binding 2008-05-19 17:46:05 +02:00
t-or.scm fix bug in compilation of and' and or'; more robust underflow detection. 2008-08-11 18:35:58 +02:00
t-proc-with-setter.scm Fixed a Scheme translation bug; cleaned compilation with GCC 4. 2008-04-25 19:09:30 +02:00
t-records.scm fix use-syntax / use-modules confusion -- fixes testsuites 2008-05-14 14:54:52 +02:00
t-values.scm * src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the 2008-04-25 19:09:30 +02:00
the-bug.txt * src/objcodes.c (make_objcode_by_mmap): Fixed the error type when the 2008-04-25 19:09:30 +02:00