lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: T1247 - Conditionally do (use-modules (ice-9 curried-definitions)) i


From: Ian Hulin
Subject: Re: T1247 - Conditionally do (use-modules (ice-9 curried-definitions)) if running with Guile V2, (issue2219044)
Date: Thu, 21 Oct 2010 21:11:52 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11) Gecko/20101013 Lightning/1.0b3pre Thunderbird/3.1.5

Hi Patrick,


On 21/10/10 01:12, address@hidden wrote:
> Hi Ian,
>
> I just tested your patch.
>
> In addition to the small tweak that is needed (see my comment below), it
> seems that the `(use-modules (ice-9 curried-definitions))' statement
> does not carry over to display-lily.scm.  I am a bit puzzled by this.
>
> This is the error message, in context:
>
> ;;; compiling
> /home/pnorcks/usr/share/lilypond/2.13.37/scm/music-functions.scm
> ;;; compiling
> /home/pnorcks/usr/share/lilypond/2.13.37/scm/display-lily.scm
> ;;; WARNING: compilation of
> /home/pnorcks/usr/share/lilypond/2.13.37/scm/display-lily.scm failed:
> ;;; key syntax-error, throw args (macroexpand "~a in ~a" ("source
> expression failed to match any pattern" (define
> ((make-music-type-predicate-aux mtypes) expr) (if (null? mtypes) #f (or
> (eqv? (car mtypes) (ly:music-property expr (quote name)))
> ((make-music-type-predicate-aux (cdr mtypes)) expr))))) #f)
> ;;; WARNING: compilation of
> /home/pnorcks/usr/share/lilypond/2.13.37/scm/music-functions.scm failed:
> ;;; key wrong-type-arg, throw args (#f "Wrong type to apply: ~S" (#f)
> (#f))
>
>
> Fortunately, it seems that the Scheme interpreter in Guile 1.9 is used
> as a fallback when compilation fails, since this doesn't interpret the
> make process.
>
> Can you reproduce this with Guile 1.9.13?
>

Rats!  I had a patched version of display-lily.scm with this as the star
of the module on my VM with guile 1.9 installed:

(define-module (scm display-lily)
  #:use-module (ice-9 optargs)
  #:use-module (ice-9 format)
  #:use-module (ice-9 regex)
  #:use-module (ice-9 pretty-print)
  #:use-module (srfi srfi-1)
  #:use-module (srfi srfi-13)
  #:use-module (srfi srfi-39)
  #:use-module (lily)
  #:use-syntax (srfi srfi-39)
  #:use-syntax (ice-9 optargs))

;;; (ice-9 curried-definitions) does not exist in Guile V1.8,7
;;;   TODO change this to
;;;   #:use-module (ice-9 curried-definitions)
;;;   once Guile V1.8 support is dropped so it's consistent

(if (string>? (version) "1.9.10")
    (use-modules (ice-9 curried-definitions)))

I'd obviously got to this bit and forgot to copy it back to my main
machine's environment and retest before my recent dose of flu. 

> Thanks,
> Patrick
>
>
> http://codereview.appspot.com/2219044/diff/15001/scm/lily.scm
> File scm/lily.scm (right):
>
> http://codereview.appspot.com/2219044/diff/15001/scm/lily.scm#newcode227
> scm/lily.scm:227: (use-modules (ice-9 curried-definitions))))
> In this section, the parenthesis nesting needs some adjustment.
>
> It should be
>
>   ((guile-v2)
>    (if (ly:get-option 'verbose)
>        (ly:message  (_ "Using (ice-9 curried-definitions) module\n")))
>    (use-modules (ice-9 curried-definitions)))
>
> http://codereview.appspot.com/2219044/
Nice catch, ta.

Cheers,

Ian




reply via email to

[Prev in Thread] Current Thread [Next in Thread]