graaljs
graaljs copied to clipboard
Reporting on https://test262.report/
It's very exciting to see how graaljs
is coming along, and I'd love to help in any way possible with more awareness and adoption.
Has it been discussed to add the test262 results to https://test262.report along with the other engines? That would contribute to the visibility to the graaljs
project, and help developers both architect and debug solutions!
Thoughts?
Hi @jfparadis,
yes, I've talked to Leo Balter already. We currently have an engineer preparing everything for this. Should not be too hard, main engineering effort might be to provide an smaller engine (currently, Graal.js only ships inside GraalVM, which might be to heavy to ship for jsvu
).
Best, Christian
Excellent. Sounds like jsvu
is the right integration point. Let me know if you need contributors/testers/reviewers/etc.
I'm working on adding support to esvu and eshost. However, it won't be enabled by default because of the enormous download size.
Does the release of graaljs expose any of the apis listed here in https://github.com/tc39/test262/blob/master/INTERPRETING.md#host-defined-functions? It will help with supporting it in eshost.
https://github.com/devsnek/esvu/commit/e66171ef17183f14adb749a0f8df04433497ce29 https://github.com/bterlson/eshost/pull/96
Hi @devsnek
thanks for working on this. We also have a student (Serhii) on this job right now. How much further to you plan to go? Can we somehow split the work between you and our student to avoid duplicate work?
Our goal with this effort is to run Test262-harness in order to appear on Test262.report - should we concentrate on those tools? For eshost
, Serhii will get in touch with you (next week, latest) with his version of the harness, where he should have an answer for the question you raised above.
Regarding Download size of JSVU: with some limited effort, we could provide a JS-standalone SVM image. Our sibling project TruffleRuby is providing that already (https://github.com/oracle/truffleruby/releases), their download size is ~53 MB (Graal.js would be in the same ballpark, a bit smaller likely).
Thanks, Christian
Hi @devsnek ,
most of the functions you asked for are exposed when you start with an additional flag:
$ js --experimental-options --js.test262-mode=true
> $262.createRealm
function createRealm() { [native code] }
>
We might improve that a bit in the future.
-- Christian
Having a smaller download would be fantastic. I will avoid working on this more so your student can do what they need to do.
Hi @devsnek
I'm the student that Christian mentioned before, I've been working on adding GraalJS to eshost
too.
As Christian wrote previously, GraalJS provides the $262
object with these methods (createRealm/evalScript/agent
) behind the flags. So I assume that there's no need to create the $262
object one more time in runtimes/graaljs.js
file, but somehow add missing methods. I've played around with this, but got stuck with one error. Can we continue the conversation somewhere in private messages, e.g. there: https://www.graalvm.org/slack-invitation/ ?