Sharding Phobos an alternative to sharding druntime
Paolo Invernizzi
paolo.invernizzi at gmail.com
Sun Jun 23 17:19:01 UTC 2024
On Sunday, 23 June 2024 at 16:41:37 UTC, Richard (Rikki) Andrew
Cattermole wrote:
>
> On 24/06/2024 4:24 AM, Paolo Invernizzi wrote:
>> On Sunday, 23 June 2024 at 16:09:00 UTC, Richard (Rikki)
>> Andrew Cattermole wrote:
>>>
>>> On 24/06/2024 3:59 AM, Paolo Invernizzi wrote:
>>>> On Saturday, 22 June 2024 at 10:28:10 UTC, Richard (Rikki)
>>>> Andrew Cattermole wrote:
>>>>> On 22/06/2024 8:37 PM, Paolo Invernizzi wrote:
>>>>>> Independent ... but with dependency?
>>>>>> The impression is that everything in D-lanD is moving
>>>>>> towards an over-eng complexity ...
>>>>>
>>>>> No no.
>>>>>
>>>>> Its literally just the event loop shard depends upon base
>>>>> shard.
>>>>>
>>>>> Explicit dependencies, no accidental importing something
>>>>> that you shouldn't be able to without clear stated
>>>>> intention.
>>>>>
>>>>> This is a key goal of PhobosV3 work, was to break the
>>>>> interdependencies of modules.
>>>>
>>>> I still think it's over-eng.
>>>>
>>>> Indirect dependencies of module are direct dependencies of
>>>> the imported module, that means that the opinion is that the
>>>> imported module is using another module without a valid good
>>>> reason. So, the only thing to do is "just" (well, "just"
>>>> ...) improve the quality of imported module itself, cleaning
>>>> it. Why is it necessary to have another abstraction, shard,
>>>> in a already complicated language like D?
>>>
>>> What new language concept?
>>>
>>> Its purely build system, what files get passed to the
>>> compiler and made available via ``-I``.
>>>
>>> Everything is in place except the build system (and enabling
>>> of PAYG for linking).
>>>
>>> It is no different than a dub sub package and explicitly
>>> setting the dependencies there.
>>
>> Language intended as language as a whole, ecosystem included.
>> I still don't grasp where's the improvement over the status
>> quo of a monolithic Phobos and far west dub modules.
>>
>> Phobos modules interdependencies should be reduced? It's a
>> decade that this point is on the table, I was here when Andrei
>> rants about Phobos quality were flying around. Nothing new
>> introduced into the "language as a whole" supersede the simple
>> point that hard analysis work needs to be done on the code
>> itself.
>>
>> I still do not grasp the point.
>>
>> /P
>
> If you want to grow the standard library you have no choice but
> to split into different binaries.
>
> That 64k symbol limit is quite the limiter here.
>
> Having stuff like eventloops or even just curl which are
> heavily tied to platform specifics does prevent porting even
> the subset that doesn't depend on anything on the platform. In
> practice nobody ports phobos but they do copy stuff out of it.
>
> At some point a split will occur, a well defined split is
> better than "we can't release dmd anymore as it won't link".
Thank you, now the intent is more clear to me.
As a preamble, curl into Phobos is an abomination, dub packages
are the right place for stuff like that: if more space for
symbols is needed, why not move them out, like std.streams and so?
Basic building blocks have the tendency to be templates: more
sumtype like inclusion, less std.logger inclusion. More import
usage, less library usage.
Phobos should be a place where interfaces are defined, for
example how many implementations of "socket" are around, sync and
async? Vibe? Phobos? Martin std.io? Etienne? arsd? Everyone is
free to provide it's own implementation of event loop on as dub
package, but why not a common "common" "basic" hygienic
definition that allows interoperability?
Anyway, I'm digressing too much ... but at the end, please, do
not over-complicate the D ecosystem more that the current status
quo. We are already at the boundaries of stepping out in using D
(well, not that this is so important to anyone but us ...)
More information about the Digitalmars-d
mailing list