On 09/16/2010 06:44 PM, Andrei Alexandrescu wrote:
On 9/16/10 9:22 CDT, Max Samukha wrote:
After a good amount of hesitation, we have decided to put the QtD
project on hold. QtD has a potential to become a complete and effective
development platform for D but it is not going to happen soon (unless
people with harder hearts take it over). We have spent half of the day
hunting yet another dmd bug-o-feature and that is the last straw.
We offer our apologies to people who put their hope upon the project.
Please come back in a year or two when the language has a stable
compiler with the features fully specified, implemented and debugged.
Hi Max,
Sorry to hear that. Was this an issue of many small annoyances or a few
big ones?
Thanks,
Andrei
Hi Andrei,
Both, I guess. The recent big one is the unspecified behavior of
postblit on const/immutable structs and overloading by rvalue/lvalue.
Specifically, we were bending the generator into generating Qt value
types as structs and hit two problems:
1. The generated __cpctor (which does the blit and calls the postblit)
is always non-const and takes a non-const reference to the original.
That means copy-construction of const objects is impossible without casts.
To proceed, we had to hack the compiler so that __cpctor took a const
original reference and was called on a mutable target reference. That
seemed to work but left us in uncertainty: how it actually should and
will work?
2. A bug in the compiler doesn't allow us to overload struct parameters
by ref-ness. So we had to generate by-value parameters where Qt has them
by reference.
And today we've encountered two other bugs in sequence. One was about
the impossibility to access a template instance member from within a
struct nested in another struct and the second didn't give any line/file
information.
We could probably work around or ignore all these problems but I think
it is starting to take more time and nerve than we can afford.