lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue 5368: Reduce allocations in Grob dimension caching (issue 3597


From: David Kastrup
Subject: Re: Issue 5368: Reduce allocations in Grob dimension caching (issue 359770043 by address@hidden)
Date: Sat, 07 Jul 2018 10:04:58 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Hans Åberg <address@hidden> writes:

>> On 7 Jul 2018, at 09:35, David Kastrup <address@hidden> wrote:
>> 
>> Hans Åberg <address@hidden> writes:
>> 
>>>> On 6 Jul 2018, at 11:12, address@hidden wrote:
>>>> 
>>>> On 2018/07/05 21:32:25, Dan Eble wrote:
>>>> 
>>>>> The rationale is that std::optional is fit for this situation and if
>>>>> LilyPond were built with C++17 I would simply have used it.
>>>> 
>>>> Any C++17 lookalike package is _not_ "simply using it" but a maintenance
>>>> sink of itself.  And a semi-lookalike always requires double-checking in
>>>> what respects it does and does not do the same job.  Write code once,
>>>> debug it twice.  Not to mention profile it twice.
>>>> 
>>>> Reimplementing and then maintaining C++17 features and eventually
>>>> possibly phasing out and replacing them by "the real thing" in 4 years
>>>> or so is not the same as "simply using them".
>>> 
>>> Use __cplusplus. Later C++ versions also have a 'using' version of
>>> typedef, which I found useful for transforming code.
>> 
>> This is totally not addressing the objection at all.
>
> The idea is to do it all now, then the change is automatic and the old
> code can just be removed at some point in time, but you would need a
> compiler that can do C++17, too.

The whole point is that we do not want to rely on C++17 now and don't
want to maintain a full reimplementation of a C++17 feature until we do
when that feature is used only once and in a minor manner.  The fallover
strategy for it becoming available is not really of relevance for that
call, but an automatic fallover would mean that we have dormant untested
code that becomes active at different points of time for different
people.

-- 
David Kastrup



reply via email to

[Prev in Thread] Current Thread [Next in Thread]