https://github.com/b1f6c1c4/wicky-monads
Pain-reliever for build systems.
Science Score: 26.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
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.6%) to scientific vocabulary
Repository
Pain-reliever for build systems.
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
wicky-monads
Pain-reliever for build systems.
Basic Use Cases
Update
./foo.incif and only if./codegenemits a different content.bash wic -o ./foo.inc -- ./codegen- Using
wictogether withninja'srestatcan significantly reduce the amount of re-bulids when any sort of code generation is present.
- Using
Run
./test1, report failure in./rpt1.monadinstead of returning error:bash monad -o ./rpt1 -- ./test1- Using
monad(1)is better thanmake --keep-goingbecause the execution details are saved into<output>.monad. - Furthermore,
monad(1)also saves the amount of time and memory use during execution into<output>.monad.
- Using
Run
./test2for a maximum of 1 minute, report timeout and/or failure in./rpt2.monad:bash monad -t 1:00 -o ./rpt2 -- ./test2monad(1)is better thantimeout(1)because the latter doesn't have a chance to save the execution detail (e.g. memory used before killing.)
Run
wc -lon./rpt1and/or./rpt2(whichever succeeded,) write everything to./final.json:bash monad --merge -o ./final.json --partial ./rpt1 ./rpt2 -- wc -lmonad(1)here will be very helpful if you want to gather all the results together, whether succeeded or failed, into a big file for data visualization.
Usage
wic(1): Write-If-Changed
Usage: wic -o <output> -- <executable> <args>...
Run the <executable> with <args>..., redirect its output to <output> if
and only if their content differs.
monad(1): Monoid in the Category of Endofunctors
Usage: monad [-t <time-limit>] [-m <mem-limit>] [-M|--merge]
[-p|--partial] [-P|--panic] [-v]
-o <output> <input>... -- <executable> <arg>...
Run <executable> with <arg>... <input>... and redirect stdout to <output>
Info from <input>.monad... will be read and (with --partial) failed ones
will be skipped, or (no --partial) any faulty input will cancel the run.
If the <executable> timeout/failed, <output>.monad will record the case.
If the <executable> succeed, <output>.monad will record duration and mem.
If --merge is specified, <output> itself will store such info instead.
If --panic is given, successful run will return 0, failed/cancelled will
return 1, errored will return 2. If --panic is not given, it will always
return 0 unless errored. <output> will be created/removed according to the
return value of monad (0 = always exist, 1/2 = always removed).
Install
Use CMake.
License
MIT
Owner
- Login: b1f6c1c4
- Kind: user
- Location: NJ, USA
- Company: Princeton University
- Repositories: 26
- Profile: https://github.com/b1f6c1c4
52BE D143 A92D BE96 2B83 092B 9BAC 0164 9600 1E70
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total 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
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