On 08/31/2017 12:49 AM, Jakob Kummerow wrote:
Hi everyone,

the "Jumbo" build (multiple .cc files per compilation unit, saving lots of
compile time) is running into the issue of name clashing between
v8::internal::Register and v8::internal::interpreter::Register. We have a
few options:

(1) Rename internal::Register to AsmRegister.
Partial CL: https://chromium-review.googlesource.com/627317
<https://chromium-review.googlesource.com/c/v8/v8/+/627317>
Line count: 2985 with 2 architectures done (I count ~1100 lines per arch)

(2) Rename interpreter::Register to (e.g.) InterpreterRegister. (Exact name
TBD.)
Demo CL: https://chromium-review.googlesource.com/644182
Line count: 768

(3) Make every use of "Register" explicitly use "internal::Register" or
"interpreter::Register".

(4) Ignore the issue and have either no Jumbo builds, or only limited Jumbo
builds, or random Jumbo build failures triggered by unrelated changes
(which happen to change the compilation unit chunks).

Personally, I'm inclined to favor option (2), because it's a smaller diff
than (1), and both of those are more readable than (3). Possible names:
InterpreterRegister, IgnitionRegister, IgnRegister, IRegister,
BytecodeRegister, BcRegister, <your suggestion here>

Other opinions?

Cheers,
Jakob

Another possibility: (5) Split large targets like v8_base into multiple smaller targets along lines designed to avoid symbol clashes. I have not yet had time to explore this enough to say if it would be sufficient or not. Maybe we should do this regardless of jumbo?

Note that there are other symbol clashes to consider, based on some of the try jobs that I ran on the partial CL in (1), for example I see three distinct StackFrame classes in the tree. It would be good to agree on a general policy for resolving this type of problem.

I dislike the idea of option (3): if you always prefix a symbol with its namespace then you might as well just rename the symbol to avoid the clash and avoid the possibility that people will forget the namespace.


-Mostyn.
--
Mostyn Bramley-Moore
Opera TV
[email protected]

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to