diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-08-20 20:07:57 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-08-20 20:07:57 -0700 |
commit | 607f0d271211e37d96ce7ba50a3f69372c000779 (patch) | |
tree | ff6f9a5220fbe2ae2f82d8675b3e3840a51806a1 /txr.c | |
parent | a38d8cad117770db020c470adc3397da072aab6d (diff) | |
download | txr-607f0d271211e37d96ce7ba50a3f69372c000779.tar.gz txr-607f0d271211e37d96ce7ba50a3f69372c000779.tar.bz2 txr-607f0d271211e37d96ce7ba50a3f69372c000779.zip |
lib: streamline interning slightly.
We get rid of some defaulting and error checks from interning.
This saves a few cycles on startup in the large number of
intern calls that are performed.
* eval.c (eval_init): Wire the intern intrinsic to the new
intern_intrinsic function rather than intern.
* lib.c (intern): Remove package lookup and error check on str
argument.
(intern_intrinsic): New function, which has the package lookup
and error check.
(intern_fallback): Remove package lookup and error check.
* lib.h (intern_intrinsic): Declared.
* txr.c (txr_main): Fix one instance of an intern call that
relies on defaulting of the second argument, by passing
cur_package.
Diffstat (limited to 'txr.c')
-rw-r--r-- | txr.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -636,7 +636,7 @@ int txr_main(int argc, char **argv) val dopt_arg = sub(arg, two, t); cons_bind(var, def, split_str(dopt_arg, lit("="))); val deflist = if2(def, split_str(car(def), lit(","))); - val sym = intern(var, nil); + val sym = intern(var, cur_package); if (rest(deflist)) bindings = cons(cons(sym, deflist), bindings); |