patch/first-patch
Change ID uzxmxllm master
Apply changes from runtimejs-comm/runtime fork
Change does not have a description.
Reviews
No reviews.
8 files changed +548 -38
26 | ||
44 | ||
2 | ||
479 | ||
6 | ||
23 | ||
3 | ||
3 |
Dockerfile.build +26
1FROM archlinux
2
3RUN echo 'LANG="en_US.UTF-8"' > /etc/locale.conf
4
5RUN pacman --quiet -Syy --noconfirm
6RUN pacman --quiet -S --noconfirm base-devel
7RUN pacman --quiet -S --noconfirm scons
8RUN pacman --quiet -S --noconfirm libunistring
9RUN cd home && curl ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.gz | tar xz
10RUN cd home && curl ftp://gcc.gnu.org/pub/binutils/releases/binutils-2.24.tar.gz | tar xz
11RUN cd home && curl http://flatassembler.net/fasm-1.73.18.tgz | tar xz
12RUN cd home && mkdir cross
13
14ENV PREFIX /home/cross
15ENV TARGET x86_64-elf
16ENV PATH /home/cross/bin:/home/fasm:$PATH
17
18RUN cd home && mkdir build-binutils && cd build-binutils && \
19 ../binutils-2.24/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-werror && \
20 make && make install
21
22RUN cd home && mkdir build-gcc && cd build-gcc && \
23 ../gcc-4.9.1/configure CXXFLAGS="-std=gnu++98" --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ && \
24 make all-gcc && make all-target-libgcc && make install-gcc && make install-target-libgcc
25
26RUN pacman -S --noconfirm nodejs npm
1
README.md +37 -7
1 # Project is not maintained, use at your own risk
2 There is a project at [runtimejs-comm/runtime](https://github.com/runtimejs-comm/runtime) that is looking to continue by maintaining a fork. Visit the [repository](https://github.com/runtimejs-comm/runtime) on Github for more details.
3
4 1# runtime.js
5 2
6 [](https://travis-ci.org/runtimejs/runtime) [](https://www.npmjs.com/package/runtimejs) [](https://freenode.net/) [](https://gitter.im/runtimejs/runtime)
7
8 __runtime.js__ is an open-source library operating system (unikernel) for the cloud that runs JavaScript, can be bundled up with an application and deployed as a lightweight and immutable VM image.
3[](https://www.npmjs.com/package/runtimejs)
4
5__runtime.js__ is an open-source library operating system (unikernel) for the cloud that runs JavaScript, can be bundled up with an application and deployed as a lightweight and immutable VM image.
9 6
10 7It's built on [V8 JavaScript engine](https://code.google.com/p/v8/) and uses event-driven and non-blocking I/O model inspired by [Node.js](https://nodejs.org/). At the moment [KVM](http://www.linux-kvm.org/page/Main_Page) is the only supported hypervisor.
11 8
1 line hidden 13 10
14 11_WARNING: project is in development and not ready for production use._
15 12
13### Project goals
14
15#### Short term
16- Update documentation for both the C++ kernel and the JS API and
17 modules
18- Get Tests for the JS portion working
19- Maintain what's currently here
20- Maintain build tooling for easy development
21
22#### Long term
23- Upgrade v8 to a more modern version
24- Implement threads with v8 Isolates
25
16 26### Installation
17 27
18 28First thing is the command line tool `runtime-cli`, it will add `runtime` command to the shell. Type `runtime` to get full usage help.
27 lines hidden 46 56runtime start
47 57```
48 58
49 That's it, it should start and print `ok` in the console.
59That's it, it should start and print `ok` in the console.
50 60
51 61Optionally you can let it watch directory for changes and restart QEMU automatically:
52 62
7 lines hidden 60 70
61 71The kernel is written in C++ and manages low-level resources like CPU and memory, runs JavaScript using embedded V8 engine. Library drives the entire system and manages hardware devices (usually virtualized by hypervisor).
62 72
73## Building the Kernel
74
75Build the initial Docker image used for building the kernel, and build
76the kernel.
77```
78npm run build
79```
80
81To build the kernel in stages, assemble the Docker image used for
82building.
83```
84npm run prebuild
85```
86
87The kernel can be built without needing to run the prebuild step every
88time now.
89```
90npm run scons
91```
92
63 93## Docs
64 94
65 95[API docs](https://github.com/runtimejs/runtime/wiki/API-docs)
8 lines hidden1
SConstruct +1 -1
4 lines hidden 5 5SetOption('num_jobs', 4)
6 6
7 7build = os.getenv('RUNTIME_BUILD', "debug")
8 print 'Build', build
8print('Build', build)
9 9
10 10config = {
11 11 "project_name": "out/runtimejs",
229 lines hidden1
package-lock.json +479
1{
2 "name": "runtimejs",
3 "version": "0.2.16",
4 "lockfileVersion": 1,
5 "requires": true,
6 "dependencies": {
7 "ansi-styles": {
8 "version": "3.2.1",
9 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
10 "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
11 "dev": true,
12 "requires": {
13 "color-convert": "^1.9.0"
14 }
15 },
16 "balanced-match": {
17 "version": "1.0.0",
18 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
19 "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
20 "dev": true
21 },
22 "brace-expansion": {
23 "version": "1.1.11",
24 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
25 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
26 "dev": true,
27 "requires": {
28 "balanced-match": "^1.0.0",
29 "concat-map": "0.0.1"
30 }
31 },
32 "chalk": {
33 "version": "2.4.2",
34 "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
35 "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
36 "dev": true,
37 "requires": {
38 "ansi-styles": "^3.2.1",
39 "escape-string-regexp": "^1.0.5",
40 "supports-color": "^5.3.0"
41 }
42 },
43 "color-convert": {
44 "version": "1.9.3",
45 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
46 "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
47 "dev": true,
48 "requires": {
49 "color-name": "1.1.3"
50 }
51 },
52 "color-name": {
53 "version": "1.1.3",
54 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
55 "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
56 "dev": true
57 },
58 "concat-map": {
59 "version": "0.0.1",
60 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
61 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
62 "dev": true
63 },
64 "cross-spawn": {
65 "version": "6.0.5",
66 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
67 "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
68 "dev": true,
69 "requires": {
70 "nice-try": "^1.0.4",
71 "path-key": "^2.0.1",
72 "semver": "^5.5.0",
73 "shebang-command": "^1.2.0",
74 "which": "^1.2.9"
75 }
76 },
77 "define-properties": {
78 "version": "1.1.3",
79 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
80 "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
81 "dev": true,
82 "requires": {
83 "object-keys": "^1.0.12"
84 }
85 },
86 "error-ex": {
87 "version": "1.3.2",
88 "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
89 "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
90 "dev": true,
91 "requires": {
92 "is-arrayish": "^0.2.1"
93 }
94 },
95 "es-abstract": {
96 "version": "1.16.2",
97 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz",
98 "integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==",
99 "dev": true,
100 "requires": {
101 "es-to-primitive": "^1.2.1",
102 "function-bind": "^1.1.1",
103 "has": "^1.0.3",
104 "has-symbols": "^1.0.1",
105 "is-callable": "^1.1.4",
106 "is-regex": "^1.0.4",
107 "object-inspect": "^1.7.0",
108 "object-keys": "^1.1.1",
109 "string.prototype.trimleft": "^2.1.0",
110 "string.prototype.trimright": "^2.1.0"
111 }
112 },
113 "es-to-primitive": {
114 "version": "1.2.1",
115 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
116 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
117 "dev": true,
118 "requires": {
119 "is-callable": "^1.1.4",
120 "is-date-object": "^1.0.1",
121 "is-symbol": "^1.0.2"
122 }
123 },
124 "escape-string-regexp": {
125 "version": "1.0.5",
126 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
127 "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
128 "dev": true
129 },
130 "function-bind": {
131 "version": "1.1.1",
132 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
133 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
134 "dev": true
135 },
136 "graceful-fs": {
137 "version": "4.2.3",
138 "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
139 "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
140 "dev": true
141 },
142 "has": {
143 "version": "1.0.3",
144 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
145 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
146 "dev": true,
147 "requires": {
148 "function-bind": "^1.1.1"
149 }
150 },
151 "has-flag": {
152 "version": "3.0.0",
153 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
154 "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
155 "dev": true
156 },
157 "has-symbols": {
158 "version": "1.0.1",
159 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
160 "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
161 "dev": true
162 },
163 "hosted-git-info": {
164 "version": "2.8.5",
165 "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
166 "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
167 "dev": true
168 },
169 "is-arrayish": {
170 "version": "0.2.1",
171 "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
172 "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
173 "dev": true
174 },
175 "is-callable": {
176 "version": "1.1.4",
177 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
178 "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
179 "dev": true
180 },
181 "is-date-object": {
182 "version": "1.0.1",
183 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
184 "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
185 "dev": true
186 },
187 "is-regex": {
188 "version": "1.0.4",
189 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
190 "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
191 "dev": true,
192 "requires": {
193 "has": "^1.0.1"
194 }
195 },
196 "is-symbol": {
197 "version": "1.0.3",
198 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
199 "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
200 "dev": true,
201 "requires": {
202 "has-symbols": "^1.0.1"
203 }
204 },
205 "isexe": {
206 "version": "2.0.0",
207 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
208 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
209 "dev": true
210 },
211 "json-parse-better-errors": {
212 "version": "1.0.2",
213 "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
214 "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
215 "dev": true
216 },
217 "load-json-file": {
218 "version": "4.0.0",
219 "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
220 "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
221 "dev": true,
222 "requires": {
223 "graceful-fs": "^4.1.2",
224 "parse-json": "^4.0.0",
225 "pify": "^3.0.0",
226 "strip-bom": "^3.0.0"
227 }
228 },
229 "memorystream": {
230 "version": "0.3.1",
231 "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
232 "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=",
233 "dev": true
234 },
235 "minimatch": {
236 "version": "3.0.4",
237 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
238 "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
239 "dev": true,
240 "requires": {
241 "brace-expansion": "^1.1.7"
242 }
243 },
244 "nice-try": {
245 "version": "1.0.5",
246 "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
247 "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
248 "dev": true
249 },
250 "normalize-package-data": {
251 "version": "2.5.0",
252 "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
253 "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
254 "dev": true,
255 "requires": {
256 "hosted-git-info": "^2.1.4",
257 "resolve": "^1.10.0",
258 "semver": "2 || 3 || 4 || 5",
259 "validate-npm-package-license": "^3.0.1"
260 }
261 },
262 "npm-run-all": {
263 "version": "4.1.5",
264 "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz",
265 "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==",
266 "dev": true,
267 "requires": {
268 "ansi-styles": "^3.2.1",
269 "chalk": "^2.4.1",
270 "cross-spawn": "^6.0.5",
271 "memorystream": "^0.3.1",
272 "minimatch": "^3.0.4",
273 "pidtree": "^0.3.0",
274 "read-pkg": "^3.0.0",
275 "shell-quote": "^1.6.1",
276 "string.prototype.padend": "^3.0.0"
277 }
278 },
279 "object-inspect": {
280 "version": "1.7.0",
281 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
282 "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
283 "dev": true
284 },
285 "object-keys": {
286 "version": "1.1.1",
287 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
288 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
289 "dev": true
290 },
291 "parse-json": {
292 "version": "4.0.0",
293 "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
294 "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
295 "dev": true,
296 "requires": {
297 "error-ex": "^1.3.1",
298 "json-parse-better-errors": "^1.0.1"
299 }
300 },
301 "path-key": {
302 "version": "2.0.1",
303 "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
304 "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
305 "dev": true
306 },
307 "path-parse": {
308 "version": "1.0.6",
309 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
310 "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
311 "dev": true
312 },
313 "path-type": {
314 "version": "3.0.0",
315 "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
316 "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
317 "dev": true,
318 "requires": {
319 "pify": "^3.0.0"
320 }
321 },
322 "pidtree": {
323 "version": "0.3.0",
324 "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
325 "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
326 "dev": true
327 },
328 "pify": {
329 "version": "3.0.0",
330 "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
331 "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
332 "dev": true
333 },
334 "read-pkg": {
335 "version": "3.0.0",
336 "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
337 "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
338 "dev": true,
339 "requires": {
340 "load-json-file": "^4.0.0",
341 "normalize-package-data": "^2.3.2",
342 "path-type": "^3.0.0"
343 }
344 },
345 "resolve": {
346 "version": "1.13.0",
347 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.13.0.tgz",
348 "integrity": "sha512-HHZ3hmOrk5SvybTb18xq4Ek2uLqLO5/goFCYUyvn26nWox4hdlKlfC/+dChIZ6qc4ZeYcN9ekTz0yyHsFgumMw==",
349 "dev": true,
350 "requires": {
351 "path-parse": "^1.0.6"
352 }
353 },
354 "semver": {
355 "version": "5.7.1",
356 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
357 "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
358 "dev": true
359 },
360 "shebang-command": {
361 "version": "1.2.0",
362 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
363 "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
364 "dev": true,
365 "requires": {
366 "shebang-regex": "^1.0.0"
367 }
368 },
369 "shebang-regex": {
370 "version": "1.0.0",
371 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
372 "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
373 "dev": true
374 },
375 "shell-quote": {
376 "version": "1.7.2",
377 "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz",
378 "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==",
379 "dev": true
380 },
381 "spdx-correct": {
382 "version": "3.1.0",
383 "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
384 "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
385 "dev": true,
386 "requires": {
387 "spdx-expression-parse": "^3.0.0",
388 "spdx-license-ids": "^3.0.0"
389 }
390 },
391 "spdx-exceptions": {
392 "version": "2.2.0",
393 "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
394 "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
395 "dev": true
396 },
397 "spdx-expression-parse": {
398 "version": "3.0.0",
399 "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
400 "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
401 "dev": true,
402 "requires": {
403 "spdx-exceptions": "^2.1.0",
404 "spdx-license-ids": "^3.0.0"
405 }
406 },
407 "spdx-license-ids": {
408 "version": "3.0.5",
409 "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
410 "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
411 "dev": true
412 },
413 "string.prototype.padend": {
414 "version": "3.0.0",
415 "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz",
416 "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=",
417 "dev": true,
418 "requires": {
419 "define-properties": "^1.1.2",
420 "es-abstract": "^1.4.3",
421 "function-bind": "^1.0.2"
422 }
423 },
424 "string.prototype.trimleft": {
425 "version": "2.1.0",
426 "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
427 "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
428 "dev": true,
429 "requires": {
430 "define-properties": "^1.1.3",
431 "function-bind": "^1.1.1"
432 }
433 },
434 "string.prototype.trimright": {
435 "version": "2.1.0",
436 "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
437 "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
438 "dev": true,
439 "requires": {
440 "define-properties": "^1.1.3",
441 "function-bind": "^1.1.1"
442 }
443 },
444 "strip-bom": {
445 "version": "3.0.0",
446 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
447 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
448 "dev": true
449 },
450 "supports-color": {
451 "version": "5.5.0",
452 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
453 "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
454 "dev": true,
455 "requires": {
456 "has-flag": "^3.0.0"
457 }
458 },
459 "validate-npm-package-license": {
460 "version": "3.0.4",
461 "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
462 "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
463 "dev": true,
464 "requires": {
465 "spdx-correct": "^3.0.0",
466 "spdx-expression-parse": "^3.0.0"
467 }
468 },
469 "which": {
470 "version": "1.3.1",
471 "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
472 "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
473 "dev": true,
474 "requires": {
475 "isexe": "^2.0.0"
476 }
477 }
478 }
479}
1
package.json +5 -1
7 lines hidden 8 8 "postinstall": "node scripts/update-versions.js",
9 9 "lint": "eslint js",
10 10 "test": "runtimeify test/unit/index.js -o initrd && runtime-qemu ./initrd",
11 "test-build": "runtimeify test/unit/index.js -o initrd && runtime-qemu ./initrd --kernel ../disk/boot/runtime"
11 "test-build": "runtimeify test/unit/index.js -o initrd && runtime-qemu ./initrd --kernel ../disk/boot/runtime",
12 "prebuild": "docker build . -t runtimejs -f Dockerfile.build",
13 "scons": "docker run --rm -w /mnt -v $(pwd):/mnt:rw runtimejs scons",
14 "build": "npm-run-all prebuild scons"
12 15 },
13 16 "repository": {
14 17 "type": "git",
10 lines hidden 25 28 "eslint-config-airbnb-base": "^4.0.0",
26 29 "eslint-plugin-import": "^1.10.2",
27 30 "eslint-plugin-runtime-internal": "^1.0.0",
31 "npm-run-all": "^4.1.5",
28 32 "tape": "^4.0.0"
29 33 },
30 34 "runtimejs": {
24 lines hidden1
docker/Dockerfile -23
1 FROM base/arch
2
3 RUN echo 'LANG="en_US.UTF-8"' > /etc/locale.conf
4 RUN pacman --quiet -Syy
5 RUN pacman --quiet -S --noconfirm base-devel
6 RUN pacman --quiet -S --noconfirm scons
7 RUN pacman --quiet -S --noconfirm libunistring
8 RUN cd home && curl ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.gz | tar xz
9 RUN cd home && curl ftp://gcc.gnu.org/pub/binutils/releases/binutils-2.24.tar.gz | tar xz
10 RUN cd home && curl http://flatassembler.net/fasm-1.71.17.tgz | tar xz
11 RUN cd home && mkdir cross
12
13 ENV PREFIX /home/cross
14 ENV TARGET x86_64-elf
15 ENV PATH /home/cross/bin:/home/fasm:$PATH
16
17 RUN cd home && mkdir build-binutils && cd build-binutils && \
18 ../binutils-2.24/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --disable-werror && \
19 make && make install
20
21 RUN cd home && mkdir build-gcc && cd build-gcc && \
22 ../gcc-4.9.1/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers && \
23 make all-gcc && make all-target-libgcc && make install-gcc && make install-target-libgcc
1
docker/docker-build.sh -3
1 #!/bin/bash
2
3 docker run --rm -w /mnt -v $(pwd):/mnt:rw runtimejs scons
1
docker/docker-prepare.sh -3
1 #!/bin/bash
2
3 docker build -t runtimejs docker
1