07:15 | <rkirsling> | umm I think however test262 report is running JSC needs to be updated, lol |
07:15 | <rkirsling> | https://test262.report/?date=2020-04-07 |
07:15 | <rkirsling> | I assure you our overall conformance did not drop to 45% lol |
07:20 | <rkirsling> | (that V8 jumped from 89% to 96% in one day also seems quite dubious...the test count didn't even change on that day) |
07:27 | <rkirsling> | (hmm, I mean it is possible that a bunch work to perfect the implementation of classes was landed all at once, I guess? but if so, damn, I tip my hat) |
07:29 | <rkirsling> | anyway the JSC situation is almost certainly due to our ICU upgrade but I have no idea what test262 infra is doing wrong there |
14:19 | <devsnek> | https://test262.report/browse/language/module-code/namespace/internals/set.js |
14:19 | <devsnek> | everything is failing this test |
14:20 | <devsnek> | probably because it expects the assignments to throw |
14:25 | <devsnek> | oh wait its a module the assignments would throw |
14:27 | <devsnek> | weird it passes locally |
14:38 | <devsnek> | doesn't pass when using test262-harness https://gc.gy/54234503.png |
14:42 | <devsnek> | hah https://github.com/tc39/test262/pull/2574/files |
15:50 | <gsathya> | rkirsling, v8 shipped private methods/accessors last week |
16:14 | <devsnek> | rkirsling: all the strict tests are failing, must have something to do with how they're being concatenated or something |
16:52 | <rkirsling> | gsathya: oho |
17:55 | <shu> | really, private methods and accessors is 7% of all test262? |
17:57 | <devsnek> | it's the main reason i'm in the 80s instead of the 90s in test262.report |
17:58 | <Bakkot> | my guess is that a lot of those tests are generated, so there's more of them. test generation is relatively new to test262 so the generated tests tend to correspond to new features, which means new features have more tests. |
17:58 | <Bakkot> | but that's just a guess. |
17:58 | <rkirsling> | probably true |
17:59 | <rkirsling> | it is a pervasive feature |
17:59 | <rkirsling> | and yet 7% is such an enormous figure here |
17:59 | <rkirsling> | I remain floored |
22:28 | <leobalter> | shu wrt test262 on private methods and accessors: too much for syntax variation and too many details to cover |
22:30 | <leobalter> | also, one thing that is distributed in many Test262 parts: destructuring assignment |
22:30 | <leobalter> | and binding |
22:30 | <leobalter> | you'll get a lot of that in any function form. |
22:31 | <rkirsling> | leobalter: you saw about the test262.report infra choking on JSC though? |
22:32 | <rkirsling> | not sure what ICU assumptions are being made but it must be related |
22:33 | <devsnek> | all the strict tests are failing |
22:33 | <leobalter> | rkirsling I have no more access to the test262.report repo |
22:33 | <rkirsling> | oh ack |
22:33 | <rkirsling> | I guess rwaldron then |
22:33 | <leobalter> | and I can't even say what's going on with the JSC tests. There are CI reports for each one |
22:34 | <leobalter> | yes, and I'm not sure if IRC would be the best way to reach out to Rick. |
22:34 | <leobalter> | I'd recommend the https://github.com/bocoup/test262-report-issue-tracker |
22:34 | <rkirsling> | can do |
22:34 | <devsnek> | it would be cool if the error messages were made public |
22:35 | <devsnek> | rkirsling: https://github.com/tc39/test262/pull/2574#issuecomment-612248008 |
22:35 | <rkirsling> | ohh wow |
22:35 | <rkirsling> | it wasn't ICU after all |
22:39 | <rkirsling> | so it's a bug in https://github.com/bterlson/test262-harness then? |
22:42 | <leobalter> | rkirsling it might be? let me update everything here |
22:44 | <leobalter> | wow, everything is wrong in my env, lol. |
22:44 | <leobalter> | 404 on installing JSC |
22:46 | <rkirsling> | :oh_no: |
22:47 | <leobalter> | ok, I had a wrong version of jsvu and my PATH was messed up linking to it rather than the new version |
22:47 | <devsnek> | 404 webkit not found |
22:52 | <leobalter> | rkirsling confirmed, it's test262-harness |
22:52 | <leobalter> | probably eshost, but they are in the same family |
22:53 | <ljharb> | i looked at the test262-harness code, the error message implies it's something about a string receiver being turned into an object in sloppy mode, but the code path doesn't seem related at all |
22:53 | <leobalter> | "Expected no error, got TypeError: Attempted to assign to readonly property" |
22:53 | <ljharb> | node's `path.relative` is throwing saying it needs a string, but `argv._` should only ever contain strings |
22:54 | <ljharb> | (referring to the stack trace in the github comment linked earlier) |
22:54 | <leobalter> | it seems like the previous option for JSC's strict mode is now for some sort of Frozen Realms? |
22:55 | <ljharb> | what is "jsc's strict mode" and why would test262 be invoking it? |
22:55 | <ljharb> | eg node's strict mode, via v8, breaks tons of things and shouldn't ever be used |
22:55 | <ljharb> | (it's not "use strict", it's something wonky) |
22:56 | <devsnek> | it's use strict but literally everywhere |
22:56 | <devsnek> | i think there was some talk of removing it |
22:56 | <rkirsling> | the patch was just enforcing strict mode in all classes: https://bugs.webkit.org/show_bug.cgi?id=205578 |
22:56 | <ljharb> | right but that breaks things |
22:56 | <ljharb> | sloppy code must be sloppy |
22:57 | <devsnek> | class bodies are always strictg |
22:57 | <devsnek> | strict |
22:57 | <ljharb> | true |
22:57 | <rkirsling> | it is not meant to be breaking anything |
22:58 | <rkirsling> | in particular, it did not cause any test262 failures |
22:58 | <leobalter> | ljharb on what's strict mode: most of engines have a strict mode by default from the cli as an argument |
22:59 | <ljharb> | leobalter: sure, but why on earth would we want to use a mode that breaks javascript, which is sloppy by default? |
22:59 | <ljharb> | like what's the value |
22:59 | <devsnek> | if your intention is to put use strict at the top of every script you run |
22:59 | <devsnek> | might as well save some labor and use a flag |
22:59 | <leobalter> | sloppy by default != sloppy by req |
22:59 | <ljharb> | lots of people tried to use it with node because they thought it'd be good to have everything be in `'use strict'` mode by default, but a) that's not actually what it does, and b) third party code relies on being in sloppy mode at time |
23:00 | <ljharb> | *times |
23:00 | <devsnek> | i don't like those flags |
23:00 | <ljharb> | it'd be reasonable if it meant "do what the strict pragma does by default" but that's not what v8's flag does. |
23:00 | <devsnek> | what's it do |
23:00 | <ljharb> | so i assume that's not what the strict flag does on other runtimes too |
23:00 | <ljharb> | it's been years, i'd have to check. it had subtly different semantics in various places |
23:00 | <leobalter> | ljharb back in 2015 (or close) we found syntax tests that were just passing but then we found many valid and useful errors for duplicating test execution both on sloppy and strict mode |
23:01 | <leobalter> | IIRC |
23:01 | <devsnek> | so then the test would be run again with a strict flag, though nowadays the better way to do that is to concat the struct pragma to the test source |
23:01 | <leobalter> | test262 tests everything in both modes unless it's explicitly said otherwise in the metadata |
23:01 | <ljharb> | right, what devsnek said. run the test once normally and once with "use strict" prepended |
23:02 | <leobalter> | devsnek if we do that, we duplicate literally all the tests |
23:02 | <ljharb> | you can do it on the fly |
23:02 | <devsnek> | test262-stream does it on the fly |
23:02 | <leobalter> | wait |
23:02 | <devsnek> | i think all implementer's test runners do it on the fly |
23:02 | <devsnek> | or most |
23:02 | <leobalter> | I'm confused. Test262-harness uses test262-stream, so it uses the pragma on the fly |
23:02 | <ljharb> | (tbh there's no point in keeping generated tests committed/on disk, if the test generation is fast enough) |
23:03 | <ljharb> | leobalter: ok then it wouldn't be using jsc's strict mode |
23:03 | <devsnek> | yes it does |
23:03 | <leobalter> | I worked more on other test262 runners than test262-harness (and family) |
23:03 | <leobalter> | so I'm confused rn on what each one does |
23:03 | <leobalter> | lol, I believe that WebKit's runner uses the cli |
23:04 | <leobalter> | I'm trying to remember. so if test262-stream is already doing it the correct way, I wonder what JSC is actually doing |
23:04 | <leobalter> | let me get a streamed file from test262 and run it with JSC directly |
23:07 | <devsnek> | oh wow i just found a major slow area in my test262 runner |
23:08 | <devsnek> | doubled me test speed with this one easy trick (CPUs hate me) |
23:08 | <devsnek> | https://gc.gy/54265119.png |
23:10 | <leobalter> | that's pretty neat, devsnek! are you reporting that in an issue? |
23:10 | <leobalter> | like, I can use it |
23:10 | <leobalter> | oh wait |
23:10 | <devsnek> | oh that's my personal runner |
23:10 | <leobalter> | that's your runner, right? |
23:10 | <leobalter> | oh |
23:10 | <devsnek> | not test262-harness |
23:10 | <leobalter> | I'd love to do some performance work on test262-harness |
23:10 | <rkirsling> | did I just see a use case for logical assignment? :) |
23:10 | <devsnek> | yes |
23:10 | <leobalter> | I also wonder if I'll ever write a new runner for test262, lol |
23:11 | <devsnek> | i was thinking of going and rewriting all the agents in eshost at some point |
23:11 | <devsnek> | rkirsling: when i can do logical assignment in node i'll use it :P |
23:12 | <rkirsling> | hehehe |
23:12 | <rkirsling> | wao, `BigInt()` throws instead of defaulting to 0n, eh |
23:12 | <rkirsling> | (not that I'd ever do that I'm just writing tests) |
23:13 | <leobalter> | devsnek: `realm.evaluateScript(includeCache[include] || fs.readFileSync(p, 'utf8'), { specifier: p });` |
23:13 | <devsnek> | leobalter: that doesn't fill the cache though |
23:13 | <leobalter> | oh I see |
23:14 | <leobalter> | It was my next question if you actually used that cache. This seems to save a big chunk of time due to io |
23:14 | <devsnek> | i run multiple tests inside the same process |
23:15 | <devsnek> | so yeah only loading the file once is good |
23:15 | <devsnek> | also gotta appreciate this https://gc.gy/54265476.png |
23:16 | <leobalter> | well, my child skipped his nap time and now my planned time for open source today is over. |
23:23 | <devsnek> | oh boy anonymous names were merged i can unskip so many tests |