1 IN: compiler.cfg.builder.tests
2 USING: tools.test kernel sequences words sequences.private fry
3 prettyprint alien alien.accessors math.private compiler.tree.builder
4 compiler.tree.optimizer compiler.cfg.builder compiler.cfg.debugger
5 compiler.cfg.optimizer compiler.cfg.predecessors compiler.cfg.checker
6 arrays locals byte-arrays kernel.private math slots.private vectors sbufs
7 strings math.partial-dispatch strings.private ;
9 ! Just ensure that various CFGs build correctly.
10 : unit-test-cfg ( quot -- )
11 '[ _ test-cfg [ optimize-cfg check-cfg ] each ] [ ] swap unit-test ;
13 : blahblah ( nodes -- ? )
15 dup 3 bitand 1 = [ drop t ] [
20 ] any? ; inline recursive
24 : test-case-1 ( -- ? ) f ;
27 test-case-1 [ test-case-2 ] [ ] if ; inline recursive
39 [ 3 swap fixnum*fast ]
41 [ 10 fixnum-shift-fast ]
42 [ -10 fixnum-shift-fast ]
43 [ 0 fixnum-shift-fast ]
44 [ 10 swap fixnum-shift-fast ]
45 [ -10 swap fixnum-shift-fast ]
46 [ 0 swap fixnum-shift-fast ]
61 [ fixnum< [ 1 ] [ 2 ] if ]
62 [ float+ [ 2.0 float* ] [ 3.0 float* ] bi float/f ]
63 [ { [ 1 ] [ 2 ] [ 3 ] } dispatch ]
66 [ [ 2 ] [ 3 throw ] if 4 ]
67 [ "int" f "malloc" { "int" } alien-invoke ]
68 [ "int" { "int" } "cdecl" alien-indirect ]
69 [ "int" { "int" } "cdecl" [ ] alien-callback ]
73 [ 1000 [ dup [ reverse ] when ] times ]
76 [ { array } declare [ ] map ]
77 [ { array } declare dup 1 slot [ 1 slot ] when ]
78 [ [ dup more? ] [ dup ] produce ]
79 [ vector new over test-case-1 [ test-case-2 ] [ ] if ]
80 [ [ [ nth-unsafe ".." = 0 ] dip set-nth-unsafe ] 2curry (each-integer) ]
82 { fixnum sbuf } declare 2dup 3 slot fixnum> [
83 over 3 fixnum* over dup [ 2 slot resize-string ] dip 2 set-slot
86 [ [ 2 fixnum* ] when 3 ]
87 [ [ 2 fixnum+ ] when 3 ]
88 [ [ 2 fixnum- ] when 3 ]
92 over dup 16 <-integer-fixnum
93 [ 0 >=-integer-fixnum ] [ drop f ] if [
100 pick 10 fixnum>= [ [ 123 fixnum-bitand ] 2dip ] [ ] if
107 : test-1 ( -- ) test-1 ;
108 : test-2 ( -- ) 3 . test-2 ;
109 : test-3 ( a -- b ) dup [ test-3 ] when ;
115 } [ unit-test-cfg ] each
134 { class } word '[ _ declare 10 _ execute ] unit-test-cfg
135 { class fixnum } word '[ _ declare _ execute ] unit-test-cfg
146 { fixnum class } word '[ _ declare 10 _ execute ] unit-test-cfg
147 { fixnum class fixnum } word '[ _ declare _ execute ] unit-test-cfg
150 { float class } \ set-alien-float '[ _ declare 10 _ execute ] unit-test-cfg
151 { float class fixnum } \ set-alien-float '[ _ declare _ execute ] unit-test-cfg
153 { float class } \ set-alien-double '[ _ declare 10 _ execute ] unit-test-cfg
154 { float class fixnum } \ set-alien-double '[ _ declare _ execute ] unit-test-cfg
156 { pinned-c-ptr class } \ set-alien-cell '[ _ declare 10 _ execute ] unit-test-cfg
157 { pinned-c-ptr class fixnum } \ set-alien-cell '[ _ declare _ execute ] unit-test-cfg