[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lilypond-auto] Issue 3631 in lilypond: 2.17 does a worse job using
From: |
lilypond |
Subject: |
Re: [Lilypond-auto] Issue 3631 in lilypond: 2.17 does a worse job using skylines for the page layout than 2.16 |
Date: |
Wed, 23 Oct 2013 23:31:17 +0000 |
Updates:
Cc: address@hidden
Comment #2 on issue 3631 by address@hidden: 2.17 does a worse job using
skylines for the page layout than 2.16
http://code.google.com/p/lilypond/issues/detail?id=3631
Ok, bisected this problem. It's not 2.17 per se. The problem starts in
2.17.14:
74e4d219b24ec6d6f28d663c0285418e6c8e122e is the first bad commit
commit 74e4d219b24ec6d6f28d663c0285418e6c8e122e
Author: Mike Solomon <address@hidden>
Date: Tue Mar 5 21:03:55 2013 +0100
Uses only unpure-pure containers to articulate unpure-pure
relationships (issue 3199)
Previously, LilyPond used several different lists in define-grobs.scm
to define relationships between unpure and pure functions. This patch
eliminates these lists, using unpure-pure containers to articulate
these relationships.
The modifications required to implement this change are described below:
-) axis-group-interface.cc
A Scheme function is no longer needed to determine pure relevant grobs.
All grobs can have their Y-extents meaningfully pure-evaluated now. The
worst-case scenario is that they evaluate to false. Dead grobs, on the
other hand, are never pure relevant. The calls to is_live are the only
holdovers from the old pure-relevant? scheme function.
-) grob-closure.cc
We allow unpure-pure containers in simple closures.
-) grob-property.cc
call_pure_function no longer looks up a Scheme module. Because there are
no hard-coded lists in Scheme any more, the function is smaller and
writing it in C++ gets slight efficiency gains.
-) grob.cc
pure_stencil_height used to be a Scheme function in define-grobs.scm.
Because it is much simpler (it no longer makes references to lists
defined
in Scheme), it can be implemented in C++.
-) pure-from-neighbor-engraver.cc
Similar to axis-group-interface.cc, the pure-relevant distinction is
no longer important.
-) side-position-interface.cc
In order to avoid issues with alterBroken, we only check pure properties
before line breaking.
-) simple-closure.cc
Simple closures were incorrectly evaluated when containing unpure-pure
containers. This rectifies that.
-) stencil-integral.cc
Several pure equivalent functions needed to be written for skylines.
-) define-grobs.scm
Multiple overrides must be changed to unpure-pure containers. Previous
hard-coded lists are all deleted and several functions moved to C++ (see
above).
-) output-lib.scm
Several common unpure-pure containers used in define-grobs.scm are
defined here. Several functions from define-grobs.scm pertaining to
grob offsets are moved to this file.
:040000 040000 69f10e267f63d1c3315e91557e9a61658a04c53b
7f47f318dd89f2e1768860293c1ed86c1fa23114 M input
:040000 040000 7d0fce689cff49901f19d3ba182f253f6c27338b
4739327adefbb80fee3aa1e3c5b36a1ade66f595 M lily
:040000 040000 1c9e860a272a4b38f36526023369319afd97820d
3ff043eb2e0349161f551d615ddbc2ee13387a2c M ly
:040000 040000 2cfacbdbf1649347fd715b20a1d3afbdc15deb8e
dcc4ac6d62edc606de038cac934da023971574d1 M scm
I don't see that the description of this patch would warrant such an
increase in space.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings