X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Flily.scm;h=17c8d1776b2a2d436aa16798115f392170ea13c7;hb=54b02666750062788185bd3f99e644d621e348c2;hp=10573e29a79a47bd1a04266a7b2560a7ec2b0d68;hpb=55ac733b69643a6bc6a83b706c65cb56efd388ef;p=lilypond.git diff --git a/scm/lily.scm b/scm/lily.scm index 10573e29a7..17c8d1776b 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -28,7 +28,6 @@ (defmacro-public _i (x) x) (read-enable 'positions) -(debug-enable 'debug) (define-public PLATFORM (string->symbol @@ -214,13 +213,23 @@ messages into errors.") (scm coverage)) (define-public _ gettext) -;;; TODO: -;; There are new modules defined in Guile V2.0 which we need to use, e.g. -;; the modules and scheme files loaded by lily.scm use currying. -;; In Guile V2 this needs (ice-9 curried-definitions) which is not -;; present in Guile V1.8 +;;; There are new modules defined in Guile V2.0 which we need to use. ;; -;; TODO add in modules for V1.8,7 deprecated in V2.0 and integrated +;; Modules and scheme files loaded by lily.scm use currying +;; in Guile V2 this needs a module which is not present in Guile V1.8 +;; + +(cond + ((guile-v2) + (if (ly:get-option 'verbose) + (ly:message (_ "Using (ice-9 curried-definitions) module\n"))) + (use-modules (ice-9 curried-definitions))) + (else + (if (ly:get-option 'verbose) + (ly:message + (_ "Guile 1.8\n"))))) + +;; TODO add in modules for V1.8.7 deprecated in V2.0 and integrated ;; into Guile base code, like (ice-9 syncase). ;; @@ -228,7 +237,7 @@ messages into errors.") format) (define-public (ergonomic-simple-format dest . rest) - "Like ice-9 format, but without the memory consumption." + "Like ice-9's @code{format}, but without the memory consumption." (if (string? dest) (apply simple-format (cons #f (cons dest rest))) (apply simple-format (cons dest rest)))) @@ -258,7 +267,6 @@ messages into errors.") (ly:get-option 'trace-scheme-coverage)) (begin (ly:set-option 'protected-scheme-parsing #f) - (debug-enable 'debug) (debug-enable 'backtrace) (read-enable 'positions))) @@ -280,7 +288,7 @@ messages into errors.") (ly:progress "[~A" file-name)) (if (not file-name) (ly:error (_ "cannot find: ~A") x)) - (primitive-load file-name) + (primitive-load-path file-name) ;; to support Guile V2 autocompile (if (ly:get-option 'verbose) (ly:progress "]\n")))) @@ -403,18 +411,22 @@ LilyPond safe mode. The syntax is the same as `define*-public'." "chord-generic-names.scm" "stencil.scm" "markup.scm" + "modal-transforms.scm" "music-functions.scm" "part-combiner.scm" "autochange.scm" "define-music-properties.scm" "time-signature-settings.scm" "auto-beam.scm" - "chord-name.scm" "bezier-tools.scm" "parser-ly-from-scheme.scm" "ly-syntax-constructors.scm" "define-context-properties.scm" + ;; guile 1.9 wants markups defined before referenced + "define-markup-commands.scm" + + "chord-name.scm" "translation-functions.scm" "script.scm" "midi.scm" @@ -431,7 +443,6 @@ LilyPond safe mode. The syntax is the same as `define*-public'." "define-woodwind-diagrams.scm" "display-woodwind-diagrams.scm" "predefined-fretboards.scm" - "define-markup-commands.scm" "define-grob-properties.scm" "define-grobs.scm" "define-grob-interfaces.scm" @@ -574,7 +585,7 @@ LilyPond safe mode. The syntax is the same as `define*-public'." (assoc-get 'total-cells-allocated stats 0)))) (define (dump-profile base last this) - (let* ((outname (format "~a.profile" (dir-basename base ".ly"))) + (let* ((outname (format #f "~a.profile" (dir-basename base ".ly"))) (diff (map (lambda (y) (apply - y)) (zip this last)))) (ly:progress "\nWriting timing to ~a..." outname) (format (open-file outname "w") @@ -611,18 +622,15 @@ LilyPond safe mode. The syntax is the same as `define*-public'." ".scm")) (outfile (open-file out-file-name "w"))) (set! gc-dumping #t) - (display (format "Dumping GC statistics ~a...\n" out-file-name)) - (display (map (lambda (y) - (let ((x (car y)) - (c (cdr y))) - (display - (format "~a (~a) = ~a\n" (object-address x) c x) - outfile))) - (filter - (lambda (x) - (not (symbol? (car x)))) - protects)) - outfile) + (format #t "Dumping GC statistics ~a...\n" out-file-name) + (for-each (lambda (y) + (let ((x (car y)) + (c (cdr y))) + (format outfile "~a (~a) = ~a\n" (object-address x) c x))) + (filter + (lambda (x) + (not (symbol? (car x)))) + protects)) (format outfile "\nprotected symbols: ~a\n" (apply + (map (lambda (obj-count) (if (symbol? (car obj-count)) @@ -648,13 +656,10 @@ LilyPond safe mode. The syntax is the same as `define*-public'." (newline outfile) (let* ((stats (gc-stats))) (for-each (lambda (sym) - (display - (format "~a ~a ~a\n" - gc-protect-stat-count - sym - (assoc-get sym stats "?")) - - outfile)) + (format outfile "~a ~a ~a\n" + gc-protect-stat-count + sym + (assoc-get sym stats "?"))) '(protected-objects bytes-malloced cell-heap-size))) (set! gc-dumping #f) (close-port outfile))) @@ -675,7 +680,7 @@ LilyPond safe mode. The syntax is the same as `define*-public'." (string-match "^VmData:[ \t]*([0-9]*) kB" l)) lines))) (mem (string->number (match:substring (car interesting) 1)))) - (display (format "VMDATA: ~a\n" mem)) + (format #t "VMDATA: ~a\n" mem) (display (gc-stats)) (if (> mem 100000) (begin (dump-gc-protects) @@ -741,7 +746,7 @@ PIDs or the number of the process." (ly:set-option 'log-file "lilypond-multi-run")) (if (number? joblist) (begin (ly:set-option - 'log-file (format "~a-~a" + 'log-file (format #f "~a-~a" (ly:get-option 'log-file) joblist)) (set! files (vector-ref split-todo joblist))) (begin (ly:progress "\nForking into jobs: ~a\n" joblist) @@ -757,7 +762,7 @@ PIDs or the number of the process." (lambda (x) (let* ((job (car x)) (state (cdr x)) - (logfile (format "~a-~a.log" + (logfile (format #f "~a-~a.log" (ly:get-option 'log-file) job)) (log (ly:gulp-file logfile)) (len (string-length log)) @@ -765,7 +770,7 @@ PIDs or the number of the process." (if (status:term-sig state) (ly:message "\n\n~a\n" - (format (_ "job ~a terminated with signal: ~a") + (format #f (_ "job ~a terminated with signal: ~a") job (status:term-sig state))) (ly:message (_ "logfile ~a (exit ~a):\n~a") @@ -783,7 +788,7 @@ PIDs or the number of the process." (ly:exit 1 #f)))))) (if (string-or-symbol? (ly:get-option 'log-file)) - (ly:stderr-redirect (format "~a.log" (ly:get-option 'log-file)) "w")) + (ly:stderr-redirect (format #f "~a.log" (ly:get-option 'log-file)) "w")) (let ((failed (lilypond-all files))) (if (ly:get-option 'trace-scheme-coverage) (begin @@ -802,7 +807,7 @@ PIDs or the number of the process." (ping-log (if separate-logs (open-file (if (string-or-symbol? (ly:get-option 'log-file)) - (format "~a.log" (ly:get-option 'log-file)) + (format #f "~a.log" (ly:get-option 'log-file)) "/dev/stderr") "a") #f)) (do-measurements (ly:get-option 'dump-profile)) (handler (lambda (key failed-file) @@ -816,7 +821,7 @@ PIDs or the number of the process." (base (dir-basename x ".ly")) (all-settings (ly:all-options))) (if separate-logs - (ly:stderr-redirect (format "~a.log" base) "w")) + (ly:stderr-redirect (format #f "~a.log" base) "w")) (if ping-log (format ping-log "Processing ~a\n" base)) (if (ly:get-option 'trace-memory-frequency)