HN user

arka2147483647

720 karma
Posts0
Comments178
View on HN
No posts found.

There is deep history here. For most of the past centuries, most Europe was from where you immigrated FROM, not where you immigrated TO.

There just is not the kind of immigration culture as in America. Some people don’t even have a notion why anyone would want to come to Europe.

Industrial logics are really practical and allow you to write all sorts of sophisticated properties that your system should satisfy in a very succinct way.

It sounds like what you think as positives are exactly the things parent comment thinks as negatives.

I miss the days when this would just have been named win2wasm.

These branded projects become difficult to remember when everything has a random non-mnemonic name.

All of those platforms are HUGE and well worth the hassle.

I think Valve is trying to leverage the Steam Storefront into a full-fledged Platform. It is not quite there yet.

As such, they have invested a lot of effort into the compatibility layers, which allows gamedevs to support Steam Devices with no extra effort, or minimal effort, which is very important business vise.

As a gamedev, you essentially get a bonus platform for your game without extra dev effort!

Proton represents Valve's failure to make Linux gaming attractive to game studios.

Not even those that have Android/Linux NDK builds, bother with porting to GNU/Linux.

It is a huge hassle to make a new build to a new platform. You double build system, release management, and testing. Compared to just one plat. Games are complicated, and testing all the dynamic behaviour is also complicated.

Making just a Win32 build really saves resources.

Also Win32 has been a stable api for a long time. Linux apis tend to change, and old games don't get re-built. The win32 build is therefore also provably a lot more long lived, compered to anything you build on linux.

Thats also important because of the Dont Kill Games effort and so on.

The advantage, as i see it, is that this could be done incrementally. Every new router/firmware/os could add support, until support is ubiquitous.

Contrast this with ip6, which is a completely new system, and thus has a chicken and egg problem.

This is a EU initiative. Confusingly, EU is often called Europe in spoken/non-official speech. Sort of the same way it is said that Washington does something, when it is the US gov doing something.

Smart home and lighting standard Matter over Thread requires it. Discovered this after i bought some Ikea smart lights. Though you don't need a public IP6, a local static IP6 with SLAAC is enough.

No strcpy either 7 months ago

Sadly, all the bug trackers are full of bugs relating to char*. So you very much do those by accident. And in C, fixed width strings are not in any way rare or unusual. Go to any c codebase you will find stuff like:

   char buf[12];
   sprintf(buf, "%s%s", this, that); // or
   strcat(buf, ...) // or
   strncpy(buf, ...) // and so on..

All the functions mentioned above, even the cpp one, will reserve atleast the number of elements given to resize() or resize_exact(), but may reserve more than that.

After some pondering, and reading the rust documentation, I came to the conclusion that te difference is this: reserve() will grow the underlaying memory area to the next increment, or more than one increment, while reserve_exact() will only grow the underlaying memory area to the next increment, but no more than that.

Eg, if grow strategy is powers of two, and we are at pow(2), then reserve() may skip from pow(2) to pow(4), but reserve_exact() would be constrained to pow(3) as the next increment.

Or so i read the documentation. Hopefully someone can confirm?

Honestly, i doubt it. That exposes many details to the programmers that many of them would prefer not to know.

The higher level the language, the less interest there is to manually manage memory. It is just something to offload to the gc/runtime/etc.

So, i think this is a no-go. The market wont accept it.

Respectfully, the value of a c++ wrapper/implementation comes from the fact that it behaves like one would expect a C++ classes to behave. That is, RAII, and so on.

If the underlying resource can not behave like a class, it would be better to expose a free function style api, eg:

    Handle h = ResourceGet();
    ResourceDoSomething(h);
    h.release();