mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 08:10:17 +02:00
Fixed a Scheme translation bug; cleaned compilation with GCC 4.
* module/language/scheme/translate.scm (trans-pair): In the `set!' case, when a procedure-with-setter is passed, call `trans:pair' with an actual pair. This fixes a long-lasting bug which prevented compilation of `set!' statements with procedures-with-setter (this showed up when compiling `(system vm assemble)'). * module/system/base/compile.scm: Added `objcode->u8vector' to the `#:select' clause. * module/system/base/syntax.scm: Cosmetic changes. * module/system/vm/assemble.scm (preprocess): Removed debugging statements. * src/frames.c: Cosmetic changes. * src/frames.h (SCM_FRAME_SET_DYNAMIC_LINK): New. * src/objcodes.c: Use `scm_t_uint8' instead of `char' when relevant. * src/vm.c (vm_heapify_frames_1): Use `SCM_FRAME_SET_DYNAMIC_LINK ()'. * src/vm_loader.c: Added casts to mute GCC 4 warnings. * testsuite/run-vm-tests.scm (*scheme*): Renamed to `%scheme'. (run-test-from-file): Renamed to `compile/run-test-from-file'. (run-vm-tests): Run each test using both the VM and the interpreter; compare the results. * testsuite/t-proc-with-setter.scm: Try out `get/set'. * doc/Makefile.am (info_TEXINFOS): New. * doc/guile-vm.texi: Added index entries and indices. * doc/texinfo.tex: New file. git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-5
This commit is contained in:
parent
49edef60dc
commit
b6368dbbb9
19 changed files with 7212 additions and 74 deletions
|
@ -43,13 +43,13 @@
|
|||
(cond ((pair? x)
|
||||
(let ((y (macroexpand x)))
|
||||
(if (eq? x y)
|
||||
(trans-pair e (or (location x) l) (car x) (cdr x))
|
||||
(trans e l y))))
|
||||
(trans-pair e (or (location x) l) (car x) (cdr x))
|
||||
(trans e l y))))
|
||||
((symbol? x)
|
||||
(let ((y (symbol-expand x)))
|
||||
(if (symbol? y)
|
||||
(<ghil-ref> e l (ghil-lookup e y))
|
||||
(trans e l y))))
|
||||
(<ghil-ref> e l (ghil-lookup e y))
|
||||
(trans e l y))))
|
||||
(else (<ghil-quote> e l x))))
|
||||
|
||||
(define (symbol-expand x)
|
||||
|
@ -109,7 +109,7 @@
|
|||
;; (set! (NAME ARGS...) VAL)
|
||||
((((? symbol? name) . args) val)
|
||||
;; -> ((setter NAME) ARGS... VAL)
|
||||
(trans:pair `((setter ,name) (,@args ,val))))
|
||||
(trans:pair `((setter ,name) . (,@args ,val))))
|
||||
|
||||
(else (bad-syntax))))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue