- Sep 09, 2021
-
-
Nico Grunbaum authored
Differential Revision: https://phabricator.services.mozilla.com/D124988
-
Byron Campen authored
Also add a thread assertion. Differential Revision: https://phabricator.services.mozilla.com/D124993
-
Tim Giles authored
Differential Revision: https://phabricator.services.mozilla.com/D124948
-
Julian Seward authored
This is an `#ifdef DEBUG` only patch and has no space or time effect on non-debug builds. It makes it easier to figure out which part of the SM suite of code generators, stub generators, etc, created each instruction shown in the `IONFLAGS=codegen` output. In the base class of all assemblers, `js::jit::AssemblerShared`, there is a new field `Vector<const char*> creators_`. This is a small stack of arbitrary strings. Every time a string is pushed onto or popped off the stack, the stack is printed in the `IONFLAGS=codegen` output. Crucially, it is debug-asserted that the stack is non-empty at emission of (almost) every instruction. Hence each instruction in the log output is bracketed within at least one level of text-label. By suitable choice of the labels, it is possible to find which part of SM created an instruction with little difficulty. Pushing and popping the stack directly is strongly discouraged. Instead, an RAII `class AutoCreatedBy` is provided to manage the stack. Adding C++-scope-level annotations is then simply a matter of adding lines of the form `AutoCreatedBy acb(masm, "my tag text");`. The stacks resulting from the current annotation set have at most three entries, for example: BaselineInterpreterGenerator::generate/interpreter loop/op=Uint24 The patch looks large but is really very simple. There are the following logical components, unfortunately interleaved in the patch: * A large set of `AutoCreatedBy` annotations. This gives complete coverage for code generation on x86, x64, arm, arm64 and mips64, as far as I can tell. This is the vast majority of the patch. * In `class AssemblerShared` (Assembler-shared.h), new field `creators_` and methods `{push,pop,has}Creator` to operate on it. * Also in Assembler-shared.h, `class MOZ_RAII AutoCreatedBy`, to manage the stack. * The assertions to ensure that the stack is not empty at emission of any instruction. - for arm64, this is done in `MozBaseAssembler::Emit` (two functions) - for arm, this is done in `Assembler::writeInst` - for mips64, this is done in `AssemblerMIPSShared::writeInst` - for x86 and x64 I failed to find any single place to put such an assertion, that also has convenient access to the required `AssemblerShared` base class. Instead these have a best-effort solution: assertions have been added to around 20 methods in `AssemblerX86Shared`. These cover the most common instructions (loads, stores, reg-reg moves, pushes, pops, returns, immediate data, alignment directives). Although this is not complete coverage, in practice it's good enough because it's almost impossible to create any piece of code without using at least one insn in that group. Almost all of the implementation is guarded `#ifdef DEBUG`. The one exception is constructor `AutoCreatedBy::AutoCreatedBy`. I did not want to uglify dozens of places in SM with guards at all its use points. So instead a dummy release-build version has been provided: inline AutoCreatedBy(AssemblerShared& ash, const char* who) {} on the basis that an optimising compiler will inline it away completely. `AssemblerShared::pushCreator` ignores OOM conditions when pushing on the stack. This is assumed to be OK since this is a debug-build-only activity. Differential Revision: https://phabricator.services.mozilla.com/D123854
-
Tetsuharu Ohzeki authored
Differential Revision: https://phabricator.services.mozilla.com/D125091
-
Yury Delendik authored
Differential Revision: https://phabricator.services.mozilla.com/D124382
-
Yury Delendik authored
Differential Revision: https://phabricator.services.mozilla.com/D124245
-
Molly Howell authored
Bug 1727916 - Convert several customizable toolbar item names to sentence case. r=fluent-reviewers,flod,emalysz This required migrating several strings to Fluent, and the bulk of this patch is those migrations. The rest of the items matched up with an entry in the app menu, so those items were switched over to use the app menu strings, and one had to be copied in order to avoid adding a tooltip to the app menu item. Differential Revision: https://phabricator.services.mozilla.com/D124270
-
Emilio Cobos Álvarez authored
It was downgraded to investigate some windows crashes which ended up being a crossbeam issue. So update it again to get fixes to some crossbeam races. Differential Revision: https://phabricator.services.mozilla.com/D125051
-
Marco Bonardo authored
Bug 1727261 - Timeout Sqlite transaction async functions to properly roll back and interrupt the transaction. r=asuth If the passed-in async function never resolves the transaction could stay alive forever, this timeouts after TRANSACTIONS_QUEUE_TIMEOUT_MS (5 minutes as of now) and roll backs the transaction. A telemetry keyed scalar is added to track callers causing these timeouts and optimize them in the future. Differential Revision: https://phabricator.services.mozilla.com/D124187
-
Marco Bonardo authored
Differential Revision: https://phabricator.services.mozilla.com/D124186
-
Marco Bonardo authored
Add a pref to manage Sqlite.jsm logging, default to reporting Errors. Change some of the logging to more coherently report warnings, errors and debug info. Reuse the same logger for all the objects, just change the prefix. Depends on D124184 Differential Revision: https://phabricator.services.mozilla.com/D124916
-
Marco Bonardo authored
initiatedTransaction seems less confusing about the fact Sqlite.jsm initiated this transaction, rather than something else (that may happen with wrapped connections). Differential Revision: https://phabricator.services.mozilla.com/D124184
-
Ryan Hunt authored
This commit modifies test_interfaces.js to also test the exposed interfaces in the WebAssembly namespace. We have conditional features that we'd like to have confidence that we're not accidentally exposing to web content. Currently there are: * WebAssembly exceptions, enabled only in nightly with a default-off pref * mozIntGemm accelerator function, available only in system or addon principals Depends on D120731 Differential Revision: https://phabricator.services.mozilla.com/D120732
-
Asumu Takikawa authored
The semantics of the try-delegate Wasm exception handling instruction was recently changed in this spec discussion: https://github.com/WebAssembly/exception-handling/issues/176 This patch adjusts compilation and validation to match the new semantics, which allows delegate to target any block. Differential Revision: https://phabricator.services.mozilla.com/D124424
-
Steve Fink authored
Bug 1726619 - Replace MOZ_LOW_PARALLELISM_BUILD with automated heuristic parallelism based on memory usage, and use for hazard builds r=firefox-build-system-reviewers,glandium Differential Revision: https://phabricator.services.mozilla.com/D123147
-
Steve Fink authored
Differential Revision: https://phabricator.services.mozilla.com/D125094
-
Steve Fink authored
Differential Revision: https://phabricator.services.mozilla.com/D125093
-
Steve Fink authored
Differential Revision: https://phabricator.services.mozilla.com/D125092
-
Iain Ireland authored
This was written by taking the text from here and deleting bits: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Running_Automated_JavaScript_Tests (Since I initially wrote this patch, that page was removed.) Notes: `./mach jstests -h` prints a short mach-specific help message, instead of the full output of `jstests.py -h`. We should probably fix that somehow, because requiring `./mach jstests -- -h` is silly. The MDN version says "The jstests test suite also includes some tests from web-platform-tests. By default, these are only run when no tests paths are specified; this can be overridden by the --wpt=enabled flag.", but I wasn't sure if that would still be true after the Great Test Realignment, so I left it out. I've never used `jstestbrowser` before, so I left the content mostly unchanged. Differential Revision: https://phabricator.services.mozilla.com/D113689
-
Agi Sferro authored
This fixes a crash in our test harness, see https://github.com/koush/AndroidAsync/issues/685. Differential Revision: https://phabricator.services.mozilla.com/D124924
-
Agi Sferro authored
Differential Revision: https://phabricator.services.mozilla.com/D124923
-
Tetsuharu Ohzeki authored
Differential Revision: https://phabricator.services.mozilla.com/D125019
-
Tetsuharu Ohzeki authored
Differential Revision: https://phabricator.services.mozilla.com/D125018
-
Tetsuharu Ohzeki authored
Differential Revision: https://phabricator.services.mozilla.com/D125017
-
Jesse Schwartzentruber authored
Differential Revision: https://phabricator.services.mozilla.com/D125067
-
Kris Wright authored
Note that we don't appear to support 32-bit on mac so it'd be redundant to check for it. Differential Revision: https://phabricator.services.mozilla.com/D124919
-
Benjamin Peterson authored
Differential Revision: https://phabricator.services.mozilla.com/D125026
-
Greg Tatum authored
Differential Revision: https://phabricator.services.mozilla.com/D124977
-
Greg Tatum authored
Bug 1715980 - Fix the calendar keyword in Calendar::GetBcp47Type docs; r=platform-i18n-reviewers,dminor DONTBUILD Differential Revision: https://phabricator.services.mozilla.com/D124982
-
Andrew Halberstadt authored
Differential Revision: https://phabricator.services.mozilla.com/D124954
-
Jonathan Kew authored
Bug 1726416 - Update testcase for Arabic subtending marks (from bug 1599841) now that harfbuzz handles the number-directionality issue internally. r=emilio We can no longer use direction overrides to create the test vs reference renderings here, because of how harfbuzz now handles the numeral directionality internally. So it's difficult to come up with a testcase that verifies the exact rendering of the subtending mark + digit(s) combinations. What we can do, though, is verify that a single digit combines with the subtending mark without affecting its overall width; and that a double-digit number *does* increase the width. These two conditions are unlikely to both hold unless the rendering is behaving correctly. (FWIW, Chrome Canary passes these new test versions, as it also uses a recent harfbuzz; Safari currently fails, as Core Text doesn't support the subtending marks in the same way, if at all.) Differential Revision: https://phabricator.services.mozilla.com/D124902
-
Ryan VanderMeulen authored
Differential Revision: https://phabricator.services.mozilla.com/D124822
-
Ryan VanderMeulen authored
Differential Revision: https://phabricator.services.mozilla.com/D122989
-
ffxbld authored
Differential Revision: https://phabricator.services.mozilla.com/D125057
-
Mark Banner authored
Bug 1729519 - Correct amount of places.sqlite-wal read and writes to cover correct amounts after bug 1727783. r=mak Differential Revision: https://phabricator.services.mozilla.com/D125064
-
Andrei Oprea authored
Differential Revision: https://phabricator.services.mozilla.com/D124657
-
Jesse Schwartzentruber authored
Differential Revision: https://phabricator.services.mozilla.com/D124833
-
Edgar Chen authored
Differential Revision: https://phabricator.services.mozilla.com/D124987
-
Cristian Tuns authored
-