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 <hanwenn@gmail.com>
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...