diff options
| author | Steve Block <steveblock@google.com> | 2009-12-15 09:54:21 +0000 |
|---|---|---|
| committer | Steve Block <steveblock@google.com> | 2009-12-15 09:54:21 +0000 |
| commit | d0582a6c46733687d045e4188a1bcd0123c758a1 (patch) | |
| tree | 4139657adad206f69647f3d03f6fb2da2e8ae14e /tools | |
| parent | 3ce2e2076e8e3e60cf1810eec160ea2d8557e9e7 (diff) | |
| download | android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.tar.gz android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.tar.bz2 android_external_v8-d0582a6c46733687d045e4188a1bcd0123c758a1.zip | |
Update V8 to r3431 as required by WebKit r51976.
Change-Id: I567392c3f8c0a0d5201a4249611ac4ccf468cd5b
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/codemap.js | 2 | ||||
| -rw-r--r-- | tools/gyp/v8.gyp | 54 | ||||
| -rwxr-xr-x | tools/js2c.py | 2 | ||||
| -rwxr-xr-x | tools/presubmit.py | 73 | ||||
| -rwxr-xr-x | tools/process-heap-prof.py | 54 | ||||
| -rwxr-xr-x | tools/test.py | 17 | ||||
| -rw-r--r-- | tools/utils.py | 2 | ||||
| -rw-r--r-- | tools/v8.xcodeproj/project.pbxproj | 16 | ||||
| -rw-r--r-- | tools/visual_studio/v8_base.vcproj | 4 | ||||
| -rw-r--r-- | tools/visual_studio/v8_base_arm.vcproj | 4 |
10 files changed, 202 insertions, 26 deletions
diff --git a/tools/codemap.js b/tools/codemap.js index 404127f2..af511f64 100644 --- a/tools/codemap.js +++ b/tools/codemap.js @@ -244,7 +244,7 @@ devtools.profiler.CodeMap.CodeEntry.prototype.toString = function() { devtools.profiler.CodeMap.NameGenerator = function() { - this.knownNames_ = []; + this.knownNames_ = {}; }; diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp index 5e2bb88e..ba7224b4 100644 --- a/tools/gyp/v8.gyp +++ b/tools/gyp/v8.gyp @@ -81,6 +81,7 @@ ['OS=="linux"', { 'cflags!': [ '-O2', + '-Os', ], 'cflags': [ '-fomit-frame-pointer', @@ -156,8 +157,8 @@ 'target_name': 'v8_snapshot', 'type': '<(library)', 'dependencies': [ - 'mksnapshot', - 'js2c', + 'mksnapshot#host', + 'js2c#host', 'v8_base', ], 'include_dirs+': [ @@ -183,8 +184,9 @@ { 'target_name': 'v8_nosnapshot', 'type': '<(library)', + 'toolsets': ['host', 'target'], 'dependencies': [ - 'js2c', + 'js2c#host', 'v8_base', ], 'include_dirs+': [ @@ -194,10 +196,21 @@ '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', '../../src/snapshot-empty.cc', ], + 'conditions': [ + # The ARM assembler assumes the host is 32 bits, so force building + # 32-bit host tools. + # TODO(piman): This assumes that the host is ia32 or amd64. Fixing the + # code would be better + ['target_arch=="arm" and _toolset=="host"', { + 'cflags': ['-m32'], + 'ldflags': ['-m32'], + }] + ] }, { 'target_name': 'v8_base', 'type': '<(library)', + 'toolsets': ['host', 'target'], 'include_dirs+': [ '../../src', ], @@ -293,7 +306,6 @@ '../../src/jsregexp.h', '../../src/list-inl.h', '../../src/list.h', - '../../src/location.h', '../../src/log-inl.h', '../../src/log-utils.cc', '../../src/log-utils.h', @@ -394,6 +406,7 @@ '../../src/arm/codegen-arm.cc', '../../src/arm/codegen-arm.h', '../../src/arm/constants-arm.h', + '../../src/arm/constants-arm.cc', '../../src/arm/cpu-arm.cc', '../../src/arm/debug-arm.cc', '../../src/arm/disasm-arm.cc', @@ -412,6 +425,16 @@ '../../src/arm/virtual-frame-arm.cc', '../../src/arm/virtual-frame-arm.h', ], + 'conditions': [ + # The ARM assembler assumes the host is 32 bits, so force building + # 32-bit host tools. + # TODO(piman): This assumes that the host is ia32 or amd64. Fixing + # the code would be better + ['_toolset=="host"', { + 'cflags': ['-m32'], + 'ldflags': ['-m32'], + }] + ] }], ['target_arch=="ia32"', { 'include_dirs+': [ @@ -483,6 +506,17 @@ ], } ], + ['OS=="openbsd"', { + 'link_settings': { + 'libraries': [ + '-L/usr/local/lib -lexecinfo', + ]}, + 'sources': [ + '../../src/platform-openbsd.cc', + '../../src/platform-posix.cc' + ], + } + ], ['OS=="mac"', { 'sources': [ '../../src/platform-macos.cc', @@ -508,6 +542,7 @@ { 'target_name': 'js2c', 'type': 'none', + 'toolsets': ['host'], 'variables': { 'library_files': [ '../../src/runtime.js', @@ -550,6 +585,7 @@ { 'target_name': 'mksnapshot', 'type': 'executable', + 'toolsets': ['host'], 'dependencies': [ 'v8_nosnapshot', ], @@ -559,6 +595,16 @@ 'sources': [ '../../src/mksnapshot.cc', ], + 'conditions': [ + # The ARM assembler assumes the host is 32 bits, so force building + # 32-bit host tools. + # TODO(piman): This assumes that the host is ia32 or amd64. Fixing + # the code would be better + ['target_arch=="arm" and _toolset=="host"', { + 'cflags': ['-m32'], + 'ldflags': ['-m32'], + }] + ] }, { 'target_name': 'v8_shell', diff --git a/tools/js2c.py b/tools/js2c.py index 2b7dbdfb..b889530d 100755 --- a/tools/js2c.py +++ b/tools/js2c.py @@ -301,7 +301,7 @@ def JS2C(source, target, env): else: ids.append((id, len(lines))) source_lines.append(SOURCE_DECLARATION % { 'id': id, 'data': data }) - source_lines_empty.append(SOURCE_DECLARATION % { 'id': id, 'data': 0 }) + source_lines_empty.append(SOURCE_DECLARATION % { 'id': id, 'data': data }) # Build delay support functions get_index_cases = [ ] diff --git a/tools/presubmit.py b/tools/presubmit.py index c4f78536..3f27c001 100755 --- a/tools/presubmit.py +++ b/tools/presubmit.py @@ -28,9 +28,11 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +import md5 import optparse import os from os.path import abspath, join, dirname, basename, exists +import pickle import re import sys import subprocess @@ -93,6 +95,50 @@ whitespace/todo """.split() +class FileContentsCache(object): + + def __init__(self, sums_file_name): + self.sums = {} + self.sums_file_name = sums_file_name + + def Load(self): + try: + sums_file = None + try: + sums_file = open(self.sums_file_name, 'r') + self.sums = pickle.load(sums_file) + except IOError: + # File might not exist, this is OK. + pass + finally: + if sums_file: + sums_file.close() + + def Save(self): + try: + sums_file = open(self.sums_file_name, 'w') + pickle.dump(self.sums, sums_file) + finally: + sums_file.close() + + def FilterUnchangedFiles(self, files): + changed_or_new = [] + for file in files: + try: + handle = open(file, "r") + file_sum = md5.new(handle.read()).digest() + if not file in self.sums or self.sums[file] != file_sum: + changed_or_new.append(file) + self.sums[file] = file_sum + finally: + handle.close() + return changed_or_new + + def RemoveFile(self, file): + if file in self.sums: + self.sums.pop(file) + + class SourceFileProcessor(object): """ Utility class that can run through a directory structure, find all relevant @@ -108,7 +154,7 @@ class SourceFileProcessor(object): return True def IgnoreDir(self, name): - return name.startswith('.') or name == 'data' + return name.startswith('.') or name == 'data' or name == 'sputniktests' def IgnoreFile(self, name): return name.startswith('.') @@ -137,7 +183,7 @@ class CppLintProcessor(SourceFileProcessor): or (name == 'third_party')) IGNORE_LINT = ['flag-definitions.h'] - + def IgnoreFile(self, name): return (super(CppLintProcessor, self).IgnoreFile(name) or (name in CppLintProcessor.IGNORE_LINT)) @@ -146,13 +192,32 @@ class CppLintProcessor(SourceFileProcessor): return ['src', 'public', 'samples', join('test', 'cctest')] def ProcessFiles(self, files, path): + good_files_cache = FileContentsCache('.cpplint-cache') + good_files_cache.Load() + files = good_files_cache.FilterUnchangedFiles(files) + if len(files) == 0: + print 'No changes in files detected. Skipping cpplint check.' + return True + filt = '-,' + ",".join(['+' + n for n in ENABLED_LINT_RULES]) command = ['cpplint.py', '--filter', filt] + join(files) local_cpplint = join(path, "tools", "cpplint.py") if exists(local_cpplint): command = ['python', local_cpplint, '--filter', filt] + join(files) - process = subprocess.Popen(command) - return process.wait() == 0 + + process = subprocess.Popen(command, stderr=subprocess.PIPE) + LINT_ERROR_PATTERN = re.compile(r'^(.+)[:(]\d+[:)]') + while True: + out_line = process.stderr.readline() + if out_line == '' and process.poll() != None: + break + sys.stderr.write(out_line) + m = LINT_ERROR_PATTERN.match(out_line) + if m: + good_files_cache.RemoveFile(m.group(1)) + + good_files_cache.Save() + return process.returncode == 0 COPYRIGHT_HEADER_PATTERN = re.compile( diff --git a/tools/process-heap-prof.py b/tools/process-heap-prof.py index ff83952e..6a2c3978 100755 --- a/tools/process-heap-prof.py +++ b/tools/process-heap-prof.py @@ -40,9 +40,14 @@ # to get JS constructor profile -import csv, sys, time +import csv, sys, time, optparse -def process_logfile(filename, itemname): +def ProcessLogFile(filename, options): + if options.js_cons_profile: + itemname = 'heap-js-cons-item' + else: + itemname = 'heap-sample-item' + first_call_time = None sample_time = 0.0 sampling = False @@ -68,13 +73,48 @@ def process_logfile(filename, itemname): print('END_SAMPLE %.2f' % sample_time) sampling = False elif row[0] == itemname and sampling: - print('%s %d' % (row[1], int(row[3]))) + print(row[1]), + if options.count: + print('%d' % (int(row[2]))), + if options.size: + print('%d' % (int(row[3]))), + print finally: logfile.close() except: sys.exit('can\'t open %s' % filename) -if sys.argv[1] == '--js-cons-profile': - process_logfile(sys.argv[2], 'heap-js-cons-item') -else: - process_logfile(sys.argv[1], 'heap-sample-item') + +def BuildOptions(): + result = optparse.OptionParser() + result.add_option("--js_cons_profile", help="Constructor profile", + default=False, action="store_true") + result.add_option("--size", help="Report object size", + default=False, action="store_true") + result.add_option("--count", help="Report object count", + default=False, action="store_true") + return result + + +def ProcessOptions(options): + if not options.size and not options.count: + options.size = True + return True + + +def Main(): + parser = BuildOptions() + (options, args) = parser.parse_args() + if not ProcessOptions(options): + parser.print_help() + sys.exit(); + + if not args: + print "Missing logfile" + sys.exit(); + + ProcessLogFile(args[0], options) + + +if __name__ == '__main__': + sys.exit(Main()) diff --git a/tools/test.py b/tools/test.py index 586925ae..75b4f61f 100755 --- a/tools/test.py +++ b/tools/test.py @@ -359,8 +359,19 @@ class TestCase(object): self.Cleanup() return TestOutput(self, full_command, output) + def BeforeRun(self): + pass + + def AfterRun(self): + pass + def Run(self): - return self.RunCommand(self.GetCommand()) + self.BeforeRun() + try: + result = self.RunCommand(self.GetCommand()) + finally: + self.AfterRun() + return result def Cleanup(self): return @@ -1094,6 +1105,8 @@ def BuildOptions(): default=60, type="int") result.add_option("--arch", help='The architecture to run tests for', default='none') + result.add_option("--snapshot", help="Run the tests with snapshot turned on", + default=False, action="store_true") result.add_option("--simulator", help="Run tests with architecture simulator", default='none') result.add_option("--special-command", default=None) @@ -1139,6 +1152,8 @@ def ProcessOptions(options): if options.arch == 'none': options.arch = ARCH_GUESS options.scons_flags.append("arch=" + options.arch) + if options.snapshot: + options.scons_flags.append("snapshot=on") return True diff --git a/tools/utils.py b/tools/utils.py index 78d1e0d6..196bb055 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -55,6 +55,8 @@ def GuessOS(): return 'win32' elif id == 'FreeBSD': return 'freebsd' + elif id == 'OpenBSD': + return 'openbsd' else: return None diff --git a/tools/v8.xcodeproj/project.pbxproj b/tools/v8.xcodeproj/project.pbxproj index d2af6262..3ffd1829 100644 --- a/tools/v8.xcodeproj/project.pbxproj +++ b/tools/v8.xcodeproj/project.pbxproj @@ -214,6 +214,10 @@ 9F4B7B8A0FCC877A00DC4117 /* log-utils.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9F4B7B870FCC877A00DC4117 /* log-utils.cc */; }; 9F92FAA90F8F28AD0089F02C /* func-name-inferrer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9F92FAA70F8F28AD0089F02C /* func-name-inferrer.cc */; }; 9F92FAAA0F8F28AD0089F02C /* func-name-inferrer.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9F92FAA70F8F28AD0089F02C /* func-name-inferrer.cc */; }; + 9FBE03DE10BD409900F8BFBA /* fast-codegen.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FBE03DC10BD409900F8BFBA /* fast-codegen.cc */; }; + 9FBE03DF10BD409900F8BFBA /* fast-codegen.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FBE03DC10BD409900F8BFBA /* fast-codegen.cc */; }; + 9FBE03E210BD40EA00F8BFBA /* fast-codegen-ia32.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FBE03E110BD40EA00F8BFBA /* fast-codegen-ia32.cc */; }; + 9FBE03E510BD412600F8BFBA /* fast-codegen-arm.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FBE03E410BD412600F8BFBA /* fast-codegen-arm.cc */; }; 9FC86ABD0F5FEDAC00F22668 /* oprofile-agent.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FC86ABB0F5FEDAC00F22668 /* oprofile-agent.cc */; }; 9FC86ABE0F5FEDAC00F22668 /* oprofile-agent.cc in Sources */ = {isa = PBXBuildFile; fileRef = 9FC86ABB0F5FEDAC00F22668 /* oprofile-agent.cc */; }; /* End PBXBuildFile section */ @@ -550,6 +554,10 @@ 9F4B7B880FCC877A00DC4117 /* log-utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "log-utils.h"; sourceTree = "<group>"; }; 9F92FAA70F8F28AD0089F02C /* func-name-inferrer.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "func-name-inferrer.cc"; sourceTree = "<group>"; }; 9F92FAA80F8F28AD0089F02C /* func-name-inferrer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "func-name-inferrer.h"; sourceTree = "<group>"; }; + 9FBE03DC10BD409900F8BFBA /* fast-codegen.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "fast-codegen.cc"; sourceTree = "<group>"; }; + 9FBE03DD10BD409900F8BFBA /* fast-codegen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "fast-codegen.h"; sourceTree = "<group>"; }; + 9FBE03E110BD40EA00F8BFBA /* fast-codegen-ia32.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "fast-codegen-ia32.cc"; path = "ia32/fast-codegen-ia32.cc"; sourceTree = "<group>"; }; + 9FBE03E410BD412600F8BFBA /* fast-codegen-arm.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "fast-codegen-arm.cc"; path = "arm/fast-codegen-arm.cc"; sourceTree = "<group>"; }; 9FC86ABB0F5FEDAC00F22668 /* oprofile-agent.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "oprofile-agent.cc"; sourceTree = "<group>"; }; 9FC86ABC0F5FEDAC00F22668 /* oprofile-agent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "oprofile-agent.h"; sourceTree = "<group>"; }; /* End PBXFileReference section */ @@ -715,6 +723,10 @@ 897FF1310E719B8F00D62E90 /* execution.h */, 897FF1320E719B8F00D62E90 /* factory.cc */, 897FF1330E719B8F00D62E90 /* factory.h */, + 9FBE03DC10BD409900F8BFBA /* fast-codegen.cc */, + 9FBE03DD10BD409900F8BFBA /* fast-codegen.h */, + 9FBE03E410BD412600F8BFBA /* fast-codegen-arm.cc */, + 9FBE03E110BD40EA00F8BFBA /* fast-codegen-ia32.cc */, 89471C7F0EB23EE400B6874B /* flag-definitions.h */, 897FF1350E719B8F00D62E90 /* flags.cc */, 897FF1360E719B8F00D62E90 /* flags.h */, @@ -1225,6 +1237,8 @@ 9F4B7B890FCC877A00DC4117 /* log-utils.cc in Sources */, 8981F6001010501900D1520E /* frame-element.cc in Sources */, 9F11D9A0105AF0A300EBE5B2 /* heap-profiler.cc in Sources */, + 9FBE03DE10BD409900F8BFBA /* fast-codegen.cc in Sources */, + 9FBE03E210BD40EA00F8BFBA /* fast-codegen-ia32.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1332,6 +1346,8 @@ 9F4B7B8A0FCC877A00DC4117 /* log-utils.cc in Sources */, 8981F6011010502800D1520E /* frame-element.cc in Sources */, 9F11D9A1105AF0A300EBE5B2 /* heap-profiler.cc in Sources */, + 9FBE03DF10BD409900F8BFBA /* fast-codegen.cc in Sources */, + 9FBE03E510BD412600F8BFBA /* fast-codegen-arm.cc in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/tools/visual_studio/v8_base.vcproj b/tools/visual_studio/v8_base.vcproj index fc7402ae..6b473597 100644 --- a/tools/visual_studio/v8_base.vcproj +++ b/tools/visual_studio/v8_base.vcproj @@ -557,10 +557,6 @@ > </File> <File - RelativePath="..\..\src\location.h" - > - </File> - <File RelativePath="..\..\src\log.cc" > </File> diff --git a/tools/visual_studio/v8_base_arm.vcproj b/tools/visual_studio/v8_base_arm.vcproj index fca4a960..afb4f74b 100644 --- a/tools/visual_studio/v8_base_arm.vcproj +++ b/tools/visual_studio/v8_base_arm.vcproj @@ -561,10 +561,6 @@ > </File> <File - RelativePath="..\..\src\location.h" - > - </File> - <File RelativePath="..\..\src\log.cc" > </File> |
