digitalmars.D - Phobos version naming
- Andrei Alexandrescu (6/6) Nov 03 2021 I'd like to devise a robust version naming for Phobos. What is the best ...
- Paul Backus (9/11) Nov 03 2021 This seems like a misuse of semver to me. Backwards-compatible
- Alexandru Ermicioi (6/17) Nov 03 2021 It could also be split into sub packages, this way it should be
- Andrei Alexandrescu (2/14) Nov 03 2021 OK, so the way to go is with std version naming is...?
- Paul Backus (24/39) Nov 03 2021 Having thought about this some more, I think there are two
- rikki cattermole (7/15) Nov 04 2021 Yeah I am well past the point of laughing about all of this versioning
- Andrei Alexandrescu (3/23) Nov 04 2021 I don't think how to explain better that the mechanics of versioning are...
- Andrei Alexandrescu (4/24) Nov 08 2021 I've said this a few times and I'll say it again in the hope it catches ...
- Imperatorn (4/12) Nov 03 2021 I would vote for having it at the same level. Regarding versions,
- harakim (3/17) Nov 03 2021 The more I look into this, I think they just create a new
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (8/10) Nov 03 2021 Yes, but not Python.
- Andrei Alexandrescu (3/12) Nov 03 2021 Turns out switching names around is easy:
- Andrei Alexandrescu (3/13) Nov 03 2021 One thought; we could call version actual names, like Ubuntu and OSX do....
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (3/6) Nov 03 2021 So you have "phobos", "deimos", then what?
- David Gileadi (5/10) Nov 03 2021 But of course: Dejah Thoris, John Carter, Carthoris, Tara, Llana...
- Adam D Ruppe (3/6) Nov 03 2021 Yeah, the number is far more practical.
- H. S. Teoh (9/15) Nov 03 2021 I agree. Debian GNU/Linux uses names for releases, and it's widely
- Andrei Alexandrescu (2/8) Nov 03 2021 Prolly we could have both so people could use either "io" or "std2".
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (7/9) Nov 03 2021 Oh, so you are leaving Mars and moving on to Jupiter? Good
- Adam Ruppe (11/13) Nov 03 2021 What I would actually do is make it the year of the planned
- Andrei Alexandrescu (2/15) Nov 03 2021 Love this.
- Max Samukha (4/9) Nov 03 2021 What if it's behind schedule? You'd have to explain to people in
- Adam D Ruppe (4/5) Nov 04 2021 Then you cut features and/or redouble their efforts to get back
- Andrei Alexandrescu (7/17) Nov 04 2021 Interestingly enough that's what happened to C++. The draft was C++0x
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (9/15) Nov 04 2021 What C++ is doing is nothing like what you propose.
- Andrei Alexandrescu (3/13) Nov 08 2021 Right now it's std2xalpha, to be renamed to std22 or std23 etc when the
- Max Samukha (6/8) Nov 17 2021 Sorry for the delay. I don't quite understand why we have to copy
- Andrey Zherikov (6/20) Nov 04 2021 Why no to do the similar thing as C++ std does? The working name
- Andrey Zherikov (6/6) Nov 04 2021 On Thursday, 4 November 2021 at 13:23:57 UTC, Andrey Zherikov
- Andrei Alexandrescu (2/23) Nov 04 2021 Thanks, I'll do that. For now I'll use std2xalpha.
- Salih Dincer (4/7) Nov 04 2021 We wasting time! why not std2, just do it. Then we can change it
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (4/7) Nov 03 2021 Make Astronomy 101 a prerequisite for learning the language and
- Stanislav Blinov (21/36) Nov 03 2021 Please don't do that. Picking good names is hard, and such naming
- Andrey Zherikov (4/14) Nov 03 2021 I like the idea with std.next.
- Stanislav Blinov (6/8) Nov 03 2021 Yup, old stuff needs to linger somewhere so people can migrate.
- Guillaume Piolat (3/11) Nov 03 2021 My pick is stdnext.stuff
- Andrei Alexandrescu (2/15) Nov 03 2021 And then? stdnextnext?
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (8/11) Nov 04 2021 No, instead of being backwards compatible you aim for being
- zjh (8/10) Nov 03 2021 `std->std0->std`.
- zjh (14/15) Nov 03 2021 `std0` is similar to the `C++latest` switch, and `std` is the
- Andrei Alexandrescu (2/14) Nov 03 2021 No because this will break all existing code.
- zjh (9/10) Nov 03 2021 Just an private `alias`,where is break?
- zjh (4/5) Nov 03 2021 `Just` like `git` merge into `std` stable release.`std=std0(3
- zjh (3/3) Nov 03 2021 On Thursday, 4 November 2021 at 05:59:43 UTC, zjh wrote:
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (6/8) Nov 04 2021 What I find annoying with C++ (Clang and Xcode) is that the next
- zjh (5/6) Nov 04 2021 On Thursday, 4 November 2021 at 08:49:52 UTC, Ola Fosheim Grøstad
- Walter Bright (2/3) Nov 03 2021 I understand its technical merits, but having to look at v2_0_1 is unbea...
- Imperatorn (3/7) Nov 04 2021 Agreed, I wouldn't be able to sleep at night if it looked like
- dd (11/13) Nov 04 2021 I'm fine with std.v2 or next.std or next.std.v2 or future.std or
I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?
Nov 03 2021
On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.This seems like a misuse of semver to me. Backwards-compatible bugfixes and additions to std.v2 can go directly into std.v2, just like they currently do for std. There is no need to create separate packages for every minor and patch increment. If we really want to support users depending on a specific minor/patch release of Phobos other than the one shipped with their D toolchain, we should put Phobos on code.dlang.org.
Nov 03 2021
On Wednesday, 3 November 2021 at 16:29:20 UTC, Paul Backus wrote:On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:It could also be split into sub packages, this way it should be possible to pick up patched version of subpackage, if it is problematic to move entire phobos to newer version. Best regards, Alexandru.Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.This seems like a misuse of semver to me. Backwards-compatible bugfixes and additions to std.v2 can go directly into std.v2, just like they currently do for std. There is no need to create separate packages for every minor and patch increment. If we really want to support users depending on a specific minor/patch release of Phobos other than the one shipped with their D toolchain, we should put Phobos on code.dlang.org.
Nov 03 2021
On 2021-11-03 12:29, Paul Backus wrote:On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:OK, so the way to go is with std version naming is...?Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.This seems like a misuse of semver to me. Backwards-compatible bugfixes and additions to std.v2 can go directly into std.v2, just like they currently do for std. There is no need to create separate packages for every minor and patch increment. If we really want to support users depending on a specific minor/patch release of Phobos other than the one shipped with their D toolchain, we should put Phobos on code.dlang.org.
Nov 03 2021
On Wednesday, 3 November 2021 at 17:42:06 UTC, Andrei Alexandrescu wrote:On 2021-11-03 12:29, Paul Backus wrote:Having thought about this some more, I think there are two separate issues here: naming and distribution. SemVer tells us how to do naming; i.e., how to refer to a particular release, like "1.0.0" or "2.0.1". I do not think we should abandon SemVer for naming. However, SemVer does not tell us how to do distribution; i.e., how users can get access to a particular release. There are many possible choices we can make here: * Ship every release with the official D distribution. * Ship the latest release of each major version with the official D distribution. * Ship every release on code.dlang.org. * Ship some releases with the official D distribution and others on code.dlang.org. Given that code.dlang.org already has infrastructure in place for distributing many releases of the same package, I think it makes sense to use it for at least some of Phobos's distribution, if not all of it. And my gut reaction is that shipping *every* release in the official D distribution would be too much--at the very least, new users should not be presented with dozens of standard-library releases to choose from right off the bat. So, the right answer is probably somewhere between those two extremes.On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:OK, so the way to go is with std version naming is...?Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.This seems like a misuse of semver to me. Backwards-compatible bugfixes and additions to std.v2 can go directly into std.v2, just like they currently do for std. There is no need to create separate packages for every minor and patch increment. If we really want to support users depending on a specific minor/patch release of Phobos other than the one shipped with their D toolchain, we should put Phobos on code.dlang.org.
Nov 03 2021
On 04/11/2021 4:50 PM, Paul Backus wrote:Given that code.dlang.org already has infrastructure in place for distributing many releases of the same package, I think it makes sense to use it for at least some of Phobos's distribution, if not all of it. And my gut reaction is that shipping *every* release in the official D distribution would be too much--at the very least, new users should not be presented with dozens of standard-library releases to choose from right off the bat. So, the right answer is probably somewhere between those two extremes.Yeah I am well past the point of laughing about all of this versioning stuff. Give us a dub package for anything that hasn't matured. Once matured, it goes into Phobos. Too much energy is being wasted on what should be a pretty streamlined process.
Nov 04 2021
On 11/4/21 8:04 AM, rikki cattermole wrote:On 04/11/2021 4:50 PM, Paul Backus wrote:I don't think how to explain better that the mechanics of versioning are a different concern entirely than distribution.Given that code.dlang.org already has infrastructure in place for distributing many releases of the same package, I think it makes sense to use it for at least some of Phobos's distribution, if not all of it. And my gut reaction is that shipping *every* release in the official D distribution would be too much--at the very least, new users should not be presented with dozens of standard-library releases to choose from right off the bat. So, the right answer is probably somewhere between those two extremes.Yeah I am well past the point of laughing about all of this versioning stuff. Give us a dub package for anything that hasn't matured. Once matured, it goes into Phobos. Too much energy is being wasted on what should be a pretty streamlined process.
Nov 04 2021
On 2021-11-04 8:04, rikki cattermole wrote:On 04/11/2021 4:50 PM, Paul Backus wrote:I've said this a few times and I'll say it again in the hope it catches on: The process of distributing versions of software and the process of coding and maintaining versions of software are distinct.Given that code.dlang.org already has infrastructure in place for distributing many releases of the same package, I think it makes sense to use it for at least some of Phobos's distribution, if not all of it. And my gut reaction is that shipping *every* release in the official D distribution would be too much--at the very least, new users should not be presented with dozens of standard-library releases to choose from right off the bat. So, the right answer is probably somewhere between those two extremes.Yeah I am well past the point of laughing about all of this versioning stuff. Give us a dub package for anything that hasn't matured. Once matured, it goes into Phobos. Too much energy is being wasted on what should be a pretty streamlined process.
Nov 08 2021
On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?I would vote for having it at the same level. Regarding versions, how do other languages do it?
Nov 03 2021
On Wednesday, 3 November 2021 at 16:46:39 UTC, Imperatorn wrote:On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:The more I look into this, I think they just create a new incompatible version, like Python2 and Python3.I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?I would vote for having it at the same level. Regarding versions, how do other languages do it?
Nov 03 2021
On Wednesday, 3 November 2021 at 18:11:28 UTC, harakim wrote:The more I look into this, I think they just create a new incompatible version, like Python2 and Python3.Yes, but not Python. Python had a forward-compatible system library called future and a third party library called six that provided Python3 transition code. I had a template for Python2 that did the future compatibility imports, so when I transitioned to Python3 I just had to remove that line for the most part. :-) Python3 transition was painless for me.
Nov 03 2021
On 2021-11-03 11:37, Andrei Alexandrescu wrote:I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?Turns out switching names around is easy: https://github.com/dlang/phobos/pull/8309/commits/5c6d9ba3aef59878b2b97c2464a1616d5dfce04b
Nov 03 2021
On 2021-11-03 11:37, Andrei Alexandrescu wrote:I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?One thought; we could call version actual names, like Ubuntu and OSX do. The version numbers will be a minor detail in the documentation.
Nov 03 2021
On Wednesday, 3 November 2021 at 19:30:13 UTC, Andrei Alexandrescu wrote:One thought; we could call version actual names, like Ubuntu and OSX do. The version numbers will be a minor detail in the documentation.So you have "phobos", "deimos", then what?
Nov 03 2021
On 11/3/21 12:32 PM, Ola Fosheim Grøstad wrote:On Wednesday, 3 November 2021 at 19:30:13 UTC, Andrei Alexandrescu wrote:But of course: Dejah Thoris, John Carter, Carthoris, Tara, Llana... Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.One thought; we could call version actual names, like Ubuntu and OSX do. The version numbers will be a minor detail in the documentation.So you have "phobos", "deimos", then what?
Nov 03 2021
On Wednesday, 3 November 2021 at 19:40:30 UTC, David Gileadi wrote:Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.Yeah, the number is far more practical.
Nov 03 2021
On Wed, Nov 03, 2021 at 07:44:21PM +0000, Adam D Ruppe via Digitalmars-d wrote:On Wednesday, 3 November 2021 at 19:40:30 UTC, David Gileadi wrote:I agree. Debian GNU/Linux uses names for releases, and it's widely hated. Even people like me, who don't hate it, find it very confusing because it's hard to tell which version is before or after which by looking at some arbitrarily-chosen names. Let's just stick with numbers please. T -- Give a man a fish, and he eats once. Teach a man to fish, and he will sit forever.Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.Yeah, the number is far more practical.
Nov 03 2021
On 2021-11-03 15:44, Adam D Ruppe wrote:On Wednesday, 3 November 2021 at 19:40:30 UTC, David Gileadi wrote:Prolly we could have both so people could use either "io" or "std2".Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.Yeah, the number is far more practical.
Nov 03 2021
On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:Prolly we could have both so people could use either "io" or "std2".Oh, so you are leaving Mars and moving on to Jupiter? Good choice, [Jupiter has 79 moons (53 with names)](https://solarsystem.nasa.gov/moons/jupiter-moons/overview/?page=0&per_page=40&order=name+asc&search=&placeholder=Enter+moon+name&condition_1=9%3Aparent_id&condition_2=moon%3Abody_type%3Ailike). Does leaving Mars (D2) and entering an orbit around Jupiter mean we will get D3 too?
Nov 03 2021
On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:Prolly we could have both so people could use either "io" or "std2".What I would actually do is make it the year of the planned stable release. For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024. This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.
Nov 03 2021
On 11/3/21 8:46 PM, Adam Ruppe wrote:On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:Love this.Prolly we could have both so people could use either "io" or "std2".What I would actually do is make it the year of the planned stable release. For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024. This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.
Nov 03 2021
On Thursday, 4 November 2021 at 00:46:35 UTC, Adam Ruppe wrote:For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024.What if it's behind schedule? You'd have to explain to people in 2025 why the future version name is std2023. Also, std2023 is ugly.
Nov 03 2021
On Thursday, 4 November 2021 at 06:12:43 UTC, Max Samukha wrote:What if it's behind schedule?Then you cut features and/or redouble their efforts to get back on schedule. I assure you, the emperor is not as forgiving as I am.
Nov 04 2021
On 11/4/21 2:12 AM, Max Samukha wrote:On Thursday, 4 November 2021 at 00:46:35 UTC, Adam Ruppe wrote:Interestingly enough that's what happened to C++. The draft was C++0x for a long time until they realized they can't make it by 2010. The standard was ultimately C++11, and it was refreshed every three years right on schedule. I can't understate just how successful their process is. We'd do good to learn from it.For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024.What if it's behind schedule? You'd have to explain to people in 2025 why the future version name is std2023. Also, std2023 is ugly.
Nov 04 2021
On Thursday, 4 November 2021 at 15:23:46 UTC, Andrei Alexandrescu wrote:Interestingly enough that's what happened to C++. The draft was C++0x for a long time until they realized they can't make it by 2010. The standard was ultimately C++11, and it was refreshed every three years right on schedule. I can't understate just how successful their process is. We'd do good to learn from it.What C++ is doing is nothing like what you propose. C++ has only one standard namespace and that is "std", ("std??" is reserved). C++ is by and large backwards compatible. Both language and standard lib. Only a tiny number of unused features have been deprecated and signatures have been modified in non-breaking ways for the most applications.
Nov 04 2021
On 2021-11-04 2:12, Max Samukha wrote:On Thursday, 4 November 2021 at 00:46:35 UTC, Adam Ruppe wrote:Right now it's std2xalpha, to be renamed to std22 or std23 etc when the version matures. I hope it won't spill into std3x :o).For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024.What if it's behind schedule? You'd have to explain to people in 2025 why the future version name is std2023. Also, std2023 is ugly.
Nov 08 2021
On Monday, 8 November 2021 at 22:43:45 UTC, Andrei Alexandrescu wrote:Right now it's std2xalpha, to be renamed to std22 or std23 etc when the version matures. I hope it won't spill into std3x :o).Sorry for the delay. I don't quite understand why we have to copy that mistake of C++. How is encoding the excessive semantic information in a frequently used identifier better than just having std<N> plus a doc page with the release dates?
Nov 17 2021
On Thursday, 4 November 2021 at 00:46:35 UTC, Adam Ruppe wrote:On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:Why no to do the similar thing as C++ std does? The working name of the next version is std2x, then as soon as it's stabilized, it's renamed to std2023. The following version might be std2y -> std2027, for example. We can use "a", "b", "c" etc. to ensure that we don't run out of letters within the decade.Prolly we could have both so people could use either "io" or "std2".What I would actually do is make it the year of the planned stable release. For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024. This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.
Nov 04 2021
On Thursday, 4 November 2021 at 13:23:57 UTC, Andrey Zherikov wrote: Also why can't we change the major version of the compiler? Every major version will have different default version of phobos and support only few recent versions (to allow decommission of the old versions of phobos). Basically something similar to GCC.
Nov 04 2021
On 11/4/21 9:23 AM, Andrey Zherikov wrote:On Thursday, 4 November 2021 at 00:46:35 UTC, Adam Ruppe wrote:Thanks, I'll do that. For now I'll use std2xalpha.On Wednesday, 3 November 2021 at 22:21:53 UTC, Andrei Alexandrescu wrote:Why no to do the similar thing as C++ std does? The working name of the next version is std2x, then as soon as it's stabilized, it's renamed to std2023. The following version might be std2y -> std2027, for example. We can use "a", "b", "c" etc. to ensure that we don't run out of letters within the decade.Prolly we could have both so people could use either "io" or "std2".What I would actually do is make it the year of the planned stable release. For example we might not actually use "Stdv2" but instead "std2023". In years prior to that, it is now obviously a future version and thus subject to change, then when 2023 comes along, it is officially stablized and we can start playing with std 2024. This pace of putting major breaking changes in a yearly schedule would also give people realistic expecations. No, it won't break next month, but yes, it might next year.
Nov 04 2021
On Wednesday, 3 November 2021 at 19:40:30 UTC, David Gileadi wrote:We wasting time! why not std2, just do it. Then we can change it with finger movement.Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.
Nov 04 2021
On Wednesday, 3 November 2021 at 19:40:30 UTC, David Gileadi wrote:Bikeshed aside, named library versions may be more memorable but they have the downside that it's much harder to see two names and know which one is newer and/or current.Make Astronomy 101 a prerequisite for learning the language and pick stars ordered by distance from Earth.
Nov 03 2021
On Wednesday, 3 November 2021 at 19:30:13 UTC, Andrei Alexandrescu wrote:On 2021-11-03 11:37, Andrei Alexandrescu wrote:Please don't do that. Picking good names is hard, and such naming complicates communication between developers (esp. those not fluent in language of choice, or not familiar with name origins). What if a given name is just unnatural to pronounce in your language? And how do you even maintain the ordering then? To me, it'd be "better" to have std at top level, not std2 or std1005000220. So how about turning it around? During development, whatever next iteration is would be stdNext (or std.next). At release, it becomes the new std and the *previous* one gets a number (i.e. in current circumstance it'll become std.v1). The number may even be date of retirement. This way it can be made as alias internally, so we can keep whatever the actual number is rolling, and still be able to break things that need breaking, and get to have easier to implement "std.vN". This makes what's actually standard always, well, standard. If someone wants or needs old stuff for some reason, it becomes THEIR responsibility to maintain their compatibility (i.e. s/<std>/std.vX/g), as it should be.I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?One thought; we could call version actual names, like Ubuntu and OSX do. The version numbers will be a minor detail in the documentation.
Nov 03 2021
On Wednesday, 3 November 2021 at 20:03:48 UTC, Stanislav Blinov wrote:To me, it'd be "better" to have std at top level, not std2 or std1005000220. So how about turning it around? During development, whatever next iteration is would be stdNext (or std.next). At release, it becomes the new std and the *previous* one gets a number (i.e. in current circumstance it'll become std.v1). The number may even be date of retirement. This way it can be made as alias internally, so we can keep whatever the actual number is rolling, and still be able to break things that need breaking, and get to have easier to implement "std.vN".I like the idea with std.next. What's about publishing old versions of std to code.dlang.org?
Nov 03 2021
On Wednesday, 3 November 2021 at 21:04:14 UTC, Andrey Zherikov wrote:I like the idea with std.next. What's about publishing old versions of std to code.dlang.org?Yup, old stuff needs to linger somewhere so people can migrate. For example, it gets published as std.vXYZ (with the appropriate folder structure). That's why using retirement date for XYZ can also be more informative than just an ordinal.
Nov 03 2021
On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?My pick is stdnext.stuff
Nov 03 2021
On 11/3/21 8:25 PM, Guillaume Piolat wrote:On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:And then? stdnextnext?I'd like to devise a robust version naming for Phobos. What is the best way? Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on. Walter and others say it's better to have "std2" at top level instead of "std.v2" nested inside std. I confess I chose "std.v2" partially because it's easier to implement. But we can go either way. What would be best?My pick is stdnext.stuff
Nov 03 2021
On Thursday, 4 November 2021 at 04:07:56 UTC, Andrei Alexandrescu wrote:On 11/3/21 8:25 PM, Guillaume Piolat wrote:No, instead of being backwards compatible you aim for being forward compatible. So you prepare for the next major language release by giving early access through a "next" namespace. When you hit the major language release you rename it to "std" and phase out the outdated "std".My pick is stdnext.stuffAnd then? stdnextnext?
Nov 04 2021
On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:I'd like to devise a robust version naming for Phobos. What is the best way?`std->std0->std`. `std->std0->std`. Always Only One Std Version. `std0` is just Intermediate state name. `std0` internal add a `year` as `private alias version name` such as `std2021`.
Nov 03 2021
On Thursday, 4 November 2021 at 00:38:24 UTC, zjh wrote:`std->std0->std`.`std0` is similar to the `C++latest` switch, and `std` is the stable version. We didn't do anything, we got the `stable/latest` version. `Win-win`. You need `stable version`,Ok use `std`. You need `latest version`,ok use `std0`. It also takes `3` months to enter the stable version. At the same time, it is synchronized with the release of `DMD`. Why? Because many people want to use the latest features at the first time. Users of the stable version also hope to get the latest version without modification. Large and full use, but also easier to expose `bugs`.
Nov 03 2021
On 11/3/21 8:38 PM, zjh wrote:On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:No because this will break all existing code.I'd like to devise a robust version naming for Phobos. What is the best way?`std->std0->std`. `std->std0->std`. Always Only One Std Version. `std0` is just Intermediate state name. `std0` internal add a `year` as `private alias version name` such as `std2021`.
Nov 03 2021
On Thursday, 4 November 2021 at 04:07:39 UTC, Andrei Alexandrescu wrote:On 11/3/21 8:38 PM, zjh wrote:Just an private `alias`,where is break? `version std0=std2021`,is so easy. `std.v2_0_1`,too ugly.This is not the right way. User only need change `std` to `std0`,and every new feature is Ok for use.If he want `stable` release,He does nothing.`std` is already there . `Just` maintainer merge `std0` into `std`.
Nov 03 2021
On Thursday, 4 November 2021 at 05:45:14 UTC, zjh wrote:`Just` maintainer merge `std0` into `std`.`Just` like `git` merge into `std` stable release.`std=std0(3 month later mergin into`. We always two `branch`:`std(stable)`+`std0(latest,unstable)`.
Nov 03 2021
On Thursday, 4 November 2021 at 05:59:43 UTC, zjh wrote: I use C++ and always add `C++ latest` switch, which is very convenient.
Nov 03 2021
On Thursday, 4 November 2021 at 06:06:33 UTC, zjh wrote:I use C++ and always add `C++ latest` switch, which is very convenient.What I find annoying with C++ (Clang and Xcode) is that the next language features are implemented and ready before the standard library. It can take like a year or so before we get the standard library up to date in C++. (Microsoft currently do better, I think).
Nov 04 2021
On Thursday, 4 November 2021 at 08:49:52 UTC, Ola Fosheim Grøstad wrote: C++. (Microsoft currently dobetter, I think).`C++`'s `concepts and ... ` are very convenient to use. When implementing functions, it is very concise.
Nov 04 2021
On 11/3/2021 8:37 AM, Andrei Alexandrescu wrote:By semver we'd go with std.v2_0_1 and so on.I understand its technical merits, but having to look at v2_0_1 is unbearably ugly.
Nov 03 2021
On Thursday, 4 November 2021 at 02:59:47 UTC, Walter Bright wrote:On 11/3/2021 8:37 AM, Andrei Alexandrescu wrote:Agreed, I wouldn't be able to sleep at night if it looked like thatBy semver we'd go with std.v2_0_1 and so on.I understand its technical merits, but having to look at v2_0_1 is unbearably ugly.
Nov 04 2021
On Wednesday, 3 November 2021 at 15:37:05 UTC, Andrei Alexandrescu wrote:Currently it's std.v2 but I'm unclear how it goes from there. By semver we'd go with std.v2_0_1 and so on.I'm fine with std.v2 or next.std or next.std.v2 or future.std or similar. They all show a clear name that these will be the next version. std2023 and std.v2_0_2 and the lot looks ugly and seem unpractical in a sense where you will have to maintain a multitude of minor versions. It would be easier to have std.v2 and std.v3 because then it's simply a question of remapping the functions to major versions. It's already a little painful trying to map out which compilers version support what.
Nov 04 2021