Exemple #1
0
    jt('test', 'cexts')


def verify_ci(args):
    """Verify CI configuration"""
    mx.verify_ci(args, mx.suite('truffle'), _suite, 'common.json')


mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='TruffleRuby license files',
        short_name='rbyl',
        dir_name='ruby',
        license_files=['LICENSE_TRUFFLERUBY.txt'],
        third_party_license_files=['3rd_party_licenses_truffleruby.txt'],
        dependencies=[],
        truffle_jars=[],
        support_distributions=[
            'truffleruby:TRUFFLERUBY_GRAALVM_LICENSES',
        ],
        priority=5,
    ))

mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='TruffleRuby',
        short_name='rby',
        dir_name='ruby',
        standalone_dir_name='truffleruby-<version>-<graalvm_os>-<arch>',
        license_files=[],
Exemple #2
0
mx_sdk.register_graalvm_component(
    mx_sdk.GraalVMSvmMacro(
        suite=_suite,
        name='Truffle',
        short_name='tfl',
        dir_name='truffle',
        license_files=[],
        third_party_license_files=[],
        support_distributions=['truffle:TRUFFLE_GRAALVM_SUPPORT']))

mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='Truffle NFI',
        short_name='nfi',
        dir_name='nfi',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=['truffle:TRUFFLE_NFI'],
        support_distributions=['truffle:TRUFFLE_NFI_GRAALVM_SUPPORT']))

mx.update_commands(
    _suite, {
        'check-filename-length': [check_filename_length, ""],
        'create-dsl-parser':
        [create_dsl_parser, "create the DSL expression parser using antlr"],
        'create-sl-parser':
        [create_sl_parser, "create the SimpleLanguage parser using antlr"],
    })
Exemple #3
0
            % (active_branch, primary_branch))
        return 0


mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='Graal.js',
        short_name='js',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=[
            'graal-js:GRAALJS',
            'graal-js:ICU4J',
            'mx:ASM_DEBUG_ALL',
        ],
        support_distributions=[
            'graal-js:GRAALJS_GRAALVM_SUPPORT', 'graal-js:ICU4J-DIST'
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                destination='bin/<exe:js>',
                jar_distributions=['graal-js:GRAALJS_LAUNCHER'],
                main_class='com.oracle.truffle.js.shell.JSLauncher',
                build_args=['--language:js'])
        ],
        boot_jars=['graal-js:GRAALJS_SCRIPTENGINE']))

mx.update_commands(
    _suite, {
        'deploy-binary-if-master': [deploy_binary_if_master, ''],
        'js': [js, '[JS args|VM options]'],
Exemple #4
0
                "LICENSE_FASTR" : "file:LICENSE",
                "3rd_party_licenses_fastr.txt" : "file:3rd_party_licenses.txt",
                "README_FASTR": "extracted-dependency:fastr:FASTR_GRAALVM_RELEASE{rffi}/README.md".format(rffi=rffi),
                "bin/Rscript": "file:com.oracle.truffle.r.release/src/Rscript_legacy",
                "bin/exec/R": "file:com.oracle.truffle.r.release/src/R_legacy",
                "native-image.properties": "file:mx.fastr/native-image.properties",
                "legacy/": "dependency:fastr:FASTR_LEGACY_LAUNCHER",
            },
            path=None,
            platformDependent=True,
            theLicense=None
        )
        fastr_graalvm_release_support.description = "FastR support distribution for the GraalVM"
        register_distribution(fastr_graalvm_release_support)


mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_fastr_suite,
    name='FastR',
    short_name='R',
    license_files=['LICENSE_FASTR'],
    third_party_license_files=['3rd_party_licenses_fastr.txt'],
    truffle_jars=['fastr:FASTR'],
    support_distributions=['fastr:FASTR_GRAALVM_SUPPORT'],
    provided_executables=[
        'bin/Rscript',
        'bin/R',
    ],
    include_in_polyglot=False,
))
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='TruffleRuby',
        short_name='rby',
        dir_name='ruby',
        standalone_dir_name='truffleruby-<version>-<graalvm_os>-<arch>',
        license_files=['LICENSE_TRUFFLERUBY.md'],
        third_party_license_files=['3rd_party_licenses_truffleruby.txt'],
        truffle_jars=[
            'truffleruby:TRUFFLERUBY', 'truffleruby:TRUFFLERUBY-SHARED',
            'truffleruby:TRUFFLERUBY-ANNOTATIONS'
        ],
        boot_jars=['truffleruby:TRUFFLERUBY-SERVICES'],
        support_distributions=[
            'truffleruby:TRUFFLERUBY_GRAALVM_SUPPORT',
        ],
        provided_executables=[
            'bin/bundle',
            'bin/bundler',
            'bin/gem',
            'bin/irb',
            'bin/rake',
            'bin/rdoc',
            'bin/ri',
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                destination='bin/<exe:truffleruby>',
                jar_distributions=['truffleruby:TRUFFLERUBY-LAUNCHER'],
                main_class='org.truffleruby.launcher.RubyLauncher',
                build_args=[
                    '--language:llvm',
                    '--language:ruby',
                ],
                links=['bin/<exe:ruby>'],
            )
        ],
        post_install_msg="""
IMPORTANT NOTE:
---------------
The Ruby openssl C extension needs to be recompiled on your system to work with the installed libssl.
First, make sure TruffleRuby's dependencies are installed, which are described at:
  https://github.com/oracle/truffleruby/blob/master/README.md#dependencies
Then run the following command:
        ${graalvm_home}/jre/languages/ruby/lib/truffle/post_install_hook.sh""",
    ))
Exemple #6
0
import mx
import mx_sdk
from mx_unittest import unittest
from mx_gate import Task, add_gate_runner

_suite = mx.suite('regex')


def _tregex_tests_gate_runner(args, tasks):
    with Task('UnitTests', tasks, tags=['default', 'all']) as t:
        if t:
            unittest([
                '--enable-timing', '--very-verbose', 'com.oracle.truffle.regex'
            ])


mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='TRegex',
        short_name='rgx',
        dir_name='regex',
        license_files=[],
        third_party_license_files=[],
        dependencies=['Truffle'],
        truffle_jars=['regex:TREGEX'],
        support_distributions=['regex:TREGEX_GRAALVM_SUPPORT'],
    ))

add_gate_runner(_suite, _tregex_tests_gate_runner)
Exemple #7
0
mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_suite,
    name='Graal.js',
    short_name='js',
    standalone_dir_name='graaljs-<version>-<graalvm_os>-<arch>',
    standalone_dependencies={
        'GraalVM license files': ('', ['GRAALVM-README.md']),
    },
    license_files=['LICENSE_GRAALJS.txt'],
    third_party_license_files=['THIRD_PARTY_LICENSE_GRAALJS.txt'],
    dependencies=[
        'Truffle',
        'TRegex',
        'ICU4J',
    ],
    truffle_jars=[
        'graal-js:GRAALJS',
    ],
    support_distributions=[
        'graal-js:GRAALJS_GRAALVM_SUPPORT',
    ],
    library_configs=[
        mx_sdk.LanguageLibraryConfig(
            launchers=['bin/<exe:js>'],
            jar_distributions=['graal-js:GRAALJS_LAUNCHER'],
            main_class='com.oracle.truffle.js.shell.JSLauncher',
            build_args=['-H:+TruffleCheckBlockListMethods'],
            build_args_enterprise=[
                '-H:+AuxiliaryEngineCache',
                '-H:ReservedAuxiliaryImageBytes=2145482548',
            ] if not mx.is_windows() else [],
            language='js',
        )
    ],
    boot_jars=['graal-js:GRAALJS_SCRIPTENGINE'],
    installable=True,
    stability="supported",
))
Exemple #8
0
mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='TruffleSqueak',
        short_name='st',
        dir_name=LANGUAGE_ID,
        license_files=[],  # already included in `TRUFFLESQUEAK_GRAALVM_SUPPORT`.
        third_party_license_files=[],
        truffle_jars=[
            'trufflesqueak:TRUFFLESQUEAK',
            'trufflesqueak:TRUFFLESQUEAK_SHARED',
        ],
        support_distributions=[
            'trufflesqueak:TRUFFLESQUEAK_GRAALVM_SUPPORT',
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                language=LANGUAGE_ID,
                destination='bin/<exe:trufflesqueak>',
                jar_distributions=['trufflesqueak:TRUFFLESQUEAK_LAUNCHER'],
                main_class='%s.launcher.TruffleSqueakLauncher' % PACKAGE_NAME,
                extra_jvm_args=BASE_VM_ARGS,
                build_args=[
                    # '--pgo-instrument',  # (uncomment to enable profiling)
                    # '--pgo',  # (uncomment to recompile with profiling info)
                ],
            )
        ],
        post_install_msg=None,
    ))
Exemple #9
0
                                   },
                                   suite=_suite)


mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_suite,
    name='Sulong',
    short_name='slg',
    dir_name='llvm',
    license_files=[],
    third_party_license_files=[],
    dependencies=['Truffle', 'Truffle NFI', 'LLVM.org toolchain'],
    truffle_jars=['sulong:SULONG', 'sulong:SULONG_API'],
    support_distributions=[
        'sulong:SULONG_HOME',
        'sulong:SULONG_GRAALVM_DOCS',
    ],
    launcher_configs=[
        mx_sdk.LanguageLauncherConfig(
            destination='bin/<exe:lli>',
            jar_distributions=['sulong:SULONG_LAUNCHER'],
            main_class='com.oracle.truffle.llvm.launcher.LLVMLauncher',
            build_args=[],
            language='llvm',
        ),
    ] + _suite.toolchain.get_launcher_configs()
))

mx_sdk.register_graalvm_component(mx_sdk.GraalVmJreComponent(
    suite=_suite,
    name='LLVM.org toolchain',
Exemple #10
0
 mx_sdk.GraalVmLanguage(
     suite=_suite,
     name='Graal.js',
     short_name='js',
     license_files=[],
     third_party_license_files=[],
     dependencies=['Truffle', 'TRegex'],
     truffle_jars=[
         'graal-js:GRAALJS',
         'graal-js:ICU4J',
         'graal-js:ASM-7.1',
         'graal-js:ASM_TREE-7.1',
         'graal-js:ASM_ANALYSIS-7.1',
         'graal-js:ASM_COMMONS-7.1',
         'graal-js:ASM_UTIL-7.1',
     ],
     support_distributions=[
         'graal-js:GRAALJS_GRAALVM_SUPPORT',
     ],
     launcher_configs=[
         mx_sdk.LanguageLauncherConfig(
             destination='bin/<exe:js>',
             jar_distributions=['graal-js:GRAALJS_LAUNCHER'],
             main_class='com.oracle.truffle.js.shell.JSLauncher',
             build_args=[],
             language='js',
         )
     ],
     boot_jars=['graal-js:GRAALJS_SCRIPTENGINE'],
     installable=False,
 ))
Exemple #11
0
mx_unittest.add_config_participant(_unittest_config_participant)

mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='trufflex86',
        short_name='vmx86',
        dir_name='amd64',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=[
            'trufflex86:VM', 'trufflex86:VM_MEMORY_SVM', 'trufflex86:CORE',
            'trufflex86:POSIX'
        ],
        support_distributions=['trufflex86:VMX86_GRAALVM_SUPPORT'],
        polyglot_lib_build_args=[
            '-H:CLibraryPath=<path:VMX86_GRAALVM_SUPPORT>/clibraries/<os>-<arch>'
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                destination='bin/<exe:vmx86>',
                jar_distributions=['trufflex86:VMX86_LAUNCHER'],
                main_class='org.graalvm.vm.x86.launcher.AMD64Launcher',
                build_args=[
                    '-H:CLibraryPath=<path:VMX86_GRAALVM_SUPPORT>/clibraries/<os>-<arch>'
                ],
                language='amd64')
        ],
    ))

mx.update_commands(
    _suite, {
Exemple #12
0
 mx_sdk.GraalVmLanguage(
     suite=_suite,
     name='Graal.nodejs',
     short_name='njs',
     dir_name='nodejs',
     license_files=['LICENSE_GRAALNODEJS.txt'],
     third_party_license_files=['THIRD_PARTY_LICENSE_GRAALNODEJS.txt'],
     dependencies=['Graal.js'],
     truffle_jars=['graal-nodejs:TRUFFLENODE'],
     support_distributions=['graal-nodejs:TRUFFLENODE_GRAALVM_SUPPORT'],
     provided_executables=[
         'bin/<exe:node>',
         'bin/<cmd:npm>',
         'bin/<cmd:npx>',
     ],
     polyglot_lib_build_args=['--language:nodejs'],
     polyglot_lib_jar_dependencies=['graal-nodejs:TRUFFLENODE'],
     library_configs=[
         mx_sdk_vm.LibraryConfig(
             destination='lib/<lib:graal-nodejs>',
             jar_distributions=['graal-nodejs:TRUFFLENODE'],
             build_args=[
                 '--tool:all',
                 '--language:nodejs',
                 '-Dgraalvm.libpolyglot=true',  # `lib:graal-nodejs` should be initialized like `lib:polyglot` (GR-10038)
             ],
             home_finder=True,
         ),
     ],
     has_polyglot_lib_entrypoints=True,
     installable=True,
     stability="supported",
 ))
Exemple #13
0
    suite=_suite,
    name='Truffle Macro',
    short_name='tflm',
    dir_name='truffle',
    license_files=[],
    third_party_license_files=[],
    dependencies=['Truffle'],
    support_distributions=['truffle:TRUFFLE_GRAALVM_SUPPORT']
))


mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_suite,
    name='Truffle NFI',
    short_name='nfi',
    dir_name='nfi',
    license_files=[],
    third_party_license_files=[],
    dependencies=['Truffle'],
    truffle_jars=['truffle:TRUFFLE_NFI'],
    support_distributions=['truffle:TRUFFLE_NFI_GRAALVM_SUPPORT'],
    support_headers_distributions=['truffle:TRUFFLE_NFI_GRAALVM_HEADERS_SUPPORT']
))


mx.update_commands(_suite, {
    'check-filename-length' : [check_filename_length, ""],
    'create-dsl-parser' : [create_dsl_parser, "create the DSL expression parser using antlr"],
    'create-sl-parser' : [create_sl_parser, "create the SimpleLanguage parser using antlr"],
})
Exemple #14
0
 mx_sdk.GraalVmLanguage(
     suite=_fastr_suite,
     name='FastR',
     short_name='R',
     license_files=['LICENSE_FASTR'],
     third_party_license_files=['3rd_party_licenses_fastr.txt'],
     dependencies=['Truffle', 'LLVM Runtime Native', 'LLVM.org toolchain'],
     truffle_jars=['fastr:FASTR'],
     support_distributions=['fastr:FASTR_GRAALVM_SUPPORT'],
     provided_executables=[
         'bin/Rscript',
         'bin/R',
     ],
     include_in_polyglot=False,
     launcher_configs=[
         mx_sdk.LanguageLauncherConfig(
             destination='bin/RMain',
             jar_distributions=['fastr:FASTR_LAUNCHER'],
             main_class='com.oracle.truffle.r.launcher.RMain',
             build_args=[],
             language='R',
             is_main_launcher=False,
             default_symlinks=False,
         )
     ],
     stability="experimental",
     post_install_msg="NOTES:\n---------------\n" +
     "FastR should work out of the box on most Linux distributions and recent MacOS versions. "
     +
     "Run the following script to check FastR requirements and create a personal R packages library directory: \n"
     + "    ${graalvm_languages_dir}/R/bin/configure_fastr\n\n" +
     "The R component comes without native image by default. If you wish to build the native image, "
     +
     "which provides faster startup, but slightly slower peak performance, then run the following:\n"
     + "    gu rebuild-images R\n\n" +
     "The native image is then used by default. Pass '--jvm' flag to the R or Rscript launcher to "
     +
     "use JVM instead of the native image. Note that the native image is not stable yet and is intended for evaluation "
     +
     "and experiments for curious users. Some features may not work in the native image mode. "
     +
     "Most notably, the --polyglot switch works only in JVM mode (when --jvm is used).\n\n"
     +
     "See http://www.graalvm.org/docs/reference-manual/languages/r for more."
 ))
Exemple #15
0
 mx_sdk.GraalVmLanguage(
     suite=_suite,
     name='TruffleSqueak',
     short_name='st',
     dir_name=LANGUAGE_ID,
     license_files=[],  # already included in `TRUFFLESQUEAK_HOME`.
     third_party_license_files=[],
     dependencies=['Truffle'],
     truffle_jars=[
         'trufflesqueak:TRUFFLESQUEAK',
         'trufflesqueak:TRUFFLESQUEAK_SHARED',
     ],
     support_distributions=[
         'trufflesqueak:TRUFFLESQUEAK_HOME',
     ],
     launcher_configs=[
         mx_sdk.LanguageLauncherConfig(
             language=LANGUAGE_ID,
             destination='bin/<exe:trufflesqueak>',
             jar_distributions=['trufflesqueak:TRUFFLESQUEAK_LAUNCHER'],
             main_class='%s.launcher.TruffleSqueakLauncher' % PACKAGE_NAME,
             extra_jvm_args=BASE_VM_ARGS,
             build_args=[
                 # '--pgo-instrument',  # (uncomment to enable profiling)
                 # '--pgo',  # (uncomment to recompile with profiling info)
             ],
         )
     ],
     post_install_msg=
     (None if not _svm else "\nNOTES:\n---------------\n" +
      "TruffleSqueak (SVM) requires SDL2 to be installed on your system:\n"
      +
      "- On Debian/Ubuntu, you can install SDL2 via `sudo apt-get install libsdl2-2.0`.\n"
      +
      "- On macOS, you can install SDL2 with Homebrew: `brew install sdl2`.\n\n"
      +
      "The pre-compiled native image is used by default and does not include other languages. "
      +
      "Run TruffleSqueak in JVM mode (via `trufflesqueak --jvm`) for polyglot access."
      ),
 ))
def mx_post_parse_cmd_line(args):
    mx_graal_nodejs_benchmark.register_nodejs_vms()

mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_suite,
    name='Graal.nodejs',
    short_name='njs',
    dir_name='js',
    license_files=[],
    third_party_license_files=[],
    truffle_jars=['graal-nodejs:TRUFFLENODE'],
    support_distributions=['graal-nodejs:TRUFFLENODE_GRAALVM_SUPPORT'],
    provided_executables=[
        join('bin', 'node'),
        join('bin', 'npm'),
    ],
    polyglot_lib_build_args=[
        "-H:+ReportExceptionStackTraces",
        "-H:JNIConfigurationResources=svmnodejs.jniconfig,svmnodejs_jdkspecific.jniconfig",
        "-H:ReflectionConfigurationResources=svmnodejs.reflectconfig",
    ],
    polyglot_lib_jar_dependencies=[
        "graal-nodejs:TRUFFLENODE"
    ],
    has_polyglot_lib_entrypoints=True,
    installable=False,
))


mx.update_commands(_suite, {
    'node' : [node, ''],
Exemple #17
0
 mx_sdk.GraalVmLanguage(
     suite=_fastr_suite,
     name='FastR',
     short_name='R',
     license_files=['LICENSE_FASTR'],
     third_party_license_files=['3rd_party_licenses_fastr.txt'],
     truffle_jars=['fastr:FASTR'],
     support_distributions=['fastr:FASTR_GRAALVM_SUPPORT'],
     provided_executables=[
         'bin/Rscript',
         'bin/R',
     ],
     include_in_polyglot=False,
     post_install_msg="NOTES:\n---------------\n" +
     "Some R packages need a system-dependent configuration before they can be installed. "
     +
     "A generic configuration that works out of the box in most cases is provided by default. "
     +
     "If you wish to fine-tune the configuration to your system or should you encounter any "
     +
     "issues during R package installation, try running the following script that adjusts "
     + "the configuration to your system: \n" +
     "    ${graalvm_home}/jre/languages/R/bin/configure_fastr\n\n" +
     "The R component comes without native image by default. If you wish to build the native image, "
     +
     "which provides faster startup, but slightly slower peak performance, then run the following:\n"
     + "   ${graalvm_home}/jre/languages/R/bin/install_r_native_image\n\n" +
     "The native image is then used by default. Pass '--jvm' flag to the R or Rscript launcher to "
     +
     "use JVM instead of the native image. Note that the native image is not stable yet and is intended for evaluation "
     +
     "purposes and experiments. Some features may not work when the native image is installed, most notably the --polyglot switch. "
     +
     "The native image can be uninstalled using the installation script with 'uninstall' argument.\n\n"
     +
     "See http://www.graalvm.org/docs/reference-manual/languages/r for more."
 ))
Exemple #18
0
# register as a GraalVM language
#
# ----------------------------------------------------------------------------------------------------------------------
mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    suite=_suite,
    name='Graal.Python',
    short_name='pyn',
    dir_name='python',
    license_files=['LICENSE_GRAALPYTHON'],
    third_party_license_files=['3rd_party_licenses_graalpython.txt'],
    truffle_jars=[
        'graalpython:GRAALPYTHON',
    ],
    support_distributions=[
        'graalpython:GRAALPYTHON_GRAALVM_SUPPORT',
        'graalpython:GRAALPYTHON_GRAALVM_DOCS',
    ],
    launcher_configs=[
        mx_sdk.LanguageLauncherConfig(
            destination='bin/<exe:graalpython>',
            jar_distributions=['graalpython:GRAALPYTHON-LAUNCHER'],
            main_class='com.oracle.graal.python.shell.GraalPythonMain',
            build_args=[
                '--language:python',
                '--language:llvm',
            ]
        )
    ],
))


# ----------------------------------------------------------------------------------------------------------------------
#
# ----------------------------------------------------------------------------------------------------------------------
mx_sdk.register_graalvm_component(mx_sdk.GraalVmLanguage(
    name='Graal.Python',
    short_name='pyn',
    dir_name='python',
    documentation_files=['link:<support>/README_GRAALPYTHON.md'],
    license_files=['link:<support>/GraalCE_Python_license_3rd_party_license.txt'],
    third_party_license_files=[],
    truffle_jars=[
        'dependency:graalpython:GRAALPYTHON',
        'dependency:graalpython:GRAALPYTHON-ENV',
    ],
    support_distributions=[
        'extracted-dependency:graalpython:GRAALPYTHON_GRAALVM_SUPPORT',
        'extracted-dependency:graalpython:GRAALPYTHON_GRAALVM_DOCS',
    ],
    launcher_configs=[
        mx_sdk.LanguageLauncherConfig(
            destination='bin/<exe:graalpython>',
            jar_distributions=['dependency:graalpython:GRAALPYTHON-LAUNCHER'],
            main_class='com.oracle.graal.python.shell.GraalPythonMain',
            build_args=[
                '--language:python',
                '--language:llvm',
            ]
        )
    ],
), _suite)

Exemple #20
0
mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='Graal.js',
        short_name='js',
        standalone_dir_name='graaljs-<version>-<graalvm_os>-<arch>',
        standalone_dependencies={
            'GraalVM license files': ('', ['GRAALVM-README.md']),
        },
        license_files=[],
        third_party_license_files=[],
        dependencies=['Truffle', 'TRegex'],
        truffle_jars=[
            'graal-js:GRAALJS',
            'graal-js:ICU4J',
        ],
        support_distributions=[
            'graal-js:GRAALJS_GRAALVM_SUPPORT',
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                destination='bin/<exe:js>',
                jar_distributions=['graal-js:GRAALJS_LAUNCHER'],
                main_class='com.oracle.truffle.js.shell.JSLauncher',
                build_args=['-H:+TruffleCheckBlackListedMethods'],
                language='js',
            )
        ],
        boot_jars=['graal-js:GRAALJS_SCRIPTENGINE'],
    ))
Exemple #21
0
def mx_post_parse_cmd_line(args):
    mx_graal_nodejs_benchmark.register_nodejs_vms()


mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='Graal.nodejs',
        short_name='njs',
        dir_name='js',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=['graal-nodejs:TRUFFLENODE'],
        support_distributions=['graal-nodejs:TRUFFLENODE_GRAALVM_SUPPORT'],
        provided_executables=[
            join('bin', 'node'),
            join('bin', 'npm'),
        ],
        polyglot_lib_build_args=[
            "-H:JNIConfigurationResources=svmnodejs.jniconfig",
        ],
        polyglot_lib_jar_dependencies=["graal-nodejs:TRUFFLENODE"],
        has_polyglot_lib_entrypoints=True,
    ))

mx.update_commands(
    _suite, {
        'node': [node, ''],
        'npm': [npm, ''],
        'node-gyp': [node_gyp, ''],
        map(str, ci_files))))
    mx.verify_ci(args, base_suite, dest_suite, common_file=ci_files)


# ----------------------------------------------------------------------------------------------------------------------
#
# register as a GraalVM language
#
# ----------------------------------------------------------------------------------------------------------------------
mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=SUITE,
        name='Graal.Python license files',
        short_name='pynl',
        dir_name='python',
        license_files=['LICENSE_GRAALPYTHON.txt'],
        third_party_license_files=['3rd_party_licenses_graalpython.txt'],
        truffle_jars=[],
        support_distributions=[
            'graalpython:GRAALPYTHON_GRAALVM_LICENSES',
        ],
        priority=5))

mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=SUITE,
        name='Graal.Python',
        short_name='pyn',
        dir_name='python',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=[
Exemple #23
0
 mx_sdk.GraalVmLanguage(
     suite=_fastr_suite,
     name='FastR',
     short_name='R',
     license_files=['LICENSE_FASTR'],
     third_party_license_files=['3rd_party_licenses_fastr.txt'],
     dependencies=['Truffle', 'Sulong', 'LLVM.org toolchain'],
     truffle_jars=['fastr:FASTR'],
     support_distributions=['fastr:FASTR_GRAALVM_SUPPORT'],
     provided_executables=[
         'bin/Rscript',
         'bin/R',
     ],
     include_in_polyglot=False,
     post_install_msg="NOTES:\n---------------\n" +
     "FastR needs a system-dependent configuration because it links with some system libraries. "
     +
     "A generic configuration that works out of the box on most Linux distributions with GCC and gfortran installed is provided by default. "
     +
     "If you are on another system (e.g., MacOS), wish to fine-tune the configuration to your system, or should you encounter any "
     +
     "issues when running FastR or during R packages installation, try running the following script that adjusts "
     + "the configuration to your system: \n" +
     "    ${graalvm_languages_dir}/R/bin/configure_fastr\n\n" +
     "The user specific library directory was not created automatically. "
     +
     "You can either create the directory manually or edit file ${graalvm_languages_dir}/R/etc/Renviron to change it to any desired location. "
     +
     "Without the user specific library directory, users will need write permission for the GraalVM home directory in order to install R packages. "
     + "\n\n" +
     "The R component comes without native image by default. If you wish to build the native image, "
     +
     "which provides faster startup, but slightly slower peak performance, then run the following:\n"
     + "    ${graalvm_languages_dir}/R/bin/install_r_native_image\n\n" +
     "The native image is then used by default. Pass '--jvm' flag to the R or Rscript launcher to "
     +
     "use JVM instead of the native image. Note that the native image is not stable yet and is intended for evaluation "
     +
     "purposes and experiments. Some features may not work in the native image mode, most notably some Rcpp based packages. "
     +
     "The native image can be uninstalled using the installation script with 'uninstall' argument.\n\n"
     +
     "See http://www.graalvm.org/docs/reference-manual/languages/r for more."
 ))
Exemple #24
0

mx_benchmark.add_bm_suite(mx_sulong_benchmarks.SulongBenchmarkSuite())

mx_sdk.register_graalvm_component(
    mx_sdk.GraalVmLanguage(
        suite=_suite,
        name='Sulong',
        short_name='slg',
        dir_name='llvm',
        license_files=[],
        third_party_license_files=[],
        truffle_jars=['sulong:SULONG'],
        support_distributions=[
            'sulong:SULONG_HOME',
            'sulong:SULONG_GRAALVM_DOCS',
        ],
        launcher_configs=[
            mx_sdk.LanguageLauncherConfig(
                destination='bin/<exe:lli>',
                jar_distributions=['sulong:SULONG_LAUNCHER'],
                main_class='com.oracle.truffle.llvm.launcher.LLVMLauncher',
                build_args=[],
                language='llvm',
            )
        ],
    ))

COPYRIGHT_HEADER_BSD = """\
/*
 * Copyright (c) 2016, 2018, Oracle and/or its affiliates.
 *
 mx_sdk.GraalVmLanguage(
     suite=_SUITE,
     name='TruffleSqueak',
     short_name='st',
     dir_name=LANGUAGE_ID,
     license_files=[],  # already included in `TRUFFLESQUEAK_HOME`.
     third_party_license_files=[],
     dependencies=['Truffle'],
     truffle_jars=[
         'trufflesqueak:TRUFFLESQUEAK',
         'trufflesqueak:TRUFFLESQUEAK_SHARED',
     ],
     support_distributions=['trufflesqueak:TRUFFLESQUEAK_HOME'],
     provided_executables=[
         'bin/<cmd:trufflesqueak>',
     ],
     library_configs=[
         mx_sdk.LanguageLibraryConfig(
             language=LANGUAGE_ID,
             destination='lib/<lib:%svm>' % LANGUAGE_ID,
             launchers=['bin/<exe:trufflesqueak-launcher>'],
             jar_distributions=['trufflesqueak:TRUFFLESQUEAK_LAUNCHER'],
             main_class='%s.launcher.TruffleSqueakLauncher' % PACKAGE_NAME,
             build_args=[
                 '-H:+ReportExceptionStackTraces',
                 '-H:+DumpThreadStacksOnSignal',
                 '-H:+DetectUserDirectoriesInImageHeap',
                 '-H:+TruffleCheckBlockListMethods',
             ] + [] if _SUITE.is_release() else
             ['-Ob'],  # use quick build mode for development
         )
     ],
     stability="experimental",
     post_install_msg=
     (None if not _SVM else "\nTRUFFLESQUEAK NOTE:\n-------------------\n" +
      "By default, TruffleSqueak runs in JVM mode (`trufflesqueak --jvm ...`). "
      +
      "Running it in native mode (`trufflesqueak --native` ...) requires SDL2 to be installed on your system:\n"
      +
      "- On Debian/Ubuntu, you can install SDL2 via `sudo apt-get install libsdl2-2.0`.\n"
      +
      "- On macOS, you can install SDL2 with Homebrew: `brew install sdl2`."
      ),
 ))