File tree Expand file tree Collapse file tree 7 files changed +20
-36
lines changed Expand file tree Collapse file tree 7 files changed +20
-36
lines changed Original file line number Diff line number Diff line change @@ -16,13 +16,16 @@ jobs:
16
16
toolchain : nightly
17
17
components : clippy
18
18
19
+ - run : cargo test
20
+
19
21
- run : cargo run -- -s demos/hello.cirru
20
22
- run : cargo run -- -s demos/sum.cirru
21
23
- run : cargo run -- -s demos/assert.cirru
22
24
- run : cargo run -- -s demos/nested.cirru
23
25
- run : cargo run -- -s demos/named.cirru
24
26
- run : cargo run -- -s demos/recur.cirru
25
27
- run : cargo run -- -s demos/fibonacci.cirru
28
+ - run : cargo run -- -s demos/if.cirru
26
29
- run : cargo run -- --emit-binary target/a.calx demos/named.cirru && cargo run -- --eval-binary target/a.calx
27
30
28
31
# - run: cargo test
Original file line number Diff line number Diff line change @@ -24,17 +24,19 @@ jobs:
24
24
toolchain : nightly
25
25
components : clippy
26
26
27
+ - run : cargo test
28
+
27
29
- run : cargo run -- -s demos/hello.cirru
28
30
- run : cargo run -- -s demos/sum.cirru
29
31
- run : cargo run -- -s demos/assert.cirru
30
32
- run : cargo run -- -s demos/nested.cirru
31
33
- run : cargo run -- -s demos/named.cirru
32
34
- run : cargo run -- -s demos/recur.cirru
33
35
- run : cargo run -- -s demos/fibonacci.cirru
36
+ - run : cargo run -- -s demos/if.cirru
34
37
- run : cargo run -- --emit-binary target/a.calx demos/named.cirru && cargo run -- --eval-binary target/a.calx
35
38
36
39
- uses : giraffate/clippy-action@v1
37
40
with :
38
41
reporter : ' github-pr-review'
39
42
github_token : ${{ secrets.GITHUB_TOKEN }}
40
-
Original file line number Diff line number Diff line change 1
1
[package ]
2
2
name = " calx_vm"
3
- version = " 0.1.6 "
3
+ version = " 0.2.0-a1 "
4
4
authors = [" jiyinyiyong <jiyinyiyong@gmail.com>" ]
5
5
edition = " 2021"
6
6
license = " MIT"
Original file line number Diff line number Diff line change @@ -73,6 +73,8 @@ fn main ()
73
73
74
74
### Instructions
75
75
76
+ > _ TODO_ update to ` 0.2.x ` ...
77
+
76
78
Highly inspired by:
77
79
78
80
- WASM https://github.com/WebAssembly/design/blob/main/Semantics.md
Original file line number Diff line number Diff line change 1
1
2
-
3
2
fn main ()
4
3
const 1
4
+ call demo
5
+ const 0
6
+ call demo
7
+
8
+ fn demo (( $a i64 ) -> )
9
+ local.get $a
10
+
5
11
if ( -> )
6
12
do
7
13
const 11
8
14
echo
9
15
do
10
16
const 20
11
17
echo
18
+ const 3
19
+ echo
Original file line number Diff line number Diff line change @@ -703,7 +703,6 @@ impl CalxVM {
703
703
if stack_size < 1 {
704
704
return Err ( format ! ( "insufficient stack {} to branch" , stack_size) ) ;
705
705
}
706
- stack_size -= 1 ;
707
706
708
707
blocks_track. push ( BlockData :: If {
709
708
ret_types : ret_types. to_owned ( ) ,
@@ -712,6 +711,7 @@ impl CalxVM {
712
711
initial_stack_size : stack_size,
713
712
} ) ;
714
713
714
+ stack_size -= 1 ;
715
715
ops. push ( CalxInstr :: JmpIf ( else_at. to_owned ( ) ) ) ;
716
716
}
717
717
CalxSyntax :: ElseEnd => {
@@ -720,6 +720,7 @@ impl CalxVM {
720
720
}
721
721
722
722
let prev_block = blocks_track. peek_if ( ) ?;
723
+
723
724
if stack_size != prev_block. expected_finish_size ( ) {
724
725
return Err ( format ! ( "size mismatch for else-end: {} {:?}" , stack_size, prev_block) ) ;
725
726
}
Original file line number Diff line number Diff line change @@ -36,37 +36,5 @@ fn test_extracting() -> Result<(), String> {
36
36
) )
37
37
) ;
38
38
39
- assert_eq ! (
40
- Cirru :: List ( extract_nested( & Cirru :: List ( vec![
41
- Cirru :: leaf( "block" ) ,
42
- Cirru :: List ( vec![
43
- Cirru :: leaf( "c" ) ,
44
- Cirru :: leaf( "d" ) ,
45
- Cirru :: List ( vec![ Cirru :: leaf( "e" ) , Cirru :: leaf( "f" ) , ] )
46
- ] )
47
- ] ) ) ?) ,
48
- Cirru :: List ( vec!( Cirru :: List ( vec![
49
- Cirru :: leaf( "block" ) ,
50
- Cirru :: List ( vec![ Cirru :: leaf( "e" ) , Cirru :: leaf( "f" ) ] ) ,
51
- Cirru :: List ( vec![ Cirru :: leaf( "c" ) , Cirru :: leaf( "d" ) ] )
52
- ] ) , ) )
53
- ) ;
54
-
55
- assert_eq ! (
56
- Cirru :: List ( extract_nested( & Cirru :: List ( vec![
57
- Cirru :: leaf( "loop" ) ,
58
- Cirru :: List ( vec![
59
- Cirru :: leaf( "c" ) ,
60
- Cirru :: leaf( "d" ) ,
61
- Cirru :: List ( vec![ Cirru :: leaf( "e" ) , Cirru :: leaf( "f" ) , ] )
62
- ] )
63
- ] ) ) ?) ,
64
- Cirru :: List ( vec!( Cirru :: List ( vec![
65
- Cirru :: leaf( "loop" ) ,
66
- Cirru :: List ( vec![ Cirru :: leaf( "e" ) , Cirru :: leaf( "f" ) ] ) ,
67
- Cirru :: List ( vec![ Cirru :: leaf( "c" ) , Cirru :: leaf( "d" ) ] )
68
- ] ) , ) )
69
- ) ;
70
-
71
39
Ok ( ( ) )
72
40
}
You can’t perform that action at this time.
0 commit comments