Use static hash tables/DAFSAs for static component registration
Categories
(Core :: XPCOM, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: kmag, Assigned: kmag)
References
(Blocks 1 open bug)
Details
(Whiteboard: [overhead:100k])
Attachments
(14 files)
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Comment 1•6 years ago
|
||
Assignee | ||
Comment 2•6 years ago
|
||
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Assignee | ||
Comment 5•6 years ago
|
||
Assignee | ||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Assignee | ||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
Assignee | ||
Comment 14•6 years ago
|
||
Assignee | ||
Comment 15•6 years ago
|
||
Assignee | ||
Comment 16•6 years ago
|
||
Assignee | ||
Comment 17•6 years ago
|
||
Comment 18•6 years ago
|
||
Assignee | ||
Comment 19•6 years ago
|
||
Assignee | ||
Comment 20•6 years ago
|
||
Comment 21•6 years ago
|
||
Assignee | ||
Comment 22•6 years ago
|
||
Comment 23•6 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #18)
Those .conf files are imho a step in the wrong direction, except if we have
a policy to never accept new components anymore. If anything, that's a step
in the opposite direction bug 938437 went.
I don't think the situation in bug 938437 and here are comparable.
I got to part 8a and realized that the component definitions are full Python files. My initial reaction was "uh, no, we should do something else". But what else are we going to do? We need some kind of build-time configurability for the components we're including, so a static JSON-y file is out. The component definitions contain so much C++-specific stuff that it seems quite odd to put all the information into moz.build files.
I suppose you could have static JSON-y files, with separate files for components that are conditionally included, and then conditionally build up a list of files in moz.build, but then you'd have a bunch of small, single-entry files, which doesn't seem super-helpful. We do have a sort of analogue in category auto-registration, but I'm not sure we want to replicate that model here.
Making the configuration files be Python is probably the most reasonable thing to do.
Assignee | ||
Comment 24•6 years ago
|
||
(In reply to Nathan Froyd [:froydnj] from comment #23)
I got to part 8a and realized that the component definitions are full Python
files. My initial reaction was "uh, no, we should do something else". But
what else are we going to do? We need some kind of build-time configurability
for the components we're including, so a static JSON-y file is out. The
component definitions contain so much C++-specific stuff that it seems quite
odd to put all the information into moz.build files.I suppose you could have static JSON-y files, with separate files for
components that are conditionally included, and then conditionally build up a
list of files in moz.build, but then you'd have a bunch of small, single-entry
files, which doesn't seem super-helpful.
Yeah, I went back and forth on this. I initially wanted to use JSON files, and I
thought about allowing preprocessing for the places where we needed to do things
conditionally, but when I looked at what we needed for existing modules, it
seemed like it would wind up being much messier than just doing it in Python.
And we already had some prior art in Bindings.conf which seemed to work pretty
well.
I did also consider just putting the definitions in moz.build files, and I it
would probably work well enough, but it just didn't really feel right. That's
not the kind of information we usually use moz.build files for, so a separate
manifest file seemed to make more sense.
Assignee | ||
Comment 25•6 years ago
|
||
Assignee | ||
Comment 26•6 years ago
|
||
Assignee | ||
Comment 27•6 years ago
|
||
Comment 28•6 years ago
|
||
Backed out 16 changesets (bug 1478124) for failing android geckoview-junit CLOSED TREE
Backout revision https://hg.mozilla.org/integration/mozilla-inbound/rev/1e042fc7de3d70b627d49ad85d6bc4404f4abcb9
Failure logs: for junit https://treeherder.mozilla.org/logviewer.html#?job_id=224652850&repo=mozilla-inbound
for rc2 https://treeherder.mozilla.org/logviewer.html#?job_id=224656181&repo=mozilla-inbound
kmag: can you please take a look?
Comment 29•6 years ago
|
||
There are also these xpcshell failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&searchStr=windows%2C7%2Cdebug%2Cxpcshell%2Ctests%2Ctest-windows7-32%2Fdebug-xpcshell%2Cx%28x%29&fromchange=3f8e8369238d6b08e63030d114d272dee85a01a2&tochange=1e042fc7de3d70b627d49ad85d6bc4404f4abcb9&selectedJob=224653324
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=224653324&repo=mozilla-inbound&lineNumber=13006
Assignee | ||
Comment 30•6 years ago
|
||
Assignee | ||
Comment 31•6 years ago
|
||
Assignee | ||
Comment 32•6 years ago
|
||
Comment 33•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/9014cbf1d71b
https://hg.mozilla.org/mozilla-central/rev/60843989ea28
https://hg.mozilla.org/mozilla-central/rev/1b419ed6e5cb
https://hg.mozilla.org/mozilla-central/rev/81324e422e17
https://hg.mozilla.org/mozilla-central/rev/29a6f9f0ba6d
https://hg.mozilla.org/mozilla-central/rev/302ccff16b7b
https://hg.mozilla.org/mozilla-central/rev/e61622f48515
https://hg.mozilla.org/mozilla-central/rev/a7e8dd650fee
https://hg.mozilla.org/mozilla-central/rev/6a412d8f24db
https://hg.mozilla.org/mozilla-central/rev/f2f20322a757
https://hg.mozilla.org/mozilla-central/rev/1b7d8d7be13d
https://hg.mozilla.org/mozilla-central/rev/4a36400ab63c
https://hg.mozilla.org/mozilla-central/rev/c4df3fabb4e6
https://hg.mozilla.org/mozilla-central/rev/066365f5d742
https://hg.mozilla.org/mozilla-central/rev/fb4c67509196
https://hg.mozilla.org/mozilla-central/rev/7ea334118c82
Updated•5 years ago
|
Description
•