GithubHelp home page GithubHelp logo

mozilla / positron-spidernode Goto Github PK

View Code? Open in Web Editor NEW
2.0 8.0 6.0 245.93 MB

License: Other

Makefile 0.28% Shell 0.21% JavaScript 56.89% HTML 2.05% C 4.45% C++ 14.61% Python 16.49% R 0.06% Batchfile 0.23% DTrace 0.46% PHP 3.76% Roff 0.19% Emacs Lisp 0.18% Perl 0.14%

positron-spidernode's Introduction

Note: this project has been archived, as development has stalled, and it isn't being actively maintained, nor used.

SpiderNode: Node.js on SpiderMonkey

This project is a port of Node.js on top of SpiderMonkey, the JavaScript engine in Firefox. We're still in the very early stages of the port, and a lot of work remains to be done before Node works.

Build Status

Goals

Right now we're focused on using this project in the Positron project. This means that we will need to finish SpiderShim to the extent necessary for Node.js to work. In the future, we may look into finishing implementing the features of the V8 API that Node.js does not use, in order to provide a V8 API shim layer out of the box in SpiderMonkey. The SpiderShim code is being developed with that long term goal in mind.

How it works

To enable building and running Node.js with SpiderMonkey, a V8 API shim (SpiderShim) is created on top of the SpiderMonkey API. This is based on Microsoft's node-chakracore, but it doesn't share much code with it besides the build system integration.

Current status

This is a work in progress. Node can now be successfully built on top of SpiderMonkey, and the very basics seem to work, but there are probably still a lot of issues to discover and fix.

We have implemented a fair portion of the V8 API. More specifically these tests are currently passing. Many of those tests have been ported from the V8 API tests.

How to build

Before building please make sure you have the prerequisites for building Node.js as documented here.

Building on any OS other than Linux or OS X has not been tested.

Build Command:

$ ./configure [options]
...
$ make
...
$ ./node -e 'console.log("hello from " + process.jsEngine)'
hello from spidermonkey

Where options is zero or more of:

  • --engine: The JavaScript engine to use. The default engine is spidermonkey.
  • --debug: Also build in debug mode. The default build configuration is release.
  • --enable-gczeal: Enable SpiderMonkey gc-zeal support. This is useful for debugging GC rooting correctness issues.
  • --with-external-spidermonkey-release and --with-external-spidermonkey-debug: Enable building against an out-of-tree SpiderMonkey. Expects a path to a built SpiderMonkey object directory (in release and debug modes, respectively)

If you build against an out-of-tree SpiderMonkey, you must include the SpiderMonkey library path in LD_LIBRARY_PATH (DYLD_LIBRARY_PATH on Mac) when running Node, i.e.:

$ LD_LIBRARY_PATH=path/to/obj-dir/dist/bin ./node -e 'console.log("hello from " + process.jsEngine)'

To run the API tests, do:

$ ./deps/spidershim/scripts/run-tests.py

Repository structure

The repository is based on node-chakracore. The interesting bits can be found in the deps/spidershim directory.

positron-spidernode's People

Contributors

addaleax avatar andreasmadsen avatar bnoordhuis avatar cjihrig avatar ehsan avatar evanlucas avatar felixge avatar fishrock123 avatar indutny avatar isaacs avatar jasnell avatar jbergstroem avatar koichik avatar kunalspathak avatar mmalecki avatar mscdex avatar mykmelez avatar ofrobots avatar orangemocha avatar piscisaureus avatar rvagg avatar ry avatar santigimeno avatar silverwind avatar targos avatar thefourtheye avatar tjfontaine avatar tootallnate avatar trevnorris avatar trott avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

positron-spidernode's Issues

Wiki changes

FYI: The following changes were made to this repository's wiki:

These were made as the result of a recent automated defacement of publically writeable wikis.

CODE_OF_CONDUCT.md isn't correct

Your required text does not appear to be correct

As of January 1 2019, Mozilla requires that all GitHub projects include this CODE_OF_CONDUCT.md file in the project root. The file has two parts:

  1. Required Text - All text under the headings Community Participation Guidelines and How to Report, are required, and should not be altered.
  2. Optional Text - The Project Specific Etiquette heading provides a space to speak more specifically about ways people can work effectively and inclusively together. Some examples of those can be found on the Firefox Debugger project, and Common Voice. (The optional part is commented out in the raw template file, and will not be visible until you modify and uncomment that part.)

If you have any questions about this file, or Code of Conduct policies and procedures, please reach out to [email protected].

(Message COC003)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.