patch/first-patch master

...
Reset To Latest

Apply changes from runtimejs-comm/runtime fork

Patch does not have a description.
8 files changed+548 -38
+ Dockerfile.build
26
  README.md
44
  SConstruct
2
+ package-lock.json
479
  package.json
6
- docker/Dockerfile
23
- docker/docker-build.sh
3
- docker/docker-prepare.sh
3
Dockerfile.build+26
             @@ -0,0 +1,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
README.md+37 -7
             @@ -1,11 +1,8 @@     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       [![Build Status](https://travis-ci.org/runtimejs/runtime.svg?branch=master)](https://travis-ci.org/runtimejs/runtime) [![npm](https://img.shields.io/npm/v/runtimejs.svg)](https://www.npmjs.com/package/runtimejs) [![Gem](https://img.shields.io/badge/freenode-%23runtimejs-blue.svg)](https://freenode.net/) [![Travis](https://img.shields.io/badge/GITTER-JOIN_CHAT_%E2%86%92-1dce73.svg)](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[![npm](https://img.shields.io/npm/v/runtimejs.svg)](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             @@ -13,6 +10,19 @@    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.             @@ -46,7 +56,7 @@    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             @@ -60,6 +70,26 @@    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)
SConstruct+1 -1
             @@ -5,7 +5,7 @@     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",
package-lock.json+479
             @@ -0,0 +1,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}
package.json+5 -1
             @@ -8,7 +8,10 @@     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",             @@ -25,6 +28,7 @@    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": {
docker/Dockerfile-23
             @@ -1,23 +0,0 @@     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
docker/docker-build.sh-3
             @@ -1,3 +0,0 @@     1       #!/bin/bash     2            3       docker run --rm -w /mnt -v $(pwd):/mnt:rw runtimejs scons
docker/docker-prepare.sh-3
             @@ -1,3 +0,0 @@     1       #!/bin/bash     2            3       docker build -t runtimejs docker
se created patch version 1