1
0
mirror of https://github.com/janet-lang/janet synced 2024-11-25 01:37:19 +00:00

Deprecate process/args and add use macro.

Use is a shorthand for (import module :prefix "").
process/args has been replaced by (dyn :args) at
the top level.
This commit is contained in:
Calvin Rose 2019-07-20 16:57:07 -05:00
parent 0d3986abbb
commit a0e98b9aa8
5 changed files with 27 additions and 23 deletions

View File

@ -79,7 +79,7 @@ Keys are:
"clear-cache" cook/clear-cache "clear-cache" cook/clear-cache
"uninstall" uninstall}) "uninstall" uninstall})
(def args (tuple/slice process/args 2)) (def args (tuple/slice (dyn :args) 2))
(def len (length args)) (def len (length args))
(var i 0) (var i 0)

View File

@ -50,7 +50,7 @@ int main(int argc, const char **argv) {
JanetArray *args = janet_array(argc); JanetArray *args = janet_array(argc);
for (int i = 0; i < argc; i++) for (int i = 0; i < argc; i++)
janet_array_push(args, janet_cstringv(argv[i])); janet_array_push(args, janet_cstringv(argv[i]));
janet_def(env, "process/args", janet_wrap_array(args), "Command line arguments."); janet_def(env, "boot/args", janet_wrap_array(args), "Command line arguments.");
/* Add in options from janetconf.h so boot.janet can configure the image as needed. */ /* Add in options from janetconf.h so boot.janet can configure the image as needed. */
JanetTable *opts = janet_table(0); JanetTable *opts = janet_table(0);
@ -60,7 +60,7 @@ int main(int argc, const char **argv) {
#ifdef JANET_NO_SOURCEMAPS #ifdef JANET_NO_SOURCEMAPS
janet_table_put(opts, janet_ckeywordv("no-sourcemaps"), janet_wrap_true()); janet_table_put(opts, janet_ckeywordv("no-sourcemaps"), janet_wrap_true());
#endif #endif
janet_def(env, "process/config", janet_wrap_table(opts), "Boot options"); janet_def(env, "boot/config", janet_wrap_table(opts), "Boot options");
/* Run bootstrap script to generate core image */ /* Run bootstrap script to generate core image */
const char *boot_file; const char *boot_file;

View File

@ -1433,10 +1433,10 @@
### ###
### ###
# Get process options # Get boot options
(def- process/opts @{}) (def- boot/opts @{})
(each [k v] (partition 2 (tuple/slice process/args 2)) (each [k v] (partition 2 (tuple/slice boot/args 2))
(put process/opts k v)) (put boot/opts k v))
(defn make-env (defn make-env
"Create a new environment table. The new environment "Create a new environment table. The new environment
@ -1624,8 +1624,8 @@
[":sys:/:all:/init.janet" :source not-check-.] [":sys:/:all:/init.janet" :source not-check-.]
[(string ":sys:/:all:" nati) :native not-check-.]]) [(string ":sys:/:all:" nati) :native not-check-.]])
(setdyn :syspath (process/opts "JANET_PATH")) (setdyn :syspath (boot/opts "JANET_PATH"))
(setdyn :headerpath (process/opts "JANET_HEADERPATH")) (setdyn :headerpath (boot/opts "JANET_HEADERPATH"))
# Version of fexists that works even with a reduced OS # Version of fexists that works even with a reduced OS
(if-let [has-stat (_env 'os/stat)] (if-let [has-stat (_env 'os/stat)]
@ -1853,7 +1853,7 @@ _fiber is bound to the suspended fiber
(env-walk keyword? env)) (env-walk keyword? env))
# Clean up some extra defs # Clean up some extra defs
(put _env 'process/opts nil) (put _env 'boot/opts nil)
(put _env 'env-walk nil) (put _env 'env-walk nil)
(put _env '_env nil) (put _env '_env nil)
@ -1880,13 +1880,14 @@ _fiber is bound to the suspended fiber
(loop [[k v] :pairs env (loop [[k v] :pairs env
:when (symbol? k)] :when (symbol? k)]
(def flat (proto-flatten @{} v)) (def flat (proto-flatten @{} v))
(when (process/config :no-docstrings) (when (boot/config :no-docstrings)
(put flat :doc nil)) (put flat :doc nil))
(when (process/config :no-sourcemaps) (when (boot/config :no-sourcemaps)
(put flat :source-map nil)) (put flat :source-map nil))
(put env k flat)) (put env k flat))
(put env 'process/config nil) (put env 'boot/config nil)
(put env 'boot/args nil)
(def image (let [env-pairs (pairs (env-lookup env)) (def image (let [env-pairs (pairs (env-lookup env))
essential-pairs (filter (fn [[k v]] (or (cfunction? v) (abstract? v))) env-pairs) essential-pairs (filter (fn [[k v]] (or (cfunction? v) (abstract? v))) env-pairs)
lookup (table ;(mapcat identity essential-pairs)) lookup (table ;(mapcat identity essential-pairs))
@ -1897,7 +1898,7 @@ _fiber is bound to the suspended fiber
# can be compiled and linked statically into the main janet library # can be compiled and linked statically into the main janet library
# and example client. # and example client.
(def chunks (string/bytes image)) (def chunks (string/bytes image))
(def image-file (file/open (process/args 1) :wb)) (def image-file (file/open (boot/args 1) :wb))
(file/write image-file (file/write image-file
"#ifndef JANET_AMALG\n" "#ifndef JANET_AMALG\n"
"#include <janet.h>\n" "#include <janet.h>\n"

View File

@ -1,5 +1,7 @@
# Copyright 2017-2019 (C) Calvin Rose # Copyright 2017-2019 (C) Calvin Rose
(def process/args "Deprecated. use '(dyn :args)' at script entry instead for process argument array."
(dyn :args))
(do (do
(var *should-repl* false) (var *should-repl* false)
@ -13,11 +15,12 @@
(if-let [jp (os/getenv "JANET_PATH")] (setdyn :syspath jp)) (if-let [jp (os/getenv "JANET_PATH")] (setdyn :syspath jp))
(if-let [jp (os/getenv "JANET_HEADERPATH")] (setdyn :headerpath jp)) (if-let [jp (os/getenv "JANET_HEADERPATH")] (setdyn :headerpath jp))
(def args (dyn :args))
# Flag handlers # Flag handlers
(def handlers :private (def handlers :private
{"h" (fn [&] {"h" (fn [&]
(print "usage: " (get process/args 0) " [options] script args...") (print "usage: " (get args 0) " [options] script args...")
(print (print
`Options are: `Options are:
-h : Show this help -h : Show this help
@ -42,20 +45,20 @@
"q" (fn [&] (set *quiet* true) 1) "q" (fn [&] (set *quiet* true) 1)
"k" (fn [&] (set *compile-only* true) (set *exit-on-error* false) 1) "k" (fn [&] (set *compile-only* true) (set *exit-on-error* false) 1)
"n" (fn [&] (set *colorize* false) 1) "n" (fn [&] (set *colorize* false) 1)
"m" (fn [i &] (setdyn :syspath (get process/args (+ i 1))) 2) "m" (fn [i &] (setdyn :syspath (get args (+ i 1))) 2)
"c" (fn [i &] "c" (fn [i &]
(def e (dofile (get process/args (+ i 1)))) (def e (dofile (get args (+ i 1))))
(spit (get process/args (+ i 2)) (make-image e)) (spit (get args (+ i 2)) (make-image e))
(set *no-file* false) (set *no-file* false)
3) 3)
"-" (fn [&] (set *handleopts* false) 1) "-" (fn [&] (set *handleopts* false) 1)
"l" (fn [i &] "l" (fn [i &]
(import* (get process/args (+ i 1)) (import* (get args (+ i 1))
:prefix "" :exit *exit-on-error*) :prefix "" :exit *exit-on-error*)
2) 2)
"e" (fn [i &] "e" (fn [i &]
(set *no-file* false) (set *no-file* false)
(eval-string (get process/args (+ i 1))) (eval-string (get args (+ i 1)))
2)}) 2)})
(defn- dohandler [n i &] (defn- dohandler [n i &]
@ -64,9 +67,9 @@
# Process arguments # Process arguments
(var i 1) (var i 1)
(def lenargs (length process/args)) (def lenargs (length args))
(while (< i lenargs) (while (< i lenargs)
(def arg (get process/args i)) (def arg (get args i))
(if (and *handleopts* (= "-" (string/slice arg 0 1))) (if (and *handleopts* (= "-" (string/slice arg 0 1)))
(+= i (dohandler (string/slice arg 1 2) i)) (+= i (dohandler (string/slice arg 1 2) i))
(do (do

View File

@ -63,7 +63,7 @@ int main(int argc, char **argv) {
args = janet_array(argc); args = janet_array(argc);
for (i = 0; i < argc; i++) for (i = 0; i < argc; i++)
janet_array_push(args, janet_cstringv(argv[i])); janet_array_push(args, janet_cstringv(argv[i]));
janet_def(env, "process/args", janet_wrap_array(args), "Command line arguments."); janet_table_put(env, janet_ckeywordv("args"), janet_wrap_array(args));
/* Run startup script */ /* Run startup script */
status = janet_dobytes(env, janet_gen_init, janet_gen_init_size, "init.janet", NULL); status = janet_dobytes(env, janet_gen_init, janet_gen_init_size, "init.janet", NULL);