<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general">
    <title>gmane.comp.lang.d.general</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88985"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88984"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88983"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88982"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88981"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88980"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88979"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88978"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88977"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88976"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88975"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88974"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88973"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88972"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88971"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88970"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88969"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88968"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88967"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.d.general/88966"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88985">
    <title>Re: Pointer semantics in CTFE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88985</link>
    <description>&lt;pre&gt;
If q is unrelated to the array, which you can tell because q, pstart, and pend 
must all refer to the same object that CTFE knows about, then you can have CTFE 
refuse to execute it.



I still don't think you need to make a special case for it. If upon 
initialization of q, pstart, and pend, CTFE makes a note of what memory object 
they are initialized from, then you can unambiguously tell if they still point 
within the same object or not.

&lt;/pre&gt;</description>
    <dc:creator>Walter Bright</dc:creator>
    <dc:date>2012-05-26T03:35:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88984">
    <title>Re: Pointer semantics in CTFE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88984</link>
    <description>&lt;pre&gt;
That is exactly how it works right now.

The problem is, if pstart and pend point to the beginning and end of an 
array, then given another pointer q, there is AFAIK no defined way in C 
for checking if q is between pstart and pend, even though I'm sure 
everyone does it. (eg, I don't know how to implement memcpy otherwise).
If q is part of that array, (q &amp;gt;= pstart &amp;amp;&amp;amp; q &amp;lt;= pend) is well-defined, 
and returns true.
But if it isn't part of that array, q &amp;gt;= pstart is undefined.

In reality of course, if q is unrelated to the array then EITHER q &amp;lt; 
pstart, OR q &amp;gt; pend. So (q &amp;gt;= pstart &amp;amp;&amp;amp; q &amp;lt;= pend) is ALWAYS false, and 
the result is completely predictable.

ie, the full expression can be well-defined even though its two 
subexpressions are not.

This can be implemented.
Given an expression like q &amp;gt;= pstart, where p and q are unrelated, it's 
possible to make it have the value 'false_or_undefined'. If it is anded 
with another expression that is also false_or_undefined, and goes the 
other direction ( q &amp;lt;= pend&lt;/pre&gt;</description>
    <dc:creator>Don</dc:creator>
    <dc:date>2012-05-26T03:24:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88983">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88983</link>
    <description>&lt;pre&gt;Why not just call it 'destroy()'?

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T03:21:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88982">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88982</link>
    <description>&lt;pre&gt;


Ahh, that was what confused me, thanks... I thought you were 
referring to member /Object/s.

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T03:20:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88981">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88981</link>
    <description>&lt;pre&gt;
disembowel?

&lt;/pre&gt;</description>
    <dc:creator>Joshua Niehus</dc:creator>
    <dc:date>2012-05-26T03:01:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88980">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88980</link>
    <description>&lt;pre&gt;
delete also deallocates.

Andrei

&lt;/pre&gt;</description>
    <dc:creator>Andrei Alexandrescu</dc:creator>
    <dc:date>2012-05-26T02:47:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88979">
    <title>Re: Pointer semantics in CTFE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88979</link>
    <description>&lt;pre&gt;
Actually it isn't well-defined in C. You can compare unrelated pointers 
for equality, but can't compare their ordering.
(I think this is because of the segmented architecture in 16 bit DOS).


&lt;/pre&gt;</description>
    <dc:creator>Don</dc:creator>
    <dc:date>2012-05-26T02:43:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88978">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88978</link>
    <description>&lt;pre&gt;
Yes, though it calls rt_finalize on classes rather than dtor directly, so that 
may do some extra stuff beyond strictly calling __dtor and zeroing out the 
vtable.


Normally when an object is destroyed, all of its member variables' destructors 
would be called as well (at least for member variables which are structs or 
arrays of structs - member variables which are classes aren't finalized). But 
the destructor itself doesn't call all of the member variables' destructors, 
so calling __dtor doesn't call them. You have to do something else to get the 
member variables destroyed as well (something with typeid I think, but I don't 
remember the details).

- Jonathan M Davis

&lt;/pre&gt;</description>
    <dc:creator>Jonathan M Davis</dc:creator>
    <dc:date>2012-05-26T02:46:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88977">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88977</link>
    <description>&lt;pre&gt;Okay, thanks for the explanation.


So basically, clear() just calls __dtor(), and then zeros out the 
vtable?

I don't understand what you mean by "I don't believe that it 
destroys what the object references"... why should clear() ever 
destroy anything except the object that it's destroying?

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T02:34:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88976">
    <title>Re: XOMB operating system</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88976</link>
    <description>&lt;pre&gt;
I tried contacting them almost a week ago and I have not heard 
back.

&lt;/pre&gt;</description>
    <dc:creator>tim krimm</dc:creator>
    <dc:date>2012-05-26T02:33:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88975">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88975</link>
    <description>&lt;pre&gt;
clear destroys the object (by calling its finalizer or destructor) and then in 
the case of classes, it zeroes out its vtable so that if you accidentally the 
object after clearing it, it'll blow up rather than getting weird, non-
deterministic behavior. In the case of structs, I think that it puts the 
object in its init state, but I'm not sure.

clear does _not_ free the object's memory. It merely destroys the object so 
that whatever other resources it references can be released (or just 
unreferenced in the case of GC heap allocated objects that it references).

delete does what it does in C++. It destroys the object and then frees the 
memory. It was decided that having a language construct which freed memory on 
the GC heap was too dangerous and error-prone and shouldn't be encouraged, so 
it's being removed. It's still quite possible however, to create a function 
which destroys and object and then tells the GC to free that object's memory 
using the stuff in core.memory.

__dtor is simply the object&lt;/pre&gt;</description>
    <dc:creator>Jonathan M Davis</dc:creator>
    <dc:date>2012-05-26T02:27:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88974">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88974</link>
    <description>&lt;pre&gt;Would you mind explaining the difference between clear(), delete, 
and __dtor/etc? I think it's a little confusing for me.

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T02:04:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88973">
    <title>Re: Pointer semantics in CTFE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88973</link>
    <description>&lt;pre&gt;
Wait, what?

Pointer semantics are well-defined... what's wrong with comparing 
two unrelated pointers?

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T01:39:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88972">
    <title>Re: dget - getting code from github</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88972</link>
    <description>&lt;pre&gt;
How about slapping a Boost license on it and creating a pull request for:


https://github.com/D-Programming-Language/tools

?

&lt;/pre&gt;</description>
    <dc:creator>Walter Bright</dc:creator>
    <dc:date>2012-05-26T01:35:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88971">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88971</link>
    <description>&lt;pre&gt;
clear and delete are very different things. It was definitely decided that we'd 
be better off without delete. It's going for good. Renaming clear to something 
that doesn't conflict so easily with more benign functions is completely 
different from bringing back delete. Bringing back delete isn't even on the 
table at this point.

- Jonathan M Davis

&lt;/pre&gt;</description>
    <dc:creator>Jonathan M Davis</dc:creator>
    <dc:date>2012-05-26T01:38:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88970">
    <title>Re: Nimrod language</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88970</link>
    <description>&lt;pre&gt;

Indeed this is a nice feature to copy. It is, however, possible 
to implement as a macro.


&lt;/pre&gt;</description>
    <dc:creator>Araq</dc:creator>
    <dc:date>2012-05-26T01:00:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88969">
    <title>Re: dget - getting code from github</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88969</link>
    <description>&lt;pre&gt;
Holy Mackerel! I'm going to give it a try.

&lt;/pre&gt;</description>
    <dc:creator>Walter Bright</dc:creator>
    <dc:date>2012-05-26T00:46:35</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88968">
    <title>Re: clear() and UFCS</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88968</link>
    <description>&lt;pre&gt;
or we could just, uh, bring back delete...

&lt;/pre&gt;</description>
    <dc:creator>Mehrdad</dc:creator>
    <dc:date>2012-05-26T00:30:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88967">
    <title>Re: Nimrod language</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88967</link>
    <description>&lt;pre&gt;
Thank you. Let's see how long I will stay. ;-)


&lt;/pre&gt;</description>
    <dc:creator>Araq</dc:creator>
    <dc:date>2012-05-25T23:20:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88966">
    <title>Re: Pointer semantics in CTFE</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88966</link>
    <description>&lt;pre&gt;

My experience with such special cases is that users lose the ability to reason 
about what code will work in CTFE and what will not. Its operation will become a 
magical, unknowable black box. Meanwhile, you'll be endlessly chasing more 
special cases and rainbows.

I suggest not supporting it unless it can be done in the general case.

One solution might be to attach to each CTFE pointer a reference to the object 
it is pointing into. Then, pointer comparisons within the same object can work, 
and comparing pointers from different objects can explicitly and predictably be 
not supported.

&lt;/pre&gt;</description>
    <dc:creator>Walter Bright</dc:creator>
    <dc:date>2012-05-25T23:09:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.d.general/88965">
    <title>Re: GitHub for Windows</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.d.general/88965</link>
    <description>&lt;pre&gt;"Steven Schveighoffer" &amp;lt;schveiguy&amp;lt; at &amp;gt;yahoo.com&amp;gt; wrote in message 
news:op.wevud50reav7ka&amp;lt; at &amp;gt;steves-laptop...

Well, realistically 128MB for XP, and even that was back around 2000 or so. 
I'm not really sure what the heck exactly happened (Just web sites? Or 
something more?), but these days, even on XP, 1GB is really bare minimum.


Yea, I knew about that. But I thought the whole system was consdered to be 
more efficient, too? (While I've used Win7, I've never compared it with XP 
on the same physical system. So that's one point I can't really say.)


I'd be surprised if it were very many, but at this point I think we're both 
reduced to hand-waving. :/



&lt;/pre&gt;</description>
    <dc:creator>Nick Sabalausky</dc:creator>
    <dc:date>2012-05-25T22:29:50</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.d.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.d.general</link>
  </textinput>
</rdf:RDF>

