cljs-dev

ClojureScript compiler & std lib dev, https://clojurescript.org/community/dev
dnolen 2020-03-20T00:25:01.025300Z

@mfikes I'm weighing just nixing the Rhino REPL as well as Nashorn in the next release

dnolen 2020-03-20T00:25:40.026200Z

the issue is that Closure Library has started including more and more ES6 based versions of Closure Library namespaces

dnolen 2020-03-20T00:26:00.026700Z

(the issue with Rhino specifically)

mfikes 2020-03-20T00:26:05.027Z

Both of those engines are on the way out anyway

dnolen 2020-03-20T00:26:37.027500Z

and getting Rhino to work is turning out to be a huge pain, and yes Nashorn is on the way out

mfikes 2020-03-20T00:27:01.028500Z

I wonder if we use Nashorn itself anywhere in the testing suite (hopefully only to actually just test it, not to run any tests)

dnolen 2020-03-20T00:27:20.028700Z

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

dnolen 2020-03-20T00:27:48.029300Z

if folks really want Rhino or Nashorn support they can recreate these easily as libraries

dnolen 2020-03-20T00:28:22.030100Z

@mfikes I'm not sure what you want to do about Graaljs - I believe it needs to be updated

mfikes 2020-03-20T00:28:29.030500Z

That's a good point... no need for them to ship with the compiler indefinitely

dnolen 2020-03-20T00:28:51.030900Z

I'm ok with going with that one because it seems like Graaljs is likely to become the thing - the performance is really good

dnolen 2020-03-20T00:29:05.031200Z

and their ES6 support seems pretty top notch

mfikes 2020-03-20T00:29:45.032Z

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

dnolen 2020-03-20T00:30:07.032300Z

yeah I believe it should be minor

dnolen 2020-03-20T00:30:17.032800Z

Node.js & Browser worked because they already have good ES6 support

dnolen 2020-03-20T00:30:22.033100Z

no problem loading those libs

mfikes 2020-03-20T00:30:37.033400Z

Is part of what you are doing is getting up to the latest Google Closure library and / or compiler?

dnolen 2020-03-20T00:30:56.033900Z

the compiler side of things is already done, been done for over a month

dnolen 2020-03-20T00:31:05.034200Z

but the REPL stuff has made the effort go way longer

dnolen 2020-03-20T00:34:24.034700Z

@mfikes the other option is that we could just remove Graal too and you could resurrect as lib

dnolen 2020-03-20T00:34:41.035200Z

I think time has shown that the only two REPLs that really matter are Node.js and the Browser

dnolen 2020-03-20T00:34:57.035800Z

and it took a long time for Node.js to really be meaningful but it certainly is now

mfikes 2020-03-20T00:34:58.035900Z

Yeah, that's not a bad idea

dnolen 2020-03-20T00:35:24.036200Z

ok I think that simplifies maintenance a great deal

mfikes 2020-03-20T00:35:41.036600Z

Yeah, shed non-critical REPL environments πŸ™‚

dnolen 2020-03-20T00:35:59.037Z

Closure Library is also potentially on the verge of churning

dnolen 2020-03-20T00:36:09.037300Z

I got an email from Steve Hicks where they are weighing

dnolen 2020-03-20T00:36:21.037600Z

converting everything to ES6 / TypeScript and removing the debug loader

dnolen 2020-03-20T00:36:34.038100Z

if any or all of those things happen it will definitely generate a lot of work around REPLs

dnolen 2020-03-20T00:36:55.038600Z

it's not the end of the world

dnolen 2020-03-20T00:37:21.039100Z

but it means we would probably use their bundler and need to just roll our own code loading

dnolen 2020-03-20T00:37:47.039400Z

(none the above matters diddly for compilation of course)

dnolen 2020-03-20T00:38:53.039800Z

@mfikes ah your REPL tests may depend on Nashorn?

dnolen 2020-03-20T00:39:06.040400Z

perhaps we should just switch that to Node.js

mfikes 2020-03-20T00:39:12.040700Z

Yeah.. I think some of that stuff is actually driven by Nashorn.

dnolen 2020-03-20T00:39:14.040900Z

probably not a big deal for CI?

mfikes 2020-03-20T00:40:26.042300Z

Just dumping all of our energy into a quality Node.js REPL, testing, etc, makes sense

dnolen 2020-03-20T00:42:31.042500Z

oh

dnolen 2020-03-20T00:42:40.042900Z

but you're just using shell to test nashorn it seems

dnolen 2020-03-20T00:42:47.043200Z

looks like trivial to flip the repl-env over

mfikes 2020-03-20T00:44:17.043900Z

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

dnolen 2020-03-20T00:44:52.044200Z

hrm I don't remember what that was about?

mfikes 2020-03-20T00:45:07.044700Z

I'm searching for its JIRA to be sure...

dnolen 2020-03-20T00:45:17.044900Z

thanks

dpsutton 2020-03-20T00:46:01.045200Z

will self-hosted remain a supported target?

mfikes 2020-03-20T00:46:27.045800Z

^ Closed, so my memory was fuzzy in the right direction πŸ˜‰

mfikes 2020-03-20T00:47:22.046300Z

self-hosted could conceivably need work with revisions to Closure... hrm

dnolen 2020-03-20T00:48:22.046500Z

hrm, why do you think so?

mfikes 2020-03-20T00:55:37.047500Z

(Stuff surrounding how Closure code loading works.)

dnolen 2020-03-20T00:58:05.048Z

yeah I think it would only affect the tests

dnolen 2020-03-20T00:58:43.048800Z

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

mfikes 2020-03-20T00:58:53.049Z

Cool... yeah. That kind of stuff is hard to predict without just trying πŸ™‚

dnolen 2020-03-20T01:04:52.049500Z

welp it's done

dnolen 2020-03-20T01:05:08.049900Z

only browser and Node.js REPL now and we're on the latest versions

dnolen 2020-03-20T01:05:25.050400Z

I have a feeling other REPLs may need to be updated like Figwheel not sure about that yet

dnolen 2020-03-20T01:07:54.051Z

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
dominicm 2020-03-20T07:38:49.052600Z

I'm probably not understanding. I thought closure targeted es3? Doesn't es6 compile too es3 via gcc? Or not in development?

lilactown 2020-03-20T09:25:15.053300Z

the repl doesn’t use gcc iirc

dominicm 2020-03-20T12:02:59.054100Z

Oh, so it's specifically a section of cljs that is sent raw in some way? Okay, interesting. Thanks!

dnolen 2020-03-20T12:39:50.054700Z

historically we never compiled JS for the REPL, only CLJS

dominicm 2020-03-20T12:54:02.055800Z

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.

dnolen 2020-03-20T17:17:36.057100Z

right that may change in the future, they do have a bundler thing we could use

dnolen 2020-03-20T17:17:59.057900Z

I suspect there's a lot of folks using ES6 or TypeScript where that approach is already the norm

dnolen 2020-03-20T17:18:06.058200Z

which why they are considering the changes

dnolen 2020-03-20T17:35:24.059Z

@mfikes reviewing the cli test, it seems we already test node - so I'm just going through and removing the remaining references

mfikes 2020-03-20T17:35:34.059300Z

Nice

dnolen 2020-03-20T17:35:34.059400Z

to graal/rhino/nashorn

dnolen 2020-03-20T17:56:48.059800Z

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

dnolen 2020-03-20T17:58:02.060200Z

ok cool

dnolen 2020-03-20T18:08:46.060400Z

Figwheel seems fine w/ these changes