Thoughts on versioning

Steven Schveighoffer schveiguy at gmail.com
Thu Oct 28 14:12:44 UTC 2021


On 10/28/21 7:30 AM, Ogi wrote:
> On Tuesday, 26 October 2021 at 06:05:08 UTC, bauss wrote:
>> The only problem I see when versioning the standard library is that 
>> some packages will rely on specific versions of the standard library 
>> and it could make it difficult to use packages that rely on different 
>> versions of the standard library.
> 
> You’re saying it like it’s not a big deal but I’m afraid it’s going to 
> be a huge source of pain. Imagine not being able to get some `DateTime`, 
> or `Complex`, or `File` from one package and pass it to another because 
> one depends on `std1` and the other depends on `std2`. Or imagine 
> dealing with different versions of the same exception class. It appears 
> to me that versioning the standard library is a bullet train straight to 
> dependency hell.

Yes, this is a part that is not being considered. We have clues as to 
how hellish it will be with experience in using Windows DLLs which have 
their own independent copy of the runtime (and all the "same but not 
same" `TypeInfo` instances).

And there is the problem with `string` actually being the same type in 
both libraries but doing completely different things (autodecoding).

I'm wondering, if we did things like you do database migrations, if it 
might help (with the former problem). That is, if you pass a 
`std.stdio.File` to a function accepting a `std2.stdio.File`, the 
compiler is given a way to convert the internals/state. Something like 
that might make things palatable.

-Steve


More information about the Digitalmars-d mailing list