{"id":21807124,"url":"https://github.com/mmtk/mmtk-jikesrvm","last_synced_at":"2026-02-10T05:02:38.471Z","repository":{"id":36982959,"uuid":"249873810","full_name":"mmtk/mmtk-jikesrvm","owner":"mmtk","description":"JikesRVM binding for MMTk","archived":false,"fork":false,"pushed_at":"2026-02-06T01:23:10.000Z","size":564,"stargazers_count":10,"open_issues_count":18,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2026-02-06T11:19:39.843Z","etag":null,"topics":["java","jikesrvm","mmtk","vm"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmtk.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE-APACHE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"dco":null,"cla":null}},"created_at":"2020-03-25T03:02:24.000Z","updated_at":"2026-02-06T01:23:15.000Z","dependencies_parsed_at":"2023-02-15T03:01:59.125Z","dependency_job_id":"785cacbd-a03c-4b9c-b525-c6988ba0ec34","html_url":"https://github.com/mmtk/mmtk-jikesrvm","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/mmtk/mmtk-jikesrvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmtk%2Fmmtk-jikesrvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmtk%2Fmmtk-jikesrvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmtk%2Fmmtk-jikesrvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmtk%2Fmmtk-jikesrvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmtk","download_url":"https://codeload.github.com/mmtk/mmtk-jikesrvm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmtk%2Fmmtk-jikesrvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29290991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T03:42:42.660Z","status":"ssl_error","status_checked_at":"2026-02-10T03:42:41.897Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["java","jikesrvm","mmtk","vm"],"created_at":"2024-11-27T12:37:11.917Z","updated_at":"2026-02-10T05:02:38.152Z","avatar_url":"https://github.com/mmtk.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MMTk-JikesRVM  \n  \nThis repository provides the JikesRVM binding for MMTk.\n  \n## Contents\n\n* [Requirements](#requirements)\n* [Build](#build)\n* [Test](#test)\n  \n## Requirements\n  \nWe maintain an up to date list of the prerequisites for building MMTk and its bindings in the [mmtk-dev-env](https://github.com/mmtk/mmtk-dev-env) repository.\nPlease make sure your dev machine satisfies those prerequisites.\n\nMMTk/JikesRVM supports `linux-i686` and `linux-x86_64` (as a 32-bit program).\n  \n### Before you continue\n\nIf you use the set-up explained in [mmtk-dev-env](https://github.com/mmtk/mmtk-dev-env), make sure to do the following steps before continuing to the [Build](#build) section:\n\n1. Use a proper Rust toolchain. The minimal supported Rust version for MMTk-JikesRVM binding is 1.61.0. Make sure your Rust version is higher than this. We test MMTk-JikesRVM\nbinding with Rust 1.66.1 (as specified in [`rust-toolchain`](mmtk/rust-toolchain)).\n\n2. Set `openjdk-8-jdk` as the default JDK (openjdk-8-jdk is a build requirement of JikesRVM), e.g. by running:\n\n```console\n$ update-java-alternatives --set java-1.8.0-openjdk-amd64\n```\n\n3. You may also need to use ssh-agent to authenticate with github (see [here](https://github.com/rust-lang/cargo/issues/3487) for more info):\n\n```console\n$ eval `ssh-agent`\n$ ssh-add\n```\n\n### Getting Sources (for MMTk and JikesRVM)\n\nTo work on JikesRVM binding, we expect you have a directory structure like below. This section gives instructions on how to check out\nthose repositories with the correct version.\n\n```\nYour working directory/\n├─ mmtk-jikesrvm/\n│  ├─ jikesrvm/\n│  └─ mmtk/\n├─ jikesrvm/\n└─ mmtk-core/ (optional)\n```\n\n#### Checkout Binding\n\nFirst clone this binding repo:\n\n```console\n$ git clone https://github.com/mmtk/mmtk-jikesrvm.git\n```\n\nThe binding repo mainly consists of two folders, `mmtk` and `jikesrvm`.\n* `mmtk` is logically a part of MMTk. It exposes APIs from `mmtk-core` and implements the `VMBinding` trait from `mmtk-core`.\n* `jikesrvm` is logically a part of JikesRVM. When we build JikesRVM, we copy this folder to the JikesRVM repo (which overwrite the same files,\n  if any, in the JikesRVM repo) and treat it as if it is a part of the JikesRVM project.\n\n#### Checkout JikesRVM\n\nYou would need our JikesRVM fork which includes the support for a third party heap (like MMTk). We assume you put `jikesrvm` as a sibling of `mmtk-jikesrvm`.\n[`Cargo.toml`](mmtk/Cargo.toml) defines the version of JikesRVM that works with the version of `mmtk-jikesrvm`.\n\nAssuming your current working directory is the parent folder of `mmtk-jikesrvm`, you can checkout out JikesRVM and the correct version using:\n```console\n$ git clone https://github.com/mmtk/jikesrvm.git\n$ git -C jikesrvm checkout `sed -n 's/^jikesrvm_version.=.\"\\(.*\\)\"$/\\1/p' \u003c mmtk-jikesrvm/mmtk/Cargo.toml`\n```\n\n#### Checkout MMTk core (optional)\n\nThe MMTk-JikesRVM binding points to a specific version of `mmtk-core` as defined in [`Cargo.toml`](mmtk/Cargo.toml). When you build the binding,\ncargo will fetch the specified version of `mmtk-core`. If you would like to use\na different version or a local `mmtk-core` repo, you can checkout `mmtk-core` to a separate repo and modify the `mmtk` dependency in `Cargo.toml`.\n\nFor example, you can check out `mmtk-core` as a sibling of `mmtk-jikesrvm`.\n\n```console\n$ git clone https://github.com/mmtk/mmtk-core.git\n```\n\nAnd change the `mmtk` dependency in `Cargo.toml` (this assumes you put `mmtk-core` as a sibling of `mmtk-jikesrvm`):\n\n```toml\nmmtk = { path = \"../../mmtk-core\" }\n```\n\n## Build\n\nMMTk building is integrated as as a step of the JikesRVM build.\nWe recommend using the `buildit` script for the JikesRVM build.\n\n```console\n$ cd repos/jikesrvm\n$ ./bin/buildit localhost RBaseBaseSemiSpace --use-third-party-heap=../mmtk-jikesrvm --use-third-party-build-configs=../mmtk-jikesrvm/jikesrvm/build/configs/ --use-external-source=../mmtk-jikesrvm/jikesrvm/rvm/src --m32\n```\n\nThe JikesRVM binary is under `jikesrvm/dist/RBaseBaseSemiSpace_x86_64_m32-linux/rvm` and the MMTk shared library is `jikesrvm/dist/RBaseBaseSemiSpace_x86_64_m32-linux/libmmtk.so`.\n\nYou can build with other build configs, check `mmtk-jikesrvm/jikesrvm/build/configs`.\n\n## Test\n\n### Run DaCapo Benchmarks\n\nFetch DaCapo:\n\n```console\n$ # run from the repo/jikesrvm directory\n$ mkdir -p benchmarks\n$ wget https://downloads.sourceforge.net/project/dacapobench/archive/2006-10-MR2/dacapo-2006-10-MR2.jar -O benchmarks/dacapo-2006-10-MR2.jar\n```\n\nRun `rvm`:\n\n```console\n$ LD_LIBRARY_PATH=dist/RBaseBaseSemiSpace_x86_64_m32-linux/ dist/RBaseBaseSemiSpace_x86_64_m32-linux/rvm -Xms75M -Xmx75M -jar benchmarks/dacapo-2006-10-MR2.jar fop\n===== DaCapo fop starting =====\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] copyspace0: Triggering collection\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] copyspace1: Triggering collection\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] copyspace0: Triggering collection\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] immortal: Triggering collection\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] copyspace0: Triggering collection\nThreadId(1)[INFO:/root/mmtk-core/src/plan/global.rs:112]   [POLL] copyspace1: Triggering collection\n===== DaCapo fop PASSED in 3934 msec =====\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmtk%2Fmmtk-jikesrvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmtk%2Fmmtk-jikesrvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmtk%2Fmmtk-jikesrvm/lists"}