@daugasauron/dolly-package-janis 0.0.0-stage → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/Dollyfile-curl +57 -0
  2. package/Dollyfile-display +34 -0
  3. package/Dollyfile-ghostty-build +186 -0
  4. package/Dollyfile-git +175 -0
  5. package/Dollyfile-gzip +19 -0
  6. package/Dollyfile-libdolly-display +24 -0
  7. package/Dollyfile-libdolly-download +24 -0
  8. package/Dollyfile-libdolly-input +24 -0
  9. package/Dollyfile-system-build +365 -0
  10. package/Dollyfile-system-tools +204 -0
  11. package/Dollyfile-zig-build +155 -0
  12. package/Dollyfile-zlib +48 -0
  13. package/README.md +11 -2
  14. package/amy-index.txt +3 -0
  15. package/demos/javascript/Dollyfile-janis +42 -0
  16. package/demos/javascript/Dollyfile-quickjs +48 -0
  17. package/dist/dolly-curl-system-snapshot.json +73 -0
  18. package/dist/dolly-display-system-snapshot.json +111 -0
  19. package/dist/dolly-ghostty-build-system-snapshot.json +3540 -0
  20. package/dist/dolly-git-system-snapshot.json +131 -0
  21. package/dist/dolly-gzip-system-snapshot.json +69 -0
  22. package/dist/dolly-images.json +511 -0
  23. package/dist/dolly-janis-system-snapshot.json +179 -0
  24. package/dist/dolly-libdolly-display-system-snapshot.json +57 -0
  25. package/dist/dolly-libdolly-download-system-snapshot.json +57 -0
  26. package/dist/dolly-libdolly-input-system-snapshot.json +57 -0
  27. package/dist/dolly-quickjs-system-snapshot.json +149 -0
  28. package/dist/dolly-system-build-system-snapshot.json +1948 -0
  29. package/dist/dolly-system-tools-system-snapshot.json +2289 -0
  30. package/dist/dolly-zig-build-system-snapshot.json +3418 -0
  31. package/dist/dolly-zlib-system-snapshot.json +59 -0
  32. package/dist/packs/5f1993833560c66eed04324f0a19cd7de870713cc95e3838168cfab783fdf5de.snapshot.gz +0 -0
  33. package/package.json +14 -4
@@ -0,0 +1,365 @@
1
+ DOLLY 7
2
+ TOOLCHAIN system-build
3
+ REQUIRES HOST runtime@0
4
+ REQUIRES HOST http@0
5
+
6
+ # This is the first step. It has no requirements: its exact compiler commands
7
+ # and C headers are the externally supplied bootstrap seed. How those headers
8
+ # eventually map to the lower-level machine contract is deliberately open.
9
+ SOURCE /v0.1.6/include/dolly/toolchain.h 6f9da3258e970e356c31034e1f109a04ac8bd5ab57dc82c19aebf293289fb415 /usr/include/dolly/toolchain.h
10
+ SOURCE /v0.1.6/include/dolly/runtime.h d57f5242814e516035781cc4fb23c6c5d6c8c6b1b89eafc7447f566fe0b7ad21 /usr/include/dolly/runtime.h
11
+ SOURCE /v0.1.6/include/dolly/process.h 2946bdef52557f5fae8b5741ccd7904745b42a960c27d829f81026a637529ce0 /usr/include/dolly/process.h
12
+ SOURCE /v0.1.6/include/dolly/host.h 9737f9b15bd65f5732e16bd942fe593132c7c886c3076dfda89a529a23fee08a /usr/include/dolly/host.h
13
+ SOURCE /v0.1.6/include/dolly/host-abi.h 3f2d26426bb088d61a0cc18b6c464697e98c83d8d34ffaf1d063768e619eb766 /usr/include/dolly/host-abi.h
14
+
15
+ # /usr/include also holds the headers of the modules whose clients the seed
16
+ # holds (host/README.md); every other module's are in its package.
17
+ EXPORTS HEADER libc /usr/include
18
+ EXPORTS HEADER toolchain /usr/include/dolly/toolchain.h
19
+ EXPORTS HEADER runtime /usr/include/dolly/runtime.h
20
+ EXPORTS HEADER process /usr/include/dolly/process.h
21
+ EXPORTS HEADER host /usr/include/dolly/host.h
22
+ EXPORTS HEADER host-abi /usr/include/dolly/host-abi.h
23
+ EXPORTS LIB compiler-rt /usr/lib/libclang_rt.builtins.a
24
+
25
+ # These are the complete externally seeded compiler dependencies, not ambient
26
+ # additions to every boot. Images retain them by re-exporting these objects.
27
+ EXPORTS FOLDER process-sdk /usr/lib/dolly/process
28
+ EXPORTS FOLDER clang-headers /usr/lib/clang/24/include
29
+ EXPORTS FILE compiler /usr/libexec/dolly/process-bin/compiler
30
+ EXPORTS FILE kernel-plugin-abi /usr/lib/dolly/dolly-kernel-plugin-0.wasm
31
+
32
+ # Every program links the process libc: Emscripten's musl.
33
+ SOURCE /v0.1.6/dist/static/default/licenses/musl b870108ec5e7790e9f9919064f1b9421d62d5f9b0e6c230c6adf7ea2da62e97b /usr/share/licenses/musl/COPYRIGHT
34
+ SOURCE /v0.1.6/dist/static/default/licenses/emscripten 620a78084fc7ca97c0b5dea9abf891f3ffcadfdbf305276f099c9c4e12fc1d86 /usr/share/licenses/emscripten/LICENSE
35
+ FILE /usr/share/licenses/musl/COPYRIGHT
36
+ FILE /usr/share/licenses/emscripten/LICENSE
37
+
38
+ # cc, c++, ld and ar forward to the seed compiler. Only that compiler exists at
39
+ # this point, so RUN starts it for them; every later recipe step uses SLOP.
40
+ SOURCE /v0.1.6/dist/static/default/commands/cc.c a282fe564c0387114321839e30a5f66e5ae964d014f206baa7d742f9698d1026 /tmp/process-tools/cc.c
41
+ SOURCE /v0.1.6/dist/static/default/commands/cxx.c 0fd83199b0d1063bf5e81b8e762f7105b013e83eb1c2953967e51db34dd94524 /tmp/process-tools/cxx.c
42
+ SOURCE /v0.1.6/dist/static/default/commands/ld.c d12309353aeb2a80e3766e87c3e9936ac9fb434114e36287a1acbf3339bf104b /tmp/process-tools/ld.c
43
+ SOURCE /v0.1.6/dist/static/default/commands/ar.c f3007ddb171959a587b62d840253144198749acd8dbe0212b2cbd73a55dd83bd /tmp/process-tools/ar.c
44
+ RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/cc.c -o /bin/cc
45
+ RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/cxx.c -o /bin/c++
46
+ RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/ld.c -o /bin/ld
47
+ RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 /tmp/process-tools/ar.c -o /bin/ar
48
+
49
+ EXPORTS ENV CC cc
50
+ EXPORTS ENV AR ar
51
+ EXPORTS ENV PATH /bin:/usr/bin
52
+
53
+ # These programs are linked against the seeded process adapter, so their
54
+ # complete input identity is the image build ID rather than this recipe
55
+ # alone. They are still validated as dolly-process-0 executables when loaded.
56
+ # /bin/dollyfile is the engine running this recipe; the bootstrap compiles it.
57
+ EXPORTS TOOL cc
58
+ EXPORTS TOOL c++
59
+ EXPORTS TOOL ld
60
+ EXPORTS TOOL ar
61
+ EXPORTS TOOL dollyfile
62
+ # Slop runs every SLOP step, so it is built before any shell exists: RUN
63
+ # starts the seed compiler alone.
64
+ REQUIRES HEADER libc
65
+ REQUIRES HEADER runtime
66
+
67
+ SOURCE /v0.1.6/dist/static/default/slop.c eef57190c2bc7fb36829dced03b93d9db2c4e08fb667f97daf80676bb5570658 /tmp/slop/slop.c
68
+ # Slop runs the code of the system's test, [, echo and printf itself.
69
+ SOURCE /v0.1.6/dist/static/default/commands/test.c f8c6d9618f2f78a85eb8c177df0bb565e9f611f849cbc05401a4a888ce98c5f9 /tmp/slop/commands/test.c
70
+ SOURCE /v0.1.6/dist/static/default/commands/echo.c 41f0735133bdae9226bf41909009e6db7fc298a0c9a9e1ee16934c09ad244335 /tmp/slop/commands/echo.c
71
+ SOURCE /v0.1.6/dist/static/default/commands/printf.c 67ec89acb4cd3a1f5657e8ec8d54d58f1d796f6e2eb461545e34a884cce962dc /tmp/slop/commands/printf.c
72
+ RUN /usr/libexec/dolly/process-bin/compiler --dolly-toolchain-mode=c -O1 -DDOLLY_SHELL_UTILITY /tmp/slop/slop.c \
73
+ /tmp/slop/commands/test.c /tmp/slop/commands/echo.c /tmp/slop/commands/printf.c -o /bin/slop
74
+
75
+ EXPORTS TOOL slop
76
+ EXPORTS ENV SHELL /bin/slop
77
+ REQUIRES TOOL cc
78
+
79
+ # Dolly's own small commands, from programs/commands. Each TOOL export names the
80
+ # compiled result.
81
+ SOURCE /v0.1.6/dist/static/default/commands/path.h 48c3a1e853aa273106234c8cdbbcae7d54c2f68f477373e0712d5e4748a9b788 /tmp/core-tools/path.h
82
+ SOURCE /v0.1.6/dist/static/default/commands/mkdir.c 0713179c0b44c92e30d2fd22c87a930ca23f5417b1b3392b3997547648617ad6 /tmp/core-tools/mkdir.c
83
+ SOURCE /v0.1.6/dist/static/default/commands/rm.c 2adb95ed560a55f22b91eda217fdbfc4108bd14ebe71b143ef706869d88a1997 /tmp/core-tools/rm.c
84
+ SOURCE /v0.1.6/dist/static/default/commands/foreground.c e926c3c87764e44064744fc1d3cba008c46666ed7a06d351824ce67792bcdd76 /tmp/core-tools/foreground.c
85
+ SOURCE /v0.1.6/dist/static/default/commands/help.c 5051d2894cf4733b35ee0a128bbccbc428ffd232314465123360b0fba866c70d /tmp/core-tools/help.c
86
+ SOURCE /v0.1.6/dist/static/default/commands/man.c cd13cdece7706188e083a1754187cb19b7627e9cb8d2b294ba21cd2f88ff39d8 /tmp/core-tools/man.c
87
+ SOURCE /v0.1.6/dist/static/default/commands/pwd.c 61b2840bfba274f511c3777f5b800bcdfff1947bef13b771c5d9a98eb5d03d3d /tmp/core-tools/pwd.c
88
+ SOURCE /v0.1.6/dist/static/default/commands/cat.c 43eabd1e83f6c56cd5b5a7d8e5f9621e214c35e9407dea6bbce34120cb9da723 /tmp/core-tools/cat.c
89
+ SOURCE /v0.1.6/dist/static/default/commands/echo.c 41f0735133bdae9226bf41909009e6db7fc298a0c9a9e1ee16934c09ad244335 /tmp/core-tools/echo.c
90
+ SOURCE /v0.1.6/dist/static/default/commands/printf.c 67ec89acb4cd3a1f5657e8ec8d54d58f1d796f6e2eb461545e34a884cce962dc /tmp/core-tools/printf.c
91
+ SOURCE /v0.1.6/dist/static/default/commands/touch.c 1eb3737abe39d9efe0c66d9e84a7bf6445fa2c07c12b46ad107cd799f2f0747c /tmp/core-tools/touch.c
92
+ SOURCE /v0.1.6/dist/static/default/commands/clear.c f2e6915b3fe34393087ec7d04e61d090c0d62e551b86b36e8c3ff6bfff72598d /tmp/core-tools/clear.c
93
+ SOURCE /v0.1.6/dist/static/default/commands/ls.c 7b1f4a0cdfb7e568b9a8e4ab9b9d784d52d034103915e11b1a25472bbe86d225 /tmp/core-tools/ls.c
94
+ SOURCE /v0.1.6/dist/static/default/commands/stat.c 716e40d4db491a766b738e21c780d4f386641be93daccc4481b4d71b603110c2 /tmp/core-tools/stat.c
95
+ SOURCE /v0.1.6/dist/static/default/commands/file.c 3fd871ab9da0233ab738683f3ae45ab8cac3b37df3be92359575448137b4ec37 /tmp/core-tools/file.c
96
+ SOURCE /v0.1.6/dist/static/default/commands/test.c f8c6d9618f2f78a85eb8c177df0bb565e9f611f849cbc05401a4a888ce98c5f9 /tmp/core-tools/test.c
97
+ SOURCE /v0.1.6/dist/static/default/commands/mv.c 9c14fbc337cd41f6d7733fb3a36346d845e14223e6207d427a74123a00ea6504 /tmp/core-tools/mv.c
98
+ SOURCE /v0.1.6/dist/static/default/commands/cp.c 97eaeb0da4d284fa222de163bb99b86086398c4c76cdb6a77d0a06c699e7d2e9 /tmp/core-tools/cp.c
99
+ SOURCE /v0.1.6/dist/static/default/commands/sleep.c 7723af4c2a4feb4a3393482fe3e58beaba36b2b0d83fcc67787b339a87e031e6 /tmp/core-tools/sleep.c
100
+ SLOP cc \
101
+ -O2 \
102
+ /tmp/core-tools/foreground.c \
103
+ -o /bin/foreground
104
+ SLOP cc \
105
+ -O2 \
106
+ /tmp/core-tools/help.c \
107
+ -o /bin/help
108
+ SLOP cc \
109
+ -O2 \
110
+ /tmp/core-tools/man.c \
111
+ -o /bin/man
112
+ SLOP cc \
113
+ -O2 \
114
+ /tmp/core-tools/pwd.c \
115
+ -o /bin/pwd
116
+ SLOP cc \
117
+ -O2 \
118
+ /tmp/core-tools/cat.c \
119
+ -o /bin/cat
120
+ SLOP cc \
121
+ -O2 \
122
+ /tmp/core-tools/echo.c \
123
+ -o /bin/echo
124
+ SLOP cc \
125
+ -O2 \
126
+ /tmp/core-tools/printf.c \
127
+ -o /bin/printf
128
+ SLOP cc \
129
+ -O2 \
130
+ /tmp/core-tools/touch.c \
131
+ -o /bin/touch
132
+ SLOP cc \
133
+ -O2 \
134
+ /tmp/core-tools/clear.c \
135
+ -o /bin/clear
136
+ SLOP cc \
137
+ -O2 \
138
+ /tmp/core-tools/ls.c \
139
+ -o /bin/ls
140
+ SLOP cc \
141
+ -O2 \
142
+ /tmp/core-tools/stat.c \
143
+ -o /bin/stat
144
+ SLOP cc \
145
+ -O2 \
146
+ /tmp/core-tools/file.c \
147
+ -o /bin/file
148
+ SLOP cc \
149
+ -O2 \
150
+ /tmp/core-tools/test.c \
151
+ -o /bin/test
152
+ SLOP cc \
153
+ -O2 \
154
+ /tmp/core-tools/test.c \
155
+ -o /bin/[
156
+ SLOP cc \
157
+ -O2 \
158
+ /tmp/core-tools/mv.c \
159
+ -o /bin/mv
160
+ SLOP cc \
161
+ -O2 \
162
+ /tmp/core-tools/cp.c \
163
+ -o /bin/cp
164
+ SLOP cc \
165
+ -O2 \
166
+ /tmp/core-tools/mkdir.c \
167
+ -o /bin/mkdir
168
+ SLOP cc \
169
+ -O2 \
170
+ /tmp/core-tools/rm.c \
171
+ -o /bin/rm
172
+ SLOP cc \
173
+ -O2 \
174
+ /tmp/core-tools/sleep.c \
175
+ -o /bin/sleep
176
+ EXPORTS TOOL mkdir
177
+ EXPORTS TOOL rm
178
+ EXPORTS TOOL foreground
179
+ EXPORTS TOOL help
180
+ EXPORTS TOOL man
181
+ EXPORTS TOOL pwd
182
+ EXPORTS TOOL cat
183
+ EXPORTS TOOL echo
184
+ EXPORTS TOOL printf
185
+ EXPORTS TOOL touch
186
+ EXPORTS TOOL clear
187
+ EXPORTS TOOL ls
188
+ EXPORTS TOOL stat
189
+ EXPORTS TOOL file
190
+ EXPORTS TOOL test
191
+ EXPORTS TOOL [
192
+ EXPORTS TOOL mv
193
+ EXPORTS TOOL cp
194
+ EXPORTS TOOL sleep
195
+
196
+ # A page is a file under /usr/share/man. One of Dolly's own commands has a
197
+ # single text: the page is what NAME --help prints, captured when it is built.
198
+ SLOP mkdir \
199
+ -p \
200
+ /usr/share/man/cat1 \
201
+ /usr/share/man/man1
202
+ SLOP for name in ar c++ cat cc clear cp dollyfile file foreground help ld ls man mkdir mv pwd rm sleep slop stat touch; do \
203
+ "/bin/$name" --help > "/usr/share/man/cat1/$name.1"; \
204
+ done
205
+ SLOP help >> /usr/share/man/cat1/slop.1
206
+ # echo prints its operands, --help among them, as POSIX says.
207
+ FILE /usr/share/man/cat1/echo.1
208
+ usage: echo [-n] [ARG ...]
209
+ Print the ARGs separated by spaces and a newline; -n as the first ARG omits the newline.
210
+ Backslashes are printed as they are: printf interprets escapes.
211
+ # printf takes a FORMAT, so --help is one too.
212
+ FILE /usr/share/man/cat1/printf.1
213
+ usage: printf FORMAT [ARG ...]
214
+ Write FORMAT, reused while ARGs remain. FORMAT's escapes are \\ \a \b \f \n \r \t \v,
215
+ \e, \xHH and \NNN in octal; \c ends the output. Each conversion takes the next ARG,
216
+ or an empty one: %s, %c, %b (the ARG's escapes, octal as \0NNN), %d %i %o %u %x %X,
217
+ whose ARG is a C integer constant or a quote and a character, and %e %f %g %a and
218
+ their capitals; flags - + space # 0, a width and a .precision, each may be *. %% is %.
219
+ FILE /usr/share/man/cat1/test.1
220
+ usage: test EXPRESSION
221
+ [ EXPRESSION ]
222
+ Exit 0 when EXPRESSION is true, 1 when it is false or missing, 2 when it is malformed.
223
+ -e FILE FILE exists (-r and -w are the same: there are no permission bits)
224
+ -f FILE FILE is a regular file
225
+ -d FILE FILE is a directory
226
+ -x FILE FILE is a regular file or a directory
227
+ -h FILE, -L FILE FILE is a symbolic link
228
+ -s FILE FILE is not empty
229
+ -b, -c, -p, -S FILE FILE is a block or character device, a FIFO, a socket
230
+ -g, -u, -k FILE the set-group-ID, set-user-ID, sticky bit of the fixed modes stat reports
231
+ -t FD descriptor FD is a terminal
232
+ -n STRING STRING is not empty (so is a lone STRING)
233
+ -z STRING STRING is empty
234
+ A = B, A != B the strings are equal (== is the same), differ
235
+ A < B, A > B A sorts before, after B
236
+ M -eq N the integers are equal; also -ne -lt -le -gt -ge
237
+ F -nt G, F -ot G F was modified after, before G (a missing file is older)
238
+ F -ef G F and G are the same file
239
+ ! E, E -a E, E -o E, ( E ) not, and, or, grouping; up to four arguments
240
+ count, as POSIX says, so test "$x" = -a compares strings
241
+ example: test -d /tmp && [ "$HOME" != / ]
242
+ SLOP cp /usr/share/man/cat1/test.1 '/usr/share/man/cat1/[.1'
243
+
244
+ SLOP rm \
245
+ -rf \
246
+ /tmp/core-tools
247
+ REQUIRES TOOL rm
248
+
249
+ # Dolly's deliberately small ustar extractor.
250
+ SOURCE /v0.1.6/dist/static/default/commands/tar.c 9e01d3df0905b893afe02232c713d5feafbead706392f7fc62967bdffad1779f /tmp/bootstrap/tar.c
251
+ SLOP cc \
252
+ /tmp/bootstrap/tar.c \
253
+ -o /bin/tar
254
+
255
+ EXPORTS TOOL tar
256
+
257
+ SLOP tar --help > /usr/share/man/cat1/tar.1
258
+
259
+ SLOP rm \
260
+ -rf \
261
+ /tmp/bootstrap
262
+ REQUIRES TOOL mkdir
263
+ REQUIRES TOOL tar
264
+
265
+ SOURCE /v0.1.6/dist/static/default/make-4.4.1.tar 5dce03b47a90e26891e789b3361481c65765e12bd8dc79ec0cf949336ef94616 /tmp/make-4.4.1.tar
266
+ SLOP tar \
267
+ -xf /tmp/make-4.4.1.tar \
268
+ -C /
269
+ SLOP mkdir \
270
+ -p \
271
+ /usr/bin
272
+ # The sources of upstream's build (dolly-sources.txt) in one cc.
273
+ SLOP CWD /usr/src/make cc \
274
+ -O1 \
275
+ -std=gnu11 \
276
+ -DHAVE_CONFIG_H \
277
+ -I /usr/src/make \
278
+ -I /usr/src/make/src \
279
+ -I /usr/src/make/lib \
280
+ '-DLIBDIR="/usr/lib"' \
281
+ '-DLOCALEDIR="/usr/share/locale"' \
282
+ $(cat dolly-sources.txt) \
283
+ -o /usr/bin/make
284
+
285
+ EXPORTS TOOL make
286
+
287
+ SLOP make \
288
+ --version
289
+ SLOP make --help > /usr/share/man/cat1/make.1
290
+ # FOLDER keeps the members a directory has at this row: the last page is written.
291
+ FOLDER /usr/share/man
292
+
293
+ FILE /usr/share/licenses/make/COPYING
294
+
295
+ SLOP rm \
296
+ -rf \
297
+ /tmp/make-4.4.1.tar \
298
+ /usr/src/make
299
+ # libc++, libc++abi and libunwind are Emscripten's copy, compiled here from its
300
+ # pinned source with the flags of its own build (tools/system_libs.py,
301
+ # -ww-wasmexcept; its -mt-wasmexcept build is the same bytes) for the headers
302
+ # installed beside them. Every C++ link takes them, including explicit
303
+ # -lc++/-lc++abi; the links above this point are C and need none.
304
+ REQUIRES TOOL c++
305
+ REQUIRES TOOL cc
306
+ REQUIRES TOOL ar
307
+ REQUIRES TOOL make
308
+
309
+ SOURCE /v0.1.6/dist/static/default/libcxx-headers.tar 5e558f6f862d4a3fb22cc3c5b62c5e2652bf699f176fa349eeecb85d1a946735 /tmp/cpp/libcxx-headers.tar
310
+ SOURCE /v0.1.6/dist/static/default/libcxx.tar 2dff834a9e5e907476841437518cfdd568563e922e7a22f3261da114e1b1a1e8 /tmp/cpp/libcxx.tar
311
+ SOURCE /v0.1.6/dist/static/default/licenses/libcxx 539dd7aed86e8a4f12cbdd0e6c50c189c7d74847e4fecc64ce2c6ee3a01da38b /usr/share/licenses/libcxx/LICENSE
312
+ SOURCE /v0.1.6/dist/static/default/licenses/libcxxabi e2b35be49f7284a45b7baca8fc7b3ab7440e7902392b2528a457816b5bb2a15c /usr/share/licenses/libcxxabi/LICENSE
313
+
314
+ SLOP tar \
315
+ -xf /tmp/cpp/libcxx-headers.tar \
316
+ -C /
317
+ SLOP tar \
318
+ -xf /tmp/cpp/libcxx.tar \
319
+ -C /
320
+
321
+ FILE /tmp/cpp/Makefile
322
+ .RECIPEPREFIX := >
323
+ S := /tmp/cpp/system/lib
324
+ L := /usr/lib/dolly/process
325
+ # Static code with hidden symbols, as for a program. The directory is the one
326
+ # Emscripten's build names, so the code and data are its archives' bytes.
327
+ FLAGS := -Oz -g -fno-pic -fvisibility=hidden -ffile-prefix-map=/tmp/cpp=/emsdk/emscripten -DNDEBUG
328
+ COMPILE := c++ $(FLAGS) -std=c++23 -D_LIBCPP_BUILDING_LIBRARY -I$S/libcxx/src -I/tmp/cpp/system/include
329
+ LIBCXX := $(filter-out %/int128_builtins.cpp,$(wildcard $S/libcxx/src/*.cpp $S/libcxx/src/filesystem/*.cpp \
330
+ $S/libcxx/src/ryu/*.cpp)) $(addprefix $S/libcxx/src/experimental/,chrono_exception.cpp keep.cpp log_hardening_failure.cpp)
331
+ LIBCXXABI := $(addprefix $S/libcxxabi/src/,abort_message.cpp cxa_aux_runtime.cpp cxa_default_handlers.cpp \
332
+ cxa_demangle.cpp cxa_guard.cpp cxa_handlers.cpp cxa_virtual.cpp cxa_thread_atexit.cpp fallback_malloc.cpp \
333
+ stdlib_new_delete.cpp stdlib_exception.cpp stdlib_stdexcept.cpp stdlib_typeinfo.cpp private_typeinfo.cpp \
334
+ cxa_exception_js_utils.cpp cxa_exception_storage.cpp cxa_exception.cpp cxa_personality.cpp)
335
+ objects = $(sort $(addprefix /tmp/cpp/$1/,$(addsuffix .o,$(basename $(notdir $2)))))
336
+ all: $L/libc++-ww-wasmexcept.a $L/libc++abi-ww-wasmexcept.a $L/libunwind-ww-wasmexcept.a
337
+ $L/libc++-ww-wasmexcept.a: $(call objects,libc++,$(LIBCXX))
338
+ $L/libc++abi-ww-wasmexcept.a: $(call objects,libc++abi,$(LIBCXXABI))
339
+ $L/libunwind-ww-wasmexcept.a: /tmp/cpp/libunwind/Unwind-wasm.o
340
+ $L/%.a:
341
+ >ar rc $@ $^
342
+ define compile
343
+ /tmp/cpp/$1/$(basename $(notdir $2)).o: $2
344
+ >$3 -c $$< -o $$@
345
+ endef
346
+ $(foreach source,$(LIBCXX),$(eval $(call compile,libc++,$(source),$(COMPILE) -DLIBCXX_BUILDING_LIBCXXABI=1 \
347
+ -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -DLIBC_NAMESPACE=__llvm_libc -I$S/llvm-libc)))
348
+ $(foreach source,$(LIBCXXABI),$(eval $(call compile,libc++abi,$(source),$(COMPILE) -D_LIBCXXABI_USE_FUTEX \
349
+ -D_LIBCXXABI_BUILDING_LIBRARY -DLIBCXXABI_NON_DEMANGLING_TERMINATE -I$S/libunwind/include)))
350
+ $(eval $(call compile,libunwind,$S/libunwind/src/Unwind-wasm.c,cc $(FLAGS) -D_LIBUNWIND_HIDE_SYMBOLS \
351
+ -I$S/libunwind/include))
352
+ SLOP mkdir /tmp/cpp/libc++ /tmp/cpp/libc++abi /tmp/cpp/libunwind
353
+ SLOP make -C /tmp/cpp -j2
354
+
355
+ EXPORTS HEADER cpp /usr/include/c++/v1
356
+ EXPORTS LIB c++ /usr/lib/dolly/process/libc++-ww-wasmexcept.a
357
+ EXPORTS LIB c++abi /usr/lib/dolly/process/libc++abi-ww-wasmexcept.a
358
+ EXPORTS ENV CXX c++
359
+
360
+ FILE /usr/share/licenses/libcxx/LICENSE
361
+ FILE /usr/share/licenses/libcxxabi/LICENSE
362
+
363
+ SLOP rm \
364
+ -rf \
365
+ /tmp/cpp
@@ -0,0 +1,204 @@
1
+ DOLLY 7
2
+ TOOLCHAIN system-tools
3
+ REQUIRES HOST runtime@0
4
+ REQUIRES HOST display@0
5
+ REQUIRES HOST input@0
6
+ REQUIRES HOST http@0
7
+ REQUIRES HOST threads@0
8
+
9
+ FROM /v0.1.6/Dollyfile-system-build 2b3dacf451ba777ad3724b819014df4e705b024aa73c51c60125d8b5e45c9b57
10
+ # Unchanged upstream sbase commands, built by sbase's own Makefile.
11
+ REQUIRES HEADER libc
12
+ REQUIRES TOOL ar
13
+ REQUIRES TOOL cc
14
+ REQUIRES TOOL make
15
+ REQUIRES TOOL mv
16
+ REQUIRES TOOL rm
17
+ REQUIRES TOOL tar
18
+
19
+ SOURCE /v0.1.6/dist/static/default/sbase.tar 23daa7bd6d5169ba5ad4a9801fe039ba28b103e3dbb74583fccb48f3333253eb /tmp/sbase.tar
20
+ SLOP tar \
21
+ -xf /tmp/sbase.tar \
22
+ -C /
23
+
24
+ FILE /tmp/sbase/dolly.mk
25
+ TOOLS = basename cksum cmp comm cut date dd dirname expand expr false fold \
26
+ grep head join kill ln md5sum mktemp nl od paste pathchk \
27
+ printenv readlink rmdir sed seq sha256sum sort split \
28
+ strings tail tee tr true \
29
+ tsort uname unexpand uniq wc which
30
+ .RECIPEPREFIX := >
31
+ dolly-bin: $(TOOLS)
32
+ >mv $(TOOLS) /bin
33
+ >mv $(TOOLS:=.1) /usr/share/man/man1
34
+ .RECIPEPREFIX :=
35
+ include Makefile
36
+ SLOP make \
37
+ -C /tmp/sbase \
38
+ -f dolly.mk \
39
+ CFLAGS=-O2 \
40
+ ARFLAGS=rc \
41
+ RANLIB=:
42
+
43
+ EXPORTS TOOL basename
44
+ EXPORTS TOOL cksum
45
+ EXPORTS TOOL cmp
46
+ EXPORTS TOOL comm
47
+ EXPORTS TOOL cut
48
+ EXPORTS TOOL date
49
+ EXPORTS TOOL dd
50
+ EXPORTS TOOL dirname
51
+ EXPORTS TOOL expand
52
+ EXPORTS TOOL expr
53
+ EXPORTS TOOL false
54
+ EXPORTS TOOL fold
55
+ EXPORTS TOOL grep
56
+ EXPORTS TOOL head
57
+ EXPORTS TOOL join
58
+ EXPORTS TOOL kill
59
+ EXPORTS TOOL ln
60
+ EXPORTS TOOL md5sum
61
+ EXPORTS TOOL mktemp
62
+ EXPORTS TOOL nl
63
+ EXPORTS TOOL od
64
+ EXPORTS TOOL paste
65
+ EXPORTS TOOL pathchk
66
+ EXPORTS TOOL printenv
67
+ EXPORTS TOOL readlink
68
+ EXPORTS TOOL rmdir
69
+ EXPORTS TOOL sed
70
+ EXPORTS TOOL seq
71
+ EXPORTS TOOL sha256sum
72
+ EXPORTS TOOL sort
73
+ EXPORTS TOOL split
74
+ EXPORTS TOOL strings
75
+ EXPORTS TOOL tail
76
+ EXPORTS TOOL tee
77
+ EXPORTS TOOL tr
78
+ EXPORTS TOOL true
79
+ EXPORTS TOOL tsort
80
+ EXPORTS TOOL uname
81
+ EXPORTS TOOL unexpand
82
+ EXPORTS TOOL uniq
83
+ EXPORTS TOOL wc
84
+ EXPORTS TOOL which
85
+
86
+ FILE /usr/share/licenses/sbase/LICENSE
87
+
88
+ SLOP rm \
89
+ -rf \
90
+ /tmp/sbase \
91
+ /tmp/sbase.tar
92
+ # Samurai, a compact Ninja-compatible executor, unchanged: its jobs start
93
+ # through posix_spawn.
94
+ REQUIRES HEADER runtime
95
+
96
+ SOURCE /v0.1.6/dist/static/default/samurai.tar df4d14af0e48a206d1ccc175f134c3c81b6601b3d243b24561b1927ecd0afc45 /tmp/ninja/samurai.tar
97
+
98
+ SLOP tar \
99
+ -xf /tmp/ninja/samurai.tar \
100
+ -C /
101
+ SLOP CWD /tmp/ninja/source cc -O1 -std=c99 -D_POSIX_C_SOURCE=200809L -I /tmp/ninja/source \
102
+ build.c deps.c env.c graph.c htab.c log.c parse.c samu.c scan.c tool.c tree.c util.c os-posix.c -o /usr/bin/ninja
103
+
104
+ EXPORTS TOOL ninja
105
+
106
+ SLOP ninja \
107
+ --version
108
+ SLOP cp /tmp/ninja/source/samu.1 /usr/share/man/man1/ninja.1
109
+
110
+ FILE /usr/share/licenses/samurai/LICENSE
111
+
112
+ SLOP rm \
113
+ -rf \
114
+ /tmp/ninja
115
+ # zlib, gzip and curl for builds, and Git, which Dolly's patch and diff run.
116
+ INSTALL /v0.1.6/Dollyfile-zlib 48ee0a5552eada81c0324749ba5ce9a7d2a2505a91f3ffcaf51f81c36a641f82
117
+ INSTALL /v0.1.6/Dollyfile-gzip afb9abb2b9a78e4c82811af6f5695f814ac322f538655f733ba6813895be13ae
118
+ INSTALL /v0.1.6/Dollyfile-curl 084ff066ff997321eb771ee8a29503b8e5eb6ff877cb6407df761bcb5173655b
119
+ INSTALL /v0.1.6/Dollyfile-git 3393aa9b0bb67b91dd2195bfc5be7477d276e9522ae2ada7041abc1d21cb1e1c
120
+ SOURCE /v0.1.6/dist/static/default/awk.tar f28cae177fa60793a70066d10667e8d06775d979f2262be1c48f8eb941090015 /tmp/awk.tar
121
+ SLOP tar \
122
+ -xf /tmp/awk.tar \
123
+ -C /
124
+
125
+ FILE /tmp/awk/Makefile
126
+ .RECIPEPREFIX := >
127
+ SOURCES := /usr/src/awk/awkgram.tab.c /usr/src/awk/b.c /usr/src/awk/main.c /usr/src/awk/parse.c /usr/src/awk/proctab.c /usr/src/awk/tran.c /usr/src/awk/lib.c /usr/src/awk/run.c /usr/src/awk/lex.c
128
+ all: /bin/awk
129
+ /usr/libexec/dolly/awk-maketab: /usr/src/awk/maketab.c
130
+ >cc -std=gnu99 -I /usr/src/awk -DNDEBUG $< -o $@
131
+ /usr/src/awk/proctab.c: /usr/libexec/dolly/awk-maketab /usr/src/awk/awkgram.tab.h
132
+ >/usr/libexec/dolly/awk-maketab /usr/src/awk/awkgram.tab.h > $@
133
+ /bin/awk: $(SOURCES)
134
+ >cc -std=gnu99 -fno-builtin -I /usr/src/awk -D_DEFAULT_SOURCE -DNDEBUG $^ -o $@
135
+ SLOP CWD /usr/src/awk make \
136
+ -f /tmp/awk/Makefile
137
+
138
+ EXPORTS TOOL awk
139
+ FILE /usr/share/licenses/awk/LICENSE
140
+
141
+ SLOP awk \
142
+ --version
143
+
144
+ SLOP rm \
145
+ -rf \
146
+ /tmp/awk \
147
+ /tmp/awk.tar \
148
+ /usr/libexec/dolly/awk-maketab \
149
+ /usr/src/awk
150
+ # Dolly's own commands beside sbase's, from programs/commands.
151
+ SOURCE /v0.1.6/dist/static/default/commands/run-program.h e73415ba149e8dcb9944313c36d8d2319202d699c810e02a26d5a94caa8f3a9f /tmp/agent-tools/run-program.h
152
+ SOURCE /v0.1.6/dist/static/default/commands/path.h 48c3a1e853aa273106234c8cdbbcae7d54c2f68f477373e0712d5e4748a9b788 /tmp/agent-tools/path.h
153
+ SOURCE /v0.1.6/dist/static/default/commands/install.c 3948856ced1cb979eba94360d8b726b0a4ab785f21fc6508181e6fddce6d861e /tmp/agent-tools/install.c
154
+ SOURCE /v0.1.6/dist/static/default/commands/du.c e2c54482b13af2a7af18c5a7ff9695816443e8fd9197c8b2e4891a645cd2723a /tmp/agent-tools/du.c
155
+ SOURCE /v0.1.6/dist/static/default/commands/rev.c 3539529d49f26629a6518437dc76631f113bcc5822ff5dbc8aa26481933f3d05 /tmp/agent-tools/rev.c
156
+ SOURCE /v0.1.6/dist/static/default/commands/command.c a84673243407a37f42b1a82a47fab4123c165b383761642874ba2ec081938bd3 /tmp/agent-tools/command.c
157
+ SOURCE /v0.1.6/dist/static/default/commands/xargs.c 13a9340a4f6539e2434ef257bb2d4c5d871f4b33deeb2627002fca6752d29034 /tmp/agent-tools/xargs.c
158
+ SOURCE /v0.1.6/dist/static/default/commands/find.c 737d431d57cd50f769cbc1a4e36076af1033590a8cc51053bcc5672f48545f59 /tmp/agent-tools/find.c
159
+ SOURCE /v0.1.6/dist/static/default/commands/env.c 62c71b67f4623f7b2f253c5474ff8745ed335325ed0392b992e4adc8653a6902 /tmp/agent-tools/env.c
160
+ SOURCE /v0.1.6/dist/static/default/commands/time.c bb49a29e708e9e32716e2d5bf4b4b4e662b07093d0e3731588ef7d41a53ad733 /tmp/agent-tools/time.c
161
+ SOURCE /v0.1.6/dist/static/default/commands/timeout.c 29469d957ff5fb2e2f0deb5a62c8cbe84aa46a9e7afbb964690f5a9819cb9b83 /tmp/agent-tools/timeout.c
162
+ SOURCE /v0.1.6/dist/static/default/commands/realpath.c 6ec82439ecf3ab1d21a40293ab7e585972c523d8c8e4573a60a7cef86af08250 /tmp/agent-tools/realpath.c
163
+ SOURCE /v0.1.6/dist/static/default/commands/hostname.c 14a20a493c8559d8b28f221a6edd9b6f89f893f3e3067093b44d7235b4ae060f /tmp/agent-tools/hostname.c
164
+ SOURCE /v0.1.6/dist/static/default/commands/tty.c c51c9598e8245d5f651ade70995f2b03fb936c42a0e99c4c81c83749c5714c7e /tmp/agent-tools/tty.c
165
+ SOURCE /v0.1.6/dist/static/default/commands/nproc.c 462121be10de74053f49d96a96ea9fdf37c9b11d0ca5cbcf3bc786468b675c8e /tmp/agent-tools/nproc.c
166
+
167
+ FILE /tmp/agent-tools/Makefile
168
+ .RECIPEPREFIX := >
169
+ NAMES := install du rev command xargs find env time timeout realpath hostname tty nproc
170
+ TOOLS := $(addprefix /bin/,$(NAMES))
171
+ all: $(TOOLS) $(NAMES:%=/usr/share/man/cat1/%.1)
172
+ /bin/%: /tmp/agent-tools/%.c /tmp/agent-tools/run-program.h /tmp/agent-tools/path.h
173
+ >cc -O2 $< -o $@
174
+ /usr/share/man/cat1/%.1: /bin/%
175
+ >$< --help > $@
176
+ SLOP make \
177
+ -f /tmp/agent-tools/Makefile
178
+
179
+ EXPORTS TOOL install
180
+ EXPORTS TOOL du
181
+ EXPORTS TOOL rev
182
+ EXPORTS TOOL command
183
+ EXPORTS TOOL xargs
184
+ EXPORTS TOOL find
185
+ EXPORTS TOOL env
186
+ EXPORTS TOOL time
187
+ EXPORTS TOOL timeout
188
+ EXPORTS TOOL realpath
189
+ EXPORTS TOOL hostname
190
+ EXPORTS TOOL tty
191
+ EXPORTS TOOL nproc
192
+
193
+ SLOP rm \
194
+ -rf \
195
+ /tmp/agent-tools
196
+ # Conventional pathname for upstream scripts; the implementation is Slop.
197
+ REQUIRES TOOL ln
198
+ SLOP ln -s slop /bin/sh
199
+ EXPORTS TOOL sh
200
+ SLOP cp /usr/share/man/cat1/slop.1 /usr/share/man/cat1/sh.1
201
+ FOLDER /usr/share/man
202
+ INSTALL /v0.1.6/Dollyfile-display 9516e36ef9c8566c9f0590546e1474db96ca02ddc75028e562e92af71fdbdeef
203
+
204
+ ENTRY /bin/foreground -i /bin/slop