MARTINI
MARTINI: The Little Match and Replace Tool for Automatic Code Rewriting - Published in JOSS (2022)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
✓Committers with academic emails
117 of 3312 committers (3.5%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords from Contributors
Repository
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Note: the repository does not accept github pull requests at this moment. Please submit your patches at http://reviews.llvm.org.
Basic Info
- Host: GitHub
- Owner: ajohnson-uoregon
- Default Branch: main
- Homepage: http://llvm.org
- Size: 1.67 GB
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
The LLVM Compiler Infrastructure
This directory and its sub-directories contain the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.
The README briefly describes how to get started with building LLVM. For more information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.
Getting Started with the LLVM System
Taken from here.
Overview
Welcome to the LLVM project!
The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer. It also contains basic regression tests.
C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.
Other components include: the libc++ C++ standard library, the LLD linker, and more.
Getting the Source Code and Building LLVM
The LLVM Getting Started documentation may be out of date. The Clang Getting Started page might have more accurate information.
This is an example work-flow and configuration to get and build the LLVM source:
- Checkout LLVM (including related sub-projects like Clang):
* ``git clone https://github.com/llvm/llvm-project.git``
* Or, on windows, ``git clone --config core.autocrlf=false
https://github.com/llvm/llvm-project.git``
- Configure and build LLVM and Clang:
* ``cd llvm-project``
* ``cmake -S llvm -B build -G <generator> [options]``
Some common build system generators are:
* ``Ninja`` --- for generating [Ninja](https://ninja-build.org)
build files. Most llvm developers use Ninja.
* ``Unix Makefiles`` --- for generating make-compatible parallel makefiles.
* ``Visual Studio`` --- for generating Visual Studio projects and
solutions.
* ``Xcode`` --- for generating Xcode projects.
Some common options:
* ``-DLLVM_ENABLE_PROJECTS='...'`` and ``-DLLVM_ENABLE_RUNTIMES='...'`` ---
semicolon-separated list of the LLVM sub-projects and runtimes you'd like to
additionally build. ``LLVM_ENABLE_PROJECTS`` can include any of: clang,
clang-tools-extra, cross-project-tests, flang, libc, libclc, lld, lldb,
mlir, openmp, polly, or pstl. ``LLVM_ENABLE_RUNTIMES`` can include any of
libcxx, libcxxabi, libunwind, compiler-rt, libc or openmp. Some runtime
projects can be specified either in ``LLVM_ENABLE_PROJECTS`` or in
``LLVM_ENABLE_RUNTIMES``.
For example, to build LLVM, Clang, libcxx, and libcxxabi, use
``-DLLVM_ENABLE_PROJECTS="clang" -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"``.
* ``-DCMAKE_INSTALL_PREFIX=directory`` --- Specify for *directory* the full
path name of where you want the LLVM tools and libraries to be installed
(default ``/usr/local``). Be careful if you install runtime libraries: if
your system uses those provided by LLVM (like libc++ or libc++abi), you
must not overwrite your system's copy of those libraries, since that
could render your system unusable. In general, using something like
``/usr`` is not advised, but ``/usr/local`` is fine.
* ``-DCMAKE_BUILD_TYPE=type`` --- Valid options for *type* are Debug,
Release, RelWithDebInfo, and MinSizeRel. Default is Debug.
* ``-DLLVM_ENABLE_ASSERTIONS=On`` --- Compile with assertion checks enabled
(default is Yes for Debug builds, No for all other build types).
* ``cmake --build build [-- [options] <target>]`` or your build system specified above
directly.
* The default target (i.e. ``ninja`` or ``make``) will build all of LLVM.
* The ``check-all`` target (i.e. ``ninja check-all``) will run the
regression tests to ensure everything is in working order.
* CMake will generate targets for each tool and library, and most
LLVM sub-projects generate their own ``check-<project>`` target.
* Running a serial build will be **slow**. To improve speed, try running a
parallel build. That's done by default in Ninja; for ``make``, use the option
``-j NNN``, where ``NNN`` is the number of parallel jobs to run.
In most cases, you get the best performance if you specify the number of CPU threads you have.
On some Unix systems, you can specify this with ``-j$(nproc)``.
* For more information see [CMake](https://llvm.org/docs/CMake.html).
Consult the Getting Started with LLVM page for detailed information on configuring and compiling LLVM. You can visit Directory Layout to learn about the layout of the source code tree.
Getting in touch
Join LLVM Discourse forums, discord chat or #llvm IRC channel on OFTC.
The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.
Owner
- Login: ajohnson-uoregon
- Kind: user
- Repositories: 11
- Profile: https://github.com/ajohnson-uoregon
JOSS Publication
MARTINI: The Little Match and Replace Tool for Automatic Code Rewriting
Authors
Université du Québec à Montréal, Montréal, QC, Canada
University of Oregon, Eugene, OR, USA
Tags
Clang meteprogramming refactoring AST matchers Euro-ParGitHub Events
Total
Last Year
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Chris Lattner | s****e@n****g | 32,028 |
| Craig Topper | c****r@g****m | 9,912 |
| Simon Pilgrim | l****v@r****k | 9,156 |
| Rafael Espindola | r****a@g****m | 7,379 |
| Ted Kremenek | k****k@a****m | 6,108 |
| Sanjay Patel | s****l@r****m | 5,838 |
| Daniel Dunbar | d****l@z****g | 5,441 |
| Evan Cheng | e****g@a****m | 5,371 |
| Douglas Gregor | d****r@a****m | 5,363 |
| Matt Arsenault | M****t@a****m | 5,080 |
| Benjamin Kramer | b****a@g****m | 4,900 |
| Dan Gohman | g****n@a****m | 4,781 |
| Rui Ueyama | r****u@g****m | 4,591 |
| Richard Smith | r****m@m****k | 4,540 |
| Chandler Carruth | c****c@g****m | 3,939 |
| Reid Spencer | r****r@r****m | 3,704 |
| Bill Wendling | i****d@g****m | 3,700 |
| Eric Christopher | e****o@g****m | 3,512 |
| Fangrui Song | i@m****e | 3,472 |
| Nico Weber | t****s@c****g | 3,296 |
| Reid Kleckner | r****k@g****m | 3,172 |
| David Blaikie | d****e@g****m | 3,154 |
| Fariborz Jahanian | f****n@a****m | 3,009 |
| NAKAMURA Takumi | g****c@g****m | 2,901 |
| Greg Clayton | g****n@a****m | 2,820 |
| Devang Patel | d****l@a****m | 2,776 |
| Jim Grosbach | g****h@a****m | 2,523 |
| Pavel Labath | l****h@g****m | 2,487 |
| Argyrios Kyrtzidis | a****i@g****m | 2,475 |
| Jakob Stoklund Olesen | s****d@2****k | 2,448 |
| and 3,282 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 0
- Average time to close issues: 7 days
- Average time to close pull requests: N/A
- Total issue authors: 2
- Total pull request authors: 0
- Average comments per issue: 0.5
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- zclllyybb (1)
- tokuso2 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- andymckay/labeler 1.0.4 composite
- actions/checkout v2 composite
- actions/github-script v5 composite
- actions/setup-node v2 composite
- andymckay/labeler 1.0.4 composite
- dessant/repo-lockdown v2 composite
- ubuntu 20.04 build
- ubuntu 16.04 build
- ubuntu bionic build
- debian 10 build
- ubuntu jammy build
- @types/mocha 2.2.45 development
- @types/node 7.0.43 development
- mocha 4.0.1 development
- tslint 5.8.0 development
- typescript 2.6.2 development
- vsce ^1.36.3 development
- vscode 1.1.10 development
- vscode-debugadapter-testsupport 1.25.0 development
- VSSDK.CoreUtility 10.0.4
- VSSDK.CoreUtility.10 10.0.4
- VSSDK.Editor 10.0.4
- VSSDK.Editor.10 10.0.4
- VSSDK.IDE 7.0.4
- VSSDK.IDE.10 10.0.4
- VSSDK.IDE.8 8.0.4
- VSSDK.IDE.9 9.0.3
- VSSDK.OLE.Interop 7.0.4
- VSSDK.Shell.10 10.0.3
- VSSDK.Shell.Immutable.10 10.0.3
- VSSDK.Shell.Interop 7.0.4
- VSSDK.Shell.Interop.8 8.0.3
- VSSDK.Shell.Interop.9 9.0.3
- VSSDK.Text 10.0.4
- VSSDK.Text.10 10.0.4
- VSSDK.TextManager.Interop 7.0.4
- VSSDK.TextManager.Interop.8 8.0.4
- graphviz *
- humanize *
- matplotlib *
- pandas *
- psutil *
- seaborn *
- ruamel.yaml ==0.17.16
- ruamel.yaml.clib ==0.2.6
- coverage * test
- coveralls * test
- pytest * test
- pytest-capturelog * test
- pytest-cov * test
- ptyprocess >=0.5
