Syntax-change and tmp-files

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Syntax-change and tmp-files

Thomas Morley-2
Hi,

the following code works up to 2.21.4:

\version "2.18.2"
pts-list = #'(-0.5 0 0.5 0 0 1)
#(define test-stencil
  (ly:make-stencil
    `(polygon ',pts-list 0.1 #t)
    '(-0.5 . 0.5)
    '(0 . 1)))
\markup \stencil #test-stencil

With recent master (2.21.7) I get:

Unsupported SCM value for format: (-0.5 0 0.5 0 0 1)
Converting to `atest-105.pdf'...
warning: `(gs -q -dNODISPLAY -dNOSAFER -dNOPAUSE -dBATCH
-dAutoRotatePages=/None -dPrinted=false /tmp/lilypond-tmp-287200)'
failed (256)
fatal error: failed files: "atest-105.ly"

And two tmp-files are generated (ps and pdf) and _not_ deleted.

With 2.21.7 the correct syntax would be:
pts-list = #'(-0.5 0 0.5 0 0 1)
#(define test-stencil
  (ly:make-stencil
    `(polygon ,pts-list 0.1 #t)
    '(-0.5 . 0.5)
    '(0 . 1)))
\markup \stencil #test-stencil

Note: ',pts-list vs ,pts-list

Is it possible to write a convert-rule? (I needed two hours to track it down)
Furthermore, those tmp-files are going on my nerves. I collected 20 of
them before I found the above mentioned culprit. Any chance to delete
them, if compilation fails?

Cheers,
  Harm

Reply | Threaded
Open this post in threaded view
|

Re: Syntax-change and tmp-files

Thomas Morley-2
Am Sa., 3. Okt. 2020 um 15:37 Uhr schrieb Thomas Morley
<[hidden email]>:

>
> Hi,
>
> the following code works up to 2.21.4:
>
> \version "2.18.2"
> pts-list = #'(-0.5 0 0.5 0 0 1)
> #(define test-stencil
>   (ly:make-stencil
>     `(polygon ',pts-list 0.1 #t)
>     '(-0.5 . 0.5)
>     '(0 . 1)))
> \markup \stencil #test-stencil
>
> With recent master (2.21.7) I get:
>
> Unsupported SCM value for format: (-0.5 0 0.5 0 0 1)
> Converting to `atest-105.pdf'...
> warning: `(gs -q -dNODISPLAY -dNOSAFER -dNOPAUSE -dBATCH
> -dAutoRotatePages=/None -dPrinted=false /tmp/lilypond-tmp-287200)'
> failed (256)
> fatal error: failed files: "atest-105.ly"
>
> And two tmp-files are generated (ps and pdf) and _not_ deleted.
>
> With 2.21.7 the correct syntax would be:
> pts-list = #'(-0.5 0 0.5 0 0 1)
> #(define test-stencil
>   (ly:make-stencil
>     `(polygon ,pts-list 0.1 #t)
>     '(-0.5 . 0.5)
>     '(0 . 1)))
> \markup \stencil #test-stencil
>
> Note: ',pts-list vs ,pts-list
>
> Is it possible to write a convert-rule? (I needed two hours to track it down)
> Furthermore, those tmp-files are going on my nerves. I collected 20 of
> them before I found the above mentioned culprit. Any chance to delete
> them, if compilation fails?
>
> Cheers,
>   Harm

Afaict, the syntax-change happened with

commit 06ba7f0823a14da773391ccf3c10244a54e812d4
Author: Han-Wen Nienhuys <[hidden email]>
Date:   Sun Aug 2 21:47:25 2020 +0200

    Dispatch stencil routines using explicit tables
[...]
    * Stencil expressions are no longer passed through the eval
      function. This means that all inner (quasi)quoting should be
      removed.
[...]

To be clear, I support this change, from my point of view it's now more logical.
Alas, debugging of older code is difficult without a better error
message or a convert-rule...

Cheers,
  Harm