示例#1
0
def get_vm():
    """
    Gets the name of the currently selected JVM variant.
    """
    vm = _jvmci_get_vm()
    if JVMCI_VERSION >= 9:
        assert isinstance(vm, VM)
        return vm.jvmVariant
    else:
        assert isinstance(vm, str)
        return vm
示例#2
0
def get_vm():
    """
    Gets the name of the currently selected JVM variant.
    """
    vm = _jvmci_get_vm()
    if JVMCI_VERSION >= 9:
        assert isinstance(vm, VM)
        return vm.jvmVariant
    else:
        assert isinstance(vm, str)
        return vm
示例#3
0
def ctw(args, extraVMarguments=None):
    """run CompileTheWorld"""

    defaultCtwopts = '-Inline'

    parser = ArgumentParser(prog='mx ctw')
    parser.add_argument('--ctwopts', action='store', help='space separated JVMCI options used for CTW compilations (default: --ctwopts="' + defaultCtwopts + '")', default=defaultCtwopts, metavar='<options>')
    parser.add_argument('--cp', '--jar', action='store', help='jar or class path denoting classes to compile', metavar='<path>')

    args, vmargs = parser.parse_known_args(args)

    if args.ctwopts:
        # Replace spaces  with '#' since -G: options cannot contain spaces
        vmargs.append('-G:CompileTheWorldConfig=' + re.sub(r'\s+', '#', args.ctwopts))

    if args.cp:
        cp = os.path.abspath(args.cp)
    else:
        if JVMCI_VERSION < 9:
            cp = join(get_jvmci_jdk().home, 'jre', 'lib', 'rt.jar')
        else:
            cp = join(get_jvmci_jdk().home, 'modules', 'java.base') + os.pathsep + \
                 join(get_jvmci_jdk().home, 'lib', 'modules', 'bootmodules.jimage')
        vmargs.append('-G:CompileTheWorldExcludeMethodFilter=sun.awt.X11.*.*')

    # suppress menubar and dock when running on Mac; exclude x11 classes as they may cause vm crashes (on Solaris)
    vmargs = ['-Djava.awt.headless=true'] + vmargs

    vm = get_vm()
    if JVMCI_VERSION >= 9:
        jvmciMode = _jvmci_get_vm().jvmciMode
        if jvmciMode == 'disabled':
            vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp]
        else:
            if jvmciMode == 'jit':
                vmargs += ['-XX:+BootstrapJVMCI']
            vmargs += ['-G:CompileTheWorldClasspath=' + cp, 'com.oracle.graal.hotspot.CompileTheWorld']
    else:
        if isJVMCIEnabled(vm):
            if vm == 'jvmci':
                vmargs += ['-XX:+BootstrapJVMCI']
            vmargs += ['-G:CompileTheWorldClasspath=' + cp, '-XX:-UseJVMCIClassLoader', 'com.oracle.graal.hotspot.CompileTheWorld']
        else:
            vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp]

    run_vm(vmargs + _noneAsEmptyList(extraVMarguments))
示例#4
0
def ctw(args, extraVMarguments=None):
    """run CompileTheWorld"""

    defaultCtwopts = '-Inline'

    parser = ArgumentParser(prog='mx ctw')
    parser.add_argument('--ctwopts', action='store', help='space separated JVMCI options used for CTW compilations (default: --ctwopts="' + defaultCtwopts + '")', default=defaultCtwopts, metavar='<options>')
    parser.add_argument('--cp', '--jar', action='store', help='jar or class path denoting classes to compile', metavar='<path>')

    args, vmargs = parser.parse_known_args(args)

    if args.ctwopts:
        # Replace spaces  with '#' since -G: options cannot contain spaces
        vmargs.append('-G:CompileTheWorldConfig=' + re.sub(r'\s+', '#', args.ctwopts))

    if args.cp:
        cp = os.path.abspath(args.cp)
    else:
        if JVMCI_VERSION < 9:
            cp = join(get_jvmci_jdk().home, 'jre', 'lib', 'rt.jar')
        else:
            cp = join(get_jvmci_jdk().home, 'modules', 'java.base') + os.pathsep + \
                 join(get_jvmci_jdk().home, 'lib', 'modules', 'bootmodules.jimage')
        vmargs.append('-G:CompileTheWorldExcludeMethodFilter=sun.awt.X11.*.*')

    # suppress menubar and dock when running on Mac; exclude x11 classes as they may cause vm crashes (on Solaris)
    vmargs = ['-Djava.awt.headless=true'] + vmargs

    vm = get_vm()
    if JVMCI_VERSION >= 9:
        jvmciMode = _jvmci_get_vm().jvmciMode
        if jvmciMode == 'disabled':
            vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp]
        else:
            if jvmciMode == 'jit':
                vmargs += ['-XX:+BootstrapJVMCI']
            vmargs += ['-G:CompileTheWorldClasspath=' + cp, 'com.oracle.graal.hotspot.CompileTheWorld']
    else:
        if isJVMCIEnabled(vm):
            if vm == 'jvmci':
                vmargs += ['-XX:+BootstrapJVMCI']
            vmargs += ['-G:CompileTheWorldClasspath=' + cp, '-XX:-UseJVMCIClassLoader', 'com.oracle.graal.hotspot.CompileTheWorld']
        else:
            vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp]

    run_vm(vmargs + _noneAsEmptyList(extraVMarguments))
示例#5
0
def ctw(args, extraVMarguments=None):
    """run CompileTheWorld"""

    defaultCtwopts = "-Inline"

    parser = ArgumentParser(prog="mx ctw")
    parser.add_argument(
        "--ctwopts",
        action="store",
        help='space separated JVMCI options used for CTW compilations (default: --ctwopts="' + defaultCtwopts + '")',
        default=defaultCtwopts,
        metavar="<options>",
    )
    parser.add_argument(
        "--cp", "--jar", action="store", help="jar or class path denoting classes to compile", metavar="<path>"
    )

    args, vmargs = parser.parse_known_args(args)

    if args.ctwopts:
        # Replace spaces  with '#' since -G: options cannot contain spaces
        vmargs.append("-G:CompileTheWorldConfig=" + re.sub(r"\s+", "#", args.ctwopts))

    if args.cp:
        cp = os.path.abspath(args.cp)
    else:
        if JVMCI_VERSION < 9:
            cp = join(get_jvmci_jdk().home, "jre", "lib", "rt.jar")
        else:
            cp = (
                join(get_jvmci_jdk().home, "modules", "java.base")
                + os.pathsep
                + join(get_jvmci_jdk().home, "lib", "modules", "bootmodules.jimage")
            )
        vmargs.append("-G:CompileTheWorldExcludeMethodFilter=sun.awt.X11.*.*")

    # suppress menubar and dock when running on Mac; exclude x11 classes as they may cause vm crashes (on Solaris)
    vmargs = ["-Djava.awt.headless=true"] + vmargs

    vm = get_vm()
    if JVMCI_VERSION >= 9:
        jvmciMode = _jvmci_get_vm().jvmciMode
        if jvmciMode == "disabled":
            vmargs += ["-XX:+CompileTheWorld", "-Xbootclasspath/p:" + cp]
        else:
            if jvmciMode == "jit":
                vmargs += ["-XX:+BootstrapJVMCI"]
            vmargs += ["-G:CompileTheWorldClasspath=" + cp, "com.oracle.graal.hotspot.CompileTheWorld"]
    else:
        if isJVMCIEnabled(vm):
            if vm == "jvmci":
                vmargs += ["-XX:+BootstrapJVMCI"]
            vmargs += [
                "-G:CompileTheWorldClasspath=" + cp,
                "-XX:-UseJVMCIClassLoader",
                "com.oracle.graal.hotspot.CompileTheWorld",
            ]
        else:
            vmargs += ["-XX:+CompileTheWorld", "-Xbootclasspath/p:" + cp]

    run_vm(vmargs + _noneAsEmptyList(extraVMarguments))