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

Side by Side Diff: tools/js2c.py

Issue 750543002: Rip out bzip compression for native sources. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: compressed_size Created 6 years, 1 month 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
« no previous file with comments | « tools/gyp/v8.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2012 the V8 project authors. All rights reserved. 3 # Copyright 2012 the V8 project authors. All rights reserved.
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 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 "raw_total_length": sum(map(len, sources.modules)), 471 "raw_total_length": sum(map(len, sources.modules)),
472 "total_length": total_length, 472 "total_length": total_length,
473 "get_index_cases": "".join(get_index_cases), 473 "get_index_cases": "".join(get_index_cases),
474 "get_raw_script_source_cases": "".join(get_raw_script_source_cases), 474 "get_raw_script_source_cases": "".join(get_raw_script_source_cases),
475 "get_script_name_cases": "".join(get_script_name_cases), 475 "get_script_name_cases": "".join(get_script_name_cases),
476 "type": native_type, 476 "type": native_type,
477 } 477 }
478 return metadata 478 return metadata
479 479
480 480
481 def CompressMaybe(sources, compression_type):
482 """Take the prepared sources and generate a sequence of bytes.
483
484 Args:
485 sources: A Sources instance with the prepared sourced.
486 compression_type: string, describing the desired compression.
487
488 Returns:
489 A sequence of bytes.
490 """
491 sources_bytes = "".join(sources.modules)
492 if compression_type == "off":
493 return sources_bytes
494 elif compression_type == "bz2":
495 return bz2.compress(sources_bytes)
496 else:
497 raise Error("Unknown compression type %s." % compression_type)
498
499
500 def PutInt(blob_file, value): 481 def PutInt(blob_file, value):
501 assert(value >= 0 and value < (1 << 28)) 482 assert(value >= 0 and value < (1 << 28))
502 if (value < 1 << 6): 483 if (value < 1 << 6):
503 size = 1 484 size = 1
504 elif (value < 1 << 14): 485 elif (value < 1 << 14):
505 size = 2 486 size = 2
506 elif (value < 1 << 22): 487 elif (value < 1 << 22):
507 size = 3 488 size = 3
508 else: 489 else:
509 size = 4 490 size = 4
(...skipping 28 matching lines...) Expand all
538 PutStr(output, sources.modules[i]); 519 PutStr(output, sources.modules[i]);
539 520
540 PutInt(output, len(sources.names) - debug_sources) 521 PutInt(output, len(sources.names) - debug_sources)
541 for i in xrange(debug_sources, len(sources.names)): 522 for i in xrange(debug_sources, len(sources.names)):
542 PutStr(output, sources.names[i]); 523 PutStr(output, sources.names[i]);
543 PutStr(output, sources.modules[i]); 524 PutStr(output, sources.modules[i]);
544 525
545 output.close() 526 output.close()
546 527
547 528
548 def JS2C(source, target, native_type, compression_type, raw_file, startup_blob): 529 def JS2C(source, target, native_type, raw_file, startup_blob):
549 sources = PrepareSources(source) 530 sources = PrepareSources(source)
550 sources_bytes = CompressMaybe(sources, compression_type) 531 sources_bytes = "".join(sources.modules)
551 metadata = BuildMetadata(sources, sources_bytes, native_type) 532 metadata = BuildMetadata(sources, sources_bytes, native_type)
552 533
553 # Optionally emit raw file. 534 # Optionally emit raw file.
554 if raw_file: 535 if raw_file:
555 output = open(raw_file, "w") 536 output = open(raw_file, "w")
556 output.write(sources_bytes) 537 output.write(sources_bytes)
557 output.close() 538 output.close()
558 539
559 if startup_blob: 540 if startup_blob:
560 WriteStartupBlob(sources, startup_blob); 541 WriteStartupBlob(sources, startup_blob);
561 542
562 # Emit resulting source file. 543 # Emit resulting source file.
563 output = open(target, "w") 544 output = open(target, "w")
564 output.write(HEADER_TEMPLATE % metadata) 545 output.write(HEADER_TEMPLATE % metadata)
565 output.close() 546 output.close()
566 547
567 548
568 def main(): 549 def main():
569 parser = optparse.OptionParser() 550 parser = optparse.OptionParser()
570 parser.add_option("--raw", action="store", 551 parser.add_option("--raw", action="store",
571 help="file to write the processed sources array to.") 552 help="file to write the processed sources array to.")
572 parser.add_option("--startup_blob", action="store", 553 parser.add_option("--startup_blob", action="store",
573 help="file to write the startup blob to.") 554 help="file to write the startup blob to.")
574 parser.set_usage("""js2c out.cc type compression sources.js ... 555 parser.set_usage("""js2c out.cc type sources.js ...
575 out.cc: C code to be generated. 556 out.cc: C code to be generated.
576 type: type parameter for NativesCollection template. 557 type: type parameter for NativesCollection template.
577 compression: type of compression used. [off|bz2]
578 sources.js: JS internal sources or macros.py.""") 558 sources.js: JS internal sources or macros.py.""")
579 (options, args) = parser.parse_args() 559 (options, args) = parser.parse_args()
580 560
581 JS2C(args[3:], args[0], args[1], args[2], options.raw, options.startup_blob) 561 JS2C(args[2:], args[0], args[1], options.raw, options.startup_blob)
582 562
583 563
584 if __name__ == "__main__": 564 if __name__ == "__main__":
585 main() 565 main()
OLDNEW
« no previous file with comments | « tools/gyp/v8.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698