|
|
Chromium Code Reviews|
Created:
6 years, 10 months ago by Nils Barth (inactive) Modified:
6 years, 10 months ago Reviewers:
haraken CC:
blink-reviews, kojih, arv+blink, jsbell+bindings_chromium.org, sof, abarth-chromium, marja+watch_chromium.org, adamk+blink_chromium.org, Nate Chapin, Inactive Base URL:
svn://svn.chromium.org/blink/trunk Visibility:
Public. |
DescriptionRename compute_dependencies.py => compute_interfaces_info.py
This CL:
renames compute_dependencies to compute_interfaces_info,
as it does a lot more than just compute dependencies now
Split from:
Split generate_global_constructors.py out of compute_dependencies.py
https://codereview.chromium.org/173803006/
BUG=341748
R=haraken
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167716
Patch Set 1 #
Messages
Total messages: 36 (0 generated)
#1
LGTM
Or "compute_interface_dependency"? It's not clear what "interfaces_info" means.
On 2014/02/21 12:36:09, haraken wrote:
> Or "compute_interface_dependency"? It's not clear what "interfaces_info"
means.
It's a lot more than just dependency information, but it's all stable
information
(paths, public info, dependencies, inheritance, etc.);
here's the draft of the comment:
"""Compute global interface information, including public information,
dependencies, and inheritance.
Computed data is stored in a global variable, |interfaces_info|, and written as
output (concretely, exported as a pickle). This is then used by the IDL compiler
itself, so it does not need to compute global information itself, and so that
inter-IDL dependencies are clear, since they are all computed here.
The |interfaces_info| pickle is a *global* dependency: any changes cause a full
rebuild. This is to avoid having to compute which public data is visible by
which IDL files on a file-by-file basis, which is very complex for little
benefit.
|interfaces_info| should thus only contain data about an interface that
contains paths or is needed by *other* interfaces, e.g., path data (to abstract
the compiler from OS-specific file paths) or public data (to avoid having to
read other interfaces unnecessarily).
It should *not* contain full information about an interface (e.g., all
extended attributes), as this would cause unnecessary rebuilds.
|interfaces_info| is a dict, keyed by |interface_name|.
Current keys are:
* dependencies:
'implements_interfaces': targets of 'implements' statements
'referenced_interfaces': reference interfaces that are introspected
(currently just targets of [PutForwards])
* inheritance:
'ancestors': all ancestor interfaces
'inherited_extended_attributes': inherited extended attributes
(all controlling memory management)
* public:
'is_callback_interface': bool, callback interface or not
'implemented_as': value of [ImplementedAs=...] on interface (C++ class name)
* paths:
'full_path': path to the IDL file, so can lookup an IDL by interface name
'include_path': path for use in C++ #include directives
'dependencies_full_paths': paths to dependencies (for merging into main)
'dependencies_include_paths': paths for use in C++ #include directives
Note that all of these are stable information, unlikely to change without
moving or deleting files (hence requiring a full rebuild anyway) or significant
code changes (for inherited extended attributes).
FIXME: also generates EventNames.in; factor out. http://crbug.com/341748
FIXME: also generates InterfaceDependencies.txt for Perl.
http://crbug.com/239771
Design doc: http://www.chromium.org/developers/design-documents/idl-build
"""
> > Or "compute_interface_dependency"? It's not clear what "interfaces_info" > means. > > It's a lot more than just dependency information, but it's all stable > information > (paths, public info, dependencies, inheritance, etc.); > here's the draft of the comment: That would depend on what "dependency" means. As you're saying in the comment, "The |interfaces_info| pickle is a *global* dependency". Sorry about nit-picking. I'm OK with compute_interfaces_info if you like it.
On 2014/02/21 12:52:09, haraken wrote: > Sorry about nit-picking. I'm OK with compute_interfaces_info if you like it. No problem - it's good to be precise. I think "interfaces_info" is reasonably clear w/o being misleading (as elaborated in the comment). To answer your question below: > That would depend on what "dependency" means. As you're saying in the comment, > "The |interfaces_info| pickle is a *global* dependency". The *contents* of |interfaces_info| includes paths, dependencies, etc.; it's a general term b/c it's "information about interfaces needed by the CG". The pickle file itself is a global dependency, but so are Python CG scripts. (So it *computes* a lot more than just dependencies, hence why I'm not using that term.)
On 2014/02/21 12:59:59, Nils Barth wrote: > On 2014/02/21 12:52:09, haraken wrote: > > Sorry about nit-picking. I'm OK with compute_interfaces_info if you like it. > > No problem - it's good to be precise. > I think "interfaces_info" is reasonably clear w/o being misleading > (as elaborated in the comment). > To answer your question below: > > > > That would depend on what "dependency" means. As you're saying in the comment, > > "The |interfaces_info| pickle is a *global* dependency". > > The *contents* of |interfaces_info| includes paths, dependencies, etc.; > it's a general term b/c it's "information about interfaces needed by the CG". > > The pickle file itself is a global dependency, but so are Python CG scripts. > (So it *computes* a lot more than just dependencies, hence why I'm not using > that term.) Makes sense. Now I'm convinced that "interfaces_info" is more proper :)
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
On 2014/02/21 13:02:25, haraken wrote: > Makes sense. Now I'm convinced that "interfaces_info" is more proper :) No problem - thanks for making me clarify!
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
The CQ bit was unchecked by commit-bot@chromium.org
Retried try job too often on win_blink_rel for step(s) webkit_lint, webkit_python_tests, webkit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_blink_...
The CQ bit was checked by nbarth@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/171373006/1
Message was sent while issue was closed.
Change committed as 167716 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
