(use-modules (system base target) (ice-9 threads)) (define compile-options '(format unbound-variable arity-mismatch)) (define (file-mtimego file) (string-append (string-drop-right file 4) ".go")) (define (file->module file) (map string->symbol (string-split (string-drop-right file 4) #\/))) (let* ((args (cdr (command-line))) (target (car args)) (files (cdr args))) (for-each (lambda (file) (let ((go (scm->go file))) (unless (and (file-exists? go) (file-mtimemodule file))) (format #t " LOAD ~s~%" module) (resolve-interface module))))) files) (with-target target (lambda () (let ((mutex (make-mutex))) (par-for-each (lambda (file) (let ((go (scm->go file))) (unless (and (file-exists? go) (file-mtime