Chromium Code Reviews
DescriptionIDL 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 #
Messages
Total messages: 10 (0 generated)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||