Mercurial > hg > graal-jvmci-8
comparison mx/commands.py @ 5064:8a88c903e381
Updated mx commands.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 08 Mar 2012 19:35:42 +0100 |
parents | 6bc165b0fdcd |
children | 206e68bb66c6 |
comparison
equal
deleted
inserted
replaced
5063:055c137f73ed | 5064:8a88c903e381 |
---|---|
47 This can be set via the global '--fastdebug' and '--debug' options. """ | 47 This can be set via the global '--fastdebug' and '--debug' options. """ |
48 _vmbuild = 'product' | 48 _vmbuild = 'product' |
49 | 49 |
50 _jacoco = 'off' | 50 _jacoco = 'off' |
51 | 51 |
52 _jacocoExcludes = ['com.oracle.max.graal.hotspot.snippets.ArrayCopySnippets', | 52 _jacocoExcludes = ['com.oracle.graal.hotspot.snippets.ArrayCopySnippets', |
53 'com.oracle.max.graal.snippets.DoubleSnippets', | 53 'com.oracle.graal.snippets.DoubleSnippets', |
54 'com.oracle.max.graal.snippets.FloatSnippets', | 54 'com.oracle.graal.snippets.FloatSnippets', |
55 'com.oracle.max.graal.snippets.MathSnippetsX86', | 55 'com.oracle.graal.snippets.MathSnippetsX86', |
56 'com.oracle.max.graal.snippets.NodeClassSnippets', | 56 'com.oracle.graal.snippets.NodeClassSnippets', |
57 'com.oracle.max.graal.hotspot.snippets.SystemSnippets', | 57 'com.oracle.graal.hotspot.snippets.SystemSnippets', |
58 'com.oracle.max.graal.hotspot.snippets.UnsafeSnippets', | 58 'com.oracle.graal.hotspot.snippets.UnsafeSnippets', |
59 'com.oracle.max.graal.compiler.tests.*'] | 59 'com.oracle.graal.compiler.tests.*'] |
60 | 60 |
61 _copyrightTemplate = """/* | 61 _copyrightTemplate = """/* |
62 * Copyright (c) {0}, Oracle and/or its affiliates. All rights reserved. | 62 * Copyright (c) {0}, Oracle and/or its affiliates. All rights reserved. |
63 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 63 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
64 * | 64 * |
88 opts = mx.clean(args, parser=ArgumentParser(prog='mx clean')) | 88 opts = mx.clean(args, parser=ArgumentParser(prog='mx clean')) |
89 if opts.native: | 89 if opts.native: |
90 os.environ.update(ARCH_DATA_MODEL='64', LANG='C', HOTSPOT_BUILD_JOBS='16') | 90 os.environ.update(ARCH_DATA_MODEL='64', LANG='C', HOTSPOT_BUILD_JOBS='16') |
91 mx.run([mx.gmake_cmd(), 'clean'], cwd=join(_graal_home, 'make')) | 91 mx.run([mx.gmake_cmd(), 'clean'], cwd=join(_graal_home, 'make')) |
92 | 92 |
93 def copyrightcheck(args): | |
94 """run copyright check on the Mercurial controlled source files""" | |
95 res = mx.run_java(['-cp', mx.classpath('com.oracle.max.base', resolve=False), 'com.sun.max.tools.CheckCopyright', '-cfp=' + join(mx.project('com.oracle.max.base').dir, '.copyright.regex')] + args) | |
96 mx.log("copyright check result = " + str(res)) | |
97 return res | |
98 | |
99 def export(args): | 93 def export(args): |
100 """create a GraalVM zip file for distribution""" | 94 """create a GraalVM zip file for distribution""" |
101 | 95 |
102 parser = ArgumentParser(prog='mx export'); | 96 parser = ArgumentParser(prog='mx export'); |
103 parser.add_argument('--omit-vm-build', action='store_false', dest='vmbuild', help='omit VM build step') | 97 parser.add_argument('--omit-vm-build', action='store_false', dest='vmbuild', help='omit VM build step') |
141 mx.log('Created distribution in ' + zfName) | 135 mx.log('Created distribution in ' + zfName) |
142 | 136 |
143 def example(args): | 137 def example(args): |
144 """run some or all Graal examples""" | 138 """run some or all Graal examples""" |
145 examples = { | 139 examples = { |
146 'safeadd': ['com.oracle.max.graal.examples.safeadd', 'com.oracle.max.graal.examples.safeadd.Main'], | 140 'safeadd': ['com.oracle.graal.examples.safeadd', 'com.oracle.graal.examples.safeadd.Main'], |
147 'vectorlib': ['com.oracle.max.graal.examples.vectorlib', 'com.oracle.max.graal.examples.vectorlib.Main'], | 141 'vectorlib': ['com.oracle.graal.examples.vectorlib', 'com.oracle.graal.examples.vectorlib.Main'], |
148 } | 142 } |
149 | 143 |
150 def run_example(verbose, project, mainClass): | 144 def run_example(verbose, project, mainClass): |
151 cp = mx.classpath(project) | 145 cp = mx.classpath(project) |
152 sharedArgs = ['-Xcomp', '-XX:CompileOnly=Main', mainClass] | 146 sharedArgs = ['-Xcomp', '-XX:CompileOnly=Main', mainClass] |
239 | 233 |
240 # Give visualizer time to start | 234 # Give visualizer time to start |
241 mx.log('Waiting 5 seconds for visualizer to start') | 235 mx.log('Waiting 5 seconds for visualizer to start') |
242 time.sleep(5) | 236 time.sleep(5) |
243 | 237 |
244 vm(['-G:Dump=HelloWorld', '-G:MethodFilter=main', '-Xcomp', '-XX:CompileOnly=HelloWorld::main', '-cp', mx.classpath('com.oracle.max.graal.examples')] + args + ['examples.HelloWorld']) | 238 vm(['-G:Dump=HelloWorld', '-G:MethodFilter=main', '-Xcomp', '-XX:CompileOnly=HelloWorld::main', '-cp', mx.classpath('com.oracle.graal.examples')] + args + ['examples.HelloWorld']) |
245 | 239 |
246 def scaladacapo(args): | 240 def scaladacapo(args): |
247 """run one or all Scala DaCapo benchmarks | 241 """run one or all Scala DaCapo benchmarks |
248 | 242 |
249 Scala DaCapo options are distinguished from VM options by a '@' prefix. | 243 Scala DaCapo options are distinguished from VM options by a '@' prefix. |
501 if _jacoco == 'on' or _jacoco == 'append': | 495 if _jacoco == 'on' or _jacoco == 'append': |
502 jacocoagent = mx.library("JACOCOAGENT", True) | 496 jacocoagent = mx.library("JACOCOAGENT", True) |
503 agentOptions = { | 497 agentOptions = { |
504 'append' : 'true' if _jacoco == 'append' else 'false', | 498 'append' : 'true' if _jacoco == 'append' else 'false', |
505 'bootclasspath' : 'true', | 499 'bootclasspath' : 'true', |
506 'includes' : 'com.oracle.max.*', | 500 'includes' : 'com.oracle.*', |
507 'excludes' : ':'.join(_jacocoExcludes) | 501 'excludes' : ':'.join(_jacocoExcludes) |
508 } | 502 } |
509 args = ['-javaagent:' + jacocoagent.get_path(True) + '=' + ','.join([k + '=' + v for k, v in agentOptions.items()])] + args | 503 args = ['-javaagent:' + jacocoagent.get_path(True) + '=' + ','.join([k + '=' + v for k, v in agentOptions.items()])] + args |
510 exe = join(_jdk(build), 'bin', mx.exe_suffix('java')) | 504 exe = join(_jdk(build), 'bin', mx.exe_suffix('java')) |
511 return mx.run([exe, '-' + vm] + args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout) | 505 return mx.run([exe, '-' + vm] + args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout) |
515 # Keys are project names, values are package name lists. | 509 # Keys are project names, values are package name lists. |
516 # All source files in the given (project,package) pairs are scanned for lines | 510 # All source files in the given (project,package) pairs are scanned for lines |
517 # containing '@Test'. These are then determined to be the classes defining | 511 # containing '@Test'. These are then determined to be the classes defining |
518 # unit tests. | 512 # unit tests. |
519 _unittests = { | 513 _unittests = { |
520 'com.oracle.max.graal.tests': ['com.oracle.max.graal.compiler.tests'], | 514 'com.oracle.graal.tests': ['com.oracle.graal.compiler.tests'], |
521 } | 515 } |
522 _jtttests = { | 516 _jtttests = { |
523 'com.oracle.max.graal.jtt': ['com.oracle.max.graal.jtt'], | 517 'com.oracle.graal.jtt': ['com.oracle.graal.jtt'], |
524 } | 518 } |
525 | 519 |
526 def _add_test_classes(testClassList, searchDir, pkgRoot): | 520 def _add_test_classes(testClassList, searchDir, pkgRoot): |
527 pkgDecl = re.compile(r"^package\s+([a-zA-Z_][\w\.]*)\s*;$") | 521 pkgDecl = re.compile(r"^package\s+([a-zA-Z_][\w\.]*)\s*;$") |
528 for root, _, files in os.walk(searchDir): | 522 for root, _, files in os.walk(searchDir): |
879 _vmbuild = 'product' | 873 _vmbuild = 'product' |
880 commands = { | 874 commands = { |
881 'build': [build, '[-options]'], | 875 'build': [build, '[-options]'], |
882 'buildvms': [buildvms, '[-options]'], | 876 'buildvms': [buildvms, '[-options]'], |
883 'clean': [clean, ''], | 877 'clean': [clean, ''], |
884 'copyrightcheck': [copyrightcheck, ''], | |
885 'hsdis': [hsdis, '[att]'], | 878 'hsdis': [hsdis, '[att]'], |
886 'intro': [intro, ''], | 879 'intro': [intro, ''], |
887 'dacapo': [dacapo, '[[n] benchmark] [VM options|@DaCapo options]'], | 880 'dacapo': [dacapo, '[[n] benchmark] [VM options|@DaCapo options]'], |
888 'scaladacapo': [scaladacapo, '[[n] benchmark] [VM options|@Scala DaCapo options]'], | 881 'scaladacapo': [scaladacapo, '[[n] benchmark] [VM options|@Scala DaCapo options]'], |
889 'specjvm2008': [specjvm2008, '[VM options|@specjvm2008 options]'], | 882 'specjvm2008': [specjvm2008, '[VM options|@specjvm2008 options]'], |
895 'jtt' : [jtt, '[filters...]'], | 888 'jtt' : [jtt, '[filters...]'], |
896 'jacocoreport' : [jacocoreport, '[output directory]'], | 889 'jacocoreport' : [jacocoreport, '[output directory]'], |
897 'vm': [vm, '[-options] class [args...]'] | 890 'vm': [vm, '[-options] class [args...]'] |
898 } | 891 } |
899 | 892 |
900 mx.add_argument('--jacoco', help='instruments com.oracle.max.* classes using JaCoCo', default='off', choices=['off', 'on', 'append']) | 893 mx.add_argument('--jacoco', help='instruments com.oracle.* classes using JaCoCo', default='off', choices=['off', 'on', 'append']) |
901 | 894 |
902 if (_vmSourcesAvailable): | 895 if (_vmSourcesAvailable): |
903 mx.add_argument('--vm', action='store', dest='vm', default='graal', choices=['graal', 'server', 'client'], help='the VM to build/run (default: graal)') | 896 mx.add_argument('--vm', action='store', dest='vm', default='graal', choices=['graal', 'server', 'client'], help='the VM to build/run (default: graal)') |
904 mx.add_argument('--product', action='store_const', dest='vmbuild', const='product', help='select the product build of the VM') | 897 mx.add_argument('--product', action='store_const', dest='vmbuild', const='product', help='select the product build of the VM') |
905 mx.add_argument('--debug', action='store_const', dest='vmbuild', const='debug', help='select the debug build of the VM') | 898 mx.add_argument('--debug', action='store_const', dest='vmbuild', const='debug', help='select the debug build of the VM') |