{"id":18888163,"url":"https://github.com/consol/jcon-2019-democode-graalvm","last_synced_at":"2026-02-24T13:30:15.715Z","repository":{"id":72844614,"uuid":"210353356","full_name":"ConSol/jcon-2019-democode-graalvm","owner":"ConSol","description":null,"archived":false,"fork":false,"pushed_at":"2019-09-25T07:38:18.000Z","size":18932,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-31T05:28:57.465Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ConSol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-23T12:47:06.000Z","updated_at":"2021-05-16T12:14:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"e2467ad1-5fb9-4211-80f5-97205001f94a","html_url":"https://github.com/ConSol/jcon-2019-democode-graalvm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fjcon-2019-democode-graalvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fjcon-2019-democode-graalvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fjcon-2019-democode-graalvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConSol%2Fjcon-2019-democode-graalvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ConSol","download_url":"https://codeload.github.com/ConSol/jcon-2019-democode-graalvm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239859562,"owners_count":19708863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T07:42:34.423Z","updated_at":"2026-02-24T13:30:15.659Z","avatar_url":"https://github.com/ConSol.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"This module provides a testing playground for the GraalVM.\n\nIn submodule `benchmarks`, some benchmarks are implemented. Note that the \n`resources` folder contains some c-bitcode / javascript / python files, which\nare then used by Graal's to run from java. Each benchmark is implemented as \nstandalone function (e.g. in `fibonacci.iterative.js`) and wrapped to execute\ndirectly in javascript (e.g. in `fibonacci.iterative.starter.js`). The\ncomputation code, however, is in both implementations exactly the same.\n\nSubmodule `jmh` wraps each benchmark in a JMH test. Tests are executed with the \n`SingleShotTime` strategy. Each test consists of 10 warmup iterations and 10\ntest iterations. Results are reported in Seconds. \n\nIn submodule `native`, for each benchmark a executable class with some `public \nstatic void main(String... args)` is created. This mimics the behaviour of the \nJMH test from the `jmh` submodule. Folder `scripts` holds a file\n`nativeScript.sh` to compile one native image per benchmark. For this to work, \nit is necessary to export the environment variable `GRAALVM_HOME` to some \nexisting GraalVM. the native images are created within the `target` folder.\n\n## Compile\n\nIn order to compile and package the project, `JAVA_HOME` must be set to a valid\nGraalVM root dir with javascript-, llvm- and python-support enabled. Compile and \npackage the project by executing\n\n    \u003e mvn clean package\n\n## JMH Test\nTo execute tests, just execute\n\n    java -jar dus.graal.jmh-1.0-SNAPSHOT.jar\n    \nIf you want to runs only a subset of tests, you can provide a regex matcher as \ncommand line argument. For example, if you only with to execute fibonacci-tests,\nrun\n\n    java -jar dus.graal.jmh-1.0-SNAPSHOT.jar \"Fibonacci\n\n## JavaScript- and Python test\nTo execute the JavaScript- and Python-sources within an `js` or `python` parser\nrespectively, go to the corresponding folder:\n\n* for `js`: `benchmark/src/main/resources/js/`\n* for `python`: `benchmark/src/main/resources/python`\n\nExecute the test by running the `*starter*`-file(s), e.g.:\n\n    \u003e js fibonacci.recursive.starter.js\nbenchmark parameters for `js`-files are hard-coded within the file. For `python`, \nthe benchmark parameter can pe passed as first command line argument, e.g.:\n\n    \u003e python fibonacci_recursive_starter.py 40\n\n## C tests\nIn order to execute C code through Graal, we need to compile the code to\nbitcode. Some C/C++ compilers support compilation to bitcode, e.g.\n[`clang`][clang]. \n\n## Native Image build\nTo create the native images, `GRAALVM_HOME` must point to a valid Graal \ninstallation directory. Build the native images by executing\n\n    \u003e native/scripts/nativeCompile.sh\n\nYou will find the native images in folder `native/target`. Native image\ncompilation is not added to the maven build process on purpose since it takes\nquite some time.\n\n## Contact Information \n\nIf you have questions or would like to contribute, contact me via \n\u003ca href=\"mailto:marco.bungart@consol.de\"\u003emarco(dot)bungart(at)consol(dot)de\u003c/a\u003e\nor \u003ca href=\"https://twitter.com/turing85\"\u003eTwitter\u003c/a\u003e.\n\n[clang]: https://clang.llvm.org/","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsol%2Fjcon-2019-democode-graalvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconsol%2Fjcon-2019-democode-graalvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconsol%2Fjcon-2019-democode-graalvm/lists"}