CFV: New Project: Nashorn

I hereby propose the creation of the Nashorn Project with Jim Laskey as the Lead and HotSpot group as the sponsoring Group. In accordance with the OpenJDK guidelines [1], we would like to start a new project to implement a lightweight high-performance JavaScript runtime in Java with a native JVM. This project intends to enable Java developers to embed JavaScript in Java applications via JSR-223 [2] and to develop free standing JavaScript applications using the jrunscript command line tool [2]. This project is designed to take full advantage of newer technologies in a native JVM, made since the original development of JVM based JavaScript started in 1997 by Netscape [3] and maintained by Mozilla [4]. This project will be an entirely new code base, focused on these newer technologies. In particular the project will utilize the MethodHandles and InvokeDynamic APIs described in JSR-292 [5]. The goal is to provide a lightweight high performance JavaScript on a native JVM. The scope of this project will include, but is not limited to, a parser API for scanning JavaScript source code, a compiler to convert ASTs from the parser to JVM byte code, and a runtime to support the execution of said generated byte code. Execution of JavaScript in this environment will be in conformance with ECMA-262 Edition 5.1 [6] and will adapt to newer guidelines as standards evolve. The initial source of this project will come from an Oracle internal project, which will wholly migrate to the OpenJDK repositories. This source base fully passes (100%) ECMAScript test262. The current status of this project is that further work needs to be done on performance and hardening before it can be considered ready for general use. To ensure the broadest possible collaboration between potential contributors the project will maintain one or more new OpenJDK code repositories and a developers' mailing list. The HotSpot group[7] will sponsor this project. Jim Laskey will be the initial Lead; the initial Committers and Authors are still being determined. (Reviewers are not needed as the project will not require formal change review.) Jim Laskey is the Multi-language lead at Oracle. He has been developing compilers and runtimes since the mid 1970s; contributor to APLUM (CDC) and Pascal 2 (CDC), chief architect of the Prograph [8] programming language, developer on Symantec's [9] Java symcjit.dll, ported Hotspot to PowerPC at Apple, developer on LLVM [10] at Apple [11], Hotspot engineer at Azul [12] and developer on the JavaFX script [13] compiler at Oracle [14]. Votes are due by midnight December 6, 2012 UTC [15]. Only current OpenJDK Members [16] are eligible to vote on this motion. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [17]. Regards, Jim Laskey John Coomes, OpenJDK HotSpot Group Lead [1]http://openjdk.java.net/projects/#new-project [2] http://www.jcp.org/en/jsr/detail?id=223 [3] http://en.wikipedia.org/wiki/Rhino_(JavaScript_engine) [4] https://developer.mozilla.org/en-US/docs/Rhino [5] http://www.jcp.org/en/jsr/detail?id=292 [6] http://www.ecma-international.org/publications/standards/Ecma-262.htm [7]http://openjdk.java.net/census#hotspot [8] http://en.wikipedia.org/wiki/Prograph [9] http://www.symantec.com/index.jsp [10] http://llvm.org [11] http://www.apple.com [12] http://www.azulsystems.com [13] http://docs.oracle.com/javafx/1.3/tutorials/core/ [14] http://www.oracle.com/index.html [15] http://www.timeanddate.com/worldclock/fixedtime.html?msg=CFV%3A+New+Project%3A+Nashorn&iso=20121206T00 [16] http://openjdk.java.net/census#members [17] http://openjdk.java.net/projects/#new-project-vote