Re: odd configure error

2009-03-26 Thread Graham Percival
On Wed, Mar 25, 2009 at 07:08:40PM +0100, James E. Bailey wrote:
> 
> GIT from git.sv.gnu.org
> git clone git://git.sv.gnu.org/lilypond.git

This does not set up easy pulling or pushing in the future, and
generally assumes that people know how to use git.  It also
downloads all branches, which in most cases is not necessary.

> To get the main source code and documentation,
> mkdir lilypond; cd lilypond
> git init-db
> git remote add -f -t master -m master origin 
> git://git.sv.gnu.org/lilypond.git/
> git checkout -b master origin/master

After approximately four hours of discussion between git experts
and non-experts, we decided that this is the best sequence of
commands for most contributors.  Just copy and paste them.

Cheers,
- Graham


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


Re: Tied accidentals in chords still taking up space (was: Issue 415 in lilypond: Hidden accidental of tied note still takes space)

2009-03-26 Thread Chris Snyder
Joe Neeman wrote:
> [explanation of spacing code...]

> One solution might be the following, which involves modifying only
> accidental-placement: make 2 copies of every accidental, one for the
> start-of-a-line case and one for the middle-of-a-line case (so the
> start-of-a-line accidentals would be, in the terminology of
> Accidental_placement::split_accidentals, the break_reminder accidentals
> and the real_accidentals while the middle-of-a-line accidentals would
> have copies of only the real_accidentals). Run the accidental layout
> algorithm (currently in Accidental_placement::calc_positioning_done, but
> you'll want to move it to a different function and make
> calc_positioning_done call it twice) twice, once for each set of
> accidentals. Then modify Accidental_placement::get_relevant_accidentals
> to return one of the sets of accidentals.

I've looked into this approach, and have a few questions:

I tried cloning the accidentals in Accidental_placement::add_accidental,
but that led to a segfault later on while trying to calculate the
X-extent of the cloned accidental, since its layout_ was null. From what
I can tell, this is because the cloned grob was never announced. Perhaps
I should modify accidental-engraver as well, and have it create two
copies there, passing them both to Accidental_placement::add_accidental?

Which copy of the accidental should be put into the accidental-grob
property of the note head?

Thanks,

-Chris


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


Re: Tied accidentals in chords still taking up space (was: Issue 415 in lilypond: Hidden accidental of tied note still takes space)

2009-03-26 Thread Joe Neeman
On Thu, 2009-03-26 at 10:26 -0400, Chris Snyder wrote:
> Joe Neeman wrote:
> > [explanation of spacing code...]
> 
> > One solution might be the following, which involves modifying only
> > accidental-placement: make 2 copies of every accidental, one for the
> > start-of-a-line case and one for the middle-of-a-line case (so the
> > start-of-a-line accidentals would be, in the terminology of
> > Accidental_placement::split_accidentals, the break_reminder accidentals
> > and the real_accidentals while the middle-of-a-line accidentals would
> > have copies of only the real_accidentals). Run the accidental layout
> > algorithm (currently in Accidental_placement::calc_positioning_done, but
> > you'll want to move it to a different function and make
> > calc_positioning_done call it twice) twice, once for each set of
> > accidentals. Then modify Accidental_placement::get_relevant_accidentals
> > to return one of the sets of accidentals.
> 
> I've looked into this approach, and have a few questions:
> 
> I tried cloning the accidentals in Accidental_placement::add_accidental,
> but that led to a segfault later on while trying to calculate the
> X-extent of the cloned accidental, since its layout_ was null. From what
> I can tell, this is because the cloned grob was never announced. Perhaps
> I should modify accidental-engraver as well, and have it create two
> copies there, passing them both to Accidental_placement::add_accidental?

It's not necessary to announce every grob (for example, of the three
copies of every breakable grob, only the middle-of-line copy gets
announced). The code for creating these non-announced grobs is in
Item::copy_breakable_items. In particular, you need the
get_root_system(original_grob)->typeset_grob(cloned_grob) line to give
your clone a layout_.

> Which copy of the accidental should be put into the accidental-grob
> property of the note head?

This is a bit tricky. To do this properly, you might need to add a
Note_head::get_accidental function that has the logic for finding the
right accidental (you could create a new property,
"break-reminder-accidental-grob", for the new copy). Then you'd need to
change every place that does get_object("accidental-grob") to use the
new function; there aren't very many such places. It should be safe to
just pick one copy if you want to put this off until later.

HTH,
Joe



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


Re: odd configure error

2009-03-26 Thread Patrick McCarty
On Thu, Mar 26, 2009 at 6:06 AM, Graham Percival
 wrote:
> On Wed, Mar 25, 2009 at 07:08:40PM +0100, James E. Bailey wrote:
>>
>> GIT from git.sv.gnu.org
>>     git clone git://git.sv.gnu.org/lilypond.git
>
> This does not set up easy pulling or pushing in the future, and
> generally assumes that people know how to use git.  It also
> downloads all branches, which in most cases is not necessary.

It depends on what branches people work with.  If they only work on
the master branch, then the `git clone' method is a lot easier, IMO.

The `git clone' method *does* set up easy pulling and pushing, but
only for the master branch (I think).

The confusion comes in when trying to juggle multiple remote branches
on multiple local branches.  This is when knowledge of git is
necessary, because there are different ways of doing things.

For example, this is the method I would recommend to fetch the
LilyPond repo and make a patch for the documentation:

git clone git://git.sv.gnu.org/lilypond.git
cd lilypond
git checkout -b mybranch
...make changes...
git commit -a
git format-patch master

Let's say remote master has changed in the meantime, and you want to
create a new patch rebased on current master:

cd lilypond
git checkout master
git pull
git checkout mybranch
git rebase master
git format-patch master

If you want to create a new patch, just do this:

cd lilypond
git checkout master
git pull
git checkout mybranch
...make changes...
git commit -a
git rebase master
git format-patch master

If you have push access, just add a couple more steps:

cd lilypond
git checkout master
git pull
git checkout mybranch
...make changes...
git commit -a
git rebase master
git checkout master
git merge mybranch
git push git+ssh://git.sv.gnu.org/srv/git/lilypond.git

***

Ideally, users would know what all of these commands mean, but as you
say, if we put these sequences in the Contributer's Guide, then they
can simply copy and paste.

These command sequences generally work, unless there are rebase
conflicts, which requires another two paragraphs itself to explain.
They also eliminate the extra `merge' commits you see occasionally.


-Patrick


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


Patches for the web site

2009-03-26 Thread Patrick McCarty
Hello,

The first patch fixes a newly added link on the download page, and the
second adds LilyPond 2.13 to the list on the documentation page.


Thanks,
Patrick
>From c7f3bec4129e4cc132dd6a534028d94c10b2a68e Mon Sep 17 00:00:00 2001
From: Patrick McCarty 
Date: Thu, 26 Mar 2009 14:44:55 -0700
Subject: [PATCH 1/2] Fix link to help page

Signed-off-by: Patrick McCarty 
---
 site/install/install-2.12.ihtml |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/site/install/install-2.12.ihtml b/site/install/install-2.12.ihtml
index a8f1502..fe095d3 100644
--- a/site/install/install-2.12.ihtml
+++ b/site/install/install-2.12.ihtml
@@ -267,7 +267,7 @@
 
 
 _("A text-based program, not graphical.  For more information, see %s.",
-   "http://lilypond.gnu.org/web/help/";,
+   "http://lilypond.org/web/help/";,
"the LilyPond help page")

   
-- 
1.6.2.1

>From 99886dc50cf36e9b8e0be088a0600410e63f2902 Mon Sep 17 00:00:00 2001
From: Patrick McCarty 
Date: Thu, 26 Mar 2009 14:51:16 -0700
Subject: [PATCH 2/2] Add 2.13 to documentation page

Signed-off-by: Patrick McCarty 
---
 site/documentation.html |7 +++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/site/documentation.html b/site/documentation.html
index f6234b3..19765f5 100644
--- a/site/documentation.html
+++ b/site/documentation.html
@@ -19,6 +19,13 @@
   
   
 Documentation for
+
+LilyPond 2.13
+
+(latest development)
+  
+  
+Documentation for
 
 LilyPond 2.10
 
-- 
1.6.2.1

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


Re: Debugging/showing internal stuff?

2009-03-26 Thread Carl Sorensen
Nicolas Sceaux  free.fr> writes:

> you can try that:
> 
> -foo.ly-
> #(module-define! (resolve-module '(guile-user)) 'lilypond-module  
> (current-module))
> #(top-repl)
> 
> 
> guile> (set-current-module lilypond-module)
> #
> guile> parser
> #) > >
> guile> (display-scheme-music #{ a' #})
> (make-music
>'SequentialMusic
>'elements
>(list (make-music
>'EventChord
>'elements
>(list (make-music
>'NoteEvent
>'duration
>(ly:make-duration 2 0 1 1)
>'pitch
>(ly:make-pitch 0 5 0))
> 

When I tried this, I ended up with the display above, followed by:

#:1:30>) 
(elements #:1:33>) 
(elements #) 
(pitch . #) (origin . #:1:33>))
((display-methods #) (name . NoteEvent) 
(types general-music event note-event rhythmic-event melodic-event)) >
))((display-methods # 
# #) 
(name . EventChord)
 (iterator-ctor . #) 
(length-callback . 
#) 
(to-relative-callback . 
#)
 (types general-music event-chord simultaneous-music)) >
))((display-methods #) 
(name . SequentialMusic)
 (length-callback . 
#) 
(start-callback . 
#)
 (elements-callback . #)
 (iterator-ctor . #)
 (types general-music sequential-music)) >

Any idea why I'm getting this?

Thanks,

Carl





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