Thanks Isaiah - I totally missed that point in the thread.

I'll hit up some Ivy folks I know and see if they're interested in
helping with this.

Ben

On Tue, 17 Nov 2020 at 12:50, Isaiah Peng <issa...@gmail.com> wrote:
>
> FYI, the reason for using Any is specified in the thread:
>
> > I still need to figure out the minimal descriptive pom.xml (dependencies 
> > etc., no build information) in order to be able to produce Maven artifacts. 
> > Right now, Nashorn’s build and test process is highly customized set of Ant 
> > build.xml files, so it can’t just be converted to “vanilla” Maven or 
> > Gradle. It’s a long term goal though (to switch it from our custom Ant 
> > build.xml to either one of these.) Initially, it might make sense to use 
> > Apache Ivy within our Ant build to handle both dependencies and publication.
>
> Ben Evans <benjamin.john.ev...@gmail.com> 于 2020年11月17日周二 上午10:37写道:
>>
>> Thanks for all the work you've done on this, Attila.
>>
>> Quick question: The project still seems to be using Ant. Is there a
>> reason for that? Would you merge a PR that ported the build system to
>> Maven or Gradle instead? (and if so, do you have a preference for
>> either one?) IME, Ant is rather inaccessible as a tool these days, and
>> so it might be a good idea to get off it early on.
>>
>> Thanks,
>>
>> Ben
>>
>> On Sun, 15 Nov 2020 at 18:26, Attila Szegedi <szege...@gmail.com> wrote:
>> >
>> > Hi y’all,
>> >
>> > openjdk/nashorn repo is up and its main branch is populated with the 
>> > initial copy of Nashorn as it existed in JDK 14. I added a fix for 
>> > wrong/missing licenses for two files (agreed with Oracle) and an initial 
>> > project README on top of it.
>> >
>> > An even better news is that I have the initial standalone Nashorn 15.0.0 
>> > PR up ready for review. It is at:
>> >
>> > <https://github.com/openjdk/nashorn/pull/3>
>> >
>> >
>> > The PR describes the steps to build the artifacts. I’d like to encourage 
>> > everyone here to try it out and report back with your experiences, and to 
>> > also give an earnest review of the PR. If it works out okay, we could 
>> > merge this into main in the next few days and then I can get the artifacts 
>> > published into Maven Central!
>> >
>> > Attila.
>> >
>> > > On 2020. Oct 25., at 18:07, Attila Szegedi <szege...@gmail.com> wrote:
>> > >
>> > > Hi y’all,
>> > >
>> > > trying to get into the habit of making these weekly updates until I have 
>> > > something else to show.
>> > >
>> > > * With Remi’s, Sundar’s and Mandy’s help I fixed anonymous code loading. 
>> > > We’ll be using the sun.misc.Unsafe for now, with hope to transition to 
>> > > Lookup.defineHiddenClass somewhere down the line.
>> > >
>> > > * I started using Ivy as the dependency manager in our build.xml, and 
>> > > right now I also have an Ant task that builds all the artifacts for 
>> > > Maven publication.
>> > >
>> > > The first version of Maven artifacts (jar, javadoc, sources, Maven pom 
>> > > file) is basically ready to go. All we’re waiting for is for Oracle to 
>> > > create the openjdk/nashorn repository and approve its initial contents. 
>> > > I started the relevant conversation about it 12 days ago… it is going 
>> > > slower than I hoped for.
>> > >
>> > > What do you all think of the version number? Nashorn never had its own 
>> > > separate version number, but I’m thinking we could start the standalone 
>> > > version at 15. I don’t expect we’ll remain in lockstep with OpenJDK (so 
>> > > it’ll remain at 15 significantly longer), but it might be a good 
>> > > strategy to at least retroactively be able to talk about it without 
>> > > confusion, e.g. “Nashorn 11” is Nashorn-as-in-Java-11 and “Nashorn 14” 
>> > > is Nashorn-as-in-Java-14. And “Nashorn 15” is then quite naturally the 
>> > > first standalone version.
>> > >
>> > > Attila.
>> > >
>> > >> On 2020. Oct 19., at 17:16, Attila Szegedi <szege...@gmail.com> wrote:
>> > >>
>> > >> Hi y’all,
>> > >>
>> > >> a quick update with regard of what’s been happening since the last post.
>> > >>
>> > >> * I’m talking with folks at Oracle about setting up the openjdk/nashorn 
>> > >> repo. We’re hashing out what the initial content of the repo should be.
>> > >>
>> > >> * The licensing for the standalone Nashorn is confirmed to be 
>> > >> GPLv2+Classpath exception.
>> > >>
>> > >> * In anticipation of getting a public repo, I’ve been not sitting idle, 
>> > >> but rather I’m working in a private repo to get ahead with the 
>> > >> necessary adaptations. I have a version now that passes the internal 
>> > >> test suite (with an asterisk) and passes the whole test262[0] suite (no 
>> > >> asterisk there, it all passes.)
>> > >>
>> > >> * I still need to figure out the minimal descriptive pom.xml 
>> > >> (dependencies etc., no build information) in order to be able to 
>> > >> produce Maven artifacts. Right now, Nashorn’s build and test process is 
>> > >> highly customized set of Ant build.xml files, so it can’t just be 
>> > >> converted to “vanilla” Maven or Gradle. It’s a long term goal though 
>> > >> (to switch it from our custom Ant build.xml to either one of these.) 
>> > >> Initially, it might make sense to use Apache Ivy within our Ant build 
>> > >> to handle both dependencies and publication.
>> > >>
>> > >> As for test suite asterisks:
>> > >>
>> > >> * For now, I moved all the jjs related tests into “currently failing” 
>> > >> directory as I did not have time to figure out how to build jjs. We can 
>> > >> sort out later if/when/how we want to resurrect jjs.
>> > >>
>> > >> * sandbox/nashorninternals.js test is moved to “currently failing” too. 
>> > >> I’m pretty sure that what it’s been testing is no longer relevant. 
>> > >> Tests artificially are restricted from accessing internal Nashorn 
>> > >> internal packages and this is validated. Unfortunately, keeping Nashorn 
>> > >> internals in the list of access-checked packages causes lots of issues 
>> > >> for Nashorn itself in the tests, so I removed internal packages from 
>> > >> the access-check list. I separately kept a test package that’s used to 
>> > >> assert scripts can’t access such packages, and it works fine.
>> > >>
>> > >> * for now, I disabled anonymous code loading. It’s a funny one. Nashorn 
>> > >> has a feature called “anonymous code loading” that it uses for somewhat 
>> > >> lighter-weight loading of code as it compiles JavaScript functions 
>> > >> one-by-one into bytecode classes. Unfortunately, it uses 
>> > >> Unsafe.defineAnonymousClass for that, and outside of JDK it can’t 
>> > >> access Unsafe. So I switched to a new API,  luckily available from Java 
>> > >> 15, MethodHandles.Lookup.defineHiddenClass. It seems to work as it 
>> > >> should, except with it, eval’d expressions no longer report “<eval>” as 
>> > >> their script name and anonymous functions no longer report 
>> > >> “<anonymous>” but rather their callers names, script names, and line 
>> > >> numbers are reported. It’s quite maddening, and if I can’t get to the 
>> > >> bottom of it in reasonable amount of time, I’ll just keep anonymous 
>> > >> code loading switched off for initial release. There’s not many 
>> > >> drawbacks to it, maybe a bit higher memory utilization if you don’t use 
>> > >> optimistic types. With optimistic types, it would preclude obsolete 
>> > >> code versions from clearing up from memory when functions are 
>> > >> repeatedly recompiled until the whole script gets unloaded.
>> > >>
>> > >> Attila.
>> > >>
>> > >> [0] https://github.com/tc39/test262/tree/es5-tests
>> > >>
>> > >>> On 2020. Oct 11., at 9:28, Attila Szegedi <szege...@gmail.com> wrote:
>> > >>>
>> > >>> Folks,
>> > >>>
>> > >>> some good news for y'all (presumably you're on this mailing list 
>> > >>> because you are interested in Nashorn.)
>> > >>>
>> > >>> Since Nashorn's removal from JDK starting with Java 15, numerous 
>> > >>> people have realized that they, in fact, rely on it. To remedy the 
>> > >>> situation, Nashorn will continue as a standalone project within the 
>> > >>> OpenJDK organization.
>> > >>>
>> > >>> You might ask, "But isn't Nashorn officially dead?", to which the 
>> > >>> answer is: no, it isn’t. The project’s product is merely no longer 
>> > >>> shipped as part of the JDK project. The Nashorn project in OpenJDK 
>> > >>> organization is still live[1], along with all of its resources 
>> > >>> including the mailing list this message is posted on. It was merely 
>> > >>> not active for a while, until now.
>> > >>>
>> > >>> What does this mean in practical terms? The following will happen or 
>> > >>> are happening:
>> > >>>
>> > >>> * Project communication will continue on this mailing list 
>> > >>> (<nashorn-dev@openjdk.java.net>).
>> > >>>
>> > >>> * A GitHub project openjdk/nashorn will be set up. It will be 
>> > >>> populated by a clone of the openjdk/jdk14u repo that has been filtered 
>> > >>> for  Nashorn-only commits. (Thanks, git-filter-repo[2], you are 
>> > >>> awesome!) There will be no synchronization back to jdk14u afterwards, 
>> > >>> it won't act as an upstream. openjdk/nashorn proceeds independently 
>> > >>> from that point on.
>> > >>>
>> > >>> * The project will change the module and package names as it can't 
>> > >>> keep living within the top-level "jdk." package. In accordance with 
>> > >>> other independently-developed OpenJDK projects, it will transition to 
>> > >>> module and package names within the "org.openjdk." package. 
>> > >>> Fortunately for Nashorn, it is mostly used through the 
>> > >>> "javax.script.*" APIs so people that use it through those APIs won't 
>> > >>> have to adapt their code. Creating the engine by name as described in 
>> > >>> Nashorn’s last (JDK 14) API docs[3] will continue to work. People that 
>> > >>> used to use the Nashorn-specific API (typically, AbstractJSObject and 
>> > >>> ScriptObjectMirror) will need to adapt their code for new package 
>> > >>> names, though.
>> > >>>
>> > >>> * Project artifacts (in plain English: JAR file to be used with Maven 
>> > >>> etc.) will be published on SonaType under the "org.openjdk" 
>> > >>> organization, again similar to other independently-developed OpenJDK 
>> > >>> projects.
>> > >>>
>> > >>> The goal for the initial release is to ship a standalone Nashorn with 
>> > >>> identical functionality to that in JDK 14, with the only changes being:
>> > >>>
>> > >>> * reversing of deprecation and “scheduled for removal” notices,
>> > >>> * enacting the package and module name changes,
>> > >>> * replacing or removing dependencies on various jdk.internal.* 
>> > >>> packages since those are no longer exported from JDK modules to the 
>> > >>> Nashorn module.
>> > >>>
>> > >>> It is possible for expediency that we will decide to ship Nashorn as a 
>> > >>> library first, and separately ship the initial version of the jjs 
>> > >>> shell sometime later.
>> > >>>
>> > >>> I’m personally undertaking these initial tasks. I will let you know 
>> > >>> here on the list about the progress, and once the repo is set up the 
>> > >>> work will also start appearing on a branch.
>> > >>>
>> > >>> There are some other aspects of the project that need to be worked 
>> > >>> out: contribution and review guidelines, publication location of the 
>> > >>> accompanying documentation (that will no longer be part of the JDK 
>> > >>> documentation) and so on. I will post discussion-initiating e-mails 
>> > >>> for these as well as time comes and will absolutely welcome feedback 
>> > >>> on them, just as I welcome feedback on this plan too.
>> > >>>
>> > >>> Attila.
>> > >>>
>> > >>> --
>> > >>> [1] https://openjdk.java.net/projects/nashorn/
>> > >>> [2] https://github.com/newren/git-filter-repo
>> > >>> [3] 
>> > >>> https://docs.oracle.com/en/java/javase/14/docs/api/jdk.scripting.nashorn/module-summary.html
>> > >>
>> > >
>> >

Reply via email to