Hacker News new | past | comments | ask | show | jobs | submit | more kam's comments login

A race condition is not the same as a data race, and nondeterminism is not the same as undefined behavior.


Fine, but in practice a data race is just a special case of a race condition so my point still stands. Most multi-threaded code with races is more like my example than the author's and Rust will not magically prevent such race conditions.


Indeed, I like your example, usually I go after external resources being accessed from same threads, database accesses without proper transaction management, or OS IPC, where the Rust threads don't have any visibility about what the other processes are doing.


It's exploitable only by a SSH server that you connect to with agent forwarding enabled (i.e. one that you're already trusting with access to your SSH keys).


What's the software story for the VSPA DSP? Is that going to run user code, or a binary blob that does some filtering and sends I/Q samples to the iMX or USB3?

NXP doesn't share many details on the LA9310. Could just be too early, but it smells like a "you must convince a sales rep you're going to be a qualified customer and sign a stack of NDAs before you dare ask for a datasheet or instruction set manual" situation, which is unfortunate.


NXP are open sourcing a lot of the support stack for the LA9310 to go along with this product release, but I'm afraid they consider the VSPA DSP to be highly proprietary, yes.

Example: https://github.com/nxp-qoriq?q=la93


What large bank is not lobbying against regulations?


SVB didnt lobby to relax the laws against unpaid overtime, faulty advertising etc. Not any banal evil like that. SVB lobbied against laws that protected both the bank and its depositors from the very thing that happened. And succeeded to get an exemption for itself.


> "Tags", "registries", "base images", "extraCommands"... no thanks

All of which are optional. It's just doing the same thing as your tar commands.


> All of which are optional

True, but they're dangerous enough that I'd still at least want a wrapper function which doesn't accept them at all.

> It's just doing the same thing as your tar commands.

Not quite: I came up with those commands by reading the OCI specifications.

In contrast, the output of the dockerTools functions does not quite follow those specifications, and appears to be more Docker-specific.


Nix 3 has a dead simple, builtin CLI frontend for doing this with built packages: https://nixos.org/manual/nix/unstable/command-ref/new-cli/ni...

It uses dockerTools: https://github.com/NixOS/bundlers/blob/master/flake.nix

maybe a bundler can be added that uses OCI tools, thus providing such a wrapper and giving a nice CLI for it


Editions only guarantee that old code builds with new compilers, not vice versa. New features are added to all editions unless they require e.g. new keywords that are available only in new editions.


Ah, that is right. I apologize, I think I've learned that three times now, but for some reason my brain refuses to accept it.

I like that previous editions get new features when possible, unlike say C++, but I wish they'd gone with semantic versioning for the language version, like python did when both 2 and 3 were active. Oh well, I just need to remember that the edition is like the major version, and compiler version is sort of like minor version, and both are needed to specify forwards compatibility.


I'm not sure semver would really do it here, because then you could have say:

  2.17
  1.17
What would you call the compiler binary that could compile both language v1 and language v2, with (shared) minor-version .17?

The issue is that semantic versions are a hierarchy, whereas Rust edition x compiler version are a matrix


It might make more sense to think of editions as optional changes to the surface syntax, and nothing more. They are not nearly as important as the name makes them sound.


They are often small, but it's a mistake to say they're surface-level. Changes to syntax or semantics only get made when absolutely necessary to allow for essential features or fixes.


`std::thread::scope` takes a closure, and joins the threads after the call to the closure returns, rather than relying on `Drop`.


The Mars Helicopter Ingenuity actually has a 2014-era 2.2GHz ARM phone SoC, the Snapdragon 801 (same chip as the Galaxy S5 and OnePlus One)

https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_A...


Wow that's crazy, since I'd imagine SoCs to be the most vulnerable to bitflips.


Aurora Serverless v2 doesn't scale to zero, though. Minimum capacity costs $43/month.


V2 is a garbage fire and that was before I knew it didn't scale to zero.

It doubles the cost of V1 and they have the gall to say:

> most Aurora Serverless customers can lower costs by moving to v2 due to a lower starting capacity of 0.5 ACU (vs. 1 ACU in v1)

Oh, why thank you AWS, how kind of you. I can go to 0.5? That doesn't matter at all, the price is the save as 1 ACU on V1.

D1 is interesting but if you want Serverless MySQL then check out PlanetScale [0]. It's free for hobby projects (it will turn off if you go 1 week with no activity) and then it's a flat $30/mo and you can have 2 production branches and 5 development branches. I've been very happy with them so far. The usage-based pricing is a little scary (I know I don't think in rows read/written) but the limits are super high and so far my usage has been barely a blip.

[0] https://planetscale.com/


Thanks for the heads up - I'm using Aurora Serverless v1 which isn't perfect - I guess I won't be jumping to v2 any time soon then.


Kobo eReaders come with support for syncing articles from Pocket out-of-the-box.


Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: