@mfikes I'm weighing just nixing the Rhino REPL as well as Nashorn in the next release
the issue is that Closure Library has started including more and more ES6 based versions of Closure Library namespaces
(the issue with Rhino specifically)
Both of those engines are on the way out anyway
and getting Rhino to work is turning out to be a huge pain, and yes Nashorn is on the way out
I wonder if we use Nashorn itself anywhere in the testing suite (hopefully only to actually just test it, not to run any tests)
I think we've shown that we can support many different environments but as Closure changes - keeping everything up to date is becoming a bear
if folks really want Rhino or Nashorn support they can recreate these easily as libraries
@mfikes I'm not sure what you want to do about Graaljs - I believe it needs to be updated
That's a good point... no need for them to ship with the compiler indefinitely
I'm ok with going with that one because it seems like Graaljs is likely to become the thing - the performance is really good
and their ES6 support seems pretty top notch
I can take a look at Graaljs. (You're planning on cutting a release, I assume and update for Graaljs would be needed for that right?)
yeah I believe it should be minor
Node.js & Browser worked because they already have good ES6 support
no problem loading those libs
Is part of what you are doing is getting up to the latest Google Closure library and / or compiler?
the compiler side of things is already done, been done for over a month
but the REPL stuff has made the effort go way longer
@mfikes the other option is that we could just remove Graal too and you could resurrect as lib
I think time has shown that the only two REPLs that really matter are Node.js and the Browser
and it took a long time for Node.js to really be meaningful but it certainly is now
Yeah, that's not a bad idea
ok I think that simplifies maintenance a great deal
Yeah, shed non-critical REPL environments π
Closure Library is also potentially on the verge of churning
I got an email from Steve Hicks where they are weighing
converting everything to ES6 / TypeScript and removing the debug loader
if any or all of those things happen it will definitely generate a lot of work around REPLs
it's not the end of the world
but it means we would probably use their bundler and need to just roll our own code loading
(none the above matters diddly for compilation of course)
@mfikes ah your REPL tests may depend on Nashorn?
perhaps we should just switch that to Node.js
Yeah.. I think some of that stuff is actually driven by Nashorn.
probably not a big deal for CI?
Just dumping all of our energy into a quality Node.js REPL, testing, etc, makes sense
oh
but you're just using shell to test nashorn it seems
looks like trivial to flip the repl-env over
The only reason I may have set it up to use Nashorn is that odd issue with respect to waiting for termination under Node.js
hrm I don't remember what that was about?
I'm searching for its JIRA to be sure...
thanks
will self-hosted remain a supported target?
https://clojure.atlassian.net/projects/CLJS/issues/CLJS-2780
^ Closed, so my memory was fuzzy in the right direction π
self-hosted could conceivably need work with revisions to Closure... hrm
hrm, why do you think so?
It could involve hopefully minor things like https://github.com/clojure/clojurescript/commit/b31a9a9baec5401813e0f994c78a6f1c6db67a3c#diff-b70a89257109f2544a6abd4bdaf2b3c8
(Stuff surrounding how Closure code loading works.)
yeah I think it would only affect the tests
but my sense is that lot of users outside of Google probably depend on the debug loader - so we'll see - they might move it off to a contrib thing or something
Cool... yeah. That kind of stuff is hard to predict without just trying π
welp it's done
only browser and Node.js REPL now and we're on the latest versions
I have a feeling other REPLs may need to be updated like Figwheel not sure about that yet
might be a good time to check that nothing regressed w/ browser REPL / Node REPL - I didn't try a large number of things
I'm probably not understanding. I thought closure targeted es3? Doesn't es6 compile too es3 via gcc? Or not in development?
the repl doesnβt use gcc iirc
Oh, so it's specifically a section of cljs that is sent raw in some way? Okay, interesting. Thanks!
historically we never compiled JS for the REPL, only CLJS
Oh. I understand now. So it's the closure library that has es6, and it's all gcc compatible es6. But we don't happen to run that through gcc. Got it.
right that may change in the future, they do have a bundler thing we could use
I suspect there's a lot of folks using ES6 or TypeScript where that approach is already the norm
which why they are considering the changes
@mfikes reviewing the cli test, it seems we already test node - so I'm just going through and removing the remaining references
Nice
to graal/rhino/nashorn
@mfikes k pushed that, what's CI look like?
@dnolen https://github.com/mfikes/clojurescript/commits/master
ok cool
Figwheel seems fine w/ these changes