Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Keith OHara

On Mon, 25 Nov 2013 00:10:08 -0800, David Kastrup d...@gnu.org wrote:


Keith OHara k-ohara5...@oco.net writes:


I timed one big score, Movement 1 of 
http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1793
 2.16.2  2.17.95
 WinXP   2m 30s  5m 10s
 Fedora  1m 50s  1m 50s



Have you used the GUB-compiled binary package, or Fedora's built-in or a
self-compiled package?  I think that you probably can only make
platform-specific comparisons if you use GUB for all.


GUB-compiled packages in all cases give the same results as above.

Most of the increase in time to set this score happened between 2.17.0 and .1
 2.16.2 2m 30s
 2.17.0 2m 28s
 2.17.1 4m 06s
so it is probably the issue 2148 patch, use of outlines instead of boxes for 
layout.

I did speed-test that patch, but under Linux.  Maybe the system calls to the 
font server, to get outlines for the glyphs, take longer under Windows.


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 10:36 AM, Keith OHara k-ohara5...@oco.net wrote:

 On Mon, 25 Nov 2013 00:10:08 -0800, David Kastrup d...@gnu.org wrote:
 
 Keith OHara k-ohara5...@oco.net writes:
 
 I timed one big score, Movement 1 of 
 http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1793
 2.16.2  2.17.95
 WinXP   2m 30s  5m 10s
 Fedora  1m 50s  1m 50s
 
 Have you used the GUB-compiled binary package, or Fedora's built-in or a
 self-compiled package?  I think that you probably can only make
 platform-specific comparisons if you use GUB for all.
 
 GUB-compiled packages in all cases give the same results as above.
 
 Most of the increase in time to set this score happened between 2.17.0 and .1
 2.16.2 2m 30s
 2.17.0 2m 28s
 2.17.1 4m 06s
 so it is probably the issue 2148 patch, use of outlines instead of boxes for 
 layout.
 
 I did speed-test that patch, but under Linux.  Maybe the system calls to the 
 font server, to get outlines for the glyphs, take longer under Windows.
 

One easy way to avoid this is to turn off this feature with vertical-skylines = 
##f for lots of grobs - I do this often for big scores when I want to compile 
them fast, but I reactivate the more accurate vertical skylines for the final 
version.

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


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Trevor Daniels

Keith OHara wrote Tuesday, December 10, 2013 8:36 AM


 Most of the increase in time to set this score happened between 2.17.0 and .1
  2.16.2 2m 30s
  2.17.0 2m 28s
  2.17.1 4m 06s
 so it is probably the issue 2148 patch, use of outlines instead of boxes for 
 layout.
 
 I did speed-test that patch, but under Linux.  Maybe the system calls to the 
 font server, to get outlines for the glyphs, take longer under Windows.

Could be.  I've noticed that changing fonts under pure 
Windows programs like Excel takes a surprisingly long time.
That's under Vista Home Premium.

Trevor
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread David Kastrup
Mike Solomon m...@mikesolomon.org writes:

 On Dec 10, 2013, at 10:36 AM, Keith OHara k-ohara5...@oco.net wrote:

 On Mon, 25 Nov 2013 00:10:08 -0800, David Kastrup d...@gnu.org wrote:
 
 Keith OHara k-ohara5...@oco.net writes:
 
 I timed one big score, Movement 1 of
 http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1793
 2.16.2  2.17.95
 WinXP   2m 30s  5m 10s
 Fedora  1m 50s  1m 50s
 
 Have you used the GUB-compiled binary package, or Fedora's built-in or a
 self-compiled package?  I think that you probably can only make
 platform-specific comparisons if you use GUB for all.
 
 GUB-compiled packages in all cases give the same results as above.
 
 Most of the increase in time to set this score happened between 2.17.0 and .1
 2.16.2 2m 30s
 2.17.0 2m 28s
 2.17.1 4m 06s
 so it is probably the issue 2148 patch, use of outlines instead of
 boxes for layout.
 
 I did speed-test that patch, but under Linux.  Maybe the system
 calls to the font server, to get outlines for the glyphs, take
 longer under Windows.

 One easy way to avoid this is to turn off this feature with
 vertical-skylines = ##f for lots of grobs - I do this often for big
 scores when I want to compile them fast, but I reactivate the more
 accurate vertical skylines for the final version.

Sigh.  It's stuff like that which really makes me pessimistic about the
prospects of LilyPond as serious software.

If its developers consider it unusable for serious work out of the box
without making use of their personal, secret bag of tricks, how are we
supposed to tell people with a straight face that this software is
useful other than as either a toy or a tinker box?

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Mike Solomon
On Dec 10, 2013, at 11:27 AM, David Kastrup d...@gnu.org wrote:

 Mike Solomon m...@mikesolomon.org writes:
 
 On Dec 10, 2013, at 10:36 AM, Keith OHara k-ohara5...@oco.net wrote:
 
 On Mon, 25 Nov 2013 00:10:08 -0800, David Kastrup d...@gnu.org wrote:
 
 Keith OHara k-ohara5...@oco.net writes:
 
 I timed one big score, Movement 1 of
 http://www.mutopiaproject.org/cgibin/piece-info.cgi?id=1793
2.16.2  2.17.95
 WinXP   2m 30s  5m 10s
 Fedora  1m 50s  1m 50s
 
 Have you used the GUB-compiled binary package, or Fedora's built-in or a
 self-compiled package?  I think that you probably can only make
 platform-specific comparisons if you use GUB for all.
 
 GUB-compiled packages in all cases give the same results as above.
 
 Most of the increase in time to set this score happened between 2.17.0 and 
 .1
 2.16.2 2m 30s
 2.17.0 2m 28s
 2.17.1 4m 06s
 so it is probably the issue 2148 patch, use of outlines instead of
 boxes for layout.
 
 I did speed-test that patch, but under Linux.  Maybe the system
 calls to the font server, to get outlines for the glyphs, take
 longer under Windows.
 
 One easy way to avoid this is to turn off this feature with
 vertical-skylines = ##f for lots of grobs - I do this often for big
 scores when I want to compile them fast, but I reactivate the more
 accurate vertical skylines for the final version.
 
 Sigh.  It's stuff like that which really makes me pessimistic about the
 prospects of LilyPond as serious software.
 
 If its developers consider it unusable for serious work out of the box

It’s the opposite - I use the out of the box settings for serious work - it’s 
the unserious playing around that I try to speed up.

I’ve said on several occasions that I’m indifferent deactivating some or all of 
vertical skylines as a default.  Several people are against this deactivation 
(notable Janek).  I’d be interested in gradations of UI options called perhaps:

\faster-but-uglier
\a-lot-faster-but-a-lot-uglier
\ridiculously-fast-and-heinously-ugly

that people can invoke at the top level to speed things up but get uglier 
results.  This is trivial to implement, but I’d be interested to hear what 
UI-savvy people think.

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


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Werner LEMBERG

 \faster-but-uglier
 \a-lot-faster-but-a-lot-uglier
 \ridiculously-fast-and-heinously-ugly

:-) With some serious names, this could be quite useful.


Werner

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread David Kastrup
Mike Solomon m...@mikesolomon.org writes:

 On Dec 10, 2013, at 11:27 AM, David Kastrup d...@gnu.org wrote:

 Mike Solomon m...@mikesolomon.org writes:
 
 On Dec 10, 2013, at 10:36 AM, Keith OHara k-ohara5...@oco.net wrote:
 
 I did speed-test that patch, but under Linux.  Maybe the system
 calls to the font server, to get outlines for the glyphs, take
 longer under Windows.
 
 One easy way to avoid this is to turn off this feature with
 vertical-skylines = ##f for lots of grobs - I do this often for big
 scores when I want to compile them fast, but I reactivate the more
 accurate vertical skylines for the final version.
 
 Sigh.  It's stuff like that which really makes me pessimistic about the
 prospects of LilyPond as serious software.
 
 If its developers consider it unusable for serious work out of the box

 It’s the opposite - I use the out of the box settings for serious work
 - it’s the unserious playing around that I try to speed up.

How is unserious playing around not part of a serious creative work
flow?

 I’ve said on several occasions that I’m indifferent deactivating some
 or all of vertical skylines as a default.  Several people are against
 this deactivation (notable Janek).

If we have more than a factor of 2 in timing involved between Linux and
Windows, then we do too much repeated processing in the font server.

 I’d be interested in gradations of UI options called perhaps:

 \faster-but-uglier
 \a-lot-faster-but-a-lot-uglier
 \ridiculously-fast-and-heinously-ugly

Nope.  In this case, the answer is to cache frequently accessed
information instead of requesting it again and again.

We don't want to give people a choice between different ways in which
LilyPond will be bad.  We just don't want LilyPond to be bad.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Phil Holmes
- Original Message - 
From: Werner LEMBERG w...@gnu.org

To: m...@mikesolomon.org
Cc: k-ohara5...@oco.net; d...@gnu.org; lilypond-devel@gnu.org
Sent: Tuesday, December 10, 2013 9:43 AM
Subject: Re: anyone notice speed of 2.17.95 on Windows ?





\faster-but-uglier
\a-lot-faster-but-a-lot-uglier
\ridiculously-fast-and-heinously-ugly


:-) With some serious names, this could be quite useful.


TBH I potentially wouldn't use them.  When I benchmarked with and without 
skylines, I found there was only a noticeable difference with a lot of 
markup or similar: normal music had almost no effect.  As a result, I 
concluded with skylining was the correct default.


However, an option similar to \pointAndClickOff would be simple and could be 
handy: it could include a number of sensible attempted speed ups.


--
Phil Holmes 



___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 11:47 AM, David Kastrup d...@gnu.org wrote:

 Mike Solomon m...@mikesolomon.org writes:
 
 On Dec 10, 2013, at 11:27 AM, David Kastrup d...@gnu.org wrote:
 
 Mike Solomon m...@mikesolomon.org writes:
 
 On Dec 10, 2013, at 10:36 AM, Keith OHara k-ohara5...@oco.net wrote:
 
 I did speed-test that patch, but under Linux.  Maybe the system
 calls to the font server, to get outlines for the glyphs, take
 longer under Windows.
 
 One easy way to avoid this is to turn off this feature with
 vertical-skylines = ##f for lots of grobs - I do this often for big
 scores when I want to compile them fast, but I reactivate the more
 accurate vertical skylines for the final version.
 
 Sigh.  It's stuff like that which really makes me pessimistic about the
 prospects of LilyPond as serious software.
 
 If its developers consider it unusable for serious work out of the box
 
 It’s the opposite - I use the out of the box settings for serious work
 - it’s the unserious playing around that I try to speed up.
 
 How is unserious playing around not part of a serious creative work
 flow?
 

It is - I misunderstood what you said.

For years, starting with Graham Percival, we’ve been kicking the around the 
idea of invoking LilyPond at various speed/beauty tradeoffs.  I am for this, 
but to date there have been no propositions that gel with the entire community. 
 I have suggested turning off all my sideline work as a default, but people 
feel this would not be the best option, so for now, we have it all, which is 
also not the best option.  I stand by Graham’s idea.

 I’ve said on several occasions that I’m indifferent deactivating some
 or all of vertical skylines as a default.  Several people are against
 this deactivation (notable Janek).
 
 If we have more than a factor of 2 in timing involved between Linux and
 Windows, then we do too much repeated processing in the font server.
 
 I’d be interested in gradations of UI options called perhaps:
 
 \faster-but-uglier
 \a-lot-faster-but-a-lot-uglier
 \ridiculously-fast-and-heinously-ugly
 
 Nope.  In this case, the answer is to cache frequently accessed
 information instead of requesting it again and again.
 
 We don't want to give people a choice between different ways in which
 LilyPond will be bad.  We just don't want LilyPond to be bad.
 

In my initial patches, which involved caching everything, there was no 
appreciable speed-up on Mac and Linux.  I did not test it on Windows, but I 
don’t remember Windows users (Janek) reporting back problems).

I would be interested to do rigorous testing on Windows.  It is not hard to do 
- it requires creating a Scheme hash linking glyph names to skylines.

I still advocate allowing users to specify a speed/beauty tradeoff, which can 
be done in concert with optimization to LilyPond’s core.

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


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread David Kastrup
Mike Solomon m...@mikesolomon.org writes:

 On Dec 10, 2013, at 11:47 AM, David Kastrup d...@gnu.org wrote:

 Nope.  In this case, the answer is to cache frequently accessed
 information instead of requesting it again and again.
 
 We don't want to give people a choice between different ways in which
 LilyPond will be bad.  We just don't want LilyPond to be bad.

 In my initial patches, which involved caching everything, there was no
 appreciable speed-up on Mac and Linux.

Maybe caching in unsuitable form?  Cached data should be in a form
directly usable for processing (with some possible tradeoffs between
memory impact and unpacking speed), not in the form that
function/library/system calls will return it.

 I did not test it on Windows, but I don’t remember Windows users
 (Janek) reporting back problems).

Well, sounds like hen-and-egg here: we need more serious users to give
more definite feedback, so that we can make LilyPond more suitable for
more serious users.

 I would be interested to do rigorous testing on Windows.  It is not
 hard to do - it requires creating a Scheme hash linking glyph names to
 skylines.

 I still advocate allowing users to specify a speed/beauty tradeoff,
 which can be done in concert with optimization to LilyPond’s core.

That makes only sense where there is an incurable reason for a large
tradeoff.  in concert with optimization to LilyPond's core is, in my
experience, a buzzphrase.  In particular the word optimization tends
to be construed as somewhat tune an unsuitable algorithm, making it
inscrutable in the process.

I know that this use of optimization is widespread, but I have a
thorough dislike for it.  Almost any task can be algorithmically cast
into the n lg (n) category which, with modern processors, is usually
doable without having to think about tradeoffs.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 12:18 PM, David Kastrup d...@gnu.org wrote:

 Mike Solomon m...@mikesolomon.org writes:
 
 On Dec 10, 2013, at 11:47 AM, David Kastrup d...@gnu.org wrote:
 
 Nope.  In this case, the answer is to cache frequently accessed
 information instead of requesting it again and again.
 
 We don't want to give people a choice between different ways in which
 LilyPond will be bad.  We just don't want LilyPond to be bad.
 
 In my initial patches, which involved caching everything, there was no
 appreciable speed-up on Mac and Linux.
 
 Maybe caching in unsuitable form?  Cached data should be in a form
 directly usable for processing (with some possible tradeoffs between
 memory impact and unpacking speed), not in the form that
 function/library/system calls will return it.

I had cached skylines, although it’s true that it is possible to cache results 
to function calls (i.e. calls to Skyline::distance for the exact same two 
skylines).

Or there may be a better way to cache the skylines.  But LilyPond takes a 
looot of time in Skyline distance calculations.

 
 I did not test it on Windows, but I don’t remember Windows users
 (Janek) reporting back problems).
 
 Well, sounds like hen-and-egg here: we need more serious users to give
 more definite feedback, so that we can make LilyPond more suitable for
 more serious users.
 
 I would be interested to do rigorous testing on Windows.  It is not
 hard to do - it requires creating a Scheme hash linking glyph names to
 skylines.
 
 I still advocate allowing users to specify a speed/beauty tradeoff,
 which can be done in concert with optimization to LilyPond’s core.
 
 That makes only sense where there is an incurable reason for a large
 tradeoff.  in concert with optimization to LilyPond's core is, in my
 experience, a buzzphrase.  In particular the word optimization tends
 to be construed as somewhat tune an unsuitable algorithm, making it
 inscrutable in the process.
 
 I know that this use of optimization is widespread, but I have a
 thorough dislike for it.  Almost any task can be algorithmically cast
 into the n lg (n) category which, with modern processors, is usually
 doable without having to think about tradeoffs.
 


I agree that the main goal should be speeding up the algorithm while 
maintaining, if not augmenting, its understandability.

Cheers,
MS


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


PATCHES: Countdown – December 13th – 06:00 GMT

2013-12-10 Thread James

hello

*Countdown – December 13th – 06:00 GMT* *
*   *
*   *
*   *
*   *
*






3679 
http://code.google.com/p/lilypond/issues/detail?id=3679q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	David Kastrup 	push 	Patch: Rewrite the autobeam logic to 
use GUILE fractions rather than moments 	







3712 
http://code.google.com/p/lilypond/issues/detail?id=3712q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	David Kastrup 	countdown 	Patch: Ponding about Turkish 
Ebook by Server Acim 	
3710 
http://code.google.com/p/lilypond/issues/detail?id=3710q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Documentation 	Keith Ohara 	countdown 	NR 4.4.1 collisions 	
3708 
http://code.google.com/p/lilypond/issues/detail?id=3708q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	David Kastrup 	countdown 	Patch: Change the default 
ANTI_ALIAS_FACTOR for documentation builds to 1 	
3707 
http://code.google.com/p/lilypond/issues/detail?id=3707q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	Janek Warchol 	countdown 	Patch: font: rewrite accidental 
code (sharp and natural) 	
3697 
http://code.google.com/p/lilypond/issues/detail?id=3697q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Ugly 	Keith Ohara 	countdown 	markup \super and \sub do not use the 
local fontsize 	
3674 
http://code.google.com/p/lilypond/issues/detail?id=3674q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Build 	David Kastrup 	countdown 	Multiprocessor builds fail on some 
platforms 	
3664 
http://code.google.com/p/lilypond/issues/detail?id=3664q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	Devon Schudy 	countdown 	Patch: Support articulations, 
slurs and breaths in MIDI.   Fixed_2_19_0 	
3628 
http://code.google.com/p/lilypond/issues/detail?id=3628q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Ugly 	Keith Ohara 	countdown 	Patch: Make sure slurs actually avoid 
stafflines. 	







3713 
http://code.google.com/p/lilypond/issues/detail?id=3713q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Defect 	David Kastrup 	review 	default for baseline-skip not available 
while calling column-markup-command in the lists for repeatCommands 	
3705 
http://code.google.com/p/lilypond/issues/detail?id=3705q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	Janek Warchol 	review 	Patch: Metafont code cleanup 	







3239 
http://code.google.com/p/lilypond/issues/detail?id=3239q=label%3APatch-countdown%20OR%20label%3APatch-waiting%20OR%20label%3APatch-review%20OR%20label%3APatch-new%20OR%20label%3APatch-pushsort=patchcolspec=ID%20Type%20Status%20Stars%20Owner%20Patch%20Needs%20Summary%20Modified 
	Enhancement 	Janek Warchol 	waiting 	Patch: rewrite 
Self_alignment_interface 	May 2013
3186 

Use standard inclusion scheme for FreeType headers. (issue 35580043)

2013-12-10 Thread dak


https://codereview.appspot.com/35580043/diff/1/lily/open-type-font.cc
File lily/open-type-font.cc (right):

https://codereview.appspot.com/35580043/diff/1/lily/open-type-font.cc#newcode26
lily/open-type-font.cc:26: #include FT_TRUETYPE_TABLES_H
This is inscrutable programming.  It relies on open-type-font.hh
including font-metric.hh which in turn includes freetype.hh which
happens to include the library header ft2build.h defining macros like
FT_TRUETYPE_TABLES_H.

Please, if you use identifiers defined in a particular header file,
include that particular header file instead of assuming that if it
magically seems to be defined for some reason, everything will turn out
fine.  The compile time difference is minuscule if a header file turns
out to get included more than once.

https://codereview.appspot.com/35580043/diff/1/lily/pango-font.cc
File lily/pango-font.cc (right):

https://codereview.appspot.com/35580043/diff/1/lily/pango-font.cc#newcode25
lily/pango-font.cc:25: #include FT_XFREE86_H
This is even more reckless programming.  It relies on pango/pangoft2.h
including the particular header file from freetype that defines
FT_XFREE86_H.

This issue is called Use standard inclusion scheme for FreeType
headers, and the standard inclusion scheme will most definitely not
state that Freetype headers will be incidentally defined by loading some
pango library.

That's not just inscrutable, it is completely out of our control.

https://codereview.appspot.com/35580043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


branching

2013-12-10 Thread Mike Solomon
Hey all,

As 2.18 draws near, I’d like to work with everyone to establish a system of 
branching for LilyPond development.  After several rounds of discussing things 
with David K, this emerged as the best way to avoid arguments about integrating 
work into the development branch that have led several contributors, including 
myself, to significantly reduce time on the project. [1]  I feel that this 
reduction in commit diversity is the biggest obstacle to LilyPond’s future 
evolution, which is why I’m calling on everyone to make a concerted effort to 
think this through.

There seem to me to be two main issues to sort out in doing this:
** how to get developers into the habit of working on separate git branches
** how to get users using these branches

I have opinions about both, which I will state below.  After some go around, 
I’d like to see something written up as a community-endorsed proposal that 
would then be implemented by myself and whoever else wants to help me out.

** how to get developers into the habit of creating separate git branches

Several developers would create development branches, i.e. devel-dk, etc.. 
These branches have no theme other than their being the principal sandbox of a 
particular developer or group of developers.  There would also be a devel-jd 
for John Doe, meaning anyone who does not have their own branch.  All of these 
branches would track staging.  We would limit the number of these branches to 
around 5.  Work on staging would then consist _only_ in merging these branches 
(or cherry picking commits from them) to staging.  These merges would be 
regular, part of the countdown cycle and discussable.  Patch review would exist 
just as now, except that “push” means that things get pushed to one of these 
branches instead of to staging.  Developers who don’t know how to use git’s 
branch features would be given help by those who know how.

** how to get users using these branches

On the website, we would offer _all_ of these development branches, including 
the one built off of staging, as GUB builds.  We would also contain a tracker 
showing number of downloads and encouraging users to download the branches that 
have been downloaded the _least_.  This would allow us to ensure that all 
branches are being tried out.  On the website, developers could also request 
that certain users use certain branches.  For example, if I were doing a lot of 
lyric work, I would ask on the website for people frequently using lyrics to 
use my branch.

I’m looking forward to hearing everyone’s ideas on this.

Cheers,
MS

[1] Development branches should not be construed as a substitute for collegial 
communication in our community, irrespective of the degree of difference 
between any of its members.
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Graham Percival
On Tue, Dec 10, 2013 at 02:42:45PM +0200, Mike Solomon wrote:
 On the website, we would offer _all_ of these development
 branches, including the one built off of staging, as GUB builds.

A few years ago, we were asked to cut our downloads down to 5 GB.
I deleted a bunch of devel stuff and got it down to 7 or 8, but
we're probably back to 15 GB now.  I don't think we should fill up
the server with that many builds, nor do I think we should ask
James to do all that building.

 We would also contain a tracker showing number of downloads and
 encouraging users to download the branches that have been
 downloaded the _least_.

I don't like the idea of treating users as guinea pigs.  If
somebody wants to test out devel stuff, it's not unreasonable for
them to compile it themselves (inside lilydev if necessary).

- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 2:58 PM, Graham Percival gra...@percival-music.ca wrote:

 On Tue, Dec 10, 2013 at 02:42:45PM +0200, Mike Solomon wrote:
 On the website, we would offer _all_ of these development
 branches, including the one built off of staging, as GUB builds.
 
 A few years ago, we were asked to cut our downloads down to 5 GB.
 I deleted a bunch of devel stuff and got it down to 7 or 8, but
 we're probably back to 15 GB now.  I don't think we should fill up
 the server with that many builds, nor do I think we should ask
 James to do all that building.

I agree about the not asking James part - this should be split up (different 
gubs making different builds).
As for the filling the server part, this seems like something that can be 
solved with alternate hosting sites for the download links.

 
 We would also contain a tracker showing number of downloads and
 encouraging users to download the branches that have been
 downloaded the _least_.
 
 I don't like the idea of treating users as guinea pigs.  If
 somebody wants to test out devel stuff, it's not unreasonable for
 them to compile it themselves (inside lilydev if necessary).

I don’t either, but I do like the idea of asking them to be guinea pigs.
To this end, I’ll send an e-mai to the users list about this.

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


Re: Metafont code cleanup (issue 38530043)

2013-12-10 Thread benko . pal

However, if you don't mind, i'd prefer to leave it as is - i have
_already_ spent about 4 hours cleaning up and rebasing commits to make
them somewhat ordered for review, and i'm quite tired.


I do mind.  this is not the sort of thing that can be done in a
follow up patch.  If you don't want to do that, I can do the
only-move-files-in-the-first-commit part, but I can't promise
I'll finish before the weekend.

p

https://codereview.appspot.com/38530043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread David Kastrup
Mike Solomon m...@mikesolomon.org writes:

 Hey all,

 As 2.18 draws near, I’d like to work with everyone to establish a
 system of branching for LilyPond development.  After several rounds of
 discussing things with David K, this emerged as the best way to avoid
 arguments about integrating work into the development branch that have
 led several contributors, including myself, to significantly reduce
 time on the project. [1]

It will take me considerable time to address this more thoroughly, but
in the mean time I want to have on record that what Mike writes here
under this emerged as the best way _not_ in _any_ way summarizing our
discussion.  Instead it is his _personal_ idea how to address topics we
covered.  Writing something like this emerged as the best way when we
did not even talk about it wrongly insinuates that it presents a common
understanding of how to address problems covered in the discussion.

Feel free to quote passages or complete mails from me in the course of
that discussion: there is nothing in there that I would not have equally
said in public.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 4:23 PM, David Kastrup d...@gnu.org wrote:

 Mike Solomon m...@mikesolomon.org writes:
 
 Hey all,
 
 As 2.18 draws near, I’d like to work with everyone to establish a
 system of branching for LilyPond development.  After several rounds of
 discussing things with David K, this emerged as the best way to avoid
 arguments about integrating work into the development branch that have
 led several contributors, including myself, to significantly reduce
 time on the project. [1]
 
 It will take me considerable time to address this more thoroughly, but
 in the mean time I want to have on record that what Mike writes here
 under this emerged as the best way _not_ in _any_ way summarizing our
 discussion.  Instead it is his _personal_ idea how to address topics we
 covered.  Writing something like this emerged as the best way when we
 did not even talk about it wrongly insinuates that it presents a common
 understanding of how to address problems covered in the discussion.
 

Sorry, I in no way mean to apply that this is a proposition on David’s behalf.  
This is a proposition from me that it is a response to our discussion, not a 
summary of it.

 Feel free to quote passages or complete mails from me in the course of
 that discussion: there is nothing in there that I would not have equally
 said in public.


(quotes from David)

The basic idea behind that is not to make confrontations nicer but
reduce the necessity for them by establishing playing fields with
different authorities.  So that people can get work done without
endangering the release, and I can get releases done without pissing
people off as a prerequisite.

We won't be able to completely separate the two, but both our current
code base and our current development model are quite bad for getting
this under control.

…

As I said: there are certainly decisions where a vote does make sense:
mostly when there is a choice between alternatives.  For go ahead or
not kind of decisions, the answer should likely be go ahead in a
sandbox, and with enough exposure of the sandbox to testers and end
users, we'll be better equipped to make an informed decision.

That's how it tends to work with the Linux kernel, but both our code
base as well as our infrastructure is not really diverse enough to make
this easy.  It _would_ be easier in a Scheme universe, or with loadable
C++ modules.  But either case requires that enough of the internals are
implemented through exchangeable interfaces that swapping out key parts
for user-written code can be done without disrupting too many unrelated
parts in the process.

…

My proposal is a first-pass at starting a dialogue about this that people can 
respond to - I expect some or all of it to be rejected, but the important thing 
is to start talking about it now.

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


Re: branching

2013-12-10 Thread Graham Percival
On Tue, Dec 10, 2013 at 04:30:32PM +0200, Mike Solomon wrote:
 
 (quotes from David)
 
 The basic idea behind that is not to make confrontations nicer but
 reduce the necessity for them by establishing playing fields with
 different authorities.  So that people can get work done without
 endangering the release, and I can get releases done without pissing
 people off as a prerequisite.

I agree with this idea, but I feel like I'm missing something.
How would regular git branches be insufficient for this?  Is it
simply the lack of GUB for branches?

I mean, is the problem a technical or social one?  My gut feeling
is that this is a social issue, so any technical wish-lists are a
red herring.  That said, I admit that I haven't even skimmed the
patch countdowns in the past few months, let alone read any
arguments on -devel.

- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread David Kastrup
Graham Percival gra...@percival-music.ca writes:

 On Tue, Dec 10, 2013 at 04:30:32PM +0200, Mike Solomon wrote:
 
 (quotes from David)
 
 The basic idea behind that is not to make confrontations nicer but
 reduce the necessity for them by establishing playing fields with
 different authorities.  So that people can get work done without
 endangering the release, and I can get releases done without pissing
 people off as a prerequisite.

 I agree with this idea, but I feel like I'm missing something.
 How would regular git branches be insufficient for this?  Is it
 simply the lack of GUB for branches?

 I mean, is the problem a technical or social one?  My gut feeling
 is that this is a social issue, so any technical wish-lists are a
 red herring.

We won't make social issues go away by creating policies.  Basically we
have limited possibilities to change how amicably people react when they
are stepping on each others' toes.

Creating more room is a technical measure.  It will not change the kind
of social interaction we perceive as problematic, but it will still
serve to reduce the opportunities for it to occur and cause problems.

 That said, I admit that I haven't even skimmed the patch countdowns in
 the past few months, let alone read any arguments on -devel.

Mike frequently referenced a Rietveld review as an example in his last
mails to the list.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: slurs avoid stafflines: move far enough; issue 3628 (issue 35310043)

2013-12-10 Thread k-ohara5a5a


https://codereview.appspot.com/35310043/diff/80001/lily/slur-configuration.cc
File lily/slur-configuration.cc (right):

https://codereview.appspot.com/35310043/diff/80001/lily/slur-configuration.cc#newcode66
lily/slur-configuration.cc:66: + state.line_thickness_
On 2013/12/08 10:10:11, janek wrote:

The comment says half of the staffline but here it's not halved - is

this ok?

It says half for the staff line, half for the slur outline each of
those halves being half a line-thickness.  Two halves add to one, so
there is a full thine-thickness added in the code.

https://codereview.appspot.com/35310043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Keith OHara

On Tue, 10 Dec 2013 01:59:09 -0800, Phil Holmes m...@philholmes.net wrote:


When I benchmarked with and without
skylines, I found there was only a noticeable difference with a lot of
markup or similar: normal music had almost no effect.  As a result, I
concluded with skylining was the correct default.



I agreed about the default being good, but normal music was 30% slower
 http://lists.gnu.org/archive/html/lilypond-devel/2013-09/msg00234.html

(We see there the effect of Mike's commit that cached the (millions) of 
page-fillings from Joe's line-breaking scheme; that caching made 2.14 3x faster 
than 2.12.)

I had seen the same, moderate, effect on Linux, but the same music suffers more 
with skylines on my WinXP system.  I'll try your Mikado on my WinXP system, to 
narrow down the key components that show the 2x slowdown.


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Carl Sorensen


On 12/10/13 5:42 AM, Mike Solomon m...@mikesolomon.org wrote:

Hey all,

As 2.18 draws near, I¹d like to work with everyone to establish a system
of branching for LilyPond development.  After several rounds of
discussing things with David K, this emerged as the best way to avoid
arguments about integrating work into the development branch that have
led several contributors, including myself, to significantly reduce time
on the project. 

I can see how the proposed mechanism avoids arguments about work that is
going into individual developers branches, but I don't see how this avoids
arguments about what goes into the development branch.

As far as I can see, this proposal supports the creation of multiple forks
of the lilypond development branch, one for each of the privileged
developers, plus one for the accepted features.  And then lilypond.org
should support all of those forks.

This seems like a nightmare to me.  It is good for somebody who wants to
get their features out the the user base.  But this just makes the
decisions about what to include in the development branch more emotionally
charged.  I'll present a hypothetical exchange between two caricatures:
the creative developer who is only concerned about adding a really neat
feature, and doesn't care how it affects the code base; and the consistent
developer who is only concerned about the consistency of the code base,
and would rather have no new features added than have a new feature added
that requires contortions in the syntax, the parser/lexer, or the code
base.  Note that both of these are caricatures, drawn for the purpose of
highlighting the conflict, not for the purpose of illustrating the
behavior of any real developer.

Creative developer: See how many people like this feature?  It's so
positive that we absolutely have to include it.

Consistent developer: See how badly this would destroy the current code
base?  It's just an ugly hack.  If we accept features like this, our code
base will soon consist of nothing but ugly hacks.  I don't care how many
people like the feature; it's disastrous as currently implemented, so I
won't accept it.

And now, in addition to the different points of view of these developers,
we have the added pressure of users clamoring for a feature.

Personally, I want *both* the creative developer and the consistent
developer to be satisfied.  I want ugly hacks in the codebase to be
decreasing, not increasing.  I want new features that make the engraving
better.  If we can't implement new features without ugly hacks, I don't
think they should be added to the codebase.  But I don't want stasis in
the codebase to prevent the addition of new features.

Developers already have branches on the main repository.  So this proposal
is not really to add branches.

The real issue in the proposal is about how to get users using these
branches.  I have a very hard time thinking that it's in the best interest
of lilypond as a project to have multiple official development branches.
Instead, I think that developers who create a branch that provides some
new functionality should invite users to test the branch (which probably
means that the developer needs to get GUB running on his or her branch and
then make the binaries available).


[1]  I feel that this reduction in commit diversity is the biggest
obstacle to LilyPond¹s future evolution, which is why I¹m calling on
everyone to make a concerted effort to think this through.


I have made a concerted effort to think this through. I believe that a
reduction in commit diversity is a serious problem.  I think the community
was greatly weakened when Mike felt that it was no longer worth putting up
with the hassles to make his contributions.

However, I think that a fractured development branch (up to 6 different
branches) would be an even bigger obstacle to future evolution.  I think
it would lead to a balkanization of LilyPond.

Of course, given my participation in development over the last couple of
years, my input may not be worth much.

Thanks,

Carl S.


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Mike Solomon

On Dec 10, 2013, at 9:32 PM, Carl Sorensen c_soren...@byu.edu wrote:

 
 
 On 12/10/13 5:42 AM, Mike Solomon m...@mikesolomon.org wrote:
 
 Hey all,
 
 As 2.18 draws near, I¹d like to work with everyone to establish a system
 of branching for LilyPond development.  After several rounds of
 discussing things with David K, this emerged as the best way to avoid
 arguments about integrating work into the development branch that have
 led several contributors, including myself, to significantly reduce time
 on the project. 
 
 This seems like a nightmare to me.  It is good for somebody who wants to
 get their features out the the user base.  But this just makes the
 decisions about what to include in the development branch more emotionally
 charged.

It seems like everyone agrees, so this is definitely not the way to go.

 I'll present a hypothetical exchange between two caricatures:
 the creative developer who is only concerned about adding a really neat
 feature, and doesn't care how it affects the code base; and the consistent
 developer who is only concerned about the consistency of the code base,
 and would rather have no new features added than have a new feature added
 that requires contortions in the syntax, the parser/lexer, or the code
 base.

This is a fantastic hypothetical exchange.

 
 
 [1]  I feel that this reduction in commit diversity is the biggest
 obstacle to LilyPond¹s future evolution, which is why I¹m calling on
 everyone to make a concerted effort to think this through.
 
 
 I have made a concerted effort to think this through. I believe that a
 reduction in commit diversity is a serious problem.  I think the community
 was greatly weakened when Mike felt that it was no longer worth putting up
 with the hassles to make his contributions.
 
 However, I think that a fractured development branch (up to 6 different
 branches) would be an even bigger obstacle to future evolution.  I think
 it would lead to a balkanization of LilyPond.
 
 Of course, given my participation in development over the last couple of
 years, my input may not be worth much.

After seeing people’s responses, I agree.  It is obvious from everyone’s 
reflections (especially yours, which is very thorough) that if branches become 
an institutionalized feature of development, they will hurt LilyPond.  I 
rescind my idea.

The only hassle for me, which I did not run up against when I started with the 
project, is David’s way of communicating.  I’m not claiming this is all on him, 
but I’m also pretty sure that I’m not the only one who has peaced out because 
of this.  I am looking for ways for this to no longer be an issue.  I was 
hoping that branches would go a way towards making this happen for myself and 
hopefully other developers, but it’s clear that this is not a good idea.

In my two day jobs, director of the ensemble 101 and developer for the Guido 
project, I work with two (very different) teams of people on projects that 
require creativity, consistency, and tons of communication.  Neither of them 
has any of this friction resulting from communication issues, both of them 
enjoy a diversity in major contributions, and both are evolving rapidly and 
stably in several interesting ways at the same time.  I truly hope that 
LilyPond can be like that.

Thank you for taking the time to think this over and for your response.

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


Re: branching

2013-12-10 Thread Carl Peterson
On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.org wrote:


 The only hassle for me, which I did not run up against when I started with
 the project, is David’s way of communicating.  I’m not claiming this is all
 on him, but I’m also pretty sure that I’m not the only one who has peaced
 out because of this.  I am looking for ways for this to no longer be an
 issue.  I was hoping that branches would go a way towards making this
 happen for myself and hopefully other developers, but it’s clear that this
 is not a good idea.

 In my two day jobs, director of the ensemble 101 and developer for the
 Guido project, I work with two (very different) teams of people on projects
 that require creativity, consistency, and tons of communication.  Neither
 of them has any of this friction resulting from communication issues, both
 of them enjoy a diversity in major contributions, and both are evolving
 rapidly and stably in several interesting ways at the same time.  I truly
 hope that LilyPond can be like that.


I don't know how you communicate with your other two teams, but the simple
fact is that email is a terrible method of communication, when it comes to
the things that you appear to be seeking. An amused or straightforward
comment can across as harsh or sarcastic when visual and aural cues are
absent (citing the studies that show that 90% of communication is
nonverbal, i.e., not connected to the actual words). Some people's manners
of speech translate into text-only communication better than others', and
some don't translate at all. I had a boss a couple of years back who could
be very friendly and personable face-to-face, but unless she was obvious
happy about something, always came across as stern and upset with the way
things were done. It happens. But you may already be well aware of all this.

It is regrettable that you would let such things interfere with your
contributions to LilyPond. Ultimately, it is about the project, not the
people. Perhaps counter-intuitively, the answer to the problem you perceive
is not to reduce participation, but to increase participation. In my own
case, my interactions with David had the effect of getting me more involved
in the behind the scenes workings of the code. Why? So that eventually,
David won't be able to criticize me for not being willing to get my hands
dirty. I haven't made a commit yet, but that's probably a matter of weeks
or days (whenever I get git-cl set up on my dev machine). In the meantime,
instead of complaining about this feature or that feature, or going Oh,
poor, pitiful me, someone give me a code snippet to do x, I've tried to
dig into things to make them work. Now the thing I'm trying to figure out
is how to make what I'm doing usable for others who do the same things so
that LilyPond is an easier environment to use. Will I ever get to where I'm
wrangling the underlying C++ code? Probably not. But I'm working on what I
can.

Cheers,
Carl P.
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Use standard inclusion scheme for FreeType headers. (issue 35580043)

2013-12-10 Thread lemzwerg

Reviewers: dak,

Message:
My patch is very simple, as you can see, just replacing the hardcoded
header paths with macros (this is what I refer as `standard inclusion
scheme') to make it compile.  The `reckless' programming was there
before me, so to say, and I admit that I haven't tried in any way to
make it more elegant.

I fully agree that it makes sense to add

  #include freetype.hh

or

  #include ft2build.h

where FreeType header macro names are used.


Description:
Use standard inclusion scheme for FreeType headers.

The most recent FreeType release (2.5.1) has changed locations for
header
files.  Using the standard way, this is not visible to applications.

Please review this at https://codereview.appspot.com/35580043/

Affected files (+6, -6 lines):
  M lily/freetype-error.cc
  M lily/freetype.cc
  M lily/open-type-font.cc
  M lily/pango-font.cc
  M lily/ttf.cc


Index: lily/freetype-error.cc
diff --git a/lily/freetype-error.cc b/lily/freetype-error.cc
index  
00e5cae3519b28cc8f1314334e25cd3ec3884115..88af76c1ae84ad97b870e016a0c8e1ac432ed90f  
100644

--- a/lily/freetype-error.cc
+++ b/lily/freetype-error.cc
@@ -31,7 +31,7 @@ const struct Freetype_error_message
   const char *err_msg;
 } ft_errors[] =

-#include freetype/fterrors.h
+#include FT_ERRORS_H

   ;

Index: lily/freetype.cc
diff --git a/lily/freetype.cc b/lily/freetype.cc
index  
d7d4843ce8be17504b0e132b1fbfde45d71b04d1..55a3fb378095af6a0f7f35f7f3e89d55ad6a550a  
100644

--- a/lily/freetype.cc
+++ b/lily/freetype.cc
@@ -20,8 +20,8 @@
 #include freetype.hh
 #include warn.hh

-#include freetype/ftoutln.h
-#include freetype/ftbbox.h
+#include FT_OUTLINE_H
+#include FT_BBOX_H

 FT_Library freetype2_library;

Index: lily/open-type-font.cc
diff --git a/lily/open-type-font.cc b/lily/open-type-font.cc
index  
df6a744d0e42165e6d31837d1b474c16b78c8fc9..837a1f23001772aebe5bec7271c2084b80e82ca4  
100644

--- a/lily/open-type-font.cc
+++ b/lily/open-type-font.cc
@@ -23,7 +23,7 @@

 using namespace std;

-#include freetype/tttables.h
+#include FT_TRUETYPE_TABLES_H

 #include dimensions.hh
 #include freetype.hh
Index: lily/pango-font.cc
diff --git a/lily/pango-font.cc b/lily/pango-font.cc
index  
ee986fc94d76a653256212c0a7e9ab7d80517bbc..b148a5bc08cf52b98849d2c71663859a254813cc  
100644

--- a/lily/pango-font.cc
+++ b/lily/pango-font.cc
@@ -22,7 +22,7 @@
 #define PANGO_ENABLE_BACKEND

 #include pango/pangoft2.h
-#include freetype/ftxf86.h
+#include FT_XFREE86_H

 #include map
 #include cstdio
Index: lily/ttf.cc
diff --git a/lily/ttf.cc b/lily/ttf.cc
index  
eaeb67adfb25a46b9dfbd16858a4abd0d1e755b4..6d7f97bf37c4703df35cda3a58673059e34d1159  
100644

--- a/lily/ttf.cc
+++ b/lily/ttf.cc
@@ -20,7 +20,7 @@
 #include cstdio
 #include freetype.hh

-#include freetype/tttables.h
+#include FT_TRUETYPE_TABLES_H

 #include international.hh
 #include memory-stream.hh



___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Keith OHara

On Tue, 10 Dec 2013 09:57:20 -0800, Keith OHara k-ohara5...@oco.net wrote:


On Tue, 10 Dec 2013 01:59:09 -0800, Phil Holmes m...@philholmes.net wrote:


When I benchmarked with and without
skylines, I found there was only a noticeable difference with a lot of
markup or similar: normal music had almost no effect.  As a result, I
concluded with skylining was the correct default.



I'll try your Mikado on my WinXP system,


Chorus Number 5 takes 17.2s with 2.16.2, and takes 31.1s with 2.17.95

This ratio of times is worse than Phil saw when he timed the full Act1 using 
Win64Vista.  So maybe the larger slowdown is localized to WinXP.  Disabling all 
the vertical-skylines-from-stencil-integral settings brings the time down to 
16.2s with version 2.17.95.

The last time we had a doubling of time required on Windows relative to Linux, 
issue 1926, it was repeated calls to find_by_name() that go through Pango to 
the font server.

Here the outlines seem to be properly cached; it looks like each text glyph is 
looked up just one extra time.  The call the to FreeType glyph-outline code 
might cause the extra time, or maybe Guile is less efficient on WinXP, as every 
nook and cranny in every letter is represented in the skylines objects in 
Scheme.


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread David Nalesnik
Hi,

On Tue, Dec 10, 2013 at 2:46 PM, Carl Peterson carlopeter...@gmail.comwrote:

 On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.orgwrote:


 The only hassle for me, which I did not run up against when I started
 with the project, is David’s way of communicating.  I’m not claiming this
 is all on him, but I’m also pretty sure that I’m not the only one who has
 peaced out because of this.  I am looking for ways for this to no longer be
 an issue.  I was hoping that branches would go a way towards making this
 happen for myself and hopefully other developers, but it’s clear that this
 is not a good idea.

 In my two day jobs, director of the ensemble 101 and developer for the
 Guido project, I work with two (very different) teams of people on projects
 that require creativity, consistency, and tons of communication.  Neither
 of them has any of this friction resulting from communication issues, both
 of them enjoy a diversity in major contributions, and both are evolving
 rapidly and stably in several interesting ways at the same time.  I truly
 hope that LilyPond can be like that.


 I don't know how you communicate with your other two teams, but the simple
 fact is that email is a terrible method of communication, when it comes to
 the things that you appear to be seeking. An amused or straightforward
 comment can across as harsh or sarcastic when visual and aural cues are
 absent (citing the studies that show that 90% of communication is
 nonverbal, i.e., not connected to the actual words). Some people's manners
 of speech translate into text-only communication better than others', and
 some don't translate at all. I had a boss a couple of years back who could
 be very friendly and personable face-to-face, but unless she was obvious
 happy about something, always came across as stern and upset with the way
 things were done. It happens. But you may already be well aware of all this.


I always feel a bit silly writing emoticons and exclamation points, but
they are nice to see(!)


 It is regrettable that you would let such things interfere with your
 contributions to LilyPond.


Exactly.  Both you and David are invaluable to this project.  I watched the
paralysis set in, the deadlock, and wondered a bit about the future of the
project.  I think there has to be some compromise in this
Apollonian/Dionysian test of wills (to throw in a little pretentiousness).


 Ultimately, it is about the project, not the people. Perhaps
 counter-intuitively, the answer to the problem you perceive is not to
 reduce participation, but to increase participation. In my own case, my
 interactions with David had the effect of getting me more involved in the
 behind the scenes workings of the code. Why? So that eventually, David
 won't be able to criticize me for not being willing to get my hands dirty.


Well, I ordinarily have a bit of a thin skin, and I remember reading
somewhere on the lists that you have to have some nerve to contribute.  My
personal response to the possibility of brutally honest criticism--which is
a necessary thing if this project isn't going to go to hell--is to make
sure I've got everything as polished as I can make it before I make it
public.  And accepting that I've got a lot to learn,  (This is about me,
and is in no way directed at you, Mike.)

However, when the standstill happens, something has to be done.  I'm sorry
that I don't have any solution to offer, other than to try to work together
for the sake of LilyPond,  (Emoticons!  Kidding.)

--David
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Use standard inclusion scheme for FreeType headers. (issue 35580043)

2013-12-10 Thread dak

On 2013/12/10 21:20:54, lemzwerg wrote:

My patch is very simple, as you can see, just replacing the hardcoded

header

paths with macros (this is what I refer as `standard inclusion

scheme') to make

it compile.  The `reckless' programming was there before me, so to

say, and I

admit that I haven't tried in any way to make it more elegant.


No, it wasn't.  Before your change, header _names_ were used for
inclusion.  Those do not require to be defined before use.  After your
change, header _macros_ were used for inclusion.  Those require to be
defined before use.

The problem of using macros without reliably ensuring their definition
before use was introduced by this patch.


I fully agree that it makes sense to add



   #include freetype.hh



or



   #include ft2build.h



where FreeType header macro names are used.


What does Freetype state about where its header macro names are defined?
 It is obvious that ft2build.h will cause their definition (or this
would not have compiled) but it's not clear that this definition is not
also incidental rather than well-defined.

https://codereview.appspot.com/35580043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread David Kastrup
Keith OHara k-ohara5...@oco.net writes:

 On Tue, 10 Dec 2013 09:57:20 -0800, Keith OHara k-ohara5...@oco.net wrote:

 On Tue, 10 Dec 2013 01:59:09 -0800, Phil Holmes m...@philholmes.net wrote:

 When I benchmarked with and without
 skylines, I found there was only a noticeable difference with a lot of
 markup or similar: normal music had almost no effect.  As a result, I
 concluded with skylining was the correct default.

 I'll try your Mikado on my WinXP system,

 Chorus Number 5 takes 17.2s with 2.16.2, and takes 31.1s with 2.17.95

 This ratio of times is worse than Phil saw when he timed the full Act1
 using Win64Vista.  So maybe the larger slowdown is localized to WinXP.
 Disabling all the vertical-skylines-from-stencil-integral settings
 brings the time down to 16.2s with version 2.17.95.

 The last time we had a doubling of time required on Windows relative
 to Linux, issue 1926, it was repeated calls to find_by_name() that go
 through Pango to the font server.

 Here the outlines seem to be properly cached; it looks like each text
 glyph is looked up just one extra time.

Once every time it is written, or once per document?  And what does
just one extra time mean?  One extra per which occasion?

 The call the to FreeType glyph-outline code might cause the extra
 time, or maybe Guile is less efficient on WinXP, as every nook and
 cranny in every letter is represented in the skylines objects in
 Scheme.

If there are differences in speed, I can't imagine them to be in
anything but possibly garbage collection/allocation, and it seems
unlikely that they would not then have been apparent with other uses.

-- 
David Kastrup

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Mike Solomon
On Dec 11, 2013, at 12:03 AM, David Nalesnik david.nales...@gmail.com wrote:

 
 Hi,
 
 On Tue, Dec 10, 2013 at 2:46 PM, Carl Peterson carlopeter...@gmail.com 
 wrote:
 On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.org wrote:
 
 The only hassle for me, which I did not run up against when I started with 
 the project, is David’s way of communicating.  I’m not claiming this is all 
 on him, but I’m also pretty sure that I’m not the only one who has peaced out 
 because of this.  I am looking for ways for this to no longer be an issue.  I 
 was hoping that branches would go a way towards making this happen for myself 
 and hopefully other developers, but it’s clear that this is not a good idea.
 
 In my two day jobs, director of the ensemble 101 and developer for the Guido 
 project, I work with two (very different) teams of people on projects that 
 require creativity, consistency, and tons of communication.  Neither of them 
 has any of this friction resulting from communication issues, both of them 
 enjoy a diversity in major contributions, and both are evolving rapidly and 
 stably in several interesting ways at the same time.  I truly hope that 
 LilyPond can be like that.
 
 
 I don't know how you communicate with your other two teams,

Face-to-face communication for one, e-mail for another.

 I always feel a bit silly writing emoticons and exclamation points, but they 
 are nice to see(!)
  
 It is regrettable that you would let such things interfere with your 
 contributions to LilyPond.
 
 Exactly.  Both you and David are invaluable to this project.  I watched the 
 paralysis set in, the deadlock, and wondered a bit about the future of the 
 project.  I think there has to be some compromise in this 
 Apollonian/Dionysian test of wills (to throw in a little pretentiousness).

See:
http://lilypond.1069038.n5.nabble.com/Allows-minimum-length-to-work-for-end-of-line-spanners-issue-7453046-td141952.html#a142870
as one of several examples.  There is truth in anything David says, meaning 
that I (like him (and most of us on this list)) have caused bugs that I did not 
find or fix before someone else.  How, does this warrant this communication 
style?  This chain of e-mails was the single determinant that ruled LilyPond 
out of a government funded, multi-national European typesetting project I’m 
organizing in which the team will need to extend aspects of the software.  I 
imagined the score of man hours that goes into all the projects I do and how 
important team morale is over the long term.  I don’t want anyone on my team to 
lose time feeling bad from e-mail confrontations - it’s not worth it for many 
reasons.

  
 Ultimately, it is about the project, not the people. Perhaps 
 counter-intuitively, the answer to the problem you perceive is not to reduce 
 participation, but to increase participation. In my own case, my interactions 
 with David had the effect of getting me more involved in the behind the 
 scenes workings of the code. Why? So that eventually, David won't be able to 
 criticize me for not being willing to get my hands dirty.
 
 Well, I ordinarily have a bit of a thin skin, and I remember reading 
 somewhere on the lists that you have to have some nerve to contribute.  My 
 personal response to the possibility of brutally honest criticism--which is a 
 necessary thing if this project isn't going to go to hell--is to make sure 
 I've got everything as polished as I can make it before I make it public.  
 And accepting that I've got a lot to learn,  (This is about me, and is in no 
 way directed at you, Mike.)

Of course I have a lot to learn, too.

I release things in various states of polished-ness to the list, often because 
its their unpolished-ness that I need comments or opinions on.  This in and of 
itself is valuable information.  Imagining a hypothetical scenario where I sent 
a patch that someone wants to see restructured into several commits before they 
can review it.  One developer responds:

It’s difficult for me to understand what you’re doing - please split it up.

and another responds:

Please act like a member of the community, start taking other people into 
consideration and split up your patches.

The information is the same, but (A) makes me want to stay in the project a lot 
more than (B).  A lot of (B) causes me to lose interest.  How does one proceed? 
 Should one gloss over the way (B) is written and get (A) out of it?  Should 
one respond to (B) on its own terms?  How does one let these things not 
interfere with one’s contributions?

I currently have a boss who is an industry-expert in typesetting that decided 
not to get involved with LilyPond development 3 or 4 years ago because of feuds 
he saw on the devel list.  This is not good.  By old developers not 
contributing as much and new ones not wanting to join, our community has 
dwindled down to one where 40% of commits are made by one person, and this is 
including documentation, meaning that 

Re: anyone notice speed of 2.17.95 on Windows ?

2013-12-10 Thread Keith OHara

On Tue, 10 Dec 2013 17:22:19 -0800, David Kastrup d...@gnu.org wrote:


Keith OHara k-ohara5...@oco.net writes:


The last time we had a doubling of time required on Windows relative
to Linux, issue 1926, it was repeated calls to find_by_name() that go
through Pango to the font server.

Here the outlines seem to be properly cached; it looks like each text
glyph is looked up just one extra time.


Once every time it is written, or once per document?  And what does
just one extra time mean?  One extra per which occasion?


After a brief look at the code, it looked like for each glyph being laid out 
there is one extra call of Open_type_font:: or Pango_font::name_to_index(), 
which is the function called by find_by_name() that caused the extra time with 
issue 1926.

That is, for every 'mf' in the piece, we look up two glyphs by name 'm' and 'f' 
from the font to get a skyline for the 'mf', each skyline is built just once.  
The look-ups are extra over those used to implement the stencil.

One extra lookup per glyph might be enough to explain the difference.  We need 
to look up the glyph to get a skyline, but maybe could cache its index into the 
font in the stencil.

What did you mean to suggest here? :

In this case, the answer is to cache frequently accessed
information instead of requesting it again and again.




The call the to FreeType glyph-outline code might cause the extra
time, or maybe Guile is less efficient on WinXP, as every nook and
cranny in every letter is represented in the skylines objects in
Scheme.


If there are differences in speed, I can't imagine them to be in
anything but possibly garbage collection/allocation, and it seems
unlikely that they would not then have been apparent with other uses.



Probably true.  I mentioned these possibilities after noticing that there are 
quite a few boxes required to represent the outline of each letter..

What did you mean to suggest here? :

Maybe caching in unsuitable form?  Cached data should be in a form
directly usable for processing (with some possible tradeoffs between
memory impact and unpacking speed), not in the form that
function/library/system calls will return it.



___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Use standard inclusion scheme for FreeType headers. (issue 35580043)

2013-12-10 Thread lemzwerg

The problem of using macros without reliably ensuring their
definition before use was introduced by this patch.


Right you are, I haven't thought of this.  Will post a follow-up patch
to Rietveld soon.


What does Freetype state about where its header macro names
are defined?  It is obvious that ft2build.h will cause their
definition (or this would not have compiled) but it's not
clear that this definition is not also incidental rather
than well-defined.


Actually, it stated nothing!  I've just added a section to the FreeType
API documentation which describes that properly.  Thanks for the bug
report, so to say :-)


https://codereview.appspot.com/35580043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


centralization of lilypond development and forking (was: branching)

2013-12-10 Thread Graham Percival
On Wed, Dec 11, 2013 at 08:39:58AM +0200, Mike Solomon wrote:
See:

 http://lilypond.1069038.n5.nabble.com/Allows-minimum-length-to-work-for-end-of-line-spanners-issue-7453046-td141952.html#a142870
as one of several examples.  There is truth in anything David says,
meaning that I (like him (and most of us on this list)) have caused bugs
that I did not find or fix before someone else.  How, does this warrant
this communication style?

Interesting.  I totally agree that lilypond has a problem (see
below), but in that email chain I find myself nodding along with
David.  I mean, he makes empirical claims (such as documentation
about partial elliptic stencils) that I assume are accurate (since
I doubt he would make empirical claims without checking that they
are true).


However, I am not blind to the end result of the communications.
I mean, at the beginning of September 2012 (after the meeting at
the ranch) I was more enthusiastic about LilyPond than I had been
for the previous 5 years, but one month later I decided to pretty
much quit the project.

I know I have the (well-deserved) reputation of being extremely
conservative, but that's in part because I don't want to abuse any
donations or make any demands on existing/previous volunteers.
The idea of providing multiple binaries is one such example
(donated web serving and bandwidth), and the general notion of
lilypond should not break stuff that previously deliberately
worked is another.

But that's not to say that those constraints are unbreakable.  The
usual approach in the open-source community to a situation where a
significant number of people want to have a radical break with
previous traditions is to fork the project.

As a thought experiment, let's suppose that a new project forks
from 2.18.0, called OakMountain instead of LilyPond.  At a bare
minimum, OakMountain would need:
- a git repository.  (trivially easy these days)
- does it want to provide binaries?  Using GUB would bring in a
  huge amount of technical constraints, along with a certain
  amount of bandwidth required.  But maybe OakMountain wouldn't
  care about that; it could target linux only, and provide an
  Ubuntu disk image for any users on windows or OSX who want to do
  engraving.
  (admittedly, the Ubuntu image would also require a fair chunk of
  bandwidth... but maybe OakMountain would target the default
  Ubuntu 12.04 live disk image)
- does it want to provide any defence against regressions?  Maybe
  not.  Maybe OakMountain would guarantee that monophonic music
  with no lyrics will still work, but anything else could change
  and break.


This is not a rhetorical question.  I'm still quite interested in
having a music engraving system that's suitable for a final
version of my string music scores (particularly in conjuction
with Vivi, physical modelling performances of those works).  As we
saw in Sep 2012, LilyPond does not qualify, but if this was a goal
of OakMountain then I'd be interested in joining.
(that said, I'm contractually forbidden from contributing code to
open-source projects until June 2014, although emails and
organization are fine)

Cheers,
- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: branching

2013-12-10 Thread Werner LEMBERG

 One thing that is important to restate is that I realize that,
 unlike my bad-but-getting-better commenting style, _all_ of this is
 out of David’s control in that it stems from a medical issue.  Which
 means that the communication problems won’t go away - they’re going
 to be a fixture of LilyPond development so long as he’s involved.
 As a group of humans, it is _everyone’s_ responsibility to find
 creative ways to get past handicaps because _no one_ wants to have
 them.  What I’d like to see is a situation where David can blow off
 steam however he needs to, he doesn’t feel like people are ignoring
 him, and LilyPond can be a dynamic, multiplayer environment without
 people getting offended and leaving the project.

I fully agree.  I got into the habit of contacting apparently offended
people off-list to explain the very reasons why communication on this
list can be tedious sometimes.

And please remember the most important thing: There is *never* an
intention, as far as I can see, to offend people.  The more factual
the discussion, the better it works.


Werner
___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Use standard inclusion scheme for FreeType headers. (issue 35580043)

2013-12-10 Thread lemzwerg

Will post a follow-up patch to Rietveld soon.


http://code.google.com/p/lilypond/issues/detail?id=3717


https://codereview.appspot.com/35580043/

___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: centralization of lilypond development and forking (was: branching)

2013-12-10 Thread Mike Solomon

On Dec 11, 2013, at 9:18 AM, Graham Percival gra...@percival-music.ca wrote:

 On Wed, Dec 11, 2013 at 08:39:58AM +0200, Mike Solomon wrote:
   See:
   
 http://lilypond.1069038.n5.nabble.com/Allows-minimum-length-to-work-for-end-of-line-spanners-issue-7453046-td141952.html#a142870
   as one of several examples.  There is truth in anything David says,
   meaning that I (like him (and most of us on this list)) have caused bugs
   that I did not find or fix before someone else.  How, does this warrant
   this communication style?
 
 Interesting.  I totally agree that lilypond has a problem (see
 below), but in that email chain I find myself nodding along with
 David.  I mean, he makes empirical claims (such as documentation
 about partial elliptic stencils) that I assume are accurate (since
 I doubt he would make empirical claims without checking that they
 are true).
 

Anything empirical in there is accurate.

 
 However, I am not blind to the end result of the communications.
 I mean, at the beginning of September 2012 (after the meeting at
 the ranch) I was more enthusiastic about LilyPond than I had been
 for the previous 5 years, but one month later I decided to pretty
 much quit the project.

This is bad.  If this were some ultimate, fatalistic consequence of 
participation in any open-source project, I’d shrug and move onto the next, but 
it is precisely because in every other project I participate in this _doesn’t_ 
exist that I’m going through pains to try to solve this here.

Cheers,
MS


___
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel