diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-07-21 08:13:18 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-07-21 08:13:18 -0700 |
commit | d4d20af163a97f2af069b2c12c1672b08835d1c2 (patch) | |
tree | d0184cc16eee041d1cea665ab522b7422de3dfca /stdlib | |
parent | 9f87e50086eb4a240e8c879484db0b216897ef03 (diff) | |
download | txr-d4d20af163a97f2af069b2c12c1672b08835d1c2.tar.gz txr-d4d20af163a97f2af069b2c12c1672b08835d1c2.tar.bz2 txr-d4d20af163a97f2af069b2c12c1672b08835d1c2.zip |
compile-file: revise hash bang treatment.
* stdlib/compiler.tl (translate-hash-bang): New function.
(compile-file-conditionally): Use translate-hash-bang to
treat hash bang line.
* txr.1: Revised hash bang treatment by file compiler
documented.
Diffstat (limited to 'stdlib')
-rw-r--r-- | stdlib/compiler.tl | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl index c7ac6009..b82f85a2 100644 --- a/stdlib/compiler.tl +++ b/stdlib/compiler.tl @@ -2316,6 +2316,14 @@ (if (eql sti.gid sto.gid) sgid))))) (chmod out-stream mode))))) +(defun translate-hash-bang (hbline) + (flow hbline + (spl " ") + (subst "--lisp" "--compiled") + (mapcar [iffi (op ends-with "txrlisp") + (opip (trim-right "lisp") (join @1 "vm"))]) + (ap join-with " "))) + (defun compile-file-conditionally (in-path out-path test-fn) (whenlet ((success nil) (perms nil) @@ -2338,11 +2346,9 @@ (with-compilation-unit (iflet ((line (get-line in-stream)) ((starts-with "#!" line))) - (progn - (set line `@line `) - (upd line (regsub #/--lisp[^\-]/ (ret `--compiled@[@1 -1]`))) - (put-line (butlast line) out-stream) - (set perms t)) + (let ((cline (translate-hash-bang line))) + (set perms t) + (put-line cline out-stream)) (seek-stream in-stream 0 :from-start)) (labels ((compile-form (unex-form) (let* ((form (macroexpand unex-form)) |