Use a separate thread to emit the C file

This commit is contained in:
Justin Ethier 2021-08-16 22:22:04 -04:00
parent 08c4e8f2e6
commit 50631b8bb5

View file

@ -21,7 +21,8 @@
(scheme cyclone primitives) (scheme cyclone primitives)
(scheme cyclone transforms) (scheme cyclone transforms)
(scheme cyclone cps-optimizations) (scheme cyclone cps-optimizations)
(scheme cyclone libraries)) (scheme cyclone libraries)
(srfi 18))
(define *fe:batch-compile* #t) ;; Batch compilation. TODO: default to false or true?? (define *fe:batch-compile* #t) ;; Batch compilation. TODO: default to false or true??
(define *optimization-level* 2) ;; Default level (define *optimization-level* 2) ;; Default level
@ -1125,10 +1126,13 @@ Debug options:
(cdr err)) (cdr err))
(newline) (newline)
(exit 1))) (exit 1)))
(run-compiler non-opts append-dirs prepend-dirs) (let ((t (thread-start!
(run-external-compiler non-opts compile? append-dirs prepend-dirs (make-thread (lambda () (run-compiler non-opts append-dirs prepend-dirs))))))
(thread-join! t)
(run-external-compiler
non-opts compile? append-dirs prepend-dirs
cc-prog cc-exec cc-lib cc-so cc-prog cc-exec cc-lib cc-so
cc-opts cc-linker-opts cc-linker-extra-objects) cc-opts cc-linker-opts cc-linker-extra-objects))
)))) ))))