On Sat, Jan 21, 2012 at 1:42 AM, Jonathan M Davis <span dir="ltr"><<a href="mailto:jmdavisProg@gmx.com">jmdavisProg@gmx.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Saturday, January 21, 2012 09:11:52 Gour wrote:<br>
> Hello!<br>
><br>
> I'd like to re-start learning D (from scratch) using TDPL.<br>
><br>
> However, several times I've encountered some message which says that<br>
> there are some problems in learning the language, like:<br>
><br>
> a) the language is not complete according to the TDPL-spec and<br>
><br>
> b) language implementation differs from TDP (some things has changed)<br>
><br>
> Now, I believe that a) case can be solved by looking at and/or fixing<br>
> bugs tagged as 'tdpl', but I wonder if there is some document<br>
> documenting b) case and listing where/how D2 parted of the TDPL?<br>
><br>
><br>
> Any other hint you can share for learning D2?<br>
<br>
</div><a href="http://erdani.com/tdpl/errata/" target="_blank">http://erdani.com/tdpl/errata/</a><br>
<br>
As for new or altered features... The list isn't very long, I don't believe.<br>
<br>
1. weak vs strong purity<br>
<br>
2. new lambda syntax (which hasn't even been released yet, I don't believe)<br>
<br>
3. attribute inferrence for templates and delegates (or at least delegate<br>
literals - I'm not sure exactly when delegates get their attributes inferred)<br>
<br>
4. IFTI now uses the tail-const type of arrays and pointers<br>
<br>
There might be some other minor things, but for the most part, the language<br>
hasn't really been changed from what's described in TDPL. The main problem is<br>
that the compiler hasn't caught up to TDPL yet. The biggest items in that<br>
regard that I can think of are<br>
<br>
1. TDPL says that you can multiple aliases this-es per type, but right now,<br>
you can only have one.<br>
<br>
2. Not all of shared's guarantees are implemented yet.<br>
<br>
3. You can't overload templated functions with non-templated functions yet.<br>
<br>
4. According to TDPL, you can override private, but right now only public and<br>
protected functions are virtual. I'm not sure that it's 100% clear whether the<br>
compiler will be changed to match or whether TDPL is going to have to be<br>
changed. You can look at <a href="http://d.puremagic.com/issues/show_bug.cgi?id=4542" target="_blank">http://d.puremagic.com/issues/show_bug.cgi?id=4542</a><br>
for details.<br>
<br>
5. @safe (and therefore SafeD) isn't fully implemented. So, it doesn't<br>
necessarily work quite like it's supposed to yet.<br>
<br>
There are probably a few others, but that's what I can think of at the moment.<br>
One of the big ones that got fixed recently though was inout. That was broken<br>
for ages.<br>
<span class="HOEnZb"><font color="#888888"><br>
- Jonathan M Davis<br>
</font></span></blockquote></div><br><div><br></div><div>This is a very helpful post, Jonathan.  I think the documentation could do with a "Changes and additions since TDPL" section with stuff like this so users aren't surprised.  Users could easily mistake changes for bugs without these being documented somewhere other than the newsgroup.</div>
<div><br></div><div>Regards,</div><div>Brad Anderson</div>