Thread overview | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 09, 2013 [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
http://www.reddit.com/r/programming/comments/1m1izv/goingnative_2013_writing_quick_code_in_c_quickly/ Andrei |
September 10, 2013 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Olivier Grant | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to deadalnix | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Iain Buclaw | 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 Re: [OT] My C++ talk at GoingNative 2013 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joseph Rushton Wakeling Attachments:
| 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 Re: [OT] My C++ talk at GoingNative 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 |
Copyright © 1999-2021 by the D Language Foundation