cabal-extras
sccache
Our great sponsors
cabal-extras | sccache | |
---|---|---|
13 | 70 | |
78 | 5,332 | |
- | 2.7% | |
4.4 | 9.5 | |
5 days ago | 7 days ago | |
Haskell | Rust | |
- | Apache License 2.0 |
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.
cabal-extras
-
Management of obsolete/orphaned/abandoned packages?
There's also cabal-store-gc from cabal-extras by /u/phadej. But it is still highly experimental.
-
Learning Tidal Fundamentals - nice ground-up intro to TidalCycles by Mark Zadel
I've not completely got my head around it, but I think it's more about bugs and missing features. Tidal users don't work in 'projects' or 'packages', they just want to install a library and then use it in the interpreter. There's a fundamental difference between programming to make something and programming as the end in itself, and cabal doesn't seem to consider the latter use case. It seems the cabal-env prototype does support this (sitting here: https://github.com/phadej/cabal-extras) but it hasn't been merged into cabal itself yet. In the meantime v1-install works pretty well, or at least a lot better than v2-install, which just seems buggy to me, but I'm told I'm just trying to use it the wrong way.
-
[Request for review] Short article on Cabal and Stack and difference between them
Cabal also has some support for offline builds, the cabal-extras project has a bundle command to curl the dependencies into a bundle. https://github.com/phadej/cabal-extras The build artefact aren't necessarily portable across machines.
-
Why did haskell not "succeed"?
For cabal, there is https://github.com/phadej/cabal-extras/tree/master/cabal-store-gc
-
Trouble with cabal.
If you want to use cabal (which has various advantages over stack, although as it has access to whole hackage some times requires a bit more thinking) i'd suggest to install cabal-env. Its an experimental tool, written by previous maintainer of cabal. You can simply run cabal install cabal-env to get it. Its part of https://github.com/phadej/cabal-extras. It is what cabal install --lib is supposed to be (and likely will become at some point).
-
Quick Haskell exploration setup on Linux
cabal-env from /u/phadej's cabal-extras is working pretty well for me
-
GHC grows self-distinctively.
There's cabal-store-gc from cabal-extras which does gc on cabal's store.
-
There is no cabal hell.
Cabal 3.x and nix-style builds is a partial improvement, however it still suffers its legacy, with some of the most fundamental issues unsolved or even not addressed. For example maintenance of installed packages in long runs, stale or broken packages from previous failed builds impede the workings etc. Suggested fix is usually to wipe-out whole storage and rebuild everything from scratch again sic. Even when you are lucky, like avoiding update of ghc at all costs, with new base breaking almost everything, you'll soon end up with tenths or hundreds of gigabytes wasted disk space and significantly slower operations, with half of whole Hackage packages in its their countless iterations. I would already gave up completely, unless I've run across phadej's cabal-extras, which with some minor fixes save my sanity.
-
Need help with installing modules
You can install libraries separately with cabal install --lib ..., but the default way is kind of broken. There is an experimental cabal-env tool which works much better, but it is experimental so it is hard to recommend to a beginner.
-
Why is Stack rebuilding everything?
If you are willing to use cabal then the cabal-extra library has some support for offline builds via cabal-bundle https://github.com/phadej/cabal-extras
sccache
-
Mozilla sccache: cache with cloud storage
Worth noting that the first commit in sccache git repository was in 2014 (https://github.com/mozilla/sccache/commit/115016e0a83b290dc2...). So I suppose that what "happened" happened waay back.
- Welcome to Apache OpenDAL
-
Target file are very huge and running out of storage on mac.
If you have lots of shared dependencies, maybe try sccache?
-
S3 Express Is All You Need
I'm going to set up sccache [0] to use it tomorrow. We use MSVC, so EFS is off the cards.
[0] https://github.com/mozilla/sccache/blob/main/docs/S3.md
- sccache
-
Serde has started shipping precompiled binaries with no way to opt out
I think the primary benefit of pre-built procmacros will be for build servers which don't use a persistent cache (like sccache), since they have to compile all dependencies every time. But IMO improved support for persistent caches would be a better investment compared to adding support for pre-built procmacros.
-
Cache dependencies across crates
Checkout https://github.com/mozilla/sccache
-
Distcc: A fast, free distributed C/C++ compiler
https://github.com/mozilla/sccache is another option which addresses the use cases of both icecream and ccache (and also supports Rust, and cloud storage of artifacts, if those are useful for you)
-
How to fix Rust Coding LARGE files????
That being said a compilation cache, eg the de-facto standard for Rust: sccache (https://github.com/mozilla/sccache) will help to compile and store some of the build artifacts centralized - still for each crate version + build profile (RUSTFLAGS) combination.
-
On the verge of giving up learning Haskell because of the terrible tooling.
That's definitely not my experience. Never had any issue running Rust on Windows. You just download and run rustup-init.exe, then updating is simply a matter of rustup update. Documentation generation is built in (cargo doc) and just a case of annotating code with triple-/ markdown comments and then running that command. sccache works fine for me (just need to set RUSTC_WRAPPER=/path/to/sccache). And the error messages from rustc are by far the best of any compiler I've used. Not sure how they're unhelpful, they tend to explain step-by-step what the problem is and how to fix it.
What are some alternatives?
heist - An xhtml-based templating engine, allowing Haskell functions to be bound to XML tags.
ccache - ccache – a fast compiler cache
Cabal - Official upstream development repository for Cabal and cabal-install
cargo-chef - A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.
cache-s3
rust-cache - A GitHub Action that implements smart caching for rust/cargo projects
haskell-handbook - Best practices on how to be efficient with Haskell in production
cache - Cache dependencies and build outputs in GitHub Actions
stack-clean-old - Tool for cleaning away old Haskell Stack build artifacts
icecream - Distributed compiler with a central scheduler to share build load
cabalgc - Selectively remove library packages in cabal store.
mold - Mold: A Modern Linker 🦠