On Friday, 1 December 2023 at 05:29:31 UTC, Denis Feklushkin wrote:
> >First, I think that you need to more precisely explain what a "tag" is.
Okay, I'll write here and when everything is discussed I’ll add it to the PR description
>What is the underlying data type and how does it differ from a version identifier. I don't understand what a tag is by reading the PR.
Proposed tags are similar to a D's versions, but I decided to separate its name because tags become not corresponding to a built-in D versions, at least.
For example, most likely, tags with names like “posix_compatible_threads” will appear, because in the future we will understand that some OSes use Posix interace API to provide threads functionality but while not being a Posix system. The same goes for working with files, etc.
I also suggest to write sets of tags for each target in this form:
x86_64,posix,osx
and not in:
x86_64-posix-osx
to prevent attempts to combine proposed druntime tags with compiler target triplets
Thank you, now I have a better understanding what a tag is. Correct me if I'm wrong so these tags are like "feature defines" similarly to a boatload of C defines that you must define for certain C-libraries. Will these tags eventually become version identifiers inside the code? Also one question if the tags are visible inside the D code or just outside the code in the build system?
> >The PR doesn't mention anything about the generic part of the implementation. Where should the generic part be?
I don’t understand what is meant by "generic part" here
We have OS/API specific code in druntime but also generic code that can be shared by all OSes. What I was looking for is an explanation where this generic code should located. Will it be like it is right now and you break out the OS specific code and put it in druntime/config/? For example we can make the code in druntime/src/core/thread/osthread.d (which is absolutely horrible) and start to define what is OS independent, leave it inside osthread.d and then put OS dependent stuff in the new files?