• 6 Posts
  • 186 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle


  • You literally attach a license to every comment you post. The rules which make that license effective are the same rules which make Free Software and open-source licenses effective, too. Show some solidarity; you’re part of the community too, and you should feel comfortable making the same demands as the rest of us. When you say that “open source defenders” are distinct from “developers” you are contributing to a schism for the sake of aggrandizing employment and exploitation.





  • Corbin@programming.devtoProgramming@programming.devWhy fastDOOM is fast
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    1 month ago

    For what it’s worth, most of your comments aren’t eligible for copyright; they aren’t sufficiently original or information-packed. Just like @onlinepersona@programming.dev and their licensing efforts, it’s mostly a vanity to attach a license to unoriginal one-line throwaway jokes. I wouldn’t say that it’s arrogant so much as lacking in self-awareness; a one-liner must be deeply insightful, contain a pun or paraprosdokian, address the current zeitgeist, or otherwise be memorable above and beyond the time and place that contextualized it.


  • As a relatively heavy solution, you can use a container orchestrator that understands a failure to pull an image as a temporary or transient situation. The lightest orchestrator that I’ve used on NixOS in a homelab is k3s:

    services.k3s.enable = true;
    

    It is more-or-less a cut-down Kubernetes, and as such it will not fail to start merely because one Pod had an error pulling one Image. It will also offer a path forward if you want to continue building up software-defined networking.

    That all said, I’d re-examine what you want from service isolation during OS upgrades; it’s possible for routine NixOS updates to only restart affected services and not reboot. In production, nixos-rebuild switch can do things like upgrade shared libraries, switch webroots, or flip feature flags. Containerization might be unnecessary overhead, and I say that as a Kubernetes proponent.



  • Reading between the lines, the documentation has the key:

    Generic instances … correspond to Semigroup and Monoid instances defined by pointwise lifting.

    In more words: each generic type can be broken up into a tuple-like row of components, and the generic type admits a monoid/semigroup whenever every component in the row admits a monoid/semigroup. In your handwritten Semigroup instance, the given code is agnostic as to the types of variables and functions; all that matters is that they already have Semigroup instances of their own.

    Let me answer the other question: where’s the monoid in the generated Rep? Well, there isn’t one! The Rep merely has a struct-like product of component types. If a monoid exists for each component, then a monoid for the entire struct exists (and is built from the obvious pointwise lifting!) but otherwise there isn’t a monoid derived from the struct itself. This should be a notable contrast from generic instances for e.g. Functor, where every Rep has exactly zero or one Functor due to the algebra of the semiring of types (there is an underlying algebraic equation with at most one possible solution.)


  • Well, here is a very funny one-off commit, but my biggest effort was probably substantial parts of a couple AMD/ATI GPU drivers, well-summarized here. As usual, that was a team effort, with particular credit to Deucher (AMD), Glisse (radeon maintainer), and Airlie (DRM/DRI maintainer). So, put up or shut up. Or, to paraphrase the sentiment that you seem to not grok: talk is cheap; show us your code.

    Let me make it clear. I call out brigading because it is useless noise that distorts and obfuscates the kernel development process. I don’t care that you’re salty that I’m pointing out that your “absolute crickets” comment is not only incorrect, but empty in the sense that your lack of perception is not a substitute for the actual process of kernel development. Additionally, in this case, it seems like you’re still focused on personalities rather than the underlying computer science; I expect “absolute crickets” when asking you about the topic of memory safety.







  • Your argument is completely specious. Re-read that list. Assembly is a second language in the kernel already, and really it’s multiple languages, one per supported ISA. Perl and Python scripts are used to generate data tables; there are multiple build-time languages. eBPF is evaluated at runtime; the kernel contains bytecode loaders, JIT compilers, and capability management for it. The kernel has already paid the initial cost of setting up a chimeric build process which evaluates many different languages at many different stages.