Re: make info has failed for more than one day.

2010-04-09 Thread David Kastrup
Neil Puttock n.putt...@gmail.com writes:

 On 8 April 2010 19:24, David Kastrup d...@gnu.org wrote:

 And so forth and so on.

 I've pushed a compile fix which should sort this out for you.

Thanks.  Appears to work here.

-- 
David Kastrup


___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Boris Shingarov

What I am stuck on now, is the function
Align_interface::get_minimum_translations(). 
Could you explain the high-level design of what this is doing?

In all cases in the book I am trying to typeset, everything appears
to work A-ok, but on the hara-kiri-pianostaff regtest, this now returns
an empty vector of offsets when called from 
System::part_of_line_pure_height(),

but the corresponding vector of staves is non-empty, which causes
a segfault when trying to translate the 0th staff. 


On Sun, 04 Apr 2010 11:47:48 -0700, Joe Neeman  wrote:
On Wed, 2010-03-31 at 01:46 -0400, Boris Shingarov wrote:
   Wooo, hang on, my patch is sour!  It segfaults if the system is not a
   group of staves -- for example, this is the case of markup.  I'm
   fixing it. 
 

  Ok, so I'll save the full review for later, but here are a few quick
  things I noticed:
 
   @@ -512,7  524,6 @@ Line_details::Line_details (Prob *pb, Output_def
   *paper)
  
  last_column_ = 0;
  force_ = 0;
   -  extent_ = unsmob_stencil (pb-get_property (stencil)) -extent
 
  You'll need to do something better here, rather than just leaving all
  the extent information out for markup blocks. 
 

(Y_AXIS);
  bottom_padding_ = 0;
  space_ = 0.0;
  inverse_hooke_ = 1.0;
   @@ -530,3  541,33 @@ Line_details::Line_details (Prob *pb, Output_def
   *paper)
  SCM first_scm = pb-get_property (first-markup-line);
  first_markup_line_ = to_boolean (first_scm);
}
  
/*
 * I measure hanging from top of page.  It is positive for everything
 * below the top of page.  Lower things have bigger hanging. 
 * NB!!! These hangings are artificial in that they do not take into
 * account any padding/spacing. 
  hangings need to take padding (but not spacing) into account, because

  padding is non-stretchable space. See (the old version of)
  Page_breaking::min_page_count, which uses padding. 
 

 They are as if systems were stacked
 * on top of each other; as such, hangings are only used/useful for
   the
 * calculation of ext_len in Page_breaking. 
 */

void Line_details::compute_hangings (double previous_begin, double
   previous_rest)
  we use Real rather than double (not quite sure why, but let's be
  consistent). Also, the code style is
 
  void
  Line_details::compute_hangings ... 
 

{
  double a = begin_of_line_extent_[UP];
  double b = rest_of_line_extent_[UP];
  double midline_hanging = max (previous_begin   a, previous_rest
   b);
  hanging_begin_ = midline_hanging - begin_of_line_extent_[DOWN];
  hanging_rest_ = midline_hanging - rest_of_line_extent_[DOWN];
}
  
double Line_details::hanging ()
  double
  Line_details::hanging ()
 
{
  return max (hanging_begin_, hanging_rest_);
}
  
double Line_details::full_height ()
{
  Interval ret;
  ret.unite(begin_of_line_extent_);
  ret.unite(rest_of_line_extent_);
  return ret.length();
}
   diff --git a/lily/include/constrained-breaking.hh
   b/lily/include/constrained-breaking.hh
   index e6d898e..1f0e952 100644
   --- a/lily/include/constrained-breaking.hh
   b/lily/include/constrained-breaking.hh
   @@ -27,7  27,11 @@
struct Line_details {
  Grob *last_column_;
  Real force_;
   -  Interval extent_;   /* Y-extent of the system */
  Interval begin_of_line_extent_;
  Interval rest_of_line_extent_;
  double hanging_begin_;
  double hanging_rest_;
  double y_extent_; /* Y-extent, adjusted according to
  When do you set this? Doesn't full_height() remove the need for this
  anyway?
 
begin/rest-of-line*/
  
  Real padding_;  /* compulsory space after this system (if we're not
last on a page) */
   @@ -78,6  82,16 @@ struct Line_details {
  }
  
  Line_details (Prob *pb, Output_def *paper);
  
  /*
   * Pure procedure. 
   * Based on the arguments which indicate how low the previous

   system
   * hangs, and on the internal state (*_of_line_extents), store into
   * internal state (hanging_*) how low our own low margin hangs. 
   */

  void compute_hangings (double previous_begin, double
   previous_rest);
  double hanging ();
  double full_height ();
};
  
/*
   diff --git a/lily/include/system.hh b/lily/include/system.hh
   index 509a65d..b8fa664 100644
   --- a/lily/include/system.hh
   b/lily/include/system.hh
   @@ -65,9  65,15 @@ public:
  void typeset_grob (Grob *);
  void pre_processing ();
  
  Interval begin_of_line_pure_height (vsize start, vsize end);
  Interval rest_of_line_pure_height (vsize start, vsize end);
  
protected:
  virtual void derived_mark () const;
  virtual Grob *clone () const;
  
private:
  Interval part_of_line_pure_height (vsize start, vsize end, bool
   begin);
};
  
void set_loose_columns (System *which, Column_x_positions const
   *posns);
   diff --git 

Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Joe Neeman
On Fri, 2010-04-09 at 02:30 -0400, Boris Shingarov wrote:
 What I am stuck on now, is the function
 Align_interface::get_minimum_translations(). 
 Could you explain the high-level design of what this is doing?

The function builds a skyline for each staff/lyrics/etc, then compares
the skylines to find the minimum amounts that each staff must be moved
down so that no collisions occur.

 In all cases in the book I am trying to typeset, everything appears
 to work A-ok, but on the hara-kiri-pianostaff regtest, this now returns
 an empty vector of offsets when called from 
 System::part_of_line_pure_height(),
 but the corresponding vector of staves is non-empty, which causes
 a segfault when trying to translate the 0th staff. 

get_skylines modifies its elems argument, removing all staves that are
empty. If every staff is empty (which happens in hara-kiri-pianostaff,
IIRC) then get_skylines doesn't return any skylines and hence
get_minimum_translations (see align-interface.cc:226) returns an empty
vector. I'm not actually sure why it does this (instead of returning,
say, a vector of zeros) so if the regression tests pass, I'd be ok with
changing this. Alternatively, you could just check explicitly for an
empty result in System::part_of_line_pure_height.

Cheers,
Joe



___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Joe Neeman
On Mon, 2010-04-05 at 03:00 -0400, Boris Shingarov wrote:
  Grob *alignment = get_vertical_alignment (); //TODO check for null
  please check for null
  
 But what do we do if it's null?

Maybe print a programming_error and return an empty extent? It doesn't
particularly matter what you do, just don't crash.

Joe




___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Boris Shingarov

On Thu, 08 Apr 2010 23:47:15 -0700, Joe Neeman  wrote:

 But what do we do if it's null?

  Maybe print a programming_error and return an empty extent? It doesn't
  particularly matter what you do, just don't crash.
 
But it's never null, on any input that I've seen.  Not on any of the regtests
nor on our book anyway.  So ok, I'll do as you suggest, but I'll add a
comment explaining that this is somewhat arbitrary.
 
 
 
 
 
 



___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Boris Shingarov

Alternatively, you could just check explicitly for an

  empty result in System::part_of_line_pure_height.
 
And if it's empty, then not do the translation at all, right?
Will do this right now and see how much better this
gets us.
 
BTW, what is the correct (supposed) way to run the
regtests?  I am just running Lilypond on all the files
from a bash script, as I can't seem to find the script
that would be supposed to run the suite -- if such a
beast exists.
 
 
 
 



___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Re: PATCH: Lyrics break estimation of vertical spacing

2010-04-09 Thread Joe Neeman
On Fri, 2010-04-09 at 02:55 -0400, Boris Shingarov wrote:
  Alternatively, you could just check explicitly for an
empty result in System::part_of_line_pure_height. 
  
 And if it's empty, then not do the translation at all, right?
 Will do this right now and see how much better this
 gets us. 
  
 BTW, what is the correct (supposed) way to run the
 regtests?  I am just running Lilypond on all the files
 from a bash script, as I can't seem to find the script
 that would be supposed to run the suite -- if such a
 beast exists. 

Checkout a known good commit (eg. origin/master)
make test-baseline
git checkout my-branch
make  make test-clean  make check

There's probably something in the contributor's guide about this...

Joe




___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Percents repeats confused by polyphony

2010-04-09 Thread Mark Polesky
The first of a group of full measure percent repeat
symbols doesn't get printed when the music expression is
polyphonic (see the attached png); and the following errors
are generated:

programming error: must have Item for spanner bound of PercentRepeat
programming error: Multi_measure_rest::get_rods (): I am not spanned!

Also, a pdf file is produced, despite getting these:

error: failed files: percent_repeats.ly
shell returned 1

Here's a test file:

\version 2.13.18
\relative c'' {
  \repeat percent 4 {
 { c4 c c c } \\ { f,4 f f f } 
  }
}

One workaround is to have the user manually add:

\set countPercentRepeats = ##f

...but I assume this is a needless burden.  I glanced at
percent-repeat-engraver.cc, but I still don't know any C++,
so I'm unable to solve it myself.  Is there a way to have
the countPercentRepeats context property set to #f by
default?  Or is the real problem some sort of flawed
assumption within the PercentRepeat or Multi_measure_rest
code?  I have no idea.

But I presume this is a bug which hopefully is easy to fix.

Any insights?
- Mark


  attachment: percent-repeats.png___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond


Download

2010-04-09 Thread Dave Makarchuk
Hi Dad! 

What's up.  Hope your good.  Come back up if you have it.  

Ben



___
bug-lilypond mailing list
bug-lilypond@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-lilypond