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

Side by Side Diff: Source/bindings/generated_bindings.gyp

Issue 183013013: Pre-cache PLY lex table and use optimized mode (5% build time improvement) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix import path handling Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # 1 #
2 # Copyright (C) 2013 Google Inc. All rights reserved. 2 # Copyright (C) 2013 Google Inc. All rights reserved.
3 # 3 #
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', 277 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
278 '--event-names-file', 278 '--event-names-file',
279 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in', 279 '<(SHARED_INTERMEDIATE_DIR)/blink/EventInterfaces.in',
280 '<@(write_file_only_if_changed)', 280 '<@(write_file_only_if_changed)',
281 ], 281 ],
282 'message': 'Generating list of Event interfaces', 282 'message': 'Generating list of Event interfaces',
283 }] 283 }]
284 }, 284 },
285 ################################################################################ 285 ################################################################################
286 { 286 {
287 # A separate pre-caching step is *not required* to use parse table caching 287 # A separate pre-caching step is *not required* to use lex/parse table
288 # in PLY, as the cache is concurrency-safe. 288 # caching in PLY, as the caches are concurrency-safe.
289 # However, pre-caching ensures that all compiler processes use the cached 289 # However, pre-caching ensures that all compiler processes use the cached
290 # file (hence maximizing speed), instead of early processes building the 290 # files (hence maximizing speed), instead of early processes building the
291 # table themselves (as it's not yet been written by the time they start). 291 # tables themselves (as they've not yet been written when they start).
292 'target_name': 'cached_yacc_tables', 292 'target_name': 'cached_yacc_tables',
293 'type': 'none', 293 'type': 'none',
294 'actions': [{ 294 'actions': [{
295 'action_name': 'cache_yacc_tables', 295 'action_name': 'cache_yacc_tables',
296 'inputs': [ 296 'inputs': [
297 '<@(idl_lexer_parser_files)', 297 '<@(idl_lexer_parser_files)',
298 ], 298 ],
299 'outputs': [ 299 'outputs': [
300 '<(bindings_output_dir)/lextab.py',
300 '<(bindings_output_dir)/parsetab.pickle', 301 '<(bindings_output_dir)/parsetab.pickle',
301 ], 302 ],
302 'action': [ 303 'action': [
303 'python', 304 'python',
304 'scripts/blink_idl_parser.py', 305 'scripts/blink_idl_parser.py',
305 '<(bindings_output_dir)', 306 '<(bindings_output_dir)',
306 ], 307 ],
307 'message': 'Caching PLY yacc parse tables', 308 'message': 'Caching PLY lex & yacc lex/parse tables',
308 }], 309 }],
309 }, 310 },
310 ################################################################################ 311 ################################################################################
311 { 312 {
312 # A separate pre-caching step is *required* to use bytecode caching in 313 # A separate pre-caching step is *required* to use bytecode caching in
313 # Jinja (which improves speed significantly), as the bytecode cache is 314 # Jinja (which improves speed significantly), as the bytecode cache is
314 # not concurrency-safe on write; details in code_generator_v8.py. 315 # not concurrency-safe on write; details in code_generator_v8.py.
315 'target_name': 'cached_jinja_templates', 316 'target_name': 'cached_jinja_templates',
316 'type': 'none', 317 'type': 'none',
317 'actions': [{ 318 'actions': [{
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 'sources': [ 350 'sources': [
350 '<@(interface_idl_files)', 351 '<@(interface_idl_files)',
351 ], 352 ],
352 'rules': [{ 353 'rules': [{
353 'rule_name': 'binding', 354 'rule_name': 'binding',
354 'extension': 'idl', 355 'extension': 'idl',
355 'msvs_external_rule': 1, 356 'msvs_external_rule': 1,
356 'inputs': [ 357 'inputs': [
357 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab) 358 '<@(idl_lexer_parser_files)', # to be explicit (covered by parsetab)
358 '<@(idl_compiler_files)', 359 '<@(idl_compiler_files)',
360 '<(bindings_output_dir)/lextab.py',
359 '<(bindings_output_dir)/parsetab.pickle', 361 '<(bindings_output_dir)/parsetab.pickle',
360 '<(bindings_output_dir)/cached_jinja_templates.stamp', 362 '<(bindings_output_dir)/cached_jinja_templates.stamp',
361 'IDLExtendedAttributes.txt', 363 'IDLExtendedAttributes.txt',
362 # If the dependency structure or public interface info (e.g., 364 # If the dependency structure or public interface info (e.g.,
363 # [ImplementedAs]) changes, we rebuild all files, since we're not 365 # [ImplementedAs]) changes, we rebuild all files, since we're not
364 # computing dependencies file-by-file in the build. 366 # computing dependencies file-by-file in the build.
365 # This data is generally stable. 367 # This data is generally stable.
366 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle', 368 '<(SHARED_INTERMEDIATE_DIR)/blink/InterfacesInfo.pickle',
367 # Further, if any dependency (partial interface or implemented 369 # Further, if any dependency (partial interface or implemented
368 # interface) changes, rebuild everything, since every IDL potentially 370 # interface) changes, rebuild everything, since every IDL potentially
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 'type': 'none', 427 'type': 'none',
426 'dependencies': [ 428 'dependencies': [
427 'aggregate_generated_bindings', 429 'aggregate_generated_bindings',
428 'event_interfaces', 430 'event_interfaces',
429 'individual_generated_bindings', 431 'individual_generated_bindings',
430 ], 432 ],
431 }, 433 },
432 ################################################################################ 434 ################################################################################
433 ], # targets 435 ], # targets
434 } 436 }
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/scripts/blink_idl_lexer.py » ('j') | Source/bindings/scripts/blink_idl_lexer.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698