Re: 2.13.8 now?

2009-11-24 Thread Francisco Vila
2009/11/23 Graham Percival :
> Now that 2.13.8 is uploaded:

http://lilypond.org/install/ still links 2.13.7.

Regards
-- 
Francisco Vila. Badajoz (Spain)
www.paconet.org
www.csmbadajoz.com


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


Re: What's the deal with the module system?

2009-11-24 Thread Nicolas Sceaux
2009/11/24 David Kastrup 

>
> > file3.ly:
> >   myInclude =
> >   #(define-music-function (parser location file) (string?)
> >  #{ \include $file #}
> >  (make-music 'void #t))
> >
> >   \myInclude "file2.ly"
> >   \markup \foo
>

Please ignore this case, it's broken. What I had in mind a bit more complex,
and probably does not really matter.

The two important points to keep in mind are:

1) user defined commands shall not pollute the internal modules
When file1.ly e.g. redefines a builtin command, it shall not change the
behavior of other file compilation:
  lilypond file1.ly file2.ly
shall give the same result as:
  lilypond file1.ly
  lilypond file2.ly
Corollary: a command defined in file1.ly, shall not be accessible from
file2.ly in the "lilypond file1.ly file2.ly" case. No side effect allowed.

2) A user command defined in one included file shall be accessible from
another included file.


Nobody will make your patches available on retvield for you, and it's not a
matter of fighting, but of reading git-cl README.
Using retvield makes your patches both easier to read and to comment. This
is the current policy on this project, please conform. Yesterday, I
anticipated changes that were yet to come (the unification of both macro),
that's why my comments where out of the point of your patch. I feel that
publishing your previous patch on retvield as expected here, by giving a
clearer picture, would have avoided this situation. Your patch was fine.

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


Re: What's the deal with the module system?

2009-11-24 Thread David Kastrup
Nicolas Sceaux  writes:

> Please ignore this case, it's broken. What I had in mind a bit more
> complex, and probably does not really matter.
>
> The two important points to keep in mind are:
>
> 1) user defined commands shall not pollute the internal modules
> When file1.ly e.g. redefines a builtin command, it shall not change the
> behavior of other file compilation:
>   lilypond file1.ly file2.ly
> shall give the same result as:
>   lilypond file1.ly
>   lilypond file2.ly
> Corollary: a command defined in file1.ly, shall not be accessible from 
> file2.ly
> in the "lilypond file1.ly file2.ly" case. No side effect allowed.

I don't see how you can achieve this reliably without redefining all of
the core's *-public commands as well as export.  If you do that,
however, it is trivial to use the same code for *-builtin-* and the user
level equivalents: compile those with a version of the redefined core
commands that can switch its target module for public definitions to the
user "toplevel" but has it set to the system toplevel during execution
of the, well, public scheme files.

*-public commands in modules will also have to be covered, which makes
this approach sort an open-ended task.  However, I think that few
modules actually provide *-public defining commands, so this might sound
worse than it is.  Absolute security will not be possible in this manner
since new guile releases might come with new *-public commands.

But I don't think that security is really not as much a target here as
predictability.

This approach allows the current code of the *-builtin-* defining
commands to be used for the user variants as well.

Doing it the other way round also is a possibility.  In that case,
moving most of markup-init.ly to public scheme files and just
duplicating the
#(let ((toplevel-module (current-module)))
   (set! toplevel-module-define-public!
 (lambda (symbol value)
   (module-define! toplevel-module symbol value)
   (module-export! toplevel-module (list symbol
   (set! toplevel-module-ref
 (lambda (symbol)
   (module-ref toplevel-module symbol

sequence into both markup-init.ly as well as the top of the first loaded
public code scheme file should do the trick.  In this case the
*-toplevel commands will, while loading the system files, actually
define their stuff in global scope.

This offers less "security", but not less than what we currently have,
and more transparency.  However, it will mean that users using *-public
commands will cause permanent effects, possibly unwittingly.

> 2) A user command defined in one included file shall be accessible
> from another included file.

The above approach would give that.  I am not saying that it is the best
possible approach.

-- 
David Kastrup


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


Re: What's the deal with the module system?

2009-11-24 Thread David Kastrup
David Kastrup  writes:

> Nicolas Sceaux  writes:
>
>> Please ignore this case, it's broken. What I had in mind a bit more
>> complex, and probably does not really matter.
>>
>> The two important points to keep in mind are:
>>
>> 1) user defined commands shall not pollute the internal modules
>> When file1.ly e.g. redefines a builtin command, it shall not change the
>> behavior of other file compilation:
>>   lilypond file1.ly file2.ly
>> shall give the same result as:
>>   lilypond file1.ly
>>   lilypond file2.ly
>> Corollary: a command defined in file1.ly, shall not be accessible from 
>> file2.ly
>> in the "lilypond file1.ly file2.ly" case. No side effect allowed.
>
> I don't see how you can achieve this reliably without redefining all of
> the core's *-public commands as well as export.  If you do that,
> however, it is trivial to use the same code for *-builtin-* and the user
> level equivalents: compile those with a version of the redefined core
> commands that can switch its target module for public definitions to the
> user "toplevel" but has it set to the system toplevel during execution
> of the, well, public scheme files.
>
> *-public commands in modules will also have to be covered, which makes
> this approach sort an open-ended task.  However, I think that few
> modules actually provide *-public defining commands, so this might sound
> worse than it is.  Absolute security will not be possible in this manner
> since new guile releases might come with new *-public commands.

Cough, cough.  I actually tried the following:
test1.ly:
#(define-public xxx "Hello")
#(display xxx)
#(export xxx)

test2.ly:
#(display xxx)

Running delivers:

lilypond test1.ly test2.ly
GNU LilyPond 2.13.8
Processing `test1.ly'
Parsing...Hello
test1.ly:0: warning: no \version statement found, please add

\version "2.13.8"

for future compatibility
Processing `test2.ly'
Parsing...
test2.ly:1:1: error: GUILE signaled an error for the expression beginning here
#
 (display xxx)
Unbound variable: xxx
test2.ly:0: warning: no \version statement found, please add

\version "2.13.8"

for future compatibility
error: failed files: "test2.ly"
d...@lola:/tmp$ 

So it would appear that the public defining commands already don't
export not further than toplevel, probably because exports more or less
just "throw" their value upwards to the module having issued the
corresponding "usemodule" but not further.

This is pure speculation on my part.  Whatever the mechanism, it would
appear that the necessary encapsulation for define-public is already in
place.

-- 
David Kastrup



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


Re: Make define-builtin-markup{, -list}-command #:category #:properties keywords (issue160048)

2009-11-24 Thread David Kastrup
carl.d.soren...@gmail.com writes:

> David,
>
> Thank you for posting this on Rietveld.  It was much easier for me to
> review it.
>
> I have one documentation question (see below).
>
> I also have one patch philosophy question: should define-markup also
> have (at least) a :properties keyword added to it?

Goal #1 was to be able to move user-level markup to system markup
unchanged.

This goal actually is not achieved with the current state of the patch
series since it fails for markup definitions without DOC string.

> I think that if it did, then we'd have the possibility of using the
> exact same code and just changing from define-markup to
> define-builtin-markup by only changing the macro name.

After fixing the DOC string issue and exporting
define-builtin-markup-command as define-markup-command, the regression
test seems to work fine (namely, it runs until it crashes on "Unable to
load the map file" which it always does here) and the scoping would
appear to be correct as well.

Which suggests that the apparent main reason for *-builtin-* commands,
the changed toplevel scoping, is not valid, and the scoping works out
well enough without extra complications.

Renaming define-builtin-markup-command to define-markup-command, making
it public and adapting all callers would appear to finish the job,
obviously unifying the syntax.

I have to check that this is indeed the case.

> http://codereview.appspot.com/160048/diff/1/5
> File scm/markup.scm (right):
>
> http://codereview.appspot.com/160048/diff/1/5#newcode74
> scm/markup.scm:74: [ :category category ]
> Does this need to be [ #:category category ] ?

Yes.  Sorry.

-- 
David Kastrup


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


Re: 2.13.8 now?

2009-11-24 Thread Graham Percival
On Tue, Nov 24, 2009 at 09:46:07AM +0100, Francisco Vila wrote:
> 2009/11/23 Graham Percival :
> > Now that 2.13.8 is uploaded:
> 
> http://lilypond.org/install/ still links 2.13.7.

Interesting.  Anybody want to look at the old web/ branch to
figure out why make update-versions isn't working?  The files are
in the download site.

My initial guess is that it's a directory thing, since the
redirects in .htaccess is the only thing that changed since 2.13.7
(I think).

Cheers,
- Graham


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


Re: repeated music

2009-11-24 Thread Alexander Kobel

[from -user]

Francesco Petrogalli wrote:

I have no idea where to find documentation about this programming in
"lilypond-scheme". There is a big list of scheme function in the
documentation, but I can't see any "tutorial" about using it.


Should this section "A.16 Scheme functions" also be moved to the "Extend 
LilyPond" manual, now that the "Interfaces for programmers" section is 
there? At least, there should be a link to the function list in the TOC 
of the Extend manual, and a corresponding link to the Extend manual on 
top of A.16.



Cheers,
Alexander


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


Re: Make define-builtin-markup{,-list}-command #:category #:properties keywords (issue160048)

2009-11-24 Thread dak


http://codereview.appspot.com/160048/diff/1/5
File scm/markup.scm (right):

http://codereview.appspot.com/160048/diff/1/5#newcode74
scm/markup.scm:74: [ :category category ]
On 2009/11/24 11:01:59, Carl wrote:

Does this need to be [ #:category category ] ?


Done.

http://codereview.appspot.com/160048


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


Re: What's the deal with the module system?

2009-11-24 Thread David Kastrup
Han-Wen Nienhuys  writes:

> On Mon, Nov 23, 2009 at 1:21 PM, David Kastrup  wrote:
>
>>>  lilypond a.ly b.ly
>>>
>>> we want to reuse the built-in definitions, without changes effected in
>>> a.ly leaking into the processing of b.ly
>>
>> Wouldn't just putting the built-in definition at public scope accomplish
>> that?
>
> I don't know.  Why don't you try it, and send us a patch if it passes
> the regression tests?

After applying http://codereview.appspot.com/160048> first,
indeed the following diff that throws out all the toplevel scoping
constructs and separate definitions of define-markup-command and
define-markup-list-command passes the regressions tests.  Furthermore,
tests show that the namespace of markups defined in one input file does
not extend into the next input file.

Shrug.

diff --git a/ly/markup-init.ly b/ly/markup-init.ly
index 5749c7b..c678391 100644
--- a/ly/markup-init.ly
+++ b/ly/markup-init.ly
@@ -2,119 +2,3 @@
 
 \version "2.12.0"
 
-%%;; to be define later, in a closure
-#(define-public toplevel-module-define-public! #f)
-#(define-public toplevel-module-ref #f)
-#(let ((toplevel-module (current-module)))
-   (set! toplevel-module-define-public!
- (lambda (symbol value)
-   (module-define! toplevel-module symbol value)
-   (module-export! toplevel-module (list symbol
-   (set! toplevel-module-ref
- (lambda (symbol)
-   (module-ref toplevel-module symbol
-
-#(defmacro-public define-public-toplevel
-   (first-arg . rest)
-  "Define a public variable or function in the toplevel module:
-  (define-public-toplevel variable-name value)
-or:
-  (define-public-toplevel (function-name . args)
-..body..)"
-  (if (symbol? first-arg)
-  ;; (define-public-toplevel symbol value)
-  (let ((symbol first-arg)
-(value (car rest)))
-`(toplevel-module-define-public! ',symbol ,value))
-  ;; (define-public-toplevel (function-name . args) . body)
-  (let ((function-name (car first-arg))
-(arg-list (cdr first-arg))
-(body rest))
-`(toplevel-module-define-public!
-  ',function-name
-  (let ((proc (lambda ,arg-list
-,@body)))
-(set-procedure-property! proc
- 'name
- ',function-name)
-proc)
-
-#(defmacro-public define-markup-command (command-and-args signature . body)
-  "
-* Define a COMMAND-markup function after command-and-args and body,
-register COMMAND-markup and its signature,
-
-* add COMMAND-markup to markup-function-list,
-
-* sets COMMAND-markup markup-signature and markup-keyword object properties,
-
-* define a make-COMMAND-markup function.
-
-Syntax:
-  (define-markup-command (COMMAND layout props arg1 arg2 ...)
- (arg1-type? arg2-type? ...)
-\"documentation string\"
-...command body...)
-or:
-  (define-markup-command COMMAND (arg1-type? arg2-type? ...) function)
-"
-  (let* ((command (if (pair? command-and-args)
-  (car command-and-args)
-  command-and-args))
- (command-name (string->symbol (format #f "~a-markup" command)))
- (make-markup-name (string->symbol (format #f "make-~a-markup" 
command
-`(begin
-   ;; define the COMMAND-markup procedure in toplevel module
-   ,(if (pair? command-and-args)
-;; 1/ (define (COMMAND-markup layout props arg1 arg2 ...)
-;;  ..command body))
-`(define-public-toplevel (,command-name ,@(cdr command-and-args))
-   ,@body)
-;; 2/ (define (COMMAND-markup . args) (apply function args))
-(let ((args (gensym "args"))
-  (command (car body)))
-`(define-public-toplevel (,command-name . ,args)
-   (apply ,command ,args
-   (let ((command-proc (toplevel-module-ref ',command-name)))
- ;; register its command signature
- (set! (markup-command-signature command-proc)
-   (list ,@signature))
- ;; define the make-COMMAND-markup procedure in the toplevel module
- (define-public-toplevel (,make-markup-name . args)
-   (make-markup command-proc
-,(symbol->string make-markup-name)
-(list ,@signature)
-args))
-
-#(defmacro-public define-markup-list-command (command-and-args signature . 
body)
-  "Same as `define-markup-command', but defines a command that, when 
interpreted,
-returns a list of stencils, instead of a single one."
-  (let* ((command (if (pair? command-and-args)
- (car command-and-args)
- command-and-args))
-(command-name (string->symbol (format #f "~a-markup-list" command)))
-(make-markup-name (string->symbol (format #f "make-~a-markup-list" 
command
-`(begin
-   ;; define the COMMAND-markup-l

Re: [PATCH 1/2] scm/define-markup-commands.scm: remove some unnecessary lookups

2009-11-24 Thread David Kastrup
David Kastrup  writes:

> Nicolas Sceaux  writes:
>
>> I'd be insterested to see an implementation of a single
>> `define-markup-command' for builtin and user defined markups, where
>> user defined commands do not pollute the (lily) module, and still are
>> available across file includes.
>>
>> If you can come up with one, fine, I'm not opposed to #:property or
>> #:category keywords. But if that's not possible, then please stop with
>> this macro unification debate. IMHO it's just waisting time, for this
>> is not a problem that you're trying to solve, but at most a little
>> inconvenience.
>
>> PS: *please*, call things by there name, it's "builtin", not
>> "internal".
>
> Wouldn't it be worth it alone to do this change because of not having to
> get annoyed time and again by me confusing the two?
>
> I'll see whether I can cook up a suitable patch.

Done.  The current state of http://codereview.appspot.com/160048>
(Patchset 4) removes *-builtin-* completely and appears to pass all
tests.

-- 
David Kastrup



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


Re: Doc: improve doc on markup command writing (issue157133)

2009-11-24 Thread dak

It would make sense to apply http://codereview.appspot.com/160048>
first and make this patch work on top of that.

There may be cases where a separate property-bind like this is useful in
called routines, and the markup commands from the mentioned patch might
make use of it for implementing #:properties.  However, a separate
property-bind function can't do the job of entering the properties and
their defaults into the command reference.

For this reason, it is probably not a good idea to encourage users to
use a macro like this in markups defined with define-markup-command.
They would need to be rewritten in order to get the properties mentioned
in the command reference.

Since the above-mentioned patch does not provide user-level
documentation, it would make sense to adapt your patch here for
documenting the functionality provided by the above-mentioned patch of
mine.

http://codereview.appspot.com/157133


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


Re: Issue 872 in lilypond: Changes split-page has broken images

2009-11-24 Thread John Mandereau
Le samedi 21 novembre 2009 à 19:17 +, Graham Percival a écrit : 
> Hmm.  Now I'm wondering if I had a half-built doc tree, with the
> remains of Jan's "@node lower-case" stuff.  I cleared out
> Docuemtnation/out-www/, but I didn't think to touch out/xref-maps.

I hope it's not needed to touch them... I'm not much interested by the
answer anyway, as we wish to replace this build system.


> Instead of doing texi2html init files, could you check that the
> translation infrastructure is working?  In particular,
> - we now have web.texi
> - web.texi now goes into web/
> - index.html.in just redirects to web/

Perfetto!


> Could you check this stuff, maybe translate one sentence on half a
> dozen nodes inside Documentation/fr/web/*.itexi for testing, etc
> etc ?

Jan already translate a few sentences in several nodes in French and
Dutch, and while splitted HTML translated docs used to be written as
index_xx.html it works for me now, kudos.

Shall I take over mangling a v2.xx directory in www_post.py?  As this is
only relevant to the web site (offlien docs don't need this), I'd better
not add this complication to the main build system.  www_post.py stuff
will survive from the switch to another build system anyway.


> I don't really know where we stand on waf; I've spent 20 hours so
> far, and I'm not enthusiastic.  But I definitely think we should
> get the stepmake system working again, with translations.  waf
> isn't going to be ready before 2.14, and in any case I want people
> to be translating web.texi ASAP.

It works way better than one week ago; do you think there are some files
in web/ we can already declare as translatable?  There are several
people who report their experience of building docs on the French list,
so in case they want to help with translations we should not limit their
enthusiasm :-)

Best,
John


signature.asc
Description: Ceci est une partie de message numériquement signée
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [PATCH] serious doubts about waf

2009-11-24 Thread John Mandereau
Sorry for the delay, it often takes me a while to catch all traffic on
Lily lists when I'm back from a trip, even a few-days one.

Le jeudi 12 novembre 2009 à 17:54 +, Graham Percival a écrit :
> 1)  if you can't duplicate the problem after checking out
> dev/gperciva, then I'll check a third time to see if there's any
> old version of waf floating around on this machine.

No, I couldn't duplicate.  But, it might be necessary to clear some
cache using distclean, then reconfigure, so you can have a command like

waf-light distclean configure build

Best,
John


signature.asc
Description: Ceci est une partie de message numériquement signée
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Fixing spelling errors in documentation

2009-11-24 Thread Carl Sorensen
John,

It's been brought to my attention that we are using an incorrect spelling
for "ukulele".  We've been using (at least in part of our documentation)
"ukelele".

I've done a git grep for ukelele, and found the misspelling existing in de/
es/ and fr/ notation/fretted-strings.itely.  I'm happy to fix it in all of
those, and I think I should do so.

I have read the CG, and I'm not sure if I should fix the misspelling in
Documentation/po/*.po.

If I do change the .po files, I think that I should allow the translations
meister to do the make *-update work.

Have I got it correct?

Thanks,

Carl



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


Re: [PATCH] serious doubts about waf

2009-11-24 Thread Graham Percival
On Tue, Nov 24, 2009 at 09:42:05PM +0100, John Mandereau wrote:
> Le jeudi 12 novembre 2009 à 17:54 +, Graham Percival a écrit :
> > 1)  if you can't duplicate the problem after checking out
> > dev/gperciva, then I'll check a third time to see if there's any
> > old version of waf floating around on this machine.
> 
> No, I couldn't duplicate.  But, it might be necessary to clear some
> cache using distclean, then reconfigure, so you can have a command like

I clear the cache with rm -rf waf-out

On the 16th, I gave up and fixed this one myself.  However, I
discovered that I couldn't copy files from srcdir into the blddir
without changing their name, which kind-of borks
Documentation/pictures/.  That message is on -devel somewhere.

Waf is dead until at least after 2.14.

Cheers,
- Graham


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


Re: Fixing spelling errors in documentation

2009-11-24 Thread John Mandereau
Hi Carl,
Le mardi 24 novembre 2009 à 14:15 -0700, Carl Sorensen a écrit :
> I've done a git grep for ukelele, and found the misspelling existing in de/
> es/ and fr/ notation/fretted-strings.itely.  I'm happy to fix it in all of
> those, and I think I should do so.

Certainly.


> I have read the CG, and I'm not sure if I should fix the misspelling in
> Documentation/po/*.po.

Sure.  I wouldn't be as affirmative if the change was on po/*.po.


> If I do change the .po files, I think that I should allow the translations
> meister to do the make *-update work.

If you do a blind sed substitution even on .po/.pot files, it will avoid
that po-update marks the translation of the changed string as obsolete —
the spelling is correct in most translated strings.

Thanks,
John


signature.asc
Description: Ceci est une partie de message numériquement signée
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [PATCH] serious doubts about waf

2009-11-24 Thread John Mandereau
Le mardi 24 novembre 2009 à 21:20 +, Graham Percival a écrit :
> On the 16th, I gave up and fixed this one myself.  However, I
> discovered that I couldn't copy files from srcdir into the blddir
> without changing their name, which kind-of borks
> Documentation/pictures/.

I'm quite certain we can avoid copying pictures from outdir to blddir;
however, if more generally we can't transform a file in srcdir to a file
in blddir that has the same name, let's sit down two minutes to see why
we do this.  It's not for making the pictures available to Texinfo
formatters, as a simple -I srcdir (which we already have in current
build system IIRC) would do the job.  For some pictures, we resize them,
but then for clarity we could give a different name to the source.  For
other pictures, IIRC we just symlink them so that they're caught by
mirrortree (a module used by www_post.py that links files into *-root).
Is it worth going on investigating this?  I think so, so I'll have a
look.

Best,
John


signature.asc
Description: Ceci est une partie de message numériquement signée
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: What's the deal with the module system?

2009-11-24 Thread Neil Puttock
2009/11/24 David Kastrup :

> After applying http://codereview.appspot.com/160048> first,
> indeed the following diff that throws out all the toplevel scoping
> constructs and separate definitions of define-markup-command and
> define-markup-list-command passes the regressions tests.  Furthermore,
> tests show that the namespace of markups defined in one input file does
> not extend into the next input file.

As far as I can see, all you've done is effectively revert Nicolas's
code which fixed the memory leaks, so I can't see why it would work.

I've just applied your patch, and as expected, I get the following
errors with nearly every file (using a binary compiled with
--disable-optimising):

programming error: Parsed object should be dead: static
scm_unused_struct* Prob::mark_smob(scm_unused_struct*)
continuing, cross fingers
programming error: Parsed object should be dead: static
scm_unused_struct* Context_def::mark_smob(scm_unused_struct*)
continuing, cross fingers

Furthermore, make check segfaults if I use -j2.

Regards,
Neil


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


Difficulties with `make check'

2009-11-24 Thread Patrick McCarty
Hi,

For the past few months, I have been experiencing strange failures
when checking the regression test suite, and I have just discovered
why.

I recently posted to the ImageMagick forums:

  http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=15098

Even though this solution works for me, it is unclear how this (ugly)
command line option behaves with older versions of ImageMagick that do
not support it.

See the attached patch.  Can someone (or multiple people) try running
the regression test suite with this patch to see if it works for you?

Thanks,
Patrick
>From 396684dc11dcd89f1e5ec2a96ddec4e2852dcb8e Mon Sep 17 00:00:00 2001
From: Patrick McCarty 
Date: Tue, 24 Nov 2009 21:27:34 -0800
Subject: [PATCH] output-distance: Add new flag for `compare'.

Newer versions of ImageMagick seem to be more picky about comparing
images that are not very similar.

I don't know any further details, but this patch fixes `make check' for
me when comparing release/2.13.7-1 with release/2.13.8-1.

I am running ImageMagick 6.5.7-10.
---
 scripts/build/output-distance.py |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/build/output-distance.py b/scripts/build/output-distance.py
index 2b49689..7cada36 100644
--- a/scripts/build/output-distance.py
+++ b/scripts/build/output-distance.py
@@ -87,7 +87,7 @@ def compare_png_images (old, new, dest_dir):
 system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop1.png' % (dims + (old, 
dir)))
 system ('convert -depth 8 -crop %dx%d+0+0 %s %s/crop2.png' % (dims + (new, 
dir)))
 
-system ('compare -depth 8 %(dir)s/crop1.png %(dir)s/crop2.png 
%(dir)s/diff.png' % locals ())
+system ('compare -depth 8 -dissimilarity-threshold 1 %(dir)s/crop1.png 
%(dir)s/crop2.png %(dir)s/diff.png' % locals ())
 
 system ("convert  -depth 8 %(dir)s/diff.png -blur 0x3 -negate -channel 
alpha,blue -type TrueColorMatte -fx 'intensity'%(dir)s/matte.png" % locals 
())
 
-- 
1.6.5.3

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


Re: What's the deal with the module system?

2009-11-24 Thread David Kastrup
Neil Puttock  writes:

> 2009/11/24 David Kastrup :
>
>> After applying http://codereview.appspot.com/160048> first,
>> indeed the following diff that throws out all the toplevel scoping
>> constructs and separate definitions of define-markup-command and
>> define-markup-list-command passes the regressions tests.  Furthermore,
>> tests show that the namespace of markups defined in one input file does
>> not extend into the next input file.
>
> As far as I can see, all you've done is effectively revert Nicolas's
> code which fixed the memory leaks, so I can't see why it would work.

Fixed the memory leaks.  Something new every day.  Why tell me all the
time that the purpose of the code was scoping, then?

Since the code registers properties and functions permanently, sure it
will work as a memory leak between multiple sessions.  I was worrying
about the action of the code.

It is easy enough to turn off this registration for user level code.
That might already do the job.

> I've just applied your patch, and as expected, I get the following
> errors with nearly every file (using a binary compiled with
> --disable-optimising):

I did not use --disable-optimising.

> programming error: Parsed object should be dead: static
> scm_unused_struct* Prob::mark_smob(scm_unused_struct*)
> continuing, cross fingers
> programming error: Parsed object should be dead: static
> scm_unused_struct* Context_def::mark_smob(scm_unused_struct*)
> continuing, cross fingers
>
> Furthermore, make check segfaults if I use -j2.

I have my doubts -j2 is concerned with the patch other than accidently.

Our results are so different that I have my suspicion this might also
depend on the guile version used.  1.8.7 here.

-- 
David Kastrup


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