Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
â—‹CITATION.cff file
-
â—‹codemeta.json file
-
â—‹.zenodo.json file
-
✓DOI references
Found 2 DOI reference(s) in README -
â—‹Academic publication links
-
â—‹Academic email domains
-
â—‹Institutional organization owner
-
â—‹JOSS paper metadata
-
â—‹Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
Repository
Gyre, a new compiler IR 🌀 (WIP)
Basic Info
- Host: GitHub
- Owner: baioc
- License: artistic-2.0
- Language: D
- Default Branch: master
- Homepage: https://baioc.github.io/gyred/gyre.html
- Size: 280 KB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
GyreD
This is a reference implementation of Gyre, a compiler IR designed as a practical "linguistic switchbox", or UNCOL.
As such, the IR should be able to efficiently accommodate many high-level languages and target architectures. In order to test this, this repository ~~contains~~ will contain multiple compilers using the same middle-end infrastructure.
Work In Progress
This is an early-stage prototype of an IR designed as part of my Bachelor thesis, which provides an extensive survey on compilers, portable IRs and the UNCOL solution to "the problem of programming communication with changing machines", also known as "the compiler construction problem".
If you are looking for a ready-to-use optimization framework, a full compiler, or benchmark results for any of these, come back later. In that case, I suggest using GitHub to watch this repository's releases, and/or star it so I know there are people interested. In any case, here is an example of the current IR builder API.
Still, here are some figures from my thesis, to spark your curiosity. Check out the docs for more information.
| Logical structure of an optimizing compiler | UNCOL as a linguistic switchbox |
|:---:|:---:|
|
|
|
| Gyre subgraph with explicit concurrency | Mapping of classic SSACFG constructs |
|:---:|:---:|
|
|
|
| Memory operations in Gyre | IR types and macros |
|:---:|:---:|
|
|
|
Development
These are the configuration files which I use to build, test and debug this project in VSCode.
The only tool needed is DUB, but I also recommend the awesome VSCode extensions by WebFreak.
tasks.json
json
{
"version": "2.0.0",
"tasks": [
{
"label": "dub: Run unit tests",
"group": {
"kind": "test",
"isDefault": true
},
"type": "shell",
"command": "dub test --coverage",
"problemMatcher": {
"owner": "d",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "^(.*)@(.*)\\((\\d+)\\):\\s+(.*)$",
"code": 1,
"file": 2,
"location": 3,
"message": 4,
}
},
"presentation": {
"echo": false,
"clear": true,
},
},
{
"label": "dub: Build project docs",
"group": {
"kind": "build",
"isDefault": true
},
"type": "shell",
"command": "dub run adrdox@2.5.2 -- . -i -o docs",
"problemMatcher": {
"owner": "d",
"fileLocation": ["relative", "${workspaceFolder}"],
"pattern": {
"regexp": "^(.*)\\((\\d+,\\d+)\\):\\s+(Error|Warning):\\s+(.*)$",
"file": 1,
"location": 2,
"severity": 3,
"message": 4,
}
},
"presentation": {
"echo": false,
"clear": true,
"reveal": "silent",
},
}
],
}
launch.json
json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug application",
"type": "gdb",
"request": "launch",
"cwd": "${workspaceRoot}",
"target": "gyred",
},
{
"name": "Debug unittest",
"type": "gdb",
"request": "launch",
"cwd": "${workspaceRoot}",
"target": "gyred-test-unittest",
},
]
}
Owner
- Name: Gabriel B. Sant'Anna
- Login: baioc
- Kind: user
- Location: Earth, Solar System, Local Interstellar Cloud, Local Bubble, Orion-Cygnus Galactic Arm, Milky Way
- Company: BRy Tecnologia
- Website: https://baioc.github.io/
- Twitter: gbaiocs
- Repositories: 37
- Profile: https://github.com/baioc
"Don't let school get in the way of your education." - Mark Twain
GitHub Events
Total
Last Year
Dependencies
- betterclist ==0.2.2