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
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    [![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
       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 hidden
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 hidden
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}
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 hidden
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
docker/docker-build.sh -3
  1    #!/bin/bash
  2    
  3    docker run --rm -w /mnt -v $(pwd):/mnt:rw runtimejs scons
docker/docker-prepare.sh -3
  1    #!/bin/bash
  2    
  3    docker build -t runtimejs docker
se created version 1 ·