3c-actions's People
Forkers
purs3lab3c-actions's Issues
Queued workflow runs Clean job before running workflow finish
I think this is what's happening anyways. See this failed workflow run where the Test 3C job fails with ninja: error: loading 'build.ninja': No such file or directory
.
Possible improvements to YAML generation in generate-workflow.py
Some ideas to make the YAML generation in generate-workflow.py
better after #7:
- From John: "The python script could include a call to yamllint to sanity check the generated workflow. Easy enough to run manually, but it might catch trivial errors in future changes." This would require everyone who runs
generate-workflow.py
to install yamllint, so we'd have to think about whether it's worth it. - We could generate the output using a YAML library rather than a bunch of manual string manipulation. (Or maybe there is even a library specifically for generating GitHub workflow files?) If there are hard-coded chunks of the workflow file that are easier to understand in YAML format than as hard-coded calls to the YAML library to build the corresponding data structures, we can probably just have the YAML library parse hard-coded YAML strings.
Icecast: Include `src/*/test*.c` once 3C can handle multiple `main`s
From #13 (review):
It looks like this is skipping the
test.c
files (which contain duplicatemain
s) without an explicit--skip
flag. This behavior is fine for now since the duplicate mains would cause 3c to raise an error, but we will probably want to include them when correctcomputation/checkedc-clang#505 is merged.
The reason these files are not being included now appears to be that they are not built by the default ./configure && make
, so Bear doesn't add them to the compilation database. We'd have to figure out the correct arguments to ./configure
and/or make
to build the files.
Clean up `generate-workflow.py` after paper submission
#33 added a ton of duplicate code to generate-workflow.py
for different versions of the source code for each benchmark (original, manual port, C3 reversion of manual port). When we have time, we should clean this up (unless we decide to delete the extra versions anyway once we're done with the paper).
Speed up the expanded benchmark workflow
With #7, the workflow takes over an hour to run. Some ideas to speed it up:
- (Done in #10) Use a release build of 3C and Clang, or RelWithDebInfo if having the debug info is useful (e.g., if it shows up in stack traces for assertion failures: I'd need to re-test that).
- (Done in #15) For the CMake projects, replace
make
withninja
. For the non-CMake projects, manually pass the appropriate flags tomake
for a parallel build. - Generate the compilation database without actually building the unconverted code.
- For the CMake projects, we should just be able to use
CMAKE_EXPORT_COMPILE_COMMANDS
, although I don't know ifconvert_project
handles this correctly; it may need minor changes. - For the non-CMake projects, we could try to use Bear's "wrapper" mode that uses a fake compiler that doesn't actually perform compilation, but this appears to require a newer version of Bear than is currently available via Ubuntu; we'd have to manually build our own version on gamera.
- For the CMake projects, we should just be able to use
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.