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