source: trunk/abcl/t/compiler.lisp

Last change on this file was 15629, checked in by Mark Evenson, 22 months ago

test: compilation of top-level function lambda

File size: 2.2 KB
Line 
1(prove:plan 1)
2
3;;; FIXME test shouldn't signal error
4(prove:plan 1)
5(let ((file (asdf:system-relative-pathname :abcl
6                                           "t/eg/compiler-fails-on-inline-recursion.lisp")))
7  (prove:ok
8   (handler-case 
9       (compile-file file)
10     ;;; anything signalled as error is a failure
11     (t (e) (prove:diag (format nil "Compilation failed signalling ~a" e))))
12   (format nil "Compiling '~a'~%" file)))
13     
14;; <https://mailman.common-lisp.net/pipermail/armedbear-devel/2020-May/004054.html>
15(prove:plan 1)
16(prove:ok
17  (handler-case
18      (multiple-value-bind (compiled-function warnings failure)
19          (compile nil '(lambda () ((lambda () ((lambda () 0))))))
20        (equal
21         (compiled-function warnings failure)
22         (t nil nil)))
23    (t (e) (prove:diag (format nil "Compilation failed signalling ~a" e))))
24  "Able to compile nested lambda expression")
25
26;; <https://mailman.common-lisp.net/pipermail/armedbear-devel/2020-May/004055.html>
27(prove:plan 1)
28(prove:ok
29 (handler-case
30     (multiple-value-bind (compiled-function warnings failure)
31         (compile nil '(lambda () (dotimes (i 1 2) (catch 'c 3))))
32       (equal
33        (compiled-function warnings failure)
34        (t nil nil)))
35   (t (e) (prove:diag (format nil "Compilation failed signalling ~a" e))))
36 "Able to compile tagbody not found form.")
37
38(prove:plan 1)
39(prove:ok
40 (let* ((instructions
41          (list
42           (jvm::make-instruction 58 '(5))
43           (jvm::make-instruction 58 '(2 4 :wide-prefix))))
44        (code
45          (make-array (length instructions)
46                      :initial-contents instructions))
47        (bytes
48          (jvm::code-bytes code)))
49   (eq (length bytes) 6))
50 "Compilation of wide ASTORE instruction.")
51
52;;; <https://github.com/armedbear/abcl/issues/541>
53(prove:plan 1)
54(let ((file (asdf:system-relative-pathname :abcl
55                                           "t/eg/compiler-fails-top-level-lambda.lisp")))
56  (prove:ok
57   (handler-case 
58       (compile-file file)
59     ;;; anything signalled as error is a failure
60     (t (e) (prove:diag (format nil "Compilation failed signalling ~a" e))))
61   (format nil "Compiling '~a'~%" file)))
62
63 
64   
65
66(prove:finalize)
67
Note: See TracBrowser for help on using the repository browser.