August 29, 2009
On Fri, Aug 28, 2009 at 5:01 PM, Ary Borenszweig<ary@esperanto.org.ar> wrote:
> Walter Bright escribió:
>>
>> Jarrett Billingsley wrote:
>>>
>>> On Fri, Aug 28, 2009 at 4:20 PM, Walter Bright<newshound1@digitalmars.com> wrote:
>>>>
>>>> Jarrett Billingsley wrote:
>>>>>
>>>>> You're addressing the 'const' issue, but you haven't addressed the OP's issue: that 'ref', for whatever reason, prevents inlining. Const aside, why is this so?
>>>>
>>>> Because I never updated the inlining code to handle it.
>>>
>>> Well I'm glad it's that simple, and I'm sure Jeremie is too ;)
>>
>> There are a lot of D specific optimization opportunities that are left undone for now.
>
> Why?
>
> Seeing D as "a systems language with features form high-level languages but without the performance penalty so you can prefer it over C/C++/Java/C# etc.", if D's performance isn't that good then there's not much competition for people coming from either sides that expect high performance.
>
> bearophile and others from time to time complain about performance issues in D, just because D promises performance. I think this is more important that adding more features that won't give you higher performance.
>

I think it's perfectly justified to put off optimizations that are tricky or only pay off in odd circumstances.   But from Walter's comment it sounds like this one shouldn't be any harder than enabling the pointer inlining path for ref args too.  And the payoff would be decent.

--bb
August 29, 2009
Ary Borenszweig wrote:
> Walter Bright escribió:
>> There are a lot of D specific optimization opportunities that are left undone for now.
> Why?

Which of the thousand things people want done in D should be done first?
August 29, 2009
Walter Bright wrote:
> Ary Borenszweig wrote:
>> Walter Bright escribió:
>>> There are a lot of D specific optimization opportunities that are left undone for now.
>> Why?
> 
> Which of the thousand things people want done in D should be done first?

Those that the askers are willing to implement first, I'd say.
August 29, 2009
Walter Bright escribió:
> Ary Borenszweig wrote:
>> Walter Bright escribió:
>>> There are a lot of D specific optimization opportunities that are left undone for now.
>> Why?
> 
> Which of the thousand things people want done in D should be done first?

Those that you feel like doing first.

Ok, you win. :-)

(I use the same reasoning most of the time when coding Descent)
August 29, 2009
Ary Borenszweig wrote:
> Walter Bright escribió:
>> Ary Borenszweig wrote:
>>> Walter Bright escribió:
>>>> There are a lot of D specific optimization opportunities that are left undone for now.
>>> Why?
>>
>> Which of the thousand things people want done in D should be done first?
> 
> Those that you feel like doing first.
> 
> Ok, you win. :-)
> 
> (I use the same reasoning most of the time when coding Descent)

<g> But I'm not kidding about the thousand things. There are more than that in Bugzilla.
August 29, 2009
Walter Bright Wrote:

> Ary Borenszweig wrote:
> > Walter Bright escribió:
> >> Ary Borenszweig wrote:
> >>> Walter Bright escribió:
> >>>> There are a lot of D specific optimization opportunities that are left undone for now.
> >>> Why?
> >>
> >> Which of the thousand things people want done in D should be done first?
> > 
> > Those that you feel like doing first.
> > 
> > Ok, you win. :-)
> > 
> > (I use the same reasoning most of the time when coding Descent)
> 
> <g> But I'm not kidding about the thousand things. There are more than that in Bugzilla.

The core feature set should be more important for now, since they drive D2 closer to a stable specification, and I know how adding new features can break optimizations and whatnot.

I would rather see T[new] arrays and working shared qualifiers myself. However, proper ref semantics would also allow us to switch back from C to D syntax for these.

Maybe I should get familiar with dmd2's source and see if I can contribute to those issues once I get more free time, but even in its current development state, I have more fun coding in D than I ever had in C or C++.
August 29, 2009
"Walter Bright" <newshound1@digitalmars.com> wrote in message news:h7a1td$6n0$1@digitalmars.com...
> Ary Borenszweig wrote:
>> Walter Bright escribió:
>>> There are a lot of D specific optimization opportunities that are left undone for now.
>> Why?
>
> Which of the thousand things people want done in D should be done first?

for example releasing memory back to the OS on windows now and then


August 29, 2009
On Sat, Aug 29, 2009 at 4:56 AM, Walter Bright<newshound1@digitalmars.com> wrote:
> Ary Borenszweig wrote:
>>
>> Walter Bright escribió:
>>>
>>> Ary Borenszweig wrote:
>>>>
>>>> Walter Bright escribió:
>>>>>
>>>>> There are a lot of D specific optimization opportunities that are left undone for now.
>>>>
>>>> Why?
>>>
>>> Which of the thousand things people want done in D should be done first?
>>
>> Those that you feel like doing first.
>>
>> Ok, you win. :-)
>>
>> (I use the same reasoning most of the time when coding Descent)
>
> <g> But I'm not kidding about the thousand things. There are more than that in Bugzilla.

So uh, how's the Bugzilla voting system working out then?
August 29, 2009
在 Sat, 29 Aug 2009 22:01:53 +0800,Jarrett Billingsley <jarrett.billingsley@gmail.com> 写道:

> On Sat, Aug 29, 2009 at 4:56 AM, Walter
> Bright<newshound1@digitalmars.com> wrote:
>> Ary Borenszweig wrote:
>>>
>>> Walter Bright escribió:
>>>>
>>>> Ary Borenszweig wrote:
>>>>>
>>>>> Walter Bright escribió:
>>>>>>
>>>>>> There are a lot of D specific optimization opportunities that are left
>>>>>> undone for now.
>>>>>
>>>>> Why?
>>>>
>>>> Which of the thousand things people want done in D should be done first?
>>>
>>> Those that you feel like doing first.
>>>
>>> Ok, you win. :-)
>>>
>>> (I use the same reasoning most of the time when coding Descent)
>>
>> <g> But I'm not kidding about the thousand things. There are more than that
>> in Bugzilla.
>
> So uh, how's the Bugzilla voting system working out then?

Good point.

-- 
使用 Opera 革命性的电子邮件客户程序: http://www.opera.com/mail/
August 29, 2009
== Quote from Walter Bright (newshound1@digitalmars.com)'s article
> Ary Borenszweig wrote:
> > Walter Bright escribió:
> >> There are a lot of D specific optimization opportunities that are left undone for now.
> > Why?
> Which of the thousand things people want done in D should be done first?

I'd say things should get a priority bump if they're either:

1.  Major breaking changes.  Let's get these out of the way so the spec can stabilize.

2.  Bugs that substantially reduce the functionality of new/D-specific features, thus preventing comments on how these features might be improved, etc.

3.  High bang for buck, i.e. something that, given the background of the person implementing it, would help a lot of people/situations for relatively little effort.

For the most part, I agree that performance optimizations can wait.  It's just that, when ref params are used at a very low level in Phobos (think swap() ), and it's easy for someone with the right background to implement ref inlining, that makes it a very high bang for buck optimization.