-
Notifications
You must be signed in to change notification settings - Fork 3
/
os.scm
255 lines (225 loc) · 3.04 KB
/
os.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
((fork
(features
thunk
thread-safe)
(implementation
chicken
process-fork
(thunk))
(implementation
gambit
sys-fork
()))
(spawn
(features
fork
double-fork
setsid
exec
wait
path-search
arg-shell
arg-list
arg-syms
arg-nums
arg-zero
arg-w32-quote
env
dir
sig-mask
new-pgrp
pty
timeout
raise-exit-code
text-ports
stdin-pipe
stdout-pipe
stderr-pipe
any-fd-dup
any-fd-close
other-fd-close)
(implementation
chibi
execute
(exec
path-search
arg-list
arg-zero))
(implementation
chibi
system
(fork
exec
wait
path-search
arg-list
arg-zero))
(implementation
chibi
call-with-process-io
(fork
exec
arg-shell
arg-list
arg-syms
arg-nums
arg-zero
stdin-pipe
stdout-pipe
stderr-pipe))
(implementation
chicken
process-execute
(path-search
arg-list
arg-w32-quote
env))
(implementation
chicken
process-run
(fork
exec
path-search
arg-shell
arg-list))
(implementation
gambit
open-process
(env
dir
pty
stdin-pipe
stdout-pipe
stderr-pipe))
(implementation
gauche
sys-system
(fork
exec
wait
arg-shell))
(implementation
gauche
sys-exec
(exec
arg-list
arg-zero
dir
sig-mask
any-fd-dup
other-fd-close))
(implementation
gauche
sys-fork-and-exec
(fork
double-fork
setsid
exec
dir
any-fd-dup
other-fd-close
sig-mask
new-pgrp
))
(implementation
go
os.StartProcess
(path-search
arg-list
arg-zero
dir
env
any-fd-dup
any-fd-close))
(implementation
python
subprocess.run
(fork
exec
wait
timeout
raise-exit-code
text-ports)))
(wait
(features
process-object
any-pid
any-pgrp
timeout
no-hang
get-exit-code)
(implementation
gambit
process-status
(process-object
timeout
get-exit-code))
(implementation
gauche
sys-wait
())
(implementation
gauche
sys-waitpid
(any-pid
any-pgrp
no-hang)))
(readdir
(features
in-path
in-dir-object
no-dot-dot
no-dotfiles
no-w32-hidden
sort
out-fullpaths)
(implementation
gambit
open-directory
(in-path
no-dot-dot
no-dotfiles
no-w32-hidden))
(implementation
gauche
sys-readdir
(in-path)))
(delete-file
(features
delete-dir
error-if-not-exist
try-to-change-perms
delete-w32-junction)
(implementation
gambit
sys-remove
(error-if-not-exist
delete-w32-junction))
(implementation
gauche
sys-unlink
())
(implementation
racket
delete-file
(try-to-change-perms)))
(delete-directory
(features
delete-nonempty)
(implementation
gauche
sys-rmdir
()))
(create-directory
(features
create-parents
perm-bits)
(implementation
gauche
sys-mkdir
(perm-bits))
(implementation
gauche
make-directory*
(create-parents
perm-bits))))