Do we need a time-out in D evolution?

Thomas Kuehne thomas-dloop at kuehne.cn
Sun Jun 10 15:11:24 PDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

BCS schrieb am 2007-06-09:
> Reply to Walter,
>
>> BCS wrote:
>> 
>>> Reply to Walter,
>>> 
>>>> BCS wrote:
>>>> 
>>>>> will the 2.0 series have an extern(D1) if and when somthing breaks
>>>>> linking?
>>>>> 
>>>> No.
>>>> 
>>> Bummer
>>> 
>> It's not that it's a bad idea, it's just that it would be problematic
>> to implement. What if the behavior of parts of Phobos changes, and one
>> part of the code depends on 1 library behavior, and another part
>> depends on 2? What if trying to accommodate both simultaneously is not
>> practical? How to test all those combinations?
>>
>
> Well in that case I hope we'll get it when D2.0 comes out of beta. (or maybe 
> alpha)
>
>
> Aside:
>
> This sort of plays into a thought I had as to how D might be able to avoid 
> the mess that C++ seems to have gotten into. How about if each major version 
> of D is not required to be backwards comparable with the last version. Where 
> possible the extern(D<ver>) will be provided for backwards (and maybe forwards) 
> compatibility.  However If code can't be mapped automatically, then it isn't 
> directly callable and that is assumed to be the cost of keeping a clean language.

For some modules like std.math supporting Dv1 and Dv2 at the same time
is most likely not difficult, however for the "rest" ...

My experience with Flectioned is that supporting multiple runtime
libraries(GPhobos, Phobos, Tango) in D - or in the above case
versions - can be a real pain. Supporting a Dv1-Dv2-mix in one
binary might be possible (depends on how the overload rules change)
but would require a lot of work with very little reward. The nice part
about the Dv1 -> Dv2 change is that the vast majority of problems are
going to be triggered at compile time (exception: some casts and
assembler).

In general I'm against an "extern(D<ver>)". In some isolated cases it
might be useful however usually a feature test instead of a version test
is going to be less bug prone.

Thomas


-----BEGIN PGP SIGNATURE-----

iQIVAwUBRmx3CrZlboUnBhRKAQLFZw/7BWXvNHADKrf4OCJhh1sKo10Fn3UjFW3p
Oc8rv5kP9a2hh8NMmkCbjYgtZw5w95wraEFSS3pj1+8iH+sJsCEDnefplchUumxP
G5eN5bKdIOb12anSuP4mnWZkzXov5TzIJdoi+fJWaEVm1lBdn+JRabfa34mKtPoc
AZp1LReEqScPwpJsy50DyFEabncxYE0yhXWFjx2GrCd/oJym5vHHcekXwmyVauDk
pVf8+ywwy9FjXFlKgy9ZHXaYnIY30iEvVzZ6L0gzO1UZrFHJQrr9mFoD4xuTV25I
zbP/RgYqGxYUYtKBTVDiVAejSR5an44xDpzMz2G2ll3B28rum8BYyGQWa6JzHjQI
EWKOYe//GrLt8pCuoFoHWJIG2E0/lr93tQexl1/WoU/pqgW4Gn1hp95vegoog6d0
TYt64pSk+dTE6VWPFX/DLm/Nt0Lq7P+BgixxTFfSDE00nMT+L3Crn64nLMBYOzk4
Dq1bkVIpIUTJgFkJ8iXgW9F5eZkBEfoqo2PZzeaoi8DutcRcd54e5Z97GPlcGZZk
jDVB23v4udstLFCF9LDMgHZyP3ntQMZ/ozbsNUYyfpET6/a3nKX3yOGAfCm20uF3
4ivEeeTig9Oh/vsr801bxC3rh/q8AvGOaClUik76XQPdPZ4WnDGXpDV+VwUIr8bF
GRhLt4ORd8s=
=3HHw
-----END PGP SIGNATURE-----



More information about the Digitalmars-d mailing list