mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
* module/language/tree-il.scm (parse-tree-il): Fix a number of bugs. (unparse-tree-il): Apply takes rest args now. * module/language/tree-il/analyze.scm (analyze-lexicals) (analyze-lexicals): Heap vars shouldn't increment the number of locals. * module/language/tree-il/optimize.scm (resolve-primitives!): Don't resolve public refs to primitives, not at the moment anyway. * test-suite/Makefile.am (SCM_TESTS): Add tree-il test. * test-suite/lib.scm (pass-if, expect-fail, pass-if-exception) (expect-fail-exception): Rewrite as syntax-rules macros. In a very amusing turn of events, it turns out that bindings introduced by hygienic macros are not visible inside expansions produced by defmacros. This seems to be expected, so go ahead and work around the problem. * test-suite/tests/srfi-31.test ("rec special form"): Expand in eval. * test-suite/tests/syntax.test ("begin"): Do some more expanding in eval, though all is not yet well. * test-suite/tests/tree-il.test: New test suite, for tree-il->glil compilation.
38 lines
1.5 KiB
Scheme
38 lines
1.5 KiB
Scheme
;;;; srfi-31.test --- Test suite for Guile's SRFI-31 functions. -*- scheme -*-
|
|
;;;;
|
|
;;;; Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
|
;;;;
|
|
;;;; This library is free software; you can redistribute it and/or
|
|
;;;; modify it under the terms of the GNU Lesser General Public
|
|
;;;; License as published by the Free Software Foundation; either
|
|
;;;; version 2.1 of the License, or (at your option) any later version.
|
|
;;;;
|
|
;;;; This library is distributed in the hope that it will be useful,
|
|
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
;;;; Lesser General Public License for more details.
|
|
;;;;
|
|
;;;; You should have received a copy of the GNU Lesser General Public
|
|
;;;; License along with this library; if not, write to the Free Software
|
|
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
(define-module (test-suite test-srfi-31)
|
|
#:use-module (test-suite lib)
|
|
#:use-module (srfi srfi-31))
|
|
|
|
(with-test-prefix "rec special form"
|
|
|
|
(pass-if-exception "bogus variable" '(misc-error . ".*")
|
|
(sc-expand '(rec #:foo)))
|
|
|
|
(pass-if "rec expressions"
|
|
(let ((ones-list (rec ones (cons 1 (delay ones)))))
|
|
(and (= 1 (car ones-list))
|
|
(= 1 (car (force (cdr ones-list)))))))
|
|
|
|
(pass-if "rec functions"
|
|
(let ((test-func (rec (add-upto n)
|
|
(if (positive? n)
|
|
(+ n (add-upto (- n 1)))
|
|
0))))
|
|
(= 15 (test-func 5)))))
|