Re: compiling lilypond in debian stretch with self-compiled guile-1.8
Il 23 ottobre 2017 19:07:19 CEST, Federico Bruni ha scritto: >Actually, I ran `sudo ldconfig`, right after building guile, in a >postinst script while building a debian container. >I started the container, launched the configure in lilypond source and >got the usual error: > Stupid me, it was not a postinst script but a build script, which only copies the generated files. I know what I have to do ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LaissezVibrerTie and LaissezVibrerTieColumn
Thomas Morley writes: > So how to proceed with 5220? > I'm confident I could adapt your change once it is in master More like "use it". I don't think you need to do anything with it. > and maybe even prepare the engravers so that a follow up could > implement the idea of https://codereview.appspot.com/335910043/#msg2 > easily, though I'm not able to realize this idea myself. The main thing is listing just what the differences between the two engravers were. All those need to be made overridable in whatever will serve as the base class. > Btw, why do we redefine LaissezVibrerTie-stencil in output-lib.scm? > The comment says: > > > ;; laissez-vibrer tie > ;; > ;; needed so we can make laissez-vibrer a pure print > ;; > (define-public (laissez-vibrer::print grob) > (ly:tie::print grob)) > > Is this (still) true or could it be deleted (and define-grobs.scm > adjusted, ofcourse)? This looks like a remnant of commit 55d4389e74f830d759176867dae44ed0400c3b68 Author: Carl Sorensen Date: Fri May 14 19:51:57 2010 -0600 Fix 881, with Neil's suggestion Make laisser-vibrez::print a pure function Add regression test for issue 881 before commit 74e4d219b24ec6d6f28d663c0285418e6c8e122e Author: Mike Solomon 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. So I think that at the current point of time, this can likely be retired. Or at least, the definition can be simplified to ;; laissez-vibrer tie ;; ;; Backward compatibility alias ;; (define-public laissez-vibrer::print ly:tie::print) -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LaissezVibrerTie and LaissezVibrerTieColumn
2017-10-23 15:29 GMT+02:00 David Kastrup : > David Kastrup writes: > >>> Is this appropiate? >> >> "cause" here is the actual tie event triggering the column. I think >> that it should rather be the first tie, making the >> LaissezVibrerTieColumn a grob with ultimately identifiable cause but not >> a directly caused grob. Then it should be ignored by the >> Parenthesis_engraver. This would involve changing >> >> SCM cause = tie_ev->self_scm (); >> >> if (!lv_column_) >> lv_column_ = make_item ("LaissezVibrerTieColumn", cause); >> >> Grob *lv_tie = make_item ("LaissezVibrerTie", cause); >> >> into >> >> SCM cause = tie_ev->self_scm (); >> >> Grob *lv_tie = make_item ("LaissezVibrerTie", cause); >> >> if (!lv_column_) >> lv_column_ = make_item ("LaissezVibrerTieColumn", lv_tie->self_scm ()); >> >> I don't think that it would be a problem to have the tie created before >> its column. > > Tracker issue: 5222 (https://sourceforge.net/p/testlilyissues/issues/5222/) > Rietveld issue: 331080043 (https://codereview.appspot.com/331080043) > Issue description: > Stop \parenthesize\laissezVibrer causing programming errors > > I don't think I'd have an issue with fast-tracking this one once it > passed the regtests. > > -- > David Kastrup So how to proceed with 5220? I'm confident I could adapt your change once it is in master and maybe even prepare the engravers so that a follow up could implement the idea of https://codereview.appspot.com/335910043/#msg2 easily, though I'm not able to realize this idea myself. Btw, why do we redefine LaissezVibrerTie-stencil in output-lib.scm? The comment says: ;; laissez-vibrer tie ;; ;; needed so we can make laissez-vibrer a pure print ;; (define-public (laissez-vibrer::print grob) (ly:tie::print grob)) Is this (still) true or could it be deleted (and define-grobs.scm adjusted, ofcourse)? Cheers, Harm ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: compiling lilypond in debian stretch with self-compiled guile-1.8
Il giorno lun 23 ott 2017 alle 18:34, Federico Bruni ha scritto: Il giorno ven 20 ott 2017 alle 21:52, David Kastrup ha scritto: Federico Bruni writes: I have my own Guile 1.8 libraries. I use something like GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure ... I got the same problem. However, this appears to be because avoiding the check for guile-config in this manner appears to _also_ disable the check (and any useful default) for Guile. So I have to do GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ... to get this working smoothly. /usr/bin/guile happens to be a Guile-2.0 provided by Ubuntu. It's fine since it is used for the scripts which run ok under Guile-2.0. This did not help, unfortunately. I keep getting the same error. Now I've removed guile-2.0. I've built and installed guile-1.8 in /usr/local. /usr/local/bin is in my path. But I get this error: checking for guile-config... no If your configure script is _checking_ for guile-config, you don't have GUILE_CONFIG set. Ok, I thought that it was not necessary as I have now, after removing guile-2, only one guile-config in my PATH. I found out that there's another requirement needed: running ldconfig after guile-1.8 installation. Actually, I ran `sudo ldconfig`, right after building guile, in a postinst script while building a debian container. I started the container, launched the configure in lilypond source and got the usual error: checking guile compile flags... /usr/local/bin/guile: error while loading shared libraries: libguile.so.17: cannot open shared object file: No such file or directory So I ran `sudo ldconfig` and then the configure, which was now successful. Do you know why? For the records, these are the commands that worked well to build and install guile-1.8 system wide on debian stretch: git clone https://git.savannah.gnu.org/git/guile.git cd guile git checkout branch_release-1-8 ./autogen.sh ./configure --disable-error-on-warning --prefix=/usr/local make sudo make install sudo ldconfig echo "GUILE_CONFIG=/usr/local/bin/guile-config" >> ~/.bashrc ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: compiling lilypond in debian stretch with self-compiled guile-1.8
Il giorno ven 20 ott 2017 alle 21:52, David Kastrup ha scritto: Federico Bruni writes: I have my own Guile 1.8 libraries. I use something like GUILE_CONFIG=/usr/local/tmp/guile-1.8/bin/guile-config ./configure ... I got the same problem. However, this appears to be because avoiding the check for guile-config in this manner appears to _also_ disable the check (and any useful default) for Guile. So I have to do GUILE=/usr/bin/guile GUILE_CONFIG=... ./configure ... to get this working smoothly. /usr/bin/guile happens to be a Guile-2.0 provided by Ubuntu. It's fine since it is used for the scripts which run ok under Guile-2.0. This did not help, unfortunately. I keep getting the same error. Now I've removed guile-2.0. I've built and installed guile-1.8 in /usr/local. /usr/local/bin is in my path. But I get this error: checking for guile-config... no If your configure script is _checking_ for guile-config, you don't have GUILE_CONFIG set. Ok, I thought that it was not necessary as I have now, after removing guile-2, only one guile-config in my PATH. I found out that there's another requirement needed: running ldconfig after guile-1.8 installation. For the records, these are the commands that worked well to build and install guile-1.8 system wide on debian stretch: git clone https://git.savannah.gnu.org/git/guile.git cd guile git checkout branch_release-1-8 ./autogen.sh ./configure --disable-error-on-warning --prefix=/usr/local make sudo make install sudo ldconfig echo "GUILE_CONFIG=/usr/local/bin/guile-config" >> ~/.bashrc ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
PATCHES - Countdown for October 20th
Hello, Here is the current patch countdown list. The next countdown will be on October 23rd. A quick synopsis of all patches currently in the review process can be found here: http://philholmes.net/lilypond/allura/ Push: 4981 Web: Remove links to gmane throughout Website - James Lowe https://sourceforge.net/p/testlilyissues/issues/4981 http://codereview.appspot.com/333900043 Countdown: 4927 Performance of 2.17.6 convert-ly rule - David Kastrup https://sourceforge.net/p/testlilyissues/issues/4927 http://codereview.appspot.com/330620043 Review: No patches in Review at this time. New: No new patches at this time. Waiting: 4603 change all occurences of ‘partcombine’ to ‘partCombine’. - James Lowe https://sourceforge.net/p/testlilyissues/issues/4603 http://codereview.appspot.com/323040043 Regards James Hello, Here is the current patch countdown list. The next countdown will be on October 2nd. A quick synopsis of all patches currently in the review process can be found here: http://philholmes.net/lilypond/allura/ Push: 5203 Don't let event-chord-reduce bomb on empty chords - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5203 http://codereview.appspot.com/327480043 5202 Add regtest for issue 5181 - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5202 http://codereview.appspot.com/327470043 5198 Add command for Thin Aiken noteheads - Karlin High https://sourceforge.net/p/testlilyissues/issues/5198 http://codereview.appspot.com/326510043 5190 NR: Update Clef styles Appendix - James Lowe https://sourceforge.net/p/testlilyissues/issues/5190 http://codereview.appspot.com/324420043 5176 2.20 - re-organize Changes.tely into Topics - James Lowe https://sourceforge.net/p/testlilyissues/issues/5176 http://codereview.appspot.com/326400043 Countdown: 5200 display-lily-tests.ly: Remove unused lily-string->markup - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5200 http://codereview.appspot.com/324490043 5201 Use -b together with -dgs-never-embed-fonts - Knut Petersen https://sourceforge.net/p/testlilyissues/issues/5201 http://codereview.appspot.com/325630043 Review: 5205 \chordmode { c:sus } should be , not - David Kastrup https://sourceforge.net/p/testlilyissues/issues/5205 http://codereview.appspot.com/326610043 5204 Remove white-space from storePredefinedDiagram input-string - Thomas Morley https://sourceforge.net/p/testlilyissues/issues/5204 http://codereview.appspot.com/330340043 New: No new patches at this time. Waiting: 4603 change all occurences of âpartcombineâ to âpartCombineâ. - James Lowe https://sourceforge.net/p/testlilyissues/issues/4603 http://codereview.appspot.com/323040043 Regards James ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LaissezVibrerTie and LaissezVibrerTieColumn
David Kastrup writes: >> Is this appropiate? > > "cause" here is the actual tie event triggering the column. I think > that it should rather be the first tie, making the > LaissezVibrerTieColumn a grob with ultimately identifiable cause but not > a directly caused grob. Then it should be ignored by the > Parenthesis_engraver. This would involve changing > > SCM cause = tie_ev->self_scm (); > > if (!lv_column_) > lv_column_ = make_item ("LaissezVibrerTieColumn", cause); > > Grob *lv_tie = make_item ("LaissezVibrerTie", cause); > > into > > SCM cause = tie_ev->self_scm (); > > Grob *lv_tie = make_item ("LaissezVibrerTie", cause); > > if (!lv_column_) > lv_column_ = make_item ("LaissezVibrerTieColumn", lv_tie->self_scm ()); > > I don't think that it would be a problem to have the tie created before > its column. Tracker issue: 5222 (https://sourceforge.net/p/testlilyissues/issues/5222/) Rietveld issue: 331080043 (https://codereview.appspot.com/331080043) Issue description: Stop \parenthesize\laissezVibrer causing programming errors I don't think I'd have an issue with fast-tracking this one once it passed the regtests. -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: LaissezVibrerTie and LaissezVibrerTieColumn
Thomas Morley writes: > Hi all, > > here: > https://sourceforge.net/p/testlilyissues/issues/5220/#f5aa/ed76 > I wrote that \parenthesize\laissezVibrer does not work because > LilyPond tries to parenthesize LaissezVibrerTieColumn as well. > > And indeed, with the code below _two_ grobs are affected: > LaissezVibrerTieColumn and LaissezVibrerTie > > { > c'1 > -\tweak after-line-breaking #(lambda (grob) (write grob)) > -\laissezVibrer > } > > This looks fishy. > While the proposed check for interval-sane? at the tracker may be a > good thing at its own, I found changing laissez-vibrer-engraver.cc > > - if (!lv_column_) > -lv_column_ = make_item ("LaissezVibrerTieColumn", cause); > > + if (!lv_column_) > +{ > + lv_column_ = make_item ("LaissezVibrerTieColumn", SCM_EOL); > +} > > seems to cure it. > Though, I'm hardly knowing what I'm doing here... > > Is this appropiate? "cause" here is the actual tie event triggering the column. I think that it should rather be the first tie, making the LaissezVibrerTieColumn a grob with ultimately identifiable cause but not a directly caused grob. Then it should be ignored by the Parenthesis_engraver. This would involve changing SCM cause = tie_ev->self_scm (); if (!lv_column_) lv_column_ = make_item ("LaissezVibrerTieColumn", cause); Grob *lv_tie = make_item ("LaissezVibrerTie", cause); into SCM cause = tie_ev->self_scm (); Grob *lv_tie = make_item ("LaissezVibrerTie", cause); if (!lv_column_) lv_column_ = make_item ("LaissezVibrerTieColumn", lv_tie->self_scm ()); I don't think that it would be a problem to have the tie created before its column. -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
LaissezVibrerTie and LaissezVibrerTieColumn
Hi all, here: https://sourceforge.net/p/testlilyissues/issues/5220/#f5aa/ed76 I wrote that \parenthesize\laissezVibrer does not work because LilyPond tries to parenthesize LaissezVibrerTieColumn as well. And indeed, with the code below _two_ grobs are affected: LaissezVibrerTieColumn and LaissezVibrerTie { c'1 -\tweak after-line-breaking #(lambda (grob) (write grob)) -\laissezVibrer } This looks fishy. While the proposed check for interval-sane? at the tracker may be a good thing at its own, I found changing laissez-vibrer-engraver.cc - if (!lv_column_) -lv_column_ = make_item ("LaissezVibrerTieColumn", cause); + if (!lv_column_) +{ + lv_column_ = make_item ("LaissezVibrerTieColumn", SCM_EOL); +} seems to cure it. Though, I'm hardly knowing what I'm doing here... Is this appropiate? Cheers, Harm ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel