Open leobalter opened 7 years ago
so, I started out using node to run these, which requires shelling out to flow for each one. child_process.exec
has shell overhead, so I also tried spawn
. it took something like 11 minutes. using spawn
via cluster on 32 CPUs (!!!) still took around a minute. doing it serially in a single process in parse_test262.ml takes like 15 seconds.
I would love to reuse test262-stream, especially for more complicated test workflows. for example, we want to print the AST and actually run the tests (vs just parsing them), and I think it'd be great for that since that necessarily involves node as well.
so in theory I agree, but I'd be curious/concerned about perf. on the other hand, perf's not a dealbreaker, especially if filtering makes it possible to only run the relevant tests when trying to fix something.
Nice! This gives some good thinking to proceed.
I can tell you I performance is not really something I can achieve with the test262-stream as you do in 15 seconds - that's impressive, btw.
I would love to reuse test262-stream, especially for more complicated test workflows. for example, we want to print the AST and actually run the tests (vs just parsing them), and I think it'd be great for that since that necessarily involves node as well.
I want to give it a try. I'll keep you posted.
Hi!
Right now there is a work in progress for Prepack to roll a better integration of Test262 test files and a configurable filters list. You can find this work here: https://github.com/facebook/prepack/pull/1122
Due to the current nature of Flow parsing Test262 tests, I wonder if a similar node-based tooling script would be interesting to add, as the current scripts in this project already iterate through all the files and verify that each test can be parsed by Flow.
This work can be done by using https://github.com/bocoup/test262-stream or https://github.com/bocoup/test262-integrator (to apply any necessary filters).
@mroch, we've been in contact for the last couple months. I'm willing to do the work, but not until I have your feedback and explicit "go ahead".