{"id":21161938,"url":"https://github.com/princetonuniversity/scaf","last_synced_at":"2025-07-09T14:31:50.735Z","repository":{"id":43874974,"uuid":"282920791","full_name":"PrincetonUniversity/SCAF","owner":"PrincetonUniversity","description":"A Speculation-Aware Collaborative Dependence Analysis Framework","archived":false,"fork":false,"pushed_at":"2024-06-29T22:23:30.000Z","size":818,"stargazers_count":28,"open_issues_count":2,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-07-01T03:28:23.317Z","etag":null,"topics":["alias-analysis","dependence-analysis","llvm","memory-analysis","speculation","static-analysis"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrincetonUniversity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.TXT","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":"2020-07-27T14:23:42.000Z","updated_at":"2024-07-01T03:28:23.318Z","dependencies_parsed_at":"2024-04-28T23:29:52.256Z","dependency_job_id":"4bf9a1ae-da49-4139-955b-e4823368f10e","html_url":"https://github.com/PrincetonUniversity/SCAF","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrincetonUniversity%2FSCAF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrincetonUniversity%2FSCAF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrincetonUniversity%2FSCAF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrincetonUniversity%2FSCAF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrincetonUniversity","download_url":"https://codeload.github.com/PrincetonUniversity/SCAF/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225562312,"owners_count":17488632,"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":["alias-analysis","dependence-analysis","llvm","memory-analysis","speculation","static-analysis"],"created_at":"2024-11-20T13:19:10.032Z","updated_at":"2024-11-20T13:19:10.502Z","avatar_url":"https://github.com/PrincetonUniversity.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework\n\nSCAF is an innovative dependence analysis framework that combines in a modular fashion memory analyses and (optionally) speculative assertions.\n\n### Notice\nThe full implementation of SCAF is not yet integrated in this repository. All the currectly available memory analysis modules are included, but the speculation modules along with a few other components (e.g., profilers) are currently part of another repository (https://github.com/PrincetonUniversity/cpf).\n\n### Publications\nThe novelty, design, implementation, and evaluation of this work is described in the PLDI '20 paper by Apostolakis et al. titled \"SCAF: A Speculation-Aware Dependence Analysis Framework\" ([ACM DL](https://dl.acm.org/doi/10.1145/3385412.3386028), [PDF](https://liberty.princeton.edu/Publications/pldi20_scaf.pdf), [Talk](https://youtu.be/kDaJaYB09p4), [Abstract](https://youtu.be/-fU0zDbpJWc)).\n\nTo reproduce the evaluation results presented in the PLDI 2020 paper, please refer to the artifact of the paper: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3751586.svg)](https://doi.org/10.5281/zenodo.3751586)\n\nThis work builds upon CAF (CGO '17 by Johnson et al., [ACM DL](https://dl.acm.org/doi/10.5555/3049832.3049849)).\n\nIf you use SCAF in a publication, we would appreciate a citation to the PLDI '20 paper:\n\n```\n@inproceedings{apostolakis:2020:pldi,\nauthor = {Apostolakis, Sotiris and Xu, Ziyang and Tan, Zujun and Chan, Greg and Campanoni, Simone and August, David I.},\ntitle = {SCAF: A Speculation-Aware Collaborative Dependence Analysis Framework},\nyear = {2020},\nisbn = {9781450376136},\npublisher = {Association for Computing Machinery},\naddress = {New York, NY, USA},\nurl = {https://doi.org/10.1145/3385412.3386028},\ndoi = {10.1145/3385412.3386028},\nbooktitle = {Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation},\npages = {638–654},\nnumpages = {17},\nkeywords = {collaboration, dependence analysis, speculation},\nlocation = {London, UK},\nseries = {PLDI 2020}\n}\n```\n\n### Version Numbering Scheme\n\nThe version number is in the form of \\[v _Major.Minor.Revision_ \\]\n- **Major**: Each major version matches a specific LLVM version (e.g., version 9 matches LLVM 9, version 11 matches LLVM 11)\n- **Minor**: Starts from 0, each minor version represents either one or more API replacements/removals that might impact the users OR a forced update every six months (the minimum minor update frequency)\n- **Revision**: Starts from 0; each revision version may include bug fixes or incremental improvements\n\n#### Update Frequency\n\n- **Major**: Matches the LLVM releases on a best-effort basis\n- **Minor**: At least once per six months, at most once per month (1/month ~ 2/year)\n- **Revision**: At least once per month, at most twice per week (2/week ~ 1/month)\n\n\n### Prerequisites\nLLVM 9.0.1\n\n### Build SCAF\nTo build and install SCAF, run from the repository root directory: `make`\n\nRun `make clean` from the root directory to clean the repository.\n\nRun `make uninstall` from the root directory to uninstall SCAF.\n\n### Configuration\nSCAF is customizable and can be used as a conservative memory analysis if the speculation modules are disabled.\n\n### Users\nIf you have any trouble using this framework feel free to create an issue! We will try our best to help.\n\n### Contributions\nWe welcome contributions from the community to improve this framework and evolve it to cater for more users.\n\n### License\nSCAF is licensed under the [MIT License](./LICENSE.TXT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprincetonuniversity%2Fscaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprincetonuniversity%2Fscaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprincetonuniversity%2Fscaf/lists"}