Readit News logoReadit News
casept commented on Debugging in the Multiverse   antithesis.com/blog/multi... · Posted by u/wwilson
dzaima · a year ago
rr can record process trees; i.e. basically any part/descendant of a process you spawn will be recorded and can be replayed (userspace CPU & memory, that is); won't record the entire OS though.
casept · a year ago
My experience with RR is that the chance of it working without hitting a missing syscall or desync is only about 50%, which is why I want a different solution that doesn't rely on the fragile syscall recording approach.
casept commented on Debugging in the Multiverse   antithesis.com/blog/multi... · Posted by u/wwilson
casept · a year ago
Does anything like the Antithesis hypervisor exist as open source?

The closest I've seen is Qemu record/replay, but that's very slow (no KVM acceleration, no multicore), and broken in current Qemu versions (replayed system just gets stuck).

casept commented on I like the RP2040   dgroshev.com/blog/rp2040/... · Posted by u/dgroshev
j-krieger · a year ago
I heavily disagree. I‘ve been working with the Espressif ecosystem for a couple of months now and it‘s the best documented microcontroller platform out there.
casept · a year ago
Only if you use their SDK. Quite a few parts of the chip lack actual register-level documentation, not so on the 2040.
casept commented on Zero to Nix, an unofficial, opinionated, gentle introduction to Nix   zero-to-nix.com/... · Posted by u/biggestlou
suumcuique · 3 years ago
I've been dipping my toes into the Nix ecosystem recently, having a dev environment per project with direnv is neat but how does this work with IDEs like VSCode or IntelliJ IDEA? For example, if I define a specific JDK in my project with Nix, will IntelliJ be able to pick this up? Does anyone have any good resources on how to set this up?

BTW, for others who just want to try it out without having to install anything on your system, there are docker containers you can use as a sandbox: docker run -it nixos/nix bash

casept · 3 years ago
For vscode, I like the `arrterian.nix-env-selector` extension.

Can IntelliJ be configured to simply use whatever JDK belongs to the `javac` in PATH? If so, it should suffice to simply start it in a `nix-shell`. If not, maybe setting `JAVA_HOME` in your `.envrc` could help?

casept commented on PinePhone Pro Announced   pine64.org/pinephonepro/... · Posted by u/abawany
jjmellon · 4 years ago
I received a Pinephone in the latest shipment, about three weeks ago. I also got the convergence dock to be able to attach a monitor, keyboard and mouse. I am extremely motivated to get off Android on my phone, and yet my Pinephone has already been discarded (and I never even put a SIM card in it).

There are far too many out-of-the-box bugs and glitches to consider this a usable product. For example, the convergence dock will not display on a monitor. Firefox browser displays too wide for the phone screen, so unusable. A dozen other issues on first day.

Even a development board should work better than this, have documentation of the known problems, and have some support mechanism that works.

I don't think better/more expensive hardware is the problem. It's software, caused by lack of users, lack of investment, and too many "competing" distributions of Linux.

casept · 4 years ago
Why do you want to move off Android? Depending on the reason, your needs would probably be better met with an alternative Android distribution on Android hardware.
casept commented on Thriving in a Crowded and Changing World: C++ 2006–2020 [pdf]   stroustrup.com/hopl20main... · Posted by u/scott_s
hrh · 4 years ago
There are probably dozens of us that really appreciate his clarity and writing and even his overall design goals for C++, but the language is so inherently loaded with historical baggage, that it is only pragmatic to use newer languages that learn from those successes and mistakes

However, I've heard, but can't confirm so don't quote me that it is impossible to appreciate Go and Rust at the same time.

casept · 4 years ago
Oh, it's absolutely possible as long as your brain is flexible enough to appreciate both minimalist and maximalist language design. Same goes for C and Rust.
casept commented on macOS Nix setup: an alternative to Homebrew (2020)   wickedchicken.github.io/p... · Posted by u/notamy
adkadskhj · 4 years ago
But you still have to look up the individual values right? I'm using Flakes, pinning commit hashes is automatic (lockfile) - but i still have no clue what version any package is on.

As with a lot of comments about Nixlang, the tooling there seems lackluster at best. In this case i'd want tooling to easily know and change package versions, not sweeping changes to your entire package ecosystem. Nix might give me that, but resolving derivations manually is not a great UX, imo.

casept · 4 years ago
For languages with relatively uniform package ecosystems (like Rust and Go) there are tools that can generate Nix code for you from lockfiles with exact versions. In practice this usually suffices, because these ecosystems also have to remain compatible with other environments where OS-provided dependencies like C compilers and libs have wildly differing versions.

For most C ecosystem stuff you can try overriding the version, but you'll quickly notice why this is a hard problem: Different software versions want to be built in different ways! Someone would have to therefore maintain the quirks of each package version's build process for each package for all eternity, an insanely huge endeavor.

Also, even if it were possible this would break the Nix binary cache model, because suddenly you'd have an insane combinatorial explosion of not just package versions, but also versions of their dependencies. In order to preserve purity and reproducibility, a change in dependency version means that all dependents have to be rebuilt, taking up insane amounts of CPU and storage on the build farm.

I don't think that your request is unreasonable (I'd love to have this feature!), but it's probably not fully possible in any software distribution ecosystem.

casept commented on macOS Nix setup: an alternative to Homebrew (2020)   wickedchicken.github.io/p... · Posted by u/notamy
gpanders · 4 years ago
This exact thing is what trips me up about using Nix and I haven't been able to figure out how to get around it. Sometimes you want a global Python library. Here's one example from my own use case: I want to use a Weechat Python script that depends on a Python library called "pync". With e.g. MacPorts I can just run

    sudo port install py-pync
and now the Weechat Python script will be able to "import pync". But this doesn't work with Nix since every package is completely isolated from each other.

I spent quite a bit of time trying to figure this out and was unsuccessful. I'd love to know what Nix's answer to use cases like this is.

casept · 4 years ago
The (idiomatic) answer is based on the fact that your global environment doesn't need pync, weechat needs pync. Therefore, you override weechat's dependencies and inject the package into it's private environment like so: https://nixos.org/manual/nixpkgs/stable/#sec-weechat
casept commented on I Support GCC-Rs   chorman64.medium.com/why-... · Posted by u/lukastyrychtr
ncmncm · 4 years ago
That it was perceived necessary to write this indicates something very wrong.

A healthy response to news of another compiler for your new language is, "Wonderful! People are demonstrating their belief in the future of our language with a big time investment! Another compiler will help us validate our language specification, which will be badly needed when we go to ISO to ask for a Rust standard Working Group."

It is just possible that a second compiler could be twice or (as happened with Pascal and C++!) 100 times faster. Faster builds would mean thousands of hours saved for users of the language—even, potentially, for people working on the old compiler!

A second implementation of the standard library could offer similar benefits.

More implementations is an absolute prerequisite to language maturity. All languages not doomed get them. It will be a net good for Rust not to be doomed.

casept · 4 years ago
GCC-RS will never have the same level of investment as rustc, which means that either it'll rot or the entire ecosystem will rot due being tied down waiting for it to catch up.

Also, the Rust community at large is not at all enthusiastic about handing the language over to ISO. The design-by-comitee-based, incrementalist, waterfall throw-it-over-the-wall-every-3-years approach is pretty much the exact opposite of the continuous delivery-based way Rust is developed, and arguably one of the main reasons why C++ sucks.

casept commented on NixOS 21.05   nixos.org/manual/nixos/st... · Posted by u/jiehong
adkadskhj · 4 years ago
As a new NixOS user currently set up with home manager and flakes - i'd probably switch in a heartbeat if someone gave me a nice nix-like package manager that also handled dotfiles.

As much as i love the feeling of NixOS, i really want something like a Lockfile as seen in Rust (and other languages).

Ie if i could define a `Cargo.toml`, which includes versions of packages or `*` if i don't care - and then it gets built into a `Cargo.lock`, i'd be in heaven. Combine that with a great language backing the distro and i'd switch immediately.

As it stands, I hate nixlang, and while flakes is amazing i still dislike the single primary input approach to NixOS _(ie all the packages bundled together)_.

As an example of why i dislike that, i'm stuck on an old version of NixOS currently because when i tried to update the repo date - lots of packages changed in difficult to manage ways. X was crazy slow, Firefox was being wonky, XFCE was janky, etc. All my flakes.lock told me was that the hash of the repo was different.. yay.. hundreds of dependencies were different i'm sure, but no clue which ones, and no easy way to isolate the problems and just incrementally update.

Luckily flakes allowed me to rollback perfectly. Well, i still had some userland state from the newer applications that i needed to nuke, but i'm ignoring that for now.

Being able to more easily incrementally update specific dependencies would be amazing for me. As it stands i have no clue when or how i'll update my NixOS input version. Which is not a promising sign for my continued usage of NixOS.

casept · 4 years ago
Given that you already have flakeified everything, it's not that hard to pull in a different version of nixpkgs and cherry-pick packages from it. I have a (somewhat complex) setup utilizing this: https://github.com/casept/nixos-config

u/casept

KarmaCake day74November 4, 2016View Original