mirror of
https://github.com/kanaka/mal.git
synced 2024-09-11 13:55:55 +03:00
Add a regression run to Travis that enables hard deferrables but omits optionals so that we can test to make sure that all the requirements are met for self-hosting in stepA. Cleanup up some of the soft/deferrable/optional markings. Deferrables are what will be needed eventually to self host but aren't needed for the immediate next steps. Optional aren't even needed for self-hosting but are nice things to have. Also: - Sync dart step9 and stepA with step8. Do not eval macroexpanded forms in macroexpand form. - Fix stepA of factor which was missing some fixes from step9. - Increase test timeouts in top-level Makefile for guile and io.
79 lines
959 B
Plaintext
79 lines
959 B
Plaintext
;; Testing REPL_ENV
|
|
(+ 1 2)
|
|
;=>3
|
|
(/ (- (+ 5 (* 2 3)) 3) 4)
|
|
;=>2
|
|
|
|
|
|
;; Testing def!
|
|
(def! x 3)
|
|
;=>3
|
|
x
|
|
;=>3
|
|
(def! x 4)
|
|
;=>4
|
|
x
|
|
;=>4
|
|
(def! y (+ 1 7))
|
|
;=>8
|
|
y
|
|
;=>8
|
|
|
|
;; Verifying symbols are case-sensitive
|
|
(def! mynum 111)
|
|
;=>111
|
|
(def! MYNUM 222)
|
|
;=>222
|
|
mynum
|
|
;=>111
|
|
MYNUM
|
|
;=>222
|
|
|
|
;; Check env lookup non-fatal error
|
|
(abc 1 2 3)
|
|
;/.*\'?abc\'? not found.*
|
|
;; Check that error aborts def!
|
|
(def! w 123)
|
|
(def! w (abc))
|
|
w
|
|
;=>123
|
|
|
|
;; Testing let*
|
|
(let* (z 9) z)
|
|
;=>9
|
|
(let* (x 9) x)
|
|
;=>9
|
|
x
|
|
;=>4
|
|
(let* (z (+ 2 3)) (+ 1 z))
|
|
;=>6
|
|
(let* (p (+ 2 3) q (+ 2 p)) (+ p q))
|
|
;=>12
|
|
(def! y (let* (z 7) z))
|
|
y
|
|
;=>7
|
|
|
|
;; Testing outer environment
|
|
(def! a 4)
|
|
;=>4
|
|
(let* (q 9) q)
|
|
;=>9
|
|
(let* (q 9) a)
|
|
;=>4
|
|
(let* (z 2) (let* (q 9) a))
|
|
;=>4
|
|
|
|
;>>> deferrable=True
|
|
;;
|
|
;; -------- Deferrable Functionality --------
|
|
|
|
;; Testing let* with vector bindings
|
|
(let* [z 9] z)
|
|
;=>9
|
|
(let* [p (+ 2 3) q (+ 2 p)] (+ p q))
|
|
;=>12
|
|
|
|
;; Testing vector evaluation
|
|
(let* (a 5 b 6) [3 4 a [b 7] 8])
|
|
;=>[3 4 5 [6 7] 8]
|