Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Issue 124913002: IDL compiler: Pickle interface information (Closed)

Created:
6 years, 11 months ago by Nils Barth (inactive)
Modified:
6 years, 11 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, kouhei (in TOK)
Visibility:
Public.

Description

IDL compiler: Pickle interface information This CL writes IDL interface dependency information to a pickle file (Python serialization), Interfaces.pickle. This is for speed and simplicity of handling dependencies between interfaces and global interface information. 1. Serializing/Deserializing a pickle is v. fast (done in optimized C);  we don't need to manually parse a custom text file format  (also simplifies the code b/c don't need custom read/write functions). 2. For implementing IDL compiler features that depend on inspecting other  interfaces, storing global information in this pickle speeds up compilation  b/c we don't need to re-read and re-parse dependency files. For example, to support [ImplementedAs], currently Perl has to parse the IDL file for every interface type that is used, just to check if it has an [ImplementedAs]. This is a major cause of slowness in the Perl compiler. Instead, in a followup CL I plan to store this [ImplementedAs] data in Interfaces.pickle, so it's immediately available from reading this one file. This CL just adds the pickle file and does some simplification of the Python; further refactoring will be possible once we remove Perl and can remove the legacy text file, but we can do that later, as part of rewriting dependency resolution. BUG=239771 R=haraken Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=164570

Patch Set 1 #

Total comments: 5

Patch Set 2 : Revised #

Unified diffs Side-by-side diffs Delta from patch set Stats (+44 lines, -55 lines) Patch
M Source/bindings/derived_sources.gyp View 1 2 chunks +3 lines, -0 lines 0 comments Download
M Source/bindings/scripts/compute_dependencies.py View 1 6 chunks +27 lines, -4 lines 0 comments Download
M Source/bindings/scripts/unstable/idl_compiler.py View 1 2 chunks +2 lines, -2 lines 0 comments Download
M Source/bindings/scripts/unstable/idl_reader.py View 1 1 chunk +3 lines, -3 lines 0 comments Download
M Source/bindings/scripts/unstable/interface_dependency_resolver.py View 1 4 chunks +6 lines, -44 lines 0 comments Download
M Tools/Scripts/webkitpy/bindings/main.py View 1 3 chunks +3 lines, -2 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
Nils Barth (inactive)
Here's a preliminary "inter-IDL features" CL; using a pickle for global information, we can easily ...
6 years, 11 months ago (2014-01-06 06:02:10 UTC) #1
haraken
I'm a bit afraid that adding the intermediate file (Interfaces.pickle) might make it harder to ...
6 years, 11 months ago (2014-01-06 06:16:49 UTC) #2
Nils Barth (inactive)
On 2014/01/06 06:16:49, haraken wrote: > I'm a bit afraid that adding the intermediate file ...
6 years, 11 months ago (2014-01-06 06:38:46 UTC) #3
haraken
On 2014/01/06 06:38:46, Nils Barth wrote: > On 2014/01/06 06:16:49, haraken wrote: > > I'm ...
6 years, 11 months ago (2014-01-06 08:15:29 UTC) #4
Nils Barth (inactive)
On 2014/01/06 08:15:29, haraken wrote: > Help me understand: n/p! > Q1: Are you going ...
6 years, 11 months ago (2014-01-06 10:21:35 UTC) #5
haraken
> > Q1: Are you going to rely on write_file_only_if_changed? > > Yes. > This ...
6 years, 11 months ago (2014-01-06 13:26:48 UTC) #6
Nils Barth (inactive)
On 2014/01/06 13:26:48, haraken wrote: > The proposal in my speed-up document was avoiding full ...
6 years, 11 months ago (2014-01-07 02:31:34 UTC) #7
Nils Barth (inactive)
(Naming replies.) https://codereview.chromium.org/124913002/diff/1/Source/bindings/derived_sources.gyp File Source/bindings/derived_sources.gyp (right): https://codereview.chromium.org/124913002/diff/1/Source/bindings/derived_sources.gyp#newcode165 Source/bindings/derived_sources.gyp:165: '<(SHARED_INTERMEDIATE_DIR)/blink/Interfaces.pickle', On 2014/01/06 13:26:48, haraken wrote: > ...
6 years, 11 months ago (2014-01-07 02:41:03 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/nbarth@chromium.org/124913002/110001
6 years, 11 months ago (2014-01-07 09:58:05 UTC) #9
commit-bot: I haz the power
6 years, 11 months ago (2014-01-07 12:47:51 UTC) #10
Message was sent while issue was closed.
Change committed as 164570

Powered by Google App Engine
This is Rietveld 408576698