On 26 août 2013, at 13:31, d...@gnu.org wrote:

> On 2013/08/26 10:18:04, mike7 wrote:
> 
>> I think Harm is right that, irrespective of documentation, users use
> what's
>> available.
> 
> If people meddle with internals instead of using provided API functions,
> they deserve whatever they get.
> 
>> If we're going to add something, we want to be sure that it has a
>> certain degree of permanency.  I don't think we can treat it as an
>> implementation detail if it is publicly useable.
> 
> _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.

Cheers,
MS
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to