cljs-dev 2020-03-20

@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

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...

will self-hosted remain a supported target?

^ 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?

(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

πŸ‘ 1

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

to graal/rhino/nashorn

@mfikes k pushed that, what's CI look like?

Figwheel seems fine w/ these changes