shake
sd
Our great sponsors
shake | sd | |
---|---|---|
11 | 31 | |
754 | 5,334 | |
- | - | |
6.7 | 8.0 | |
3 months ago | about 2 months ago | |
Haskell | Rust | |
BSD 3-clause "New" or "Revised" License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
shake
-
Ninja is enough build system
Another interesting implementation is Shake: https://shakebuild.com/
It is technically a Haskell DSL, but supports Ninja files, time estimates and has tools for linting and profiling.
-
Buck2: Our open source build system
They explicitly refer to Shake build system and Build Systems a la Carte paper.
-
Straightforward Makefile Tutorial that bring together best practices once and for all.
The one paper that gave me hope about build systems was Build systems à la carte: Theory and practice, by Andrey Mokhov, Neil Mitchell, and Simon Peyton Jones. Among other things, it describes the theoretical underpinnings of the Shake build system. To be honest I believe any build system that ignores the maths described in this paper can safely be ignored. (You may however ignore the paper itself if the maths checks out. See Daniel J. Bernstein's redo, which matches Shake very closely.)
-
Worst language you ever used? Really used not just looked at the manual.
Yeah, they don't have to be terrible. I haven't used it, but people in my circles tend to really like Shake, which uses a Haskell embedded DSL to describe builds.
-
Strengths, weaknesses, opportunities, and threats facing the GNU Autotools
You could try Shake. It's a sane build system written by a former co-worker of mine. https://shakebuild.com/
-
Overview of the CMake controversy, and break down the pros and cons of the critical C++ tool.
Shake does require compilation as it's essentially just a Haskell library providing a DSL and it works just fine, I guess in gradle's case it's a thing about Java-typical overengineering and complete blindness to resource usage. Shake's underlying engine can actually go head-to-head with ninja itself when building ninja files.
-
Need recommendations for a dependency-tracking system
Did you look at shake: https://shakebuild.com/ ?
-
Debian Running on Rust Coreutils
https://shakebuild.com/ agrees with you:
> Large build systems written using Shake tend to be significantly simpler, while also running faster. If your project can use a canned build system (e.g. Visual Studio, cabal) do that; if your project is very simple use a Makefile; otherwise use Shake.
For what it's worth, if I remember right, Shake has some support for interpreting Makefiles, too.
> [...] the way more complicated syntax of Shake [...]
For context, Shake uses Haskell syntax, because your 'Shakefile' is just a normal Haskell program that happens to use Shake as a library and then compiles to a bespoke build system.
sd
-
Essential Command Line Tools for Developers
View on GitHub
-
Ripgrep 14 Released
I'll throw in sd as a nice sed/find-and-replace tool. Using fd + xargs + sd is a pretty good workflow if a shell glob isn't good enough to target the files you want. https://github.com/chmln/sd
I wanted to like sd but it doesn't support my main use case of recursive search/replace. Imagine every time you wanted to grep some files you had to build a find+xargs+rg pipeline... it just takes me out of the flow too much. I'm glad people are posting other options here, I'm looking forward to trying them.
-
🐚🦀Comandos shell reescritos em Rust
sd
-
sed cheatsheet
https://github.com/chmln/sd ftw (sed rebuilt in rust, much easier imho) ;-)
-
What modern utilities should be a standard part of a modern unixy distro?
sd is a more intuitive alternative to sed, focussing on making find and replace easier - which is all I ever used sed for.
-
Delete all occurrences of a string
If it's in multiple files? To be honest, I'd just use a terminal and sed (or sd if you want something with a more friendly interface).
-
sd: your script directory
I love the idea and I'll try it out, but a heads up in case the author is around: the name sd clashes with another tool [0], which works as an alternative to sed.
I use that one pretty often, so maybe my first managed script will be one which symlinks binaries :)
-
Rust Easy! Modern Cross-platform Command Line Tools to Supercharge Your Terminal
sd is a find-and-replace CLI, and you can use it as a replacement for sed and awk. It is way more user-friendly and modern. It is also magnitudes faster than sed.
-
Being Ridiculed for My Open Source Project (2013)
Even if sed and grep are available their weird syntax is enough to make people write modern replacements.
I don't care if they're not 100% feature complete, the fact I can remember how to use them for my simple everday tasks (searching, finding/replacing across many files) without needing to consult a manpage or search online for answers is enough.
Modern sed:
Modern grep:
What are some alternatives?
gitHUD - command-line HUD for your git repo
marvin - The paranoid bot (framework)
ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore
shake-language-c - Cross-compilation framework based on the Shake Haskell library.
leksah - Haskell IDE
bumper - Haskell tool to automatically bump package versions transitively.
clone-all - clone all the github repositories of a particular user.
shake-cabal-build - Script for running Shake build systems using the Cabal infrastructure (deprecated)
useful-sed - Useful sed scripts & patterns.
neomutt - ✉️ Teaching an Old Dog New Tricks -- IRC: #neomutt on irc.libera.chat
hdocs - Haskell docs tool
file-location - error and debug function for haskell that give file locations