lilypond-devel
[Top][All Lists]
Advanced

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

Re: Adds dimension stencil command to correct with-dimension (issue 1295


From: dak
Subject: Re: Adds dimension stencil command to correct with-dimension (issue 12957047)
Date: Mon, 26 Aug 2013 21:48:05 +0000

On 2013/08/26 16:32:24, mike7 wrote:
On 26 août 2013, at 13:31, mailto:address@hidden wrote:

> _Anything_ is "publicly useable".  If that's supposed to be a
criterion,
> we may not change LilyPond ever again.  We try to support
programming
> interfaces as long as it is feasible.  But the way those are
internally
> implemented is _not_ _ever_ guaranteed to remain the same.  If you
mess
> with internals, all bets are _off_.
>

For me, the criterion is the use of "define-public" versus "define".
If a
function is "define-public" (like the ones in lily-library.scm), then
we are
telling the user that it is useable.  Otherwise, it should not be
public.

The same should be true of Scheme functions written in C++ - there
should be a
way to make them publicly not-useable but available from .scm files.

Then, we could make ly:make-stencil private so that users could never
use it.

Mike, that's inconsistent hogwash and a total strawman argument.  Nobody
ever claimed that one should not be able to use ly:make-stencil, and
pretending that I stated such nonsense is a cheap trick.  The question
is rather what one should be allowed to feed to ly:make-stencil.  It
turns out that the first argument to ly:make-stencil is a Scheme
expression rather than some C++ data structure.

But that's an implementation detail.  That you are able to print such an
expression does not mean that its contents are in any way guaranteed or
reliable to put together manually.  A _lot_ of things in LilyPond happen
to be assembled as Scheme expressions.  And that's perfectly legitimate.
 The purpose of using C++ is not introducing barriers but providing
efficiency.

https://codereview.appspot.com/12957047/

reply via email to

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