www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - MS extend C++ significantly for Windows8... and Andrei got name drop

reply Manu <turkeyman gmail.com> writes:
--20cf3074b44074c72804b75b9106
Content-Type: text/plain; charset=UTF-8

http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T

This is fairly interesting. MS have extended their C++ compiler
significantly for Windows8 with a bunch of non-standard stuff.
FINALLY implement garbage collection, ref counting, properties, delegates,
events, generics, etc...
If other compilers adopt this tech, D loses some advantages.

Oh, and Andrei got a nice little name drop around 35 minutes ;)

--20cf3074b44074c72804b75b9106
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<a href=3D"http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T">http:=
//channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T</a>
<div><br></div><div>This is fairly interesting. MS have extended their C++ =
compiler significantly for Windows8 with a bunch of non-standard stuff.</di=
v><div>FINALLY implement garbage collection, ref counting, properties, dele=
gates, events, generics, etc...</div>
<div>If other compilers adopt this tech, D loses some advantages.</div><div=
<br></div><div>Oh, and Andrei got a nice little name drop around 35 minute=

--20cf3074b44074c72804b75b9106--
Jan 25 2012
next sibling parent reply bls <bizprac orange.fr> writes:
On 01/25/2012 07:03 AM, Manu wrote:
 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

But you still have to fight with ifndef ,forward declaration, and a template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.
Jan 25 2012
next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 25.01.2012 22:35, schrieb Manu:
 On 25 January 2012 21:47, bls <bizprac orange.fr
 <mailto:bizprac orange.fr>> wrote:

     On 01/25/2012 07:03 AM, Manu wrote:

         This is fairly interesting. MS have extended their C++ compiler
         significantly for Windows8 with a bunch of non-standard stuff.
         FINALLY implement garbage collection, ref counting, properties,
         delegates, events, generics, etc...
         If other compilers adopt this tech, D loses some advantages.


     But you still have to fight with ifndef ,forward declaration, and a
     template syntax against common sense.  Even if you paint shit yellow
     it's not necessarily gold.


 True, but I think this will mitigate a lot of the motivation Windows
 devs have to seek another language if they're not developing cross
 platform apps.

 Sadly, since WinRT requires using these language extensions to interface
 with the new windows runtime, you won't be able to write a Windows8 app
 in D.
 Interestingly though, D supports almost everything they've added to C++.
 I wonder if it would be possible to do extern(Windows8) to produce a
 compatible ABI for linking with MS C++ apps?

 The most interesting features are 'ref new' and 'gcnew', which makes me
 wonder, since Windows8 has an OS garbage collector, would it be at all
 possible to have D use the Windows8 GC? I'd prefer this to using D's own
 GC if it would be supported, and obviously this would be a requirement
 if D was going to interact with WinRT properly.
 Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to
 my understanding) objects. I think I read somewhere that D already has
 extern(COM) no? I wonder if Windows8 ref type linkage is already
 technically supported in D?

It is an extension of the COM model. There is a new COM interface that extends IUnknown, which provides a reflection API. Everything is explained in the BUILD 2011 videos, http://channel9.msdn.com/Events/BUILD/BUILD2011?sort=sequential&direction=desc&term=&t=c%2B%2B Many of the new ideas are actually based on what Delphi together with C++ Builder and VCL already provided. Anyway this goes to show that eventually all system programming languages will have GC or Refcounted memory management. As I already mentioned here a few times when memory management discussions pop up. -- Paulo
Jan 25 2012
prev sibling next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 25.01.2012 20:47, schrieb bls:
 On 01/25/2012 07:03 AM, Manu wrote:
 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

But you still have to fight with ifndef ,forward declaration, and a template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.

Worse is Better: http://en.wikipedia.org/wiki/Worse_is_better
Jan 25 2012
prev sibling next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 25.01.2012 23:44, schrieb Manu:
 On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com
 <mailto:flyboynw gmail.com>> wrote:

     On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com
     <mailto:turkeyman gmail.com>> wrote:

         On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com
         <mailto:flyboynw gmail.com>> wrote:

             On Wed, 25 Jan 2012 13:35:38 -0800, Manu
             <turkeyman gmail.com <mailto:turkeyman gmail.com>> wrote:

               On 25 January 2012 21:47, bls <bizprac orange.fr
             <mailto:bizprac orange.fr>> wrote:


                   On 01/25/2012 07:03 AM, Manu wrote:


                       This is fairly interesting. MS have extended their
                     C++ compiler

                         significantly for Windows8 with a bunch of
                         non-standard stuff.
                         FINALLY implement garbage collection, ref
                         counting, properties,
                         delegates, events, generics, etc...
                         If other compilers adopt this tech, D loses some
                         advantages.


                     But you still have to fight with ifndef ,forward
                     declaration, and a
                     template syntax against common sense.  Even if you
                     paint shit yellow it's
                     not necessarily gold.


                 True, but I think this will mitigate a lot of the
                 motivation Windows devs
                 have to seek another language if they're not developing
                 cross platform
                 apps.

                 Sadly, since WinRT requires using these language
                 extensions to interface
                 with the new windows runtime, you won't be able to write
                 a Windows8 app in
                 D.
                 Interestingly though, D supports almost everything
                 they've added to C++. I
                 wonder if it would be possible to do extern(Windows8) to
                 produce a
                 compatible ABI for linking with MS C++ apps?

                 The most interesting features are 'ref new' and 'gcnew',
                 which makes me
                 wonder, since Windows8 has an OS garbage collector,
                 would it be at all
                 possible to have D use the Windows8 GC? I'd prefer this
                 to using D's own
                 GC
                 if it would be supported, and obviously this would be a
                 requirement if D
                 was going to interact with WinRT properly.
                 Also, WinRT uses 'ref new' to allocate ref counted
                 (effectively COM to my
                 understanding) objects. I think I read somewhere that D
                 already has
                 extern(COM) no? I wonder if Windows8 ref type linkage is
                 already
                 technically supported in D?


             There is no Win8GC, it's all ref counted. WinRT is COM with
             extras and as
             such should be accessible to D. It would need some extra
             glue code over
             what we have now ... like the IInspectable interface.


         Really? So what's 'gcnew' for?


     That's for targeting the CLR (.NET) so it doesn't conflict with
     new/delete in regular C++. It goes all the way back to the first
     C++/CLI in Visual Studio 2005.
     http://msdn.microsoft.com/en-__us/library/te3ecsc8.aspx
     <http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>


 So there is a GC... It just happens to be the .net GC. Is that a
 problem? Obviously it's accessible in C++ code. Can you use it to
 allocate C++ objects, or is it exclusively for some sort of interaction
 with .net?
 If the rest of the platform is using it...

You are mixing it. Managed C++ was the first set of C++ extensions that target .NET. This was only part of .NET 1.x. Experience showed that the extensions were not well thought out, and with the release of .NET 2.0, Microsoft introduced C++/CLI, while dropping support for Managed C++. Both generate CLR bytecodes and make use of the .NET GC as well. C++/CX is the new set of extensions and they target native code. Besides the standard C++ code, there is support for a COM based object model, which is referenced counted. This is done via a new type, handles, which call COM AddRef()/Release() under the hood. -- Paulo
Jan 25 2012
prev sibling parent "Daniel Murphy" <yebblies nospamgmail.com> writes:
 I see, well that's good. I presume then that it shouldn't be too much
 trouble to implement MS C++'s ref type ABI in D then if it is just
 basically COM.
 How about 'delegate'? Would it be trouble to make the extern ABI 
 compatible
 when passing delegates between MSC++/D?

Theoretically, it wouldn't be to hard, getting Walter to do it however ...

There probably isn't much point until dmd can produce coff and link to more of c++ anyway.
Jan 26 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 Even if you paint shit yellow it's not necessarily gold.

:D
Jan 25 2012
prev sibling next sibling parent reply Trass3r <un known.com> writes:
 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.

Yeah, while refusing to implement most of C++11.
Jan 25 2012
next sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 25.01.2012 22:33, schrieb Trass3r:
 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.

Yeah, while refusing to implement most of C++11.

To be fair, they did implement a big part of the library. But I do share your opinion here. I hate the way that Microsoft cherry picks the C and C++ standards, only implement the parts that they feel like, while adding Windows specific extensions. When the other vendors were busy making their compilers C++98 compliant, Microsoft was adding COM programming extensions. Since 2002, the Visual C++ team has spent resources developing Managed C++, C++/CLI and now C++/CX, besides the XBox backends and C++ standard efforts. How much more standards compliant wouldn't Visual C++ be, if Microsoft would be more standards friendly. Still these are business decisions. -- Paulo
Jan 25 2012
prev sibling parent Paulo Pinto <pjmlp progtools.org> writes:
Am 25.01.2012 23:35, schrieb Manu:
 On 26 January 2012 00:02, Brad Anderson <eco gnuk.net
 <mailto:eco gnuk.net>> wrote:

     On Wed, Jan 25, 2012 at 2:38 PM, Manu <turkeyman gmail.com
     <mailto:turkeyman gmail.com>> wrote:

         On 25 January 2012 23:33, Trass3r <un known.com
         <mailto:un known.com>> wrote:

                 This is fairly interesting. MS have extended their C++
                 compiler
                 significantly for Windows8 with a bunch of non-standard
                 stuff.


             Yeah, while refusing to implement most of C++11.


         Good! The C++11 committee should be shot. They've got it
         completely wrong, and MS have it right for my money! :)
         I don't want MORE STL, I want less :)


     Herb Sutter (the man speaking in your video) is chairman of the C++
     standards committee so it's kind of amusing that the stuff you
     praise and the stuff you say is wrong are both led by the same man.
     Also, he and Andrei wrote a book together (C++ Coding Standards) so
     the name drop isn't entirely unexpected.  They do the C++ and Beyond
     conference together (with Scott Meyers).  A large portion of the
     questions from the attendees I saw in the Channel 9 videos were about D.


 Haha really? Amazing, but he works for Microsoft then I guess? So why is
 he fixing C++ for MS, but won't fix the C++ standard its self?
 std::function for instance, why add that if he turns around and adds a
 proper keyword for MS?

Because he is just one person in the standards process. That is how standards work. Each person (or company) just gets one vote.
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--20cf3005dee274b88504b7610bcc
Content-Type: text/plain; charset=UTF-8

On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:

 On 01/25/2012 07:03 AM, Manu wrote:

 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

But you still have to fight with ifndef ,forward declaration, and a template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.

True, but I think this will mitigate a lot of the motivation Windows devs have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D? --20cf3005dee274b88504b7610bcc Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 25 January 2012 21:47, bls <span dir=3D"ltr">= &lt;<a href=3D"mailto:bizprac orange.fr">bizprac orange.fr</a>&gt;</span> w= rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde= r-left:1px #ccc solid;padding-left:1ex"> <div class=3D"im">On 01/25/2012 07:03 AM, Manu wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> This is fairly interesting. MS have extended their C++ compiler<br> significantly for Windows8 with a bunch of non-standard stuff.<br> FINALLY implement garbage collection, ref counting, properties,<br> delegates, events, generics, etc...<br> If other compilers adopt this tech, D loses some advantages.<br> </blockquote> <br></div> But you still have to fight with ifndef ,forward declaration, and a templat= e syntax against common sense. =C2=A0Even if you paint shit yellow it&#39;s= not necessarily gold.<br> </blockquote></div><br><div>True, but I think this will mitigate a lot of t= he motivation Windows devs have to seek another language if they&#39;re not= developing cross platform apps.</div><div><br></div><div>Sadly, since WinR= T requires using these language extensions to interface with the new window= s runtime, you won&#39;t be able to write a Windows8 app in D.</div> <div><div>Interestingly though, D supports almost everything they&#39;ve ad= ded to C++. I wonder if it would be possible to do extern(Windows8) to prod= uce a compatible ABI for linking with MS C++ apps?</div><div><br></div> <div>The most interesting features are &#39;ref new&#39; and &#39;gcnew&#39= ;, which makes me wonder, since Windows8 has an OS garbage collector, would= it be at all possible to have D use the Windows8 GC? I&#39;d prefer this t= o using D&#39;s own GC if it would be supported, and obviously this would b= e a requirement if D was going to interact with WinRT properly.</div> <div>Also, WinRT uses &#39;ref new&#39; to allocate ref counted (effectivel= y COM to my understanding) objects. I think I read somewhere that D already= has extern(COM) no? I wonder if Windows8 ref type linkage is already techn= ically supported in D?</div> </div> --20cf3005dee274b88504b7610bcc--
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--00235429d6d85b45ba04b761142a
Content-Type: text/plain; charset=UTF-8

On 25 January 2012 23:33, Trass3r <un known.com> wrote:

 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.

Yeah, while refusing to implement most of C++11.

Good! The C++11 committee should be shot. They've got it completely wrong, and MS have it right for my money! :) I don't want MORE STL, I want less :) --00235429d6d85b45ba04b761142a Content-Type: text/html; charset=UTF-8 <div class="gmail_quote">On 25 January 2012 23:33, Trass3r <span dir="ltr">&lt;<a href="mailto:un known.com">un known.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> This is fairly interesting. MS have extended their C++ compiler<br> significantly for Windows8 with a bunch of non-standard stuff.<br> </blockquote> <br></div> Yeah, while refusing to implement most of C++11.<br> </blockquote></div><br><div>Good! The C++11 committee should be shot. They&#39;ve got it completely wrong, and MS have it right for my money! :)</div><div>I don&#39;t want MORE STL, I want less :)</div> --00235429d6d85b45ba04b761142a--
Jan 25 2012
prev sibling next sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:

 On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:

 On 01/25/2012 07:03 AM, Manu wrote:

 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

But you still have to fight with ifndef ,forward declaration, and a template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.

True, but I think this will mitigate a lot of the motivation Windows devs have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D?

There is no Win8GC, it's all ref counted. WinRT is COM with extras and as such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface. And yes, I am running Win8. -- Adam Wilson Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Jan 25 2012
prev sibling next sibling parent Brad Anderson <eco gnuk.net> writes:
--f46d040167ebffab0504b7616b13
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Jan 25, 2012 at 2:38 PM, Manu <turkeyman gmail.com> wrote:

 On 25 January 2012 23:33, Trass3r <un known.com> wrote:

  This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.

Yeah, while refusing to implement most of C++11.

Good! The C++11 committee should be shot. They've got it completely wrong, and MS have it right for my money! :) I don't want MORE STL, I want less :)

Herb Sutter (the man speaking in your video) is chairman of the C++ standards committee so it's kind of amusing that the stuff you praise and the stuff you say is wrong are both led by the same man. Also, he and Andrei wrote a book together (C++ Coding Standards) so the name drop isn't entirely unexpected. They do the C++ and Beyond conference together (with Scott Meyers). A large portion of the questions from the attendees I saw in the Channel 9 videos were about D. It's kind of sad to see Microsoft doing so much work in interesting areas with C++ that I won't get to use because it's proprietary (AMP, for instance). Regards, Brad Anderson --f46d040167ebffab0504b7616b13 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Wed, Jan 25, 2012 at 2:38 PM, Manu <span dir=3D"ltr">&lt;<a href=3D"mail= to:turkeyman gmail.com">turkeyman gmail.com</a>&gt;</span> wrote:<br><div c= lass=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 = 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_quote">On 25 Ja= nuary 2012 23:33, Trass3r <span dir=3D"ltr">&lt;<a href=3D"mailto:un known.= com" target=3D"_blank">un known.com</a>&gt;</span> wrote:<br><blockquote cl= ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p= adding-left:1ex"> <div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le= ft:1px #ccc solid;padding-left:1ex"> This is fairly interesting. MS have extended their C++ compiler<br> significantly for Windows8 with a bunch of non-standard stuff.<br> </blockquote> <br></div> Yeah, while refusing to implement most of C++11.<br> </blockquote></div><br></div></div><div>Good! The C++11 committee should be= shot. They&#39;ve got it completely wrong, and MS have it right for my mon= ey! :)</div><div>I don&#39;t want MORE STL, I want less :)</div> </blockquote></div><br><div>Herb Sutter (the man speaking in your video) is= chairman of the C++ standards committee so it&#39;s kind of amusing that t= he stuff you praise and the stuff you say is wrong are both led by the same= man. Also, he and Andrei wrote a book together (C++ Coding Standards) so t= he name drop isn&#39;t entirely unexpected. =A0They do the C++ and Beyond c= onference together (with Scott Meyers). =A0A large portion of the questions= from the=A0attendees=A0I saw in the Channel 9 videos were about D.</div> <div><br></div><div>It&#39;s kind of sad to see Microsoft doing so much wor= k in interesting areas with C++ that I won&#39;t get to use because it&#39;= s proprietary (AMP, for instance).</div><div><br></div><div>Regards,</div> <div>Brad Anderson</div> --f46d040167ebffab0504b7616b13--
Jan 25 2012
prev sibling next sibling parent "F i L" <witte2008 gmail.com> writes:
Is this open source and a benefit to developers writing for 
non-MS platforms? Nope. Then sorry MS, but I hardly care.
Jan 25 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 Good! The C++11 committee should be shot. They've got it completely  
 wrong, and MS have it right for my money! :)
 I don't want MORE STL, I want less :)

C++11 contains important stuff like "for each", auto and #1: non-static member initializers.
Jan 25 2012
prev sibling next sibling parent Trass3r <un known.com> writes:
 Yeah, while refusing to implement most of C++11.

To be fair, they did implement a big part of the library.

I care more about long overdue language changes like non-static member initializers.
 But I do share your opinion here. I hate the way that Microsoft
 cherry picks the C and C++ standards, only implement the parts
 that they feel like, while adding Windows specific extensions.

Exactly.
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--00235433297e7bcf1704b761c9b3
Content-Type: text/plain; charset=UTF-8

On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:
  On 01/25/2012 07:03 AM, Manu wrote:
  This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.

have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D?

There is no Win8GC, it's all ref counted. WinRT is COM with extras and as such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface.

Really? So what's 'gcnew' for? --00235433297e7bcf1704b761c9b3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 25 January 2012 23:59, Adam Wilson <span dir= =3D"ltr">&lt;<a href=3D"mailto:flyboynw gmail.com">flyboynw gmail.com</a>&g= t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0= .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"im">On Wed, 25 Jan 2012 13:35:38 -0800, Manu &lt;<a href=3D"m= ailto:turkeyman gmail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wr= ote:<br> <br> </div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l= eft:1px #ccc solid;padding-left:1ex"><div class=3D"im"> On 25 January 2012 21:47, bls &lt;<a href=3D"mailto:bizprac orange.fr" targ= et=3D"_blank">bizprac orange.fr</a>&gt; wrote:<br> <br> </div><div><div class=3D"h5"><blockquote class=3D"gmail_quote" style=3D"mar= gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> On 01/25/2012 07:03 AM, Manu wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> This is fairly interesting. MS have extended their C++ compiler<br> significantly for Windows8 with a bunch of non-standard stuff.<br> FINALLY implement garbage collection, ref counting, properties,<br> delegates, events, generics, etc...<br> If other compilers adopt this tech, D loses some advantages.<br> <br> </blockquote> <br> But you still have to fight with ifndef ,forward declaration, and a<br> template syntax against common sense. =C2=A0Even if you paint shit yellow i= t&#39;s<br> not necessarily gold.<br> <br> </blockquote> <br></div></div><div class=3D"im"> True, but I think this will mitigate a lot of the motivation Windows devs<b= r> have to seek another language if they&#39;re not developing cross platform = apps.<br> <br> Sadly, since WinRT requires using these language extensions to interface<br=

in<br> D.<br> Interestingly though, D supports almost everything they&#39;ve added to C++= . I<br> wonder if it would be possible to do extern(Windows8) to produce a<br> compatible ABI for linking with MS C++ apps?<br> <br> The most interesting features are &#39;ref new&#39; and &#39;gcnew&#39;, wh= ich makes me<br> wonder, since Windows8 has an OS garbage collector, would it be at all<br> possible to have D use the Windows8 GC? I&#39;d prefer this to using D&#39;= s own GC<br> if it would be supported, and obviously this would be a requirement if D<br=

Also, WinRT uses &#39;ref new&#39; to allocate ref counted (effectively COM= to my<br> understanding) objects. I think I read somewhere that D already has<br> extern(COM) no? I wonder if Windows8 ref type linkage is already<br> technically supported in D?<br> </div></blockquote> <br> There is no Win8GC, it&#39;s all ref counted. WinRT is COM with extras and = as such should be accessible to D. It would need some extra glue code over = what we have now ... like the IInspectable interface.<br></blockquote> <div><br></div><div>Really? So what&#39;s &#39;gcnew&#39; for?</div></div> --00235433297e7bcf1704b761c9b3--
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--20cf30363f354858c704b761e3df
Content-Type: text/plain; charset=UTF-8

On 26 January 2012 00:02, Brad Anderson <eco gnuk.net> wrote:

 On Wed, Jan 25, 2012 at 2:38 PM, Manu <turkeyman gmail.com> wrote:

 On 25 January 2012 23:33, Trass3r <un known.com> wrote:

  This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.

Yeah, while refusing to implement most of C++11.

Good! The C++11 committee should be shot. They've got it completely wrong, and MS have it right for my money! :) I don't want MORE STL, I want less :)

Herb Sutter (the man speaking in your video) is chairman of the C++ standards committee so it's kind of amusing that the stuff you praise and the stuff you say is wrong are both led by the same man. Also, he and Andrei wrote a book together (C++ Coding Standards) so the name drop isn't entirely unexpected. They do the C++ and Beyond conference together (with Scott Meyers). A large portion of the questions from the attendees I saw in the Channel 9 videos were about D.

Haha really? Amazing, but he works for Microsoft then I guess? So why is he fixing C++ for MS, but won't fix the C++ standard its self? std::function for instance, why add that if he turns around and adds a proper keyword for MS? It's kind of sad to see Microsoft doing so much work in interesting areas
 with C++ that I won't get to use because it's proprietary (AMP, for
 instance).

/agree ... but maybe enough people might demand some of those features in GCC, and it could bleeds across... --20cf30363f354858c704b761e3df Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 26 January 2012 00:02, Brad Anderson <span di= r=3D"ltr">&lt;<a href=3D"mailto:eco gnuk.net">eco gnuk.net</a>&gt;</span> w= rote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde= r-left:1px #ccc solid;padding-left:1ex"> <div class=3D"HOEnZb"><div class=3D"h5">On Wed, Jan 25, 2012 at 2:38 PM, Ma= nu <span dir=3D"ltr">&lt;<a href=3D"mailto:turkeyman gmail.com" target=3D"_= blank">turkeyman gmail.com</a>&gt;</span> wrote:<br><div class=3D"gmail_quo= te"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef= t:1px #ccc solid;padding-left:1ex"> <div><div><div class=3D"gmail_quote">On 25 January 2012 23:33, Trass3r <spa= n dir=3D"ltr">&lt;<a href=3D"mailto:un known.com" target=3D"_blank">un know= n.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"m= argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-le= ft:1px #ccc solid;padding-left:1ex"> This is fairly interesting. MS have extended their C++ compiler<br> significantly for Windows8 with a bunch of non-standard stuff.<br> </blockquote> <br></div> Yeah, while refusing to implement most of C++11.<br> </blockquote></div><br></div></div><div>Good! The C++11 committee should be= shot. They&#39;ve got it completely wrong, and MS have it right for my mon= ey! :)</div><div>I don&#39;t want MORE STL, I want less :)</div> </blockquote></div><br></div></div><div>Herb Sutter (the man speaking in yo= ur video) is chairman of the C++ standards committee so it&#39;s kind of am= using that the stuff you praise and the stuff you say is wrong are both led= by the same man. Also, he and Andrei wrote a book together (C++ Coding Sta= ndards) so the name drop isn&#39;t entirely unexpected. =C2=A0They do the C= ++ and Beyond conference together (with Scott Meyers). =C2=A0A large portio= n of the questions from the=C2=A0attendees=C2=A0I saw in the Channel 9 vide= os were about D.</div> </blockquote><div><br></div><div>Haha really?=C2=A0Amazing, but he works fo= r Microsoft then I guess? So why is he fixing C++ for MS, but won&#39;t fix= the C++ standard its self? std::function for instance, why add that if he = turns around and adds a proper keyword for MS?</div> <div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex= ;border-left:1px #ccc solid;padding-left:1ex"> <div>It&#39;s kind of sad to see Microsoft doing so much work in interestin= g areas with C++ that I won&#39;t get to use because it&#39;s proprietary (= AMP, for instance).</div></blockquote><div><br></div><div>/agree ... but ma= ybe enough people might demand some of those features in GCC, and it could = bleeds across...</div> </div> --20cf30363f354858c704b761e3df--
Jan 25 2012
prev sibling next sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:

 On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:
  On 01/25/2012 07:03 AM, Manu wrote:
  This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

template syntax against common sense. Even if you paint shit yellow it's not necessarily gold.

devs have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D?

There is no Win8GC, it's all ref counted. WinRT is COM with extras and as such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface.

Really? So what's 'gcnew' for?

That's for targeting the CLR (.NET) so it doesn't conflict with new/delete in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx -- Adam Wilson Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--20cf3005dee2741cda04b76200ae
Content-Type: text/plain; charset=UTF-8

On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:
  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:

  On 01/25/2012 07:03 AM, Manu wrote:

  This is fairly interesting. MS have extended their C++ compiler

 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration, and a

it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows

have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D?

such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface.


That's for targeting the CLR (.NET) so it doesn't conflict with new/delete in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>

So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it... --20cf3005dee2741cda04b76200ae Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 26 January 2012 00:37, Adam Wilson <span dir= =3D"ltr">&lt;<a href=3D"mailto:flyboynw gmail.com">flyboynw gmail.com</a>&g= t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0= .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"im">On Wed, 25 Jan 2012 14:28:46 -0800, Manu &lt;<a href=3D"m= ailto:turkeyman gmail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wr= ote:<br> <br> </div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l= eft:1px #ccc solid;padding-left:1ex"><div class=3D"im"> On 25 January 2012 23:59, Adam Wilson &lt;<a href=3D"mailto:flyboynw gmail.= com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> <br> </div><div><div class=3D"h5"><blockquote class=3D"gmail_quote" style=3D"mar= gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> On Wed, 25 Jan 2012 13:35:38 -0800, Manu &lt;<a href=3D"mailto:turkeyman gm= ail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> =C2=A0On 25 January 2012 21:47, bls &lt;<a href=3D"mailto:bizprac orange.fr= " target=3D"_blank">bizprac orange.fr</a>&gt; wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On 01/25/2012 07:03 AM, Manu wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0This is fairly interesting. MS have extended their C++ compiler<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> significantly for Windows8 with a bunch of non-standard stuff.<br> FINALLY implement garbage collection, ref counting, properties,<br> delegates, events, generics, etc...<br> If other compilers adopt this tech, D loses some advantages.<br> <br> <br> </blockquote> But you still have to fight with ifndef ,forward declaration, and a<br> template syntax against common sense. =C2=A0Even if you paint shit yellow i= t&#39;s<br> not necessarily gold.<br> <br> <br> </blockquote> True, but I think this will mitigate a lot of the motivation Windows devs<b= r> have to seek another language if they&#39;re not developing cross platform<= br> apps.<br> <br> Sadly, since WinRT requires using these language extensions to interface<br=

in<br> D.<br> Interestingly though, D supports almost everything they&#39;ve added to C++= . I<br> wonder if it would be possible to do extern(Windows8) to produce a<br> compatible ABI for linking with MS C++ apps?<br> <br> The most interesting features are &#39;ref new&#39; and &#39;gcnew&#39;, wh= ich makes me<br> wonder, since Windows8 has an OS garbage collector, would it be at all<br> possible to have D use the Windows8 GC? I&#39;d prefer this to using D&#39;= s own<br> GC<br> if it would be supported, and obviously this would be a requirement if D<br=

Also, WinRT uses &#39;ref new&#39; to allocate ref counted (effectively COM= to my<br> understanding) objects. I think I read somewhere that D already has<br> extern(COM) no? I wonder if Windows8 ref type linkage is already<br> technically supported in D?<br> <br> </blockquote> <br> There is no Win8GC, it&#39;s all ref counted. WinRT is COM with extras and = as<br> such should be accessible to D. It would need some extra glue code over<br> what we have now ... like the IInspectable interface.<br> <br> </blockquote> <br></div></div><div class=3D"im"> Really? So what&#39;s &#39;gcnew&#39; for?<br> </div></blockquote> <br> That&#39;s for targeting the CLR (.NET) so it doesn&#39;t conflict with new= /delete in regular C++. It goes all the way back to the first C++/CLI in Vi= sual Studio 2005.<br> <a href=3D"http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx" target=3D= "_blank">http://msdn.microsoft.com/en-<u></u>us/library/te3ecsc8.aspx</a></= blockquote><div><br></div><div>So there is a GC... It just happens to be th= e .net GC. Is that a problem? Obviously it&#39;s accessible in C++ code. Ca= n you use it to allocate C++ objects, or is it exclusively for some sort of= interaction with .net?</div> <div>If the rest of the platform is using it...</div></div> --20cf3005dee2741cda04b76200ae--
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--00235433297eb1fc9104b76221c6
Content-Type: text/plain; charset=UTF-8

On 26 January 2012 00:48, Paulo Pinto <pjmlp progtools.org> wrote:

 Am 25.01.2012 23:35, schrieb Manu:

 On 26 January 2012 00:02, Brad Anderson <eco gnuk.net

 <mailto:eco gnuk.net>> wrote:

    On Wed, Jan 25, 2012 at 2:38 PM, Manu <turkeyman gmail.com
    <mailto:turkeyman gmail.com>> wrote:

        On 25 January 2012 23:33, Trass3r <un known.com
        <mailto:un known.com>> wrote:

                This is fairly interesting. MS have extended their C++
                compiler
                significantly for Windows8 with a bunch of non-standard
                stuff.


            Yeah, while refusing to implement most of C++11.


        Good! The C++11 committee should be shot. They've got it
        completely wrong, and MS have it right for my money! :)
        I don't want MORE STL, I want less :)


    Herb Sutter (the man speaking in your video) is chairman of the C++
    standards committee so it's kind of amusing that the stuff you
    praise and the stuff you say is wrong are both led by the same man.
    Also, he and Andrei wrote a book together (C++ Coding Standards) so
    the name drop isn't entirely unexpected.  They do the C++ and Beyond
    conference together (with Scott Meyers).  A large portion of the
    questions from the attendees I saw in the Channel 9 videos were about
 D.


 Haha really? Amazing, but he works for Microsoft then I guess? So why is
 he fixing C++ for MS, but won't fix the C++ standard its self?
 std::function for instance, why add that if he turns around and adds a
 proper keyword for MS?

Because he is just one person in the standards process. That is how standards work. Each person (or company) just gets one vote.

Yeah, well the chairman should have veto rights, and then do it right, like they did at MS :P --00235433297eb1fc9104b76221c6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 26 January 2012 00:48, Paulo Pinto <span dir= =3D"ltr">&lt;<a href=3D"mailto:pjmlp progtools.org">pjmlp progtools.org</a>= &gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0= 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Am 25.01.2012 23:35, schrieb Manu:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> On 26 January 2012 00:02, Brad Anderson &lt;<a href=3D"mailto:eco gnuk.net"= target=3D"_blank">eco gnuk.net</a><div class=3D"im"><br> &lt;mailto:<a href=3D"mailto:eco gnuk.net" target=3D"_blank">eco gnuk.net</= a>&gt;&gt; wrote:<br> <br> =C2=A0 =C2=A0On Wed, Jan 25, 2012 at 2:38 PM, Manu &lt;<a href=3D"mailto:t= urkeyman gmail.com" target=3D"_blank">turkeyman gmail.com</a><br></div><div= class=3D"im"> =C2=A0 =C2=A0&lt;mailto:<a href=3D"mailto:turkeyman gmail.com" target=3D"_= blank">turkeyman gmail.com</a>&gt;&gt; wrote:<br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0On 25 January 2012 23:33, Trass3r &lt;<a href= =3D"mailto:un known.com" target=3D"_blank">un known.com</a><br></div><div c= lass=3D"im"> =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;mailto:<a href=3D"mailto:un known.com" targ= et=3D"_blank">un known.com</a>&gt;&gt; wrote:<br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0This is fairly inte= resting. MS have extended their C++<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0compiler<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0significantly for W= indows8 with a bunch of non-standard<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0stuff.<br> <br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Yeah, while refusing to implement= most of C++11.<br> <br> <br> =C2=A0 =C2=A0 =C2=A0 =C2=A0Good! The C++11 committee should be shot. They&= #39;ve got it<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0completely wrong, and MS have it right for my m= oney! :)<br> =C2=A0 =C2=A0 =C2=A0 =C2=A0I don&#39;t want MORE STL, I want less :)<br> <br> <br> =C2=A0 =C2=A0Herb Sutter (the man speaking in your video) is chairman of t= he C++<br> =C2=A0 =C2=A0standards committee so it&#39;s kind of amusing that the stuf= f you<br> =C2=A0 =C2=A0praise and the stuff you say is wrong are both led by the sam= e man.<br> =C2=A0 =C2=A0Also, he and Andrei wrote a book together (C++ Coding Standar= ds) so<br> =C2=A0 =C2=A0the name drop isn&#39;t entirely unexpected. =C2=A0They do th= e C++ and Beyond<br> =C2=A0 =C2=A0conference together (with Scott Meyers). =C2=A0A large portio= n of the<br> =C2=A0 =C2=A0questions from the attendees I saw in the Channel 9 videos we= re about D.<br> <br> <br></div><div class=3D"im"> Haha really? Amazing, but he works for Microsoft then I guess? So why is<br=

std::function for instance, why add that if he turns around and adds a<br> proper keyword for MS?<br> </div></blockquote> <br> Because he is just one person in the standards process. That is how standar= ds work.<br> <br> Each person (or company) just gets one vote.<br></blockquote><div><br></div=
<div>Yeah, well the chairman should have veto rights, and then do it right=

--00235433297eb1fc9104b76221c6--
Jan 25 2012
prev sibling next sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
On Wed, 25 Jan 2012 14:44:09 -0800, Manu <turkeyman gmail.com> wrote:

 On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:
  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:

  On 01/25/2012 07:03 AM, Manu wrote:

  This is fairly interesting. MS have extended their C++ compiler

 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration, and  
 a

it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows

have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D?

and as such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface.


That's for targeting the CLR (.NET) so it doesn't conflict with new/delete in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>

So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it...

It's exclusively for the .NET Framework and requires the .NET Framework to be installed and loaded to run. It's the .NET Runtime, and as such, it would be VERY unwise to base anything D on it. -- Adam Wilson Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Jan 25 2012
prev sibling next sibling parent reply =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <xtzgzorex gmail.com> writes:
On 25-01-2012 16:03, Manu wrote:
 http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T

 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

Most of this is only available in C++/CLI. And for the record, C++/CLI tooling in VS is horrendous.
 Oh, and Andrei got a nice little name drop around 35 minutes ;)

- Alex
Jan 25 2012
parent Paulo Pinto <pjmlp progtools.org> writes:
Am 26.01.2012 00:58, schrieb Alex Rønne Petersen:
 On 25-01-2012 16:03, Manu wrote:
 http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-532T

 This is fairly interesting. MS have extended their C++ compiler
 significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.

Most of this is only available in C++/CLI. And for the record, C++/CLI tooling in VS is horrendous.

No, it is also available in C++/CX. It is new in Windows 8/Visual Studio 2011.
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--20cf30363f359759a304b7624d46
Content-Type: text/plain; charset=UTF-8

On 26 January 2012 00:55, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 14:44:09 -0800, Manu <turkeyman gmail.com> wrote:

  On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:
  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:

  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:


  On 01/25/2012 07:03 AM, Manu wrote:


  This is fairly interesting. MS have extended their C++ compiler

  significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration, and a

it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows

have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D? There is no Win8GC, it's all ref counted. WinRT is COM with extras

such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface. Really? So what's 'gcnew' for?


new/delete in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx> <http**://msdn.microsoft.com/en-us/**library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>


So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it...

It's exclusively for the .NET Framework and requires the .NET Framework to be installed and loaded to run. It's the .NET Runtime, and as such, it would be VERY unwise to base anything D on it.

.NET will be a requirement on all Win8 machines. You didn't answer though, can you use the .NET GC to allocate C++ objects to use throughout your native program? Or is gcnew strictly for interfacing C++ with .NET, like C++/CLI? --20cf30363f359759a304b7624d46 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 26 January 2012 00:55, Adam Wilson <span dir= =3D"ltr">&lt;<a href=3D"mailto:flyboynw gmail.com">flyboynw gmail.com</a>&g= t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0= .8ex;border-left:1px #ccc solid;padding-left:1ex"> On Wed, 25 Jan 2012 14:44:09 -0800, Manu &lt;<a href=3D"mailto:turkeyman gm= ail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"><div><div class=3D"h5"> On 26 January 2012 00:37, Adam Wilson &lt;<a href=3D"mailto:flyboynw gmail.= com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> <br> </div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5"> On Wed, 25 Jan 2012 14:28:46 -0800, Manu &lt;<a href=3D"mailto:turkeyman gm= ail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> =C2=A0On 25 January 2012 23:59, Adam Wilson &lt;<a href=3D"mailto:flyboynw = gmail.com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On Wed, 25 Jan 2012 13:35:38 -0800, Manu &lt;<a href=3D"mailto:turkey= man gmail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On 25 January 2012 21:47, bls &lt;<a href=3D"mailto:bizprac orange.fr= " target=3D"_blank">bizprac orange.fr</a>&gt; wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On 01/25/2012 07:03 AM, Manu wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0This is fairly interesting. MS have extended their C++ compiler<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> significantly for Windows8 with a bunch of non-standard stuff.<br> FINALLY implement garbage collection, ref counting, properties,<br> delegates, events, generics, etc...<br> If other compilers adopt this tech, D loses some advantages.<br> <br> <br> =C2=A0But you still have to fight with ifndef ,forward declaration, and a<b= r> </blockquote> template syntax against common sense. =C2=A0Even if you paint shit yellow<b= r> it&#39;s<br> not necessarily gold.<br> <br> <br> =C2=A0True, but I think this will mitigate a lot of the motivation Windows<= br> </blockquote> devs<br> have to seek another language if they&#39;re not developing cross platform<= br> apps.<br> <br> Sadly, since WinRT requires using these language extensions to interface<br=

<br> in<br> D.<br> Interestingly though, D supports almost everything they&#39;ve added to<br> C++. I<br> wonder if it would be possible to do extern(Windows8) to produce a<br> compatible ABI for linking with MS C++ apps?<br> <br> The most interesting features are &#39;ref new&#39; and &#39;gcnew&#39;, wh= ich makes me<br> wonder, since Windows8 has an OS garbage collector, would it be at all<br> possible to have D use the Windows8 GC? I&#39;d prefer this to using D&#39;= s own<br> GC<br> if it would be supported, and obviously this would be a requirement if D<br=

Also, WinRT uses &#39;ref new&#39; to allocate ref counted (effectively COM= to<br> my<br> understanding) objects. I think I read somewhere that D already has<br> extern(COM) no? I wonder if Windows8 ref type linkage is already<br> technically supported in D?<br> <br> <br> </blockquote> There is no Win8GC, it&#39;s all ref counted. WinRT is COM with extras and = as<br> such should be accessible to D. It would need some extra glue code over<br> what we have now ... like the IInspectable interface.<br> <br> <br> </blockquote> Really? So what&#39;s &#39;gcnew&#39; for?<br> <br> </blockquote> <br> That&#39;s for targeting the CLR (.NET) so it doesn&#39;t conflict with new= /delete<br> in regular C++. It goes all the way back to the first C++/CLI in Visual<br> Studio 2005.<br> </div></div><a href=3D"http://msdn.microsoft.com/en-**us/library/te3ecsc8.a= spx" target=3D"_blank">http://msdn.microsoft.com/en-*<u></u>*us/library/te3= ecsc8.aspx</a>&lt;<a href=3D"http://msdn.microsoft.com/en-us/library/te3ecs= c8.aspx" target=3D"_blank">http<u></u>://msdn.microsoft.com/en-us/<u></u>li= brary/te3ecsc8.aspx</a>&gt;<br> </blockquote><div class=3D"im"> <br> <br> So there is a GC... It just happens to be the .net GC. Is that a problem?<b= r> Obviously it&#39;s accessible in C++ code. Can you use it to allocate C++<b= r> objects, or is it exclusively for some sort of interaction with .net?<br> If the rest of the platform is using it...<br> </div></blockquote> <br> It&#39;s exclusively for the .NET Framework and requires the .NET Framework= to be installed and loaded to run. It&#39;s the .NET Runtime, and as such,= it would be VERY unwise to base anything D on it.</blockquote><div><br> </div><div>.NET will be a requirement on all Win8 machines. You didn&#39;t = answer though, can you use the .NET GC to allocate C++ objects to use throu= ghout your native program? Or is gcnew strictly for interfacing C++ with .N= ET, like C++/CLI?</div> </div> --20cf30363f359759a304b7624d46--
Jan 25 2012
prev sibling next sibling parent Brad Anderson <eco gnuk.net> writes:
--90e6ba10a6a976edc204b7628531
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Jan 25, 2012 at 3:53 PM, Manu <turkeyman gmail.com> wrote:

 On 26 January 2012 00:48, Paulo Pinto <pjmlp progtools.org> wrote:

 Am 25.01.2012 23:35, schrieb Manu:

 On 26 January 2012 00:02, Brad Anderson <eco gnuk.net

 <mailto:eco gnuk.net>> wrote:

    On Wed, Jan 25, 2012 at 2:38 PM, Manu <turkeyman gmail.com
    <mailto:turkeyman gmail.com>> wrote:

        On 25 January 2012 23:33, Trass3r <un known.com
        <mailto:un known.com>> wrote:

                This is fairly interesting. MS have extended their C++
                compiler
                significantly for Windows8 with a bunch of non-standard
                stuff.


            Yeah, while refusing to implement most of C++11.


        Good! The C++11 committee should be shot. They've got it
        completely wrong, and MS have it right for my money! :)
        I don't want MORE STL, I want less :)


    Herb Sutter (the man speaking in your video) is chairman of the C++
    standards committee so it's kind of amusing that the stuff you
    praise and the stuff you say is wrong are both led by the same man.
    Also, he and Andrei wrote a book together (C++ Coding Standards) so
    the name drop isn't entirely unexpected.  They do the C++ and Beyond
    conference together (with Scott Meyers).  A large portion of the
    questions from the attendees I saw in the Channel 9 videos were about
 D.


 Haha really? Amazing, but he works for Microsoft then I guess? So why is
 he fixing C++ for MS, but won't fix the C++ standard its self?
 std::function for instance, why add that if he turns around and adds a
 proper keyword for MS?

Because he is just one person in the standards process. That is how standards work. Each person (or company) just gets one vote.

Yeah, well the chairman should have veto rights, and then do it right, like they did at MS :P

The chairman in ISO committees is more of an organizer and planner. The process itself is very democratic. The final vote is done by member countries and the standard becomes an international treaty. As for why he didn't fix things, in addition to the fact that the committee probably disagrees with some of the stuff you would call broken, the C++0x (heh) standard was already taking way, way too long. They had to cut the largest addition out (concepts) because the standard would have taken years longer to realize had they tried to keep it. I believe they've taken steps to make sure the next standard happens in a more timely fashion. Regards, Brad Anderson --90e6ba10a6a976edc204b7628531 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Wed, Jan 25, 2012 at 3:53 PM, Manu <span dir=3D"ltr">&lt;<a href=3D"mail= to:turkeyman gmail.com">turkeyman gmail.com</a>&gt;</span> wrote:<br><div c= lass=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 = 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div class=3D"gmail_quote"><div><div class=3D"h5">On 26 January 2012 00:48,= Paulo Pinto <span dir=3D"ltr">&lt;<a href=3D"mailto:pjmlp progtools.org" t= arget=3D"_blank">pjmlp progtools.org</a>&gt;</span> wrote:<br><blockquote c= lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;= padding-left:1ex"> Am 25.01.2012 23:35, schrieb Manu:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> On 26 January 2012 00:02, Brad Anderson &lt;<a href=3D"mailto:eco gnuk.net"= target=3D"_blank">eco gnuk.net</a><div><br> &lt;mailto:<a href=3D"mailto:eco gnuk.net" target=3D"_blank">eco gnuk.net</= a>&gt;&gt; wrote:<br> <br> =A0 =A0On Wed, Jan 25, 2012 at 2:38 PM, Manu &lt;<a href=3D"mailto:turkeym= an gmail.com" target=3D"_blank">turkeyman gmail.com</a><br></div><div> =A0 =A0&lt;mailto:<a href=3D"mailto:turkeyman gmail.com" target=3D"_blank"=
turkeyman gmail.com</a>&gt;&gt; wrote:<br>

=A0 =A0 =A0 =A0On 25 January 2012 23:33, Trass3r &lt;<a href=3D"mailto:un = known.com" target=3D"_blank">un known.com</a><br></div><div> =A0 =A0 =A0 =A0&lt;mailto:<a href=3D"mailto:un known.com" target=3D"_blank= ">un known.com</a>&gt;&gt; wrote:<br> <br> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0This is fairly interesting. MS have extende= d their C++<br> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0compiler<br> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0significantly for Windows8 with a bunch of = non-standard<br> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0stuff.<br> <br> <br> =A0 =A0 =A0 =A0 =A0 =A0Yeah, while refusing to implement most of C++11.<br=

<br> =A0 =A0 =A0 =A0Good! The C++11 committee should be shot. They&#39;ve got i= t<br> =A0 =A0 =A0 =A0completely wrong, and MS have it right for my money! :)<br> =A0 =A0 =A0 =A0I don&#39;t want MORE STL, I want less :)<br> <br> <br> =A0 =A0Herb Sutter (the man speaking in your video) is chairman of the C++= <br> =A0 =A0standards committee so it&#39;s kind of amusing that the stuff you<= br> =A0 =A0praise and the stuff you say is wrong are both led by the same man.= <br> =A0 =A0Also, he and Andrei wrote a book together (C++ Coding Standards) so= <br> =A0 =A0the name drop isn&#39;t entirely unexpected. =A0They do the C++ and= Beyond<br> =A0 =A0conference together (with Scott Meyers). =A0A large portion of the<= br> =A0 =A0questions from the attendees I saw in the Channel 9 videos were abo= ut D.<br> <br> <br></div><div> Haha really? Amazing, but he works for Microsoft then I guess? So why is<br=

std::function for instance, why add that if he turns around and adds a<br> proper keyword for MS?<br> </div></blockquote> <br> Because he is just one person in the standards process. That is how standar= ds work.<br> <br> Each person (or company) just gets one vote.<br></blockquote><div><br></div=
</div></div><div>Yeah, well the chairman should have veto rights, and then=

</blockquote></div><br><div>The chairman in ISO committees is more of an or= ganizer and planner. =A0The process itself is very democratic. =A0The final= vote is done by member countries and the standard becomes an international= treaty.</div> <div><br></div><div>As for why he didn&#39;t fix things, in addition to the= fact that the committee probably disagrees with some of the stuff you woul= d call broken, the C++0x (heh) standard was already taking way, way too lon= g. =A0They had to cut the largest addition out (concepts) because the stand= ard would have taken years longer to realize had they tried to keep it. =A0= I believe they&#39;ve taken steps to make sure the next standard happens in= a more timely fashion.</div> <div><br></div><div>Regards,</div><div>Brad Anderson</div> --90e6ba10a6a976edc204b7628531--
Jan 25 2012
prev sibling next sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
On Wed, 25 Jan 2012 15:05:43 -0800, Manu <turkeyman gmail.com> wrote:

 On 26 January 2012 00:55, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 14:44:09 -0800, Manu <turkeyman gmail.com> wrote:

  On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:
  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:

  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com>  
 wrote:

  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:


  On 01/25/2012 07:03 AM, Manu wrote:


  This is fairly interesting. MS have extended their C++ compiler

  significantly for Windows8 with a bunch of non-standard stuff.
 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration,  
 and a

yellow it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows

have to seek another language if they're not developing cross platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D? There is no Win8GC, it's all ref counted. WinRT is COM with extras

such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface. Really? So what's 'gcnew' for?


new/delete in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx> <http**://msdn.microsoft.com/en-us/**library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>


So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it...

It's exclusively for the .NET Framework and requires the .NET Framework to be installed and loaded to run. It's the .NET Runtime, and as such, it would be VERY unwise to base anything D on it.

.NET will be a requirement on all Win8 machines. You didn't answer though, can you use the .NET GC to allocate C++ objects to use throughout your native program? Or is gcnew strictly for interfacing C++ with .NET, like C++/CLI?

It is strictly for allocating .NET objects. You CANNOT allocate C++ objects with the .NET GC, that was implied by the statement on the use of the .NET GC. -- Adam Wilson Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Jan 25 2012
prev sibling next sibling parent Manu <turkeyman gmail.com> writes:
--00235429d6d873abd604b76a300a
Content-Type: text/plain; charset=UTF-8

On 26 January 2012 03:15, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 15:05:43 -0800, Manu <turkeyman gmail.com> wrote:

  On 26 January 2012 00:55, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 14:44:09 -0800, Manu <turkeyman gmail.com> wrote:
  On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:

  On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com> wrote:

  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:


  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com>
 wrote:


  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:


   On 01/25/2012 07:03 AM, Manu wrote:
   This is fairly interesting. MS have extended their C++ compiler
  significantly for Windows8 with a bunch of non-standard stuff.

 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration,
 and a

  template syntax against common sense.  Even if you paint shit

it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows devs

platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D? There is no Win8GC, it's all ref counted. WinRT is COM with extras

such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface. Really? So what's 'gcnew' for?

That's for targeting the CLR (.NET) so it doesn't conflict with

in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-******us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx> <ht**tp://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx>

<**http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>


So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it...

to be installed and loaded to run. It's the .NET Runtime, and as such, it would be VERY unwise to base anything D on it.

.NET will be a requirement on all Win8 machines. You didn't answer though, can you use the .NET GC to allocate C++ objects to use throughout your native program? Or is gcnew strictly for interfacing C++ with .NET, like C++/CLI?

It is strictly for allocating .NET objects. You CANNOT allocate C++ objects with the .NET GC, that was implied by the statement on the use of the .NET GC.

I see, well that's good. I presume then that it shouldn't be too much trouble to implement MS C++'s ref type ABI in D then if it is just basically COM. How about 'delegate'? Would it be trouble to make the extern ABI compatible when passing delegates between MSC++/D? --00235429d6d873abd604b76a300a Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div class=3D"gmail_quote">On 26 January 2012 03:15, Adam Wilson <span dir= =3D"ltr">&lt;<a href=3D"mailto:flyboynw gmail.com">flyboynw gmail.com</a>&g= t;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0= .8ex;border-left:1px #ccc solid;padding-left:1ex"> On Wed, 25 Jan 2012 15:05:43 -0800, Manu &lt;<a href=3D"mailto:turkeyman gm= ail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"><div><div class=3D"h5"> On 26 January 2012 00:55, Adam Wilson &lt;<a href=3D"mailto:flyboynw gmail.= com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> <br> </div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5"> On Wed, 25 Jan 2012 14:44:09 -0800, Manu &lt;<a href=3D"mailto:turkeyman gm= ail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> =C2=A0On 26 January 2012 00:37, Adam Wilson &lt;<a href=3D"mailto:flyboynw = gmail.com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> </div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5"> <br> =C2=A0On Wed, 25 Jan 2012 14:28:46 -0800, Manu &lt;<a href=3D"mailto:turkey= man gmail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> </div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo= rder-left:1px #ccc solid;padding-left:1ex"><div><div class=3D"h5"> <br> =C2=A0On 25 January 2012 23:59, Adam Wilson &lt;<a href=3D"mailto:flyboynw = gmail.com" target=3D"_blank">flyboynw gmail.com</a>&gt; wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On Wed, 25 Jan 2012 13:35:38 -0800, Manu &lt;<a href=3D"mailto:turkey= man gmail.com" target=3D"_blank">turkeyman gmail.com</a>&gt; wrote:<br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> <br> =C2=A0On 25 January 2012 21:47, bls &lt;<a href=3D"mailto:bizprac orange.fr= " target=3D"_blank">bizprac orange.fr</a>&gt; wrote:<br> <br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> =C2=A0On 01/25/2012 07:03 AM, Manu wrote:<br> <br> <br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> =C2=A0This is fairly interesting. MS have extended their C++ compiler<br> <br> =C2=A0significantly for Windows8 with a bunch of non-standard stuff.<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"> FINALLY implement garbage collection, ref counting, properties,<br> delegates, events, generics, etc...<br> If other compilers adopt this tech, D loses some advantages.<br> <br> <br> =C2=A0But you still have to fight with ifndef ,forward declaration, and a<b= r> <br> </blockquote> template syntax against common sense. =C2=A0Even if you paint shit yellow<b= r> it&#39;s<br> not necessarily gold.<br> <br> <br> =C2=A0True, but I think this will mitigate a lot of the motivation Windows<= br> <br> </blockquote> devs<br> have to seek another language if they&#39;re not developing cross platform<= br> apps.<br> <br> Sadly, since WinRT requires using these language extensions to<br> interface<br> with the new windows runtime, you won&#39;t be able to write a Windows8<br> app<br> in<br> D.<br> Interestingly though, D supports almost everything they&#39;ve added to<br> C++. I<br> wonder if it would be possible to do extern(Windows8) to produce a<br> compatible ABI for linking with MS C++ apps?<br> <br> The most interesting features are &#39;ref new&#39; and &#39;gcnew&#39;, wh= ich makes<br> me<br> wonder, since Windows8 has an OS garbage collector, would it be at all<br> possible to have D use the Windows8 GC? I&#39;d prefer this to using D&#39;= s<br> own<br> GC<br> if it would be supported, and obviously this would be a requirement<br> if D<br> was going to interact with WinRT properly.<br> Also, WinRT uses &#39;ref new&#39; to allocate ref counted (effectively COM= to<br> my<br> understanding) objects. I think I read somewhere that D already has<br> extern(COM) no? I wonder if Windows8 ref type linkage is already<br> technically supported in D?<br> <br> <br> =C2=A0There is no Win8GC, it&#39;s all ref counted. WinRT is COM with extra= s<br> </blockquote> and as<br> such should be accessible to D. It would need some extra glue code over<br> what we have now ... like the IInspectable interface.<br> <br> <br> =C2=A0Really? So what&#39;s &#39;gcnew&#39; for?<br> </blockquote> <br> <br> </blockquote> That&#39;s for targeting the CLR (.NET) so it doesn&#39;t conflict with<br> new/delete<br> in regular C++. It goes all the way back to the first C++/CLI in Visual<br> Studio 2005.<br> </div></div><a href=3D"http://msdn.microsoft.com/en-****us/library/te3ecsc8= .aspx" target=3D"_blank">http://msdn.microsoft.com/en-*<u></u>***us/library= /te3ecsc8.aspx</a>&lt;<a href=3D"http://msdn.microsoft.com/en-**us/library/= te3ecsc8.aspx" target=3D"_blank">ht<u></u>tp://msdn.microsoft.com/en-**<u><= /u>us/library/te3ecsc8.aspx</a>&gt;<br> &lt;http**://<a href=3D"http://msdn.microsoft.com/en-us/**library/te3ecsc8.= aspx" target=3D"_blank">msdn.microsoft.com/<u></u>en-us/**library/te3ecsc8.= aspx</a>&lt;<a href=3D"http://msdn.microsoft.com/en-us/library/te3ecsc8.asp= x" target=3D"_blank"><u></u>http://msdn.microsoft.com/en-<u></u>us/library/= te3ecsc8.aspx</a>&gt;<br> &gt;<br> <br> </blockquote><div class=3D"im"> <br> <br> So there is a GC... It just happens to be the .net GC. Is that a problem?<b= r> Obviously it&#39;s accessible in C++ code. Can you use it to allocate C++<b= r> objects, or is it exclusively for some sort of interaction with .net?<br> If the rest of the platform is using it...<br> <br> </div></blockquote><div class=3D"im"> <br> It&#39;s exclusively for the .NET Framework and requires the .NET Framework= to<br> be installed and loaded to run. It&#39;s the .NET Runtime, and as such, it<= br> would be VERY unwise to base anything D on it.<br> </div></blockquote> <br> <br><div class=3D"im"> .NET will be a requirement on all Win8 machines. You didn&#39;t answer thou= gh,<br> can you use the .NET GC to allocate C++ objects to use throughout your<br> native program? Or is gcnew strictly for interfacing C++ with .NET, like<br=

</div></blockquote> <br> It is strictly for allocating .NET objects. You CANNOT allocate C++ objects= with the .NET GC, that was implied by the statement on the use of the .NET= GC.</blockquote><div><br></div><div>I see, well that&#39;s good. I presume= then that it shouldn&#39;t be too much trouble to implement MS C++&#39;s r= ef type ABI in D then if it is just basically COM.</div> <div>How about &#39;delegate&#39;? Would it be trouble to make the extern A= BI compatible when passing delegates between MSC++/D?</div></div> --00235429d6d873abd604b76a300a--
Jan 26 2012
prev sibling parent "Adam Wilson" <flyboynw gmail.com> writes:
On Thu, 26 Jan 2012 00:30:14 -0800, Manu <turkeyman gmail.com> wrote:

 On 26 January 2012 03:15, Adam Wilson <flyboynw gmail.com> wrote:

 On Wed, 25 Jan 2012 15:05:43 -0800, Manu <turkeyman gmail.com> wrote:

  On 26 January 2012 00:55, Adam Wilson <flyboynw gmail.com> wrote:
  On Wed, 25 Jan 2012 14:44:09 -0800, Manu <turkeyman gmail.com> wrote:
  On 26 January 2012 00:37, Adam Wilson <flyboynw gmail.com> wrote:

  On Wed, 25 Jan 2012 14:28:46 -0800, Manu <turkeyman gmail.com>  
 wrote:

  On 25 January 2012 23:59, Adam Wilson <flyboynw gmail.com> wrote:


  On Wed, 25 Jan 2012 13:35:38 -0800, Manu <turkeyman gmail.com>
 wrote:


  On 25 January 2012 21:47, bls <bizprac orange.fr> wrote:


   On 01/25/2012 07:03 AM, Manu wrote:
   This is fairly interesting. MS have extended their C++ compiler
  significantly for Windows8 with a bunch of non-standard stuff.

 FINALLY implement garbage collection, ref counting, properties,
 delegates, events, generics, etc...
 If other compilers adopt this tech, D loses some advantages.


  But you still have to fight with ifndef ,forward declaration,
 and a

  template syntax against common sense.  Even if you paint shit

it's not necessarily gold. True, but I think this will mitigate a lot of the motivation Windows devs

platform apps. Sadly, since WinRT requires using these language extensions to interface with the new windows runtime, you won't be able to write a Windows8 app in D. Interestingly though, D supports almost everything they've added to C++. I wonder if it would be possible to do extern(Windows8) to produce a compatible ABI for linking with MS C++ apps? The most interesting features are 'ref new' and 'gcnew', which makes me wonder, since Windows8 has an OS garbage collector, would it be at all possible to have D use the Windows8 GC? I'd prefer this to using D's own GC if it would be supported, and obviously this would be a requirement if D was going to interact with WinRT properly. Also, WinRT uses 'ref new' to allocate ref counted (effectively COM to my understanding) objects. I think I read somewhere that D already has extern(COM) no? I wonder if Windows8 ref type linkage is already technically supported in D? There is no Win8GC, it's all ref counted. WinRT is COM with extras

such should be accessible to D. It would need some extra glue code over what we have now ... like the IInspectable interface. Really? So what's 'gcnew' for?

That's for targeting the CLR (.NET) so it doesn't conflict with

in regular C++. It goes all the way back to the first C++/CLI in Visual Studio 2005. http://msdn.microsoft.com/en-******us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx> <ht**tp://msdn.microsoft.com/en-****us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx>

<**http://msdn.microsoft.com/en-**us/library/te3ecsc8.aspx<http://msdn.microsoft.com/en-us/library/te3ecsc8.aspx>


So there is a GC... It just happens to be the .net GC. Is that a problem? Obviously it's accessible in C++ code. Can you use it to allocate C++ objects, or is it exclusively for some sort of interaction with .net? If the rest of the platform is using it...

Framework to be installed and loaded to run. It's the .NET Runtime, and as such, it would be VERY unwise to base anything D on it.

.NET will be a requirement on all Win8 machines. You didn't answer though, can you use the .NET GC to allocate C++ objects to use throughout your native program? Or is gcnew strictly for interfacing C++ with .NET, like C++/CLI?

It is strictly for allocating .NET objects. You CANNOT allocate C++ objects with the .NET GC, that was implied by the statement on the use of the .NET GC.

I see, well that's good. I presume then that it shouldn't be too much trouble to implement MS C++'s ref type ABI in D then if it is just basically COM. How about 'delegate'? Would it be trouble to make the extern ABI compatible when passing delegates between MSC++/D?

Theoretically, it wouldn't be to hard, getting Walter to do it however ... -- Adam Wilson Project Coordinator The Horizon Project http://www.thehorizonproject.org/
Jan 26 2012