Mercurial > repos > tabletprog
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 |
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 } |