|
|
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 |