dokyun
You use the Plan 9 compiler to compile Plan 9 programs. Attempts at trying to get GCC to compile Plan 9 programs correctly have been mixed.
> So it effectively quietly makes a bunch of quiet guarantees that C99 doesn't
Yeah. It's not a C99 compiler.
> Even if not explicit, that's still semantics outside of those C99 specifies, that code may be relying on.
Yeah. They're not C99 programs.
> Fact of the matter is, you cannot make a full atomics library that will necessarily work correctly on C99.
Sounds like C99's problem.
Architecture problem. Do your programs normally saturate a 40 gig network pipe?
> The reality is that a programming language that claims to be usable for system programming must be able to deal with shared memory and provide a concurrent memory model.
You can boot up a Plan 9 kernel and tell me if it works or not. Like, this is not a high bar, but you keep treating it like it is because it's based on the assumption that all compilers are broken with the set of all compilers being GCC.
https://en.wikipedia.org/wiki/Communicating_sequential_proce...
> but if you eliminate shared memory and have the kernel copy data between threads, you're leaving a ton of performance on the table.
If that's your bottleneck then you've either already solved every other class of performance issue with your program or you're working in a fantasy environment-- you're probably not hacking on FFmpeg right now. 90% of performance is I/O bound, whether it be the disk, the network or whatever. You can easily ascertain the correctness of a CSP system, because it's just message passing and inherently synchronous. Not so much with shared memory. It's a tradeoff. Unix pipes are also pretty goddamn fast, like, this is an issue people have spent time squeezing as much performance as possible out of. Google uses Go for all of their important backend shit. The entire internet is a giant message passing system.
That's something pthreads do and CSP doesn't.
> you need a memory model with compiler support. Even if you exclusively use mutexes.
If you use CSP you can effectively eliminate shared memory in user space and you don't have to handle this with the compiler. Then you can say "here's a way to communicate between processes in user space, the runtime/kernel handles the shit underneath. If you want to do it some other way we can't guarantee it'll work."
> We explicitly do not address the less frequently used environments in which multiple concurrent threads communicate communicate primarily through message passing, such as C programs communicating only through the MPI[34] library, or Erlang[11] or Concurrent ML[28] programs.
Heh, there's your answer. CSP FTW!
That's an assumption that you're treating as though it somehow informs reality. I gave you an example of atomics being handled by a library, and the man page points to where in the source code it's defined.
> so you'd need to know how Plan 9's compiler/language specifies atomics.
It doesn't, as far as I can tell. Kencc is a very "dumb" compiler that does little magic nor does it extend the language beyond the standard C that the Bell Labs guys were used to. For whatever reasons, they found it expedient to write new libraries instead of changing the language itself. They did occasionally write compilers for new languages when they had wacky ideas that would be difficult to accomodate, like Newsqueak and Alef. In Alef's case they actually did accomodate some of it, which is how Plan 9 got libthread.
Most instances of trolling can be dealt with by a single block, or reaching out to the admin, but basically no one puts in the effort to reach out if someone's causing problems (Hell, one guy even reported my whole site to my host without so much as a word in my direction, just for a couple inflammatory posts someone made).
And I don't think it's right to police what people are able to see and interact with if I'm running an instance with other people (if it were a single-user instance, that'd be different).
But hey, it's your server. You should do what you want with it. I just wanna do what I want with mine.
As far as reasoning goes, I think you can grasp how people would try and wield a tool like blocklists. A lot of blocks are merited, while some arent. I've had several blocks put on my instance from servers that I never even interacted with, for reasons that seemingly appear out of thin air.
You can browse by software, whether its open registration or not, allows tor, etc. You can glean statistics off of certain instances, which is really useful if you run one yourself. Most of the instances on the other side of fedi run the Pleroma software.
Have fun!
Fediverse has plenty of servers which are "free speech" adjacent, which most Mastodon servers close off since its easier for them to police what their users can see than let them do it themselves. The vast majority of them do not run the Mastodon software, and feel far more "wild west" with all the shitposters. But if you want to talk with actual hackers and are into that sort of thing, it's fun times.
Fedi is a lot better if you want nerd stuff specifically, running instances attracts a lot of hackers who're geared toward it. The big instances are pretty much the same shlock you get on Twitter/Bluesky but there's a lot of cool people in the margins (tip: look for instances that aren't running Mastodon).
When a server stops federating, the federated posts still exist in the DB of all the remote instances that recieved it. They're still indexed and searchable from there. You could move those posts into the DB of a new server, but they'll still "originate" from the old one. But you can carry on and interact with old threads.
There's no real foolproof mechanism for updating posts, although there is an AP Update activity, much like deletes there's nothing forcing an instance to respect it.
Drew I think is just kind of a dick who has a history of putting his personal crusades before delivering a product people want. I remember a few years back sourcehut being reported as unstable and he went and lashed out at people who were complaining to him about it instead of fixing the issues. And he banned crypto projects cause he doesn't like them, at least Codeberg held it to a vote.
Patrick Volkerding is a pretty stable guy, I think he's the model more BDFLs should strive to be.
-- The UNIX Terrorist
The guy who runs FSE (one of dark fedi's more notable instances) has written a lot of good blog posts on his side of the technical and social details, his one about running FediList is a good picture of the type of one-sided politics involved (and, if you're into the technical stuff, is rich with that too): https://blog.freespeechextremist.com/blog/about-fedilist.htm...