Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Ticket #516 (assigned wishlist)

Opened 12 years ago

Last modified 10 years ago

D 2.0 support

Reported by: Deewiant Assigned to: kris (accepted)
Priority: normal Milestone: 2.0
Component: Tango Version: 0.98 RC2
Keywords: triage Cc:


AKA "The Great const Cleanup".

Is this going to happen any time soon? I suppose you'll be waiting for D 2.0 to stabilize, first? Or will there be a fork of Tango?

Change History

06/19/07 08:25:24 changed by larsivi

It seems likely there will be a branch at some point, but not before there is some stability in the const implementation.

06/19/07 10:44:53 changed by Don Clugston

I think it's tremendously important that we stay focused on D1.0. It'll be nice if we can be compilable with 2.0, but we shouldn't get distracted by that. OTOH Tango 2.0 should target D2.0; I think D1.0x doesn't have much long-term future; it's got too many incomplete features.

I think that Tango should publish a clear statement of it's compatibility goals. I can see three clear possibilities: (1) Tango 1.0 should target the latest D1.x compiler at the time of Tango's 1.0 release. (Note that just before Tango1.0 is released, we could backtrack to find the earliest version it actually requires). (2) Tango will not use any _features_ which were not present in DMD1.004 (= D1.000 + bugfixes), but will require the use of a later version, because of bugfixes. (3) Tango will target DMD1.015, (which seems particularly stable), the last version before the first 2.0alpha release, until a Tango developer finds a bug which requires a compiler upgrade. We will ensure that it remains compilable with later 1.x compiler releases.

My preference is for (1) or (3). This makes a difference as to what Tango developers should use. Should we upgrade our compilers every time Walter makes a 1.x release?

06/19/07 11:11:09 changed by larsivi

FWIW, Tango does afaik compile with the -v1 switch. There were bugfixes in DMD at least as late as 1.013 affecting Tango, so I think the 1.015 requirement is sane.

After starting with Tango, I continously forget to upgrade my compiler unless I'm waiting for a specific fix, so no, we should not expect users to upgrade when using the stable branch.

06/20/07 06:48:32 changed by Don Clugston

Good. Can we put a statement to that effect somewhere prominent on the Wiki? Something like: DMD: Requires DMD 1.015 or later 1.0x compiler" GDC(PPC): Partial support with GDC xxx, still waiting for the next GDC upgrade. GDC(non-PPC): - whatever the latest GDC version is.

Of course, the -v1 switch doesn't do much. It doesn't disable CTFE or text mixins, for example. So it doesn't give any idea of what feature set you're actually using. After the next GDC upgrade, we might want to do harmless changes like replacing any usage of invariant{} with invariant(){} to minimize changes for 2.0.

08/28/07 06:50:41 changed by kris

  • status changed from new to assigned.
  • milestone set to 2.0.

Not doing a 2.0 until the compiler stabilizes somewhat :)

11/12/07 10:57:39 changed by larsivi

There is now a mostly working experimental branch for this.


05/25/08 14:12:48 changed by larsivi

  • keywords set to triage.

I guess this branch is not mostly working anymore - any takers?

12/14/09 17:28:09 changed by bobef

Looking at the age of this ticket - older than two years. Is D2 still not stable? Please review it.

12/14/09 23:39:16 changed by larsivi

According to word of mouth, D 2.0 is still far from stable. In addtion very few appear to be interested to do the actual work necessary (it will require huge amounts of work).

12/15/09 12:40:06 changed by dervinar

I think that there are a many peaple, who are interested for D2.0 supporting in tango. We could do this job, but some things we can not know. So, let us formulate all changes, changes to be made in the trunk for D2.0 support.

1. this is ref, not pointer now. 2. Deal with char[], const(char)[], invariant(char)[] in tango.text.Util and some other modules. 3. replace all functions in tango.core at functions in core in druntime. 4. add some aliases to tango.core and object.d to backward compatibility. (for example alias Throwable Exception)

supplement this list=)