1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-29 19:30:36 +02:00
guile/testsuite/t-basic-contructs.scm
Ludovic Courtes 23b587b0a1 Encode the length of constant lists/vectors on 2 octets instead of 1.
* module/system/vm/assemble.scm (dump-object!): New sub-procedure
  `too-long'.  For `list' and `vector', encode the length on 2 octets
  instead of 1 and report an error if a list/vector is longer than 65535.

* module/system/vm/disasm.scm (original-value): New sub-procedure
  `list-or-vector?'; when true, return the number of elements for that
  list/vector.

* src/vm_system.c (list): Fetch the length as a two-octet integer.
  (vector): Likewise.

* testsuite/t-basic-contructs.scm: New.

* testsuite/Makefile.am (vm_test_files): Added the above file.

* module/system/vm/core.scm (load-compiled): Added a bit of
  documentation.

git-archimport-id: lcourtes@laas.fr--2005-mobile/guile-vm--mobile--0.6--patch-11
2008-04-25 19:09:30 +02:00

16 lines
328 B
Scheme

;;; Basic RnRS constructs.
(and (eq? 2 (begin (+ 2 4) 5 2))
((lambda (x y)
(and (eq? x 1) (eq? y 2)
(begin
(set! x 11) (set! y 22)
(and (eq? x 11) (eq? y 22)))))
1 2)
(let ((x 1) (y 3))
(and (eq? x 1) (eq? y 3)))
(let loop ((x #t))
(if (not x)
#t
(loop #f))))