annotate modules/os.tp @ 331:61f5b794d939

Breaking change: method call syntax now always uses the syntactic receiver as the actual receiver. This makes its behavior different from function call syntax, but solves some problems with methods being shadowed by local variables and the like.
author Michael Pavone <pavone@retrodev.com>
date Sat, 28 Mar 2015 14:21:04 -0700
parents f987bb2a1911
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
294
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 _constant <- macro: :name {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 quote: (llMessage: name withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 uintret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 } andCode: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 uintret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 uintret num!: name
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 uintret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 })
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 #{
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 includeSystemHeader: "sys/stat.h"
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 includeSystemHeader: "fcntl.h"
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 includeSystemHeader: "stdlib.h"
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 includeSystemHeader: "time.h"
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 includeSystemHeader: "unistd.h"
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 llMessage: write withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 str <- string ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 intret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 filedes <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 } andCode: :filedes str {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 intret num!: (write: (filedes num) (str data) (str bytes))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 intret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
27
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
28 llMessage: read withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 str <- string ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 size <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 filedes <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32 } andCode: :filedes size {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 str <- make_object: (addr_of: string_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 str data!: (GC_MALLOC_ATOMIC: (size num) + 1)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
35 str bytes!: (read: (filedes num) (str data) (size num))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
36 if: (str bytes) < 0 {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
37 str bytes!: 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 str len!: (str bytes)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 (str data) set: (str bytes) 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 str
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 llMessage: readFrom:to withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 buffer <- object ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 bufOpaque <- cpointer ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47 size <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
48 filedes <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
49 intret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
50 } andCode: :filedes buffer {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
51 bufOpaque <- (mcall: _buf_ptr 1 buffer) castTo: (cpointer ptr)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
52 size <- (mcall: length 1 buffer) castTo: (obj_int32 ptr)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
53 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
54 intret num!: (read: (filedes num) (bufOpaque val) (size num))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
55 intret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
56 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
57
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
58 open <- :filename flags {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
59 open: filename flags createPerm: 0b110110110
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
60 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
61
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
62 llMessage: open:createPerm withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
63 filename <- string ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
64 flags <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
65 perm <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
66 filedes <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
67 } andCode: :filename flags :perm {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
68 filedes <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
69 filedes num!: (open: (filename data) (flags num) (perm num))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
70 filedes
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
71 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
72
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
73 llMessage: close withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
74 filedes <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
75 intret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
76 } andCode: :filedes {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
77 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
78 intret num!: (close: (filedes num))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
79 intret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
80 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
81
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
82 _constant: O_RDONLY
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
83 _constant: O_WRONLY
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
84 _constant: O_RDWR
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
85 _constant: O_CREAT
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
86 _constant: O_APPEND
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
87 _constant: O_TRUNC
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
88
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
89 llMessage: rand withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
90 intret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
91 } andCode: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
92 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
93 intret num!: (rand: )
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
94 intret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
95 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
96
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 llMessage: srand withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 oseed <- object ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 seed <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 } andCode: :oseed {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101 seed <- (mcall: i32 1 oseed) castTo: (obj_int32 ptr)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
102 srand: (seed num)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103 seed
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
106 llMessage: time withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
107 intret64 <- obj_int64 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
108 } andCode: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
109 intret64 <- make_object: (addr_of: obj_int64_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
110 intret64 num!: (time: NULL)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 intret64
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 llMessage: sleep withVars: {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 osecs <- object ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 secs <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 intret <- obj_int32 ptr
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 } andCode: :osecs {
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 secs <- (mcall: i32 1 osecs) castTo: (obj_int32 ptr)
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 intret <- make_object: (addr_of: obj_int32_meta) NULL 0
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 intret num!: (sleep: (secs num))
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 intret
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 }
315
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
124
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
125 llMessage: execv withVars: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
126 opath <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
127 path <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
128 eargs <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
129 oarglen <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
130 arglen <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
131 i <- int32_t
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
132 oi <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
133 oarg <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
134 arg <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
135 cargs <- (char ptr) ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
136 } andCode: :opath eargs {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
137 path <- (mcall: string 1 opath) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
138 oarglen <- mcall: length 1 eargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
139 arglen <- (mcall: int32 1 oarglen) castTo: (obj_int32 ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
140 cargs <- GC_MALLOC_ATOMIC: (sizeof: (char ptr)) * ((arglen num) + 1)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
141 i <- 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
142 while: { i < (arglen num) } do: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
143 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
144 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
145 oarg <- mcall: get 2 eargs oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
146 arg <- (mcall: string 1 oarg) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
147 cargs set: i (arg data)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
148 i <- i + 1
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
149 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
150 cargs set: i NULL
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
151 i <- execv: (path data) cargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
152 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
153 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
154 oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
155 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
156
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
157 llMessage: execvp withVars: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
158 opath <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
159 path <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
160 eargs <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
161 oarglen <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
162 arglen <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
163 i <- int32_t
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
164 oi <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
165 oarg <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
166 arg <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
167 cargs <- (char ptr) ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
168 } andCode: :opath eargs {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
169 path <- (mcall: string 1 opath) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
170 oarglen <- mcall: length 1 eargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
171 arglen <- (mcall: int32 1 oarglen) castTo: (obj_int32 ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
172 cargs <- GC_MALLOC_ATOMIC: (sizeof: (char ptr)) * ((arglen num) + 1)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
173 i <- 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
174 while: { i < (arglen num) } do: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
175 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
176 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
177 oarg <- mcall: get 2 eargs oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
178 arg <- (mcall: string 1 oarg) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
179 cargs set: i (arg data)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
180 i <- i + 1
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
181 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
182 cargs set: i NULL
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
183 i <- execvp: (path data) cargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
184 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
185 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
186 oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
187 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
188
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
189 llMessage: execve withVars: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
190 opath <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
191 path <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
192 eargs <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
193 env <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
194 oarglen <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
195 arglen <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
196 i <- int32_t
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
197 oi <- obj_int32 ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
198 oarg <- object ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
199 arg <- string ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
200 cargs <- (char ptr) ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
201 cenv <- (char ptr) ptr
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
202 } andCode: :opath eargs env {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
203 path <- (mcall: string 1 opath) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
204 oarglen <- mcall: length 1 eargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
205 arglen <- (mcall: int32 1 oarglen) castTo: (obj_int32 ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
206 cargs <- GC_MALLOC_ATOMIC: (sizeof: (char ptr)) * ((arglen num) + 1)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
207 i <- 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
208 while: { i < (arglen num) } do: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
209 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
210 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
211 oarg <- mcall: get 2 eargs oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
212 arg <- (mcall: string 1 oarg) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
213 cargs set: i (arg data)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
214 i <- i + 1
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
215 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
216 cargs set: i NULL
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
217
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
218 oarglen <- mcall: length 1 eargs
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
219 arglen <- (mcall: int32 1 oarglen) castTo: (obj_int32 ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
220 cenv <- GC_MALLOC_ATOMIC: (sizeof: (char ptr)) * ((arglen num) + 1)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
221 i <- 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
222 while: { i < (arglen num) } do: {
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
223 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
224 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
225 oarg <- mcall: get 2 env oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
226 arg <- (mcall: string 1 oarg) castTo: (string ptr)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
227 cenv set: i (arg data)
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
228 i <- i + 1
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
229 }
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
230 cenv set: i NULL
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
231
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
232 i <- execve: (path data) cargs cenv
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
233 oi <- make_object: (addr_of: obj_int32_meta) NULL 0
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
234 oi num!: i
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
235 oi
f987bb2a1911 WIP native compiler work
Michael Pavone <pavone@retrodev.com>
parents: 294
diff changeset
236 }
294
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
237 }
d1dc2d70bdfd Move OS module out of backend Javascript into a proper module file. Add normal bytearray to bytearray module. Add read:to method to os module for reading into a bytearray.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
238 }