(define-session ,name ,value)
(export ,name)))
+(define (session-terminate)
+ (if (ly:undead? lilypond-declarations)
+ (for-each
+ (lambda (p) (variable-set! (cadr p) (cddr p)))
+ (ly:get-undead lilypond-declarations))))
+
(define-public (session-initialize thunk)
"Initialize this session. The first session in a LilyPond run is
initialized by calling @var{thunk}, then recording the values of all
"define-grobs.scm"
"define-grob-interfaces.scm"
"define-stencil-commands.scm"
+ "scheme-engravers.scm"
"titling.scm"
"text.scm"
(,fraction? . "fraction, as pair")
(,grob-list? . "list of grobs")
(,index? . "non-negative integer")
- ;; this is built on cheap-list
- (,list-or-symbol? . "list or symbol")
(,markup? . "markup")
(,markup-command-list? . "markup command list")
(,markup-list? . "markup list")
(,string-or-pair? . "string or pair")
(,string-or-music? . "string or music")
(,string-or-symbol? . "string or symbol")
+ (,symbol-list? . "symbol list")
+ (,symbol-list-or-music? . "symbol list or music")
+ (,symbol-list-or-symbol? . "symbol list or symbol")
(,void? . "void")
))
(> (string-length s) 0))
(apply append
(map (lambda (f)
- (string-split (ly:gulp-file f) #\nl))
+ (string-split (string-delete (ly:gulp-file f) #\cr) #\nl))
files)))))
(if (and (number? (ly:get-option 'job-count))
(>= (length files) (ly:get-option 'job-count)))
(mtrace:start-trace (ly:get-option 'trace-memory-frequency)))
(lilypond-file handler x)
(ly:check-expected-warnings)
+ (session-terminate)
(if start-measurements
(dump-profile x start-measurements (profile-measurements)))
(if (ly:get-option 'trace-memory-frequency)