Jump to page: 1 2 3
Thread overview
[OT] My C++ talk at GoingNative 2013
Sep 10, 2013
deadalnix
Sep 10, 2013
Iain Buclaw
Sep 10, 2013
PauloPinto
Sep 10, 2013
Olivier Grant
Sep 10, 2013
Iain Buclaw
Sep 12, 2013
Iain Buclaw
Sep 12, 2013
Sean Kelly
Sep 12, 2013
Sean Kelly
Sep 13, 2013
Jacob Carlborg
Sep 13, 2013
deadalnix
Sep 13, 2013
Mathias LANG
Sep 14, 2013
Jacob Carlborg
Sep 11, 2013
Olivier Pisano
Sep 13, 2013
deadalnix
Sep 18, 2013
Olivier Pisano
Sep 19, 2013
Walter Bright
Sep 19, 2013
Justin Whear
Sep 19, 2013
Walter Bright
Sep 20, 2013
Olivier Pisano
Sep 20, 2013
Justin Whear
Sep 20, 2013
Tobias Pankrath
Sep 21, 2013
Joakim
Sep 21, 2013
Nick Sabalausky
Sep 18, 2013
growler
Sep 18, 2013
Gary Willoughby
Sep 22, 2013
Ali Çehreli
September 09, 2013
http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/

Andrei
September 10, 2013
On Monday, 9 September 2013 at 16:43:54 UTC, Andrei Alexandrescu wrote:
> http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
>
> Andrei

So I'll jump in as I've seen the conf before that post.

It is really worthwhile to watch. Quite informative on the technical side (funilly, I did implement the solution presented in the devirtualization part on a platform where virtual function were not available because of crappy compiler, but had no idea it was worthwhile for speed, it wasn't the goal so I never measured, and it also may not the case on the given plateform).

Many discussed subject apply as well to D. By the way, what is the state of std.bitmanip in comparison to what is presented in the conf ?

Also, Andrei, did you try LLVM/clang ?

Related to going native, Chandler the discussion on signess of integers and I really wonder if we should follow the rule that make unsigned spread like a virus, as C does.
September 10, 2013
First of all, I very much enjoyed the talk. It was as interesting as it was entertaining.

I do have a question regarding the talk's section on devirtualization. As a language that imposes virtual methods for classes, how well does D play when it comes to devirtualization? And on a side note, does D have a different way of implementing virtual methods than most C++ compilers do?

Thanks,

O.

On Monday, 9 September 2013 at 16:43:54 UTC, Andrei Alexandrescu wrote:
> http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
>
> Andrei

September 10, 2013
On 10 September 2013 13:54, Olivier Grant <olivier.grant@gmail.com> wrote:
> First of all, I very much enjoyed the talk. It was as interesting as it was entertaining.
>
> I do have a question regarding the talk's section on devirtualization. As a language that imposes virtual methods for classes, how well does D play when it comes to devirtualization? And on a side note, does D have a different way of implementing virtual methods than most C++ compilers do?
>

All class methods are virtual by default in D, unless declared 'final'.

Devirtualisation is not something done by the front-end, but recent updates and interest from compiler back-ends may provide a solution.

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
September 10, 2013
On 10 September 2013 11:10, deadalnix <deadalnix@gmail.com> wrote:
> On Monday, 9 September 2013 at 16:43:54 UTC, Andrei Alexandrescu wrote:
>>
>>
>> http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
>>
>> Andrei
>
>
> So I'll jump in as I've seen the conf before that post.
>
> It is really worthwhile to watch. Quite informative on the technical side (funilly, I did implement the solution presented in the devirtualization part on a platform where virtual function were not available because of crappy compiler, but had no idea it was worthwhile for speed, it wasn't the goal so I never measured, and it also may not the case on the given plateform).
>

Interestingly enough, gcc recently added (about a month before Andrei did the talk) a new interprocedural analysis pass that sets all methods that can be devirtualised.  I expect that LLVM have something cooking up for this too.  As of yet, I haven't ran any tests which show that this works though...


-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';
September 10, 2013
On Tuesday, 10 September 2013 at 13:20:18 UTC, Iain Buclaw wrote:
> On 10 September 2013 11:10, deadalnix <deadalnix@gmail.com> wrote:
>> On Monday, 9 September 2013 at 16:43:54 UTC, Andrei Alexandrescu wrote:
>>>
>>>
>>> http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
>>>
>>> Andrei
>>
>>
>> So I'll jump in as I've seen the conf before that post.
>>
>> It is really worthwhile to watch. Quite informative on the technical side
>> (funilly, I did implement the solution presented in the devirtualization
>> part on a platform where virtual function were not available because of
>> crappy compiler, but had no idea it was worthwhile for speed, it wasn't the
>> goal so I never measured, and it also may not the case on the given
>> plateform).
>>
>
> Interestingly enough, gcc recently added (about a month before Andrei
> did the talk) a new interprocedural analysis pass that sets all
> methods that can be devirtualised.  I expect that LLVM have something
> cooking up for this too.  As of yet, I haven't ran any tests which
> show that this works though...

The main problem with devirtualization is that you can only have full benefits when targeting VM based environments.

With native generated code, it is only possible to apply devirtualization on static linked code.

--
Paulo
September 11, 2013
On Monday, 9 September 2013 at 16:43:54 UTC, Andrei Alexandrescu wrote:
> http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/
>
> Andrei

This talks are amazing. I learned a lot. Thank you all guys for your dedication and pedagogy.

BTW, I really liked your face during the 'Ask us anything' panel, when STL talked about Garbage Collection!

Congratulations for resisting the need to shout 'D does already solves this problem' at least a dozen of times. Too bad Native means C++ in Microsoft speak.
September 12, 2013
On Tuesday, 10 September 2013 at 13:08:29 UTC, Iain Buclaw wrote:
> All class methods are virtual by default in D, unless declared 'final'.

There was an intense discussion a while back which ended in (I think) a decision by Walter to switch to final-by-default, but there has so far been no practical follow-up.
September 12, 2013
On Sep 12, 2013 9:16 PM, "Joseph Rushton Wakeling" < joseph.wakeling@webdrake.net> wrote:
>
> On Tuesday, 10 September 2013 at 13:08:29 UTC, Iain Buclaw wrote:
>>
>> All class methods are virtual by default in D, unless declared 'final'.
>
>
> There was an intense discussion a while back which ended in (I think) a
decision by Walter to switch to final-by-default, but there has so far been no practical follow-up.

Not sure how long ago that was, but dconf everyone agreed to disagree and left it at "we're not changing it".

Regards
-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


September 12, 2013
On Sep 12, 2013, at 2:46 PM, Iain Buclaw <ibuclaw@ubuntu.com> wrote:
> 
> Not sure how long ago that was, but dconf everyone agreed to disagree and left it at "we're not changing it".

Here's a portion of the discussion where Walter seemed to change his mind:

http://forum.dlang.org/thread/yzsqwejxqlnzryhrkfuq@forum.dlang.org?page=26
« First   ‹ Prev
1 2 3