As far as I remember, the only games which optionally need Galaxy running are those will online multiplayer, and only if you want to play online. This is because the original developers shutdown their own servers for matchmaking or originally used Steam servers for that. GOG servers are only replacing those.
There are also a handful of games which put some additional purely cosmetic content behind an online check. That could be the start of a slippery slope, which people are justly upset about, but they then do an injustice to their cause by generalizing from those cases.
It's not a slippery slope but already full blown DRM plain and simple. Both online functionality limited to GOG-run servers and checks for cosmetic content.
Note that for Gloomhaven, the multiplayer server is one of the players' computers. That player hosts a game and everyone else joins. There are no GOG servers and no company servers.
In version 1.0 of the GOG release, multiplayer is enabled.
In subsequent versions, multiplayer is disabled (in the sense that the button to host or join a game is greyed out) unless the game succeeds at verifying you through Galaxy. (And this is a dynamic status; you can have it enabled, shut off Galaxy, restart the game, and find that it's disabled again.
Which ones? Honest question. I only remember games for which GOG apologizes in their store page for missing cosmetics or extra features because originally tied to online services (e.g. the Mafia or Yakuza games), or ones in which they are unlocked by default for the same reason (e.g. Dragon Age Origins).
The DMA subsystem maintainer has some reasons: at this time you can disable all rust drivers when building the Linux kernel but you cannot disable rust wrappers to C language APIs. So if you need to change for example the DMA APIs, you also need to fix the rust wrapper before submitting the C patches otherwise you cannot even build a C only kernel.
A C only kernel build without CONFIG_RUST will not build a single line of Rust code nor will it touch anything in the rust subdirectory. If you don’t want to deal with rust, you don’t have to at all.
It’s a little bit more nuanced than this. Your parent commenter is wrong, by the way.
Suppose you want Rust, just not a single Rust driver using PCI. But CONFIG_PCI and CONFIG_RUST both selected will cause the PCI abstractions to get built anyway, even if not a single driver using them is selected. Then if the PCI subsystem introduces a change but the Rust counterpart fails to follow it fast enough, the build will break for the kernel as a whole.
This was illustrated with an example in that email thread.
I have some sad experience with polyglot projects. Unless you enjoy pain and drudgery, it’s an extremely unrewarding thing requiring very careful treading.
I don't think that's true. I have seen R4L folks reiterate time and again that C changes are allowed to break Rust code, and they will be the ones to fix it.
> The question may be silly, but how does GOG handle multiplayer ?
It depends: some games implement multiplayer through their publisher's private servers (e.g. Paradox games) so users can play together regardless of the shop they bought the game from. Some others (e.g. Dying Light) reimplement multiplayer replacing Steam facilities with GOG Galaxy. In that case interoperability is not possible maily because GOG Galaxy doesn't implement the same anticheat system. Finally some other games whose multiplayer is based on Steam, had the multiplayer removed in the version sold on GOG (e.g. modern XCOM games).
> Also, their list is sadly quite limited it seems, for the games many play.
Nowadays the game market offers more than just AAA games and for people like me who stopped buying DRM-protected games and are not interested in multiplayer there are still many good games to enjoy. Some AA and AAA games are also published on GOG after a while, so it's just matter to wait and support GOG's business model if you don't like DRM.
I'm not saying the model is bad or there are no AAA games, only that this currently limits the games that could be played.
I have bought games from GOG, just not multiplayer ones (or ones that don't have DRMs anyway such as Factorio)
I also don't play much AAA games. But I'll have a hard time convincing anyone when the game they want isn't there. Not that it is GOG's fault but stil...
Literal zero in a pointer context is interpreted by the compiler to mean "the null pointer." The compiler then compiles the null pointer into the code.
First, that's inherently non-portable. That aside...
On most systems, the null pointer happens to be a pointer to address zero. For other systems, e.g. 8086 16-bit mode, you can create a intptr_t (which is the same size as a pointer) and set it to zero. Then cast it to a pointer. Such casting is always done bitwise, so it will work.
The compiler knows to turn the following into the null pointer
void *p = (void *) 0;
but the compiler will NOT turn the following into a null pointer
void *p = (void *) (uintptr_t) 0;
because the literal 0 is now in an integer context, not a pointer context.