static-haskell-nix
nixpkgs
static-haskell-nix | nixpkgs | |
---|---|---|
7 | 976 | |
385 | 15,844 | |
- | 3.4% | |
5.2 | 10.0 | |
4 months ago | 1 day ago | |
Nix | Nix | |
- | 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.
static-haskell-nix
-
Trying to build a statically linked binary against glibc (Linux)
Using Nix: https://github.com/nh2/static-haskell-nix
- Generating static binary + CI questions
-
GHC reports "Loading static libraries is not supported"
To debug this type of problem (I have to debug linker errors regularly as part of static-haskell-nix):
-
[ANN] Monomer, a GUI library for Haskell
In static-haskell-nix there is currently this PR to enable support for that: https://github.com/nh2/static-haskell-nix/pull/108
- What's all the hype with Nix?
-
Termite Is Obsoleted by Alacritty
I think there's a misunderstanding: Most people want to use the .a file from their Linux/package distro that provides static libraries, such as Alpine Linux or nixpkgs.
Such package distributions just use the build system default options to build static libs. For example, Alpine might use `-Ddefault_library=both`.
> if they could keep that libgtk_static around
Why make these special cases instead of just using the build system defaults? That's easier to maintain and more obvious.
> I'd be interested to hear if static linking GTK even has that many benefits
One benefit is almost-infinite backwards compatibility that the Linux and Xorg ABIs provide, being able to make GUI apps that work out of the box everywhere.
Another is that these generated executables are very small, e.g. 12 MB for a full static GTK GUI app [1], or 6 MB when xz-compressed.
This is much less than when using shared libraries. One reason is that dead-code elimination works much better for static linking: It links in only the functions you actually use. For dynamic linking, it's always the entire .so.
[1] https://github.com/nh2/static-haskell-nix/releases/tag/c-sta...
-
Clodl: Turn dynamically linked ELF binaries into self-contained closures
GTK can be statically linked.
Example executable:
https://github.com/nh2/static-haskell-nix/releases/tag/c-sta...
It lost this ability temporarily when switching to Meson, but I fixed it in GTK3 and GTK4. But I just checked and apparently it is broken again:
https://gitlab.gnome.org/GNOME/gtk/-/issues/3774#note_109746...
nixpkgs
-
Tracexec: TUI for tracing execve and pre-exec behavior
This will drop you into a shell where `tracexec` is installed.
[1]: https://github.com/NixOS/nixpkgs/pull/310158
-
Nix: The Breaking Point
I don't think so. The article is probably intended for the Nix community, so the author doesn't need to convince HN that something is going on. If as an outsider you are interested then you need to look into it yourself, the community has no obligation to make their internal conflicts legible to the outside world.
As an outsider myself, it certainly looks like something is going on as more than 20 Nixpkg maintainers left in a week: https://github.com/NixOS/nixpkgs/issues?q=label%3A%228.has%3...
- Maintainers Leaving
-
Air Force picks Anduril, General Atomics to develop unmanned fighter jets
https://github.com/NixOS/nixpkgs/commits?author=neon-sunset
-
Eelco Dolstra's leadership is corrosive to the Nix project
I see two signers in the top 6 displayed on https://github.com/NixOS/nixpkgs/graphs/contributors
-
3rd Edition of Programming: Principles and Practice Using C++ by Stroustrup
For a single file script, nix can make the package management quite easy: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-f...
For example,
```
- NixOS/nixpkgs: There isn't a clear canonical way to refer to a specific package
-
NixOS Is Not Reproducible
Yes, Nix doesn't actually ensure that the builds are deterministic. In fact it works just fine if they aren't. There are packages in nixpkgs that aren't reproducible: https://github.com/NixOS/nixpkgs/issues?q=is%3Aopen+is%3Aiss...
-
The xz attack shell script
I'm not familiar with Bazel, but Nix in it's current form wouldn't have solved this attack. First of all, the standard mkDerivation function calls the same configure; make; make install process that made this attack possible. Nixpkgs regularly pulls in external resources (fetchUrl and friends) that are equally vulnerable to a poisoned release tarball. Checkout the comment on the current xz entry in nixpkgs https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/comp...
-
Debian Git Monorepo
NixOS uses a monorepo and I think everyone's love it.
I love being able to easily grep through all the packages source code and there's regularly PRs that harmonizes conventions across many packages.
Nixpkgs doesn't include the packaged software source code, so it's a lot more practical than what Debian is doing.
https://github.com/NixOS/nixpkgs
What are some alternatives?
monomer - An easy to use, cross platform, GUI library for writing Haskell applications.
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
haskell.nix - Alternative Haskell Infrastructure for Nixpkgs
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
Cabal - Official upstream development repository for Cabal and cabal-install
git-lfs - Git extension for versioning large files
gi-gtk-declarative - Declarative GTK+ programming in Haskell
easyeffects - Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
alacritty - A cross-platform, OpenGL terminal emulator.
spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.
nixos-config - Personal collection of NixOS config files
waydroid - Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.