Some very great concern you raised @zfigura. Let's address them shall we?
Yes, probably. AI generated text is difficult to read and often full of statements that are blatantly or subtly wrong. This is no exception.
You might find it difficult to read but I don't. It helps me articulate what is happening. Does it makes mistakes? A lot, of course. I do too. Everyone does. That's how we grow and learn. Still better than staying in the dark.
But mainly I ask why you're using it when things would be an awful lot easier if you didn't.
I wouldn't have functional reporting of my system's topology under wine already otherwise.
You don't need 600 words to explain things that are obvious from reading the patch. You don't need another 700 words to say what should just be "the kernel32:comm tests are failing in a way unrelated to this patch". Asking anyone to read all that garbage is wasting their time.
You might not need the words because I made the changes easy to read by keeping them where there are. Some people, on the other hand might need the context to understand the changes and their implication on the codebase. Nobody asked you to read anything that you don't find interesting and nobody forced you to subscribe to the RSS feed.
And I suspect that using AI to generate the patch contents, if you did, is not going to be better than writing yourself.
Not sure about that since I don't write or read C derivatives that often. I usually prefer to hangout as far from the metal as possible. The higher the level of abstraction, the better. Talking to silicon is boring. Necessary, but boring. I can appreciate different perspectives on this but it's unlikely we agree. I don't mind.
Certainly not better than consulting existing Wine developers for help, ...
If I had to bother someone every-time I had an issue... I can understand and solve my problems myself, thank you. I learn a lot but making mistakes. That's what I do. Stupid stuff like this in an attempt to satiate my ever increasing curiosity.
which would have prevented a lot of mistakes I can see,
I am still waiting for your review btw.
not just now but in the future, and is generally better for collaboration.
I spent 2 months, and went out of my way to: - describe the issue, - marked it as dup when I found it was a very well known issue, - made the effort to understand it better and - actually proposed a functional fix for it.
Is it perfect? No! Of course not. How could it be? I don't have the hardware to implement and test it with more than 2 nodes in 1 group. Nobody rational will do serious concurrent work under wine anyway! The idea here is just to trick whatever app asks for it with a convincing enough reply for it to accept it. I have enough memory and plenty room to spear to afford such dumb approximation. I understand not everyone might but it doesn't make it less useful.
https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/kernelbase/memory.c?r...
This is just plain wrong on my system. The correct value I expect is 1 because I have 2 nodes. The're physical... I cannot change it with software. Yes I can disable the NUMA module on my kernel but that also doesn't work because that not how my CPU is architectured.
https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/kernelbase/memory.c?r...
I don't even have words to describe how wrong this behavior is. My compatibility layer is basically spitting in my face when I run an app that asks a reasonable question; "What is the layout of this node?".
I've come only but in good faith to raise awareness about this fact and was only met with mockery and unrelated queries. Talk about collaboration. I opened this submission out of courtesy because I care about this project I've been using since I'm 6 and want it to support modern CPU/memory architectures.
More pressingly, according to my understanding, AI are trained on code with a license incompatible to Wine, and I don't believe any output can be used safely in our project.
That's actually a very common misconception but I'm no lawyer myself. There is just no legal precedent. It's subject to interpretation and anyone's guess is as worthless as the next one. It up to courts to decide eventually. My take is that if I use a tool to produce something, unless that tools strictly forbids me or anyone to redistribute this thing that I made with it freely (in which case it not a useful tool), there is nothing preventing me or anyone to redistribute it with an open source licence. Again as worthless as anyone's guess so I get why anyone might be careful.
What application needs this?
NUMA topology? I could think of a few examples :smile:
What are they? We don't accept new features as a rule unless something needs them.
I don't think you understand what the [Non-Uniform Memory Access](https://en.wikipedia.org/wiki/Non-uniform_memory_access) (NUMA) architecture is. It's not about supporting a new feature... it's about fixing the stubs to report correctly when MSVC or anything else asks for them.
@nsivov You can move it around, where you want afterwards.
That's not how we do things around here I'm afraid; we don't commit patches with known insufficiencies as a general rule.
And that's exactly why, still to this day, it has not yet been addressed after so many years. Nobody is asking wine to support a fully compilent NUMA implementation... but the current one is as bad (if worse) than the one I proposed.
... I'll bring back the `DECLSPEC_HOTPATCH` where I removed it, replace the `%llx` + casts with `%Ix` (casting to `ULONG_PTR`) for pointer-sized masks, copy the cpu mask while holding the NUMA lock, and tidy the contiguous-remap finalization. I'll also clean up the thread-affinity debug traces by removing the unnecessary if/else statements to factor the common finalization/trace and avoid redundant conditions. I will take this opportunity to move those changes in ntdll since everyone is so adamant on having them there (for good reasons).
I'll do that when and if I find the time, purely to satiate my curiosity. Understand that I am in no particular rush to do so just to get laughed at again. I have better thing to do with my time than to argue about those changes and their necessity. I've dedicated enough time on this matter and since I have no issue about this on my system anymore, I don't really care if those changes become mainstream or not. Just don't say I didn't tried to solve this issue. I did and have been using it for more than a month already.