File tree Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Original file line number Diff line number Diff line change @@ -49,10 +49,10 @@ $ ./docker-run
49
49
$ go build -o babygo *.go
50
50
51
51
# Compile the hello world program by babygo
52
- $ ./babygo t /hello.go > /tmp/hello.s
52
+ $ ./babygo example /hello.go
53
53
54
54
# Assemble and link
55
- $ as -o hello.o /tmp/hello.s runtime .s
55
+ $ as -o hello.o /tmp/* .s
56
56
$ ld -o hello hello.o
57
57
58
58
# Run hello world
@@ -67,13 +67,16 @@ hello world!
67
67
$ go build -o babygo *.go
68
68
69
69
# Build babygo by babygo (2nd generation)
70
- $ ./babygo *.go > /tmp/babygo2.s
71
- $ as -o babygo2.o /tmp/babygo2.s runtime.s
70
+ $ rm /tmp/*.s
71
+ $ ./babygo *.go
72
+ $ as -o babygo2.o /tmp/*.s
72
73
$ ld -o babygo2 babygo2.o # 2nd generation compiler
73
74
74
- # Assert babygo2.s and babygo3.s are exactly same
75
- $ ./babygo2 *.go > /tmp/babygo3.s
76
- $ diff /tmp/babygo2.s /tmp/babygo3.s
75
+ # You can generate babygo3 (3rd generation), babygo4, and so on...
76
+ $ rm /tmp/*.s
77
+ $ ./babygo2 *.go
78
+ $ as -o babygo3.o /tmp/*.s
79
+ $ ld -o babygo3 babygo3.o # 3rd generation compiler
77
80
```
78
81
79
82
## Test
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import "os"
4
+
5
+ func main () {
6
+ var msg = []uint8 ("hello world!\n " )
7
+ os .Stdout .Write (msg )
8
+ }
You can’t perform that action at this time.
0 commit comments