From 71f9e2b1d7bb0058a668c622309e7c8e9f3c4116 Mon Sep 17 00:00:00 2001 From: Andrew Owen Date: Fri, 15 Jan 2021 01:31:23 -0700 Subject: [PATCH 1/4] Add support for a profile.janet Add support for a profile.janet, along with a flag for disabling it's use. --- src/boot/boot.janet | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 05da3566..645efa7f 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -3283,9 +3283,10 @@ (var *debug* false) (var *compile-only* false) - (if-let [jp (getenv-alias "JANET_PATH")] (setdyn :syspath jp)) - (if-let [jp (getenv-alias "JANET_HEADERPATH")] (setdyn :headerpath jp)) - + (when-let [jp (getenv-alias "JANET_PATH")] (setdyn :syspath jp)) + (when-let [jp (getenv-alias "JANET_HEADERPATH")] (setdyn :headerpath jp)) + (when-let [jprofile (getenv-alias "JANET_PROFILE")] (setdyn :profilepath jprofile)) + # Flag handlers (def handlers {"h" (fn [&] @@ -3299,6 +3300,7 @@ -e code : Execute a string of janet -d : Set the debug flag in the REPL -r : Enter the REPL after running all scripts + -R : Disables loading profile.janet when JANET_PROFILE is present -p : Keep on executing if there is a top-level error (persistent) -q : Hide logo (quiet) -k : Compile scripts but do not execute (flycheck) @@ -3332,7 +3334,8 @@ (set *no-file* false) (eval-string (in args (+ i 1))) 2) - "d" (fn [&] (set *debug* true) 1)}) + "d" (fn [&] (set *debug* true) 1) + "R" (fn [&] (setdyn :profilepath nil) 1)}) (defn- dohandler [n i &] (def h (in handlers n)) @@ -3374,6 +3377,9 @@ (file/flush stdout) (file/read stdin :line buf)) (def env (make-env)) + (when-let [profile.janet (dyn :profilepath)] + (def new-env (dofile profile.janet :exit *exit-on-error* :env env)) + (merge-module env new-env "" false)) (if *debug* (put env :debug true)) (def getter (if *raw-stdin* getstdin getline)) (defn getchunk [buf p] From c4a95e9a1ea15a8c14669ebc542939105a7a3c2f Mon Sep 17 00:00:00 2001 From: Andrew Owen Date: Fri, 15 Jan 2021 01:53:14 -0700 Subject: [PATCH 2/4] Update error handling, kill a bikeshed argument --- src/boot/boot.janet | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 645efa7f..f24b700d 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -3283,9 +3283,9 @@ (var *debug* false) (var *compile-only* false) - (when-let [jp (getenv-alias "JANET_PATH")] (setdyn :syspath jp)) - (when-let [jp (getenv-alias "JANET_HEADERPATH")] (setdyn :headerpath jp)) - (when-let [jprofile (getenv-alias "JANET_PROFILE")] (setdyn :profilepath jprofile)) + (if-let [jp (getenv-alias "JANET_PATH")] (setdyn :syspath jp)) + (if-let [jp (getenv-alias "JANET_HEADERPATH")] (setdyn :headerpath jp)) + (if-let [jprofile (getenv-alias "JANET_PROFILE")] (setdyn :profilepath jprofile)) # Flag handlers (def handlers @@ -3378,7 +3378,7 @@ (file/read stdin :line buf)) (def env (make-env)) (when-let [profile.janet (dyn :profilepath)] - (def new-env (dofile profile.janet :exit *exit-on-error* :env env)) + (def new-env (dofile profile.janet :exit true :env env)) (merge-module env new-env "" false)) (if *debug* (put env :debug true)) (def getter (if *raw-stdin* getstdin getline)) From 7f74ff3dd79a773aa4e6deb766b931612eee88a7 Mon Sep 17 00:00:00 2001 From: Andrew Owen Date: Fri, 15 Jan 2021 02:59:17 -0700 Subject: [PATCH 3/4] Restore :source property to keep import* working at REPL --- src/boot/boot.janet | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/boot/boot.janet b/src/boot/boot.janet index f24b700d..3668ee35 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -3378,8 +3378,10 @@ (file/read stdin :line buf)) (def env (make-env)) (when-let [profile.janet (dyn :profilepath)] - (def new-env (dofile profile.janet :exit true :env env)) - (merge-module env new-env "" false)) + (def src (env :source)) + (def new-env (dofile profile.janet :exit true :source "profile.janet")) + (merge-module env new-env "" false) + (put env :source src)) (if *debug* (put env :debug true)) (def getter (if *raw-stdin* getstdin getline)) (defn getchunk [buf p] From c6aa5365900a09b88b30708dad8a20fcb9a0fa30 Mon Sep 17 00:00:00 2001 From: Andrew Owen Date: Sat, 16 Jan 2021 12:47:50 -0700 Subject: [PATCH 4/4] Clean up env dance --- src/boot/boot.janet | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/boot/boot.janet b/src/boot/boot.janet index 3668ee35..0819bdb0 100644 --- a/src/boot/boot.janet +++ b/src/boot/boot.janet @@ -3378,10 +3378,8 @@ (file/read stdin :line buf)) (def env (make-env)) (when-let [profile.janet (dyn :profilepath)] - (def src (env :source)) - (def new-env (dofile profile.janet :exit true :source "profile.janet")) - (merge-module env new-env "" false) - (put env :source src)) + (def new-env (dofile profile.janet :exit true)) + (merge-module env new-env "" false)) (if *debug* (put env :debug true)) (def getter (if *raw-stdin* getstdin getline)) (defn getchunk [buf p]