~ chicken-core (chicken-5) 7faa100a2c28225d87f9b934efe5b5fc86fa67a3
commit 7faa100a2c28225d87f9b934efe5b5fc86fa67a3
Author: Mario Domenech Goulart <Mario.Goulart@bmw.de>
AuthorDate: Tue Sep 17 22:49:03 2024 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Wed Sep 18 01:04:58 2024 +0200
batch-driver.scm: Fix logic to create tempfile
Fix the mess introduced by 8ce5a7bfdddb7a537516a. Only create a
tempfile when stdout is NOT used.
Thanks to siiky for spotting that.
diff --git a/batch-driver.scm b/batch-driver.scm
index 0cd0a9a0..95a41096 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -232,7 +232,8 @@
;; Create a temporary file to receive the C code, so that it
;; can atomically be renamed to the actual output file after
;; the C generation.
- (tmp-outfile (conc outfile ".tmp." (current-process-id) (current-seconds)))
+ (tmp-outfile (and outfile
+ (conc outfile ".tmp." (current-process-id) (current-seconds))))
(opasses (default-optimization-passes))
(time0 #f)
(time-breakdown #f)
@@ -888,15 +889,16 @@
(with-output-to-file emit-link-file (cut pp exts))))
;; Code generation
- (let ((out (if outfile
+ (let ((out (if tmp-outfile
(open-output-file tmp-outfile)
(current-output-port))) )
- (dribble "generating `~A' ..." tmp-outfile)
+ (when tmp-outfile
+ (dribble "generating `~A' ..." tmp-outfile))
(generate-code literals lliterals lambda-table out filename
user-supplied-options dynamic db dbg-info)
(when tmp-outfile
- (close-output-port out))
- (rename-file tmp-outfile outfile #t))
+ (close-output-port out)
+ (rename-file tmp-outfile outfile #t)))
(end-time "code generation")
(when (memq 't debugging-chicken)
(##sys#display-times (##sys#stop-timer)))
Trap