summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2018-04-05 22:53:59 -0700
committerKaz Kylheku <kaz@kylheku.com>2018-04-05 22:53:59 -0700
commit1a18cf60f6f675fc6e0508cae87c4990706046e8 (patch)
tree6ef033de3ca830ac27fd4fdc46ad7f908ac197a6
parent0dc63a9258e21d09783f02b89e9b1ab1abbee7eb (diff)
downloadtxr-1a18cf60f6f675fc6e0508cae87c4990706046e8.tar.gz
txr-1a18cf60f6f675fc6e0508cae87c4990706046e8.tar.bz2
txr-1a18cf60f6f675fc6e0508cae87c4990706046e8.zip
lib: get rid of preprocessor macros for packages.
The identifiers user_package, system_package and keyword_package are preprocessor symbols that expand to other preprocessor symbols for no good reason. Time to get rid of this. * lib.c (system_package_var, keyword_package_var, user_package_var): Variables renamed to system_package, keyword_package and user_package. (symbol_package, keywordp, obj_init): Fix variable references to follow rename. * lib.h (keyword_package, user_package, system_package): Macros removed. (system_package_var, keyword_package_var, user_package_var): Variables renamed. * eval.c (eval_init): Fix variable references to follow rename. * parser.y (sym_helper): Likewise.
-rw-r--r--eval.c17
-rw-r--r--lib.c10
-rw-r--r--lib.h5
-rw-r--r--parser.y2
4 files changed, 14 insertions, 20 deletions
diff --git a/eval.c b/eval.c
index 0db5d77b..fb310f44 100644
--- a/eval.c
+++ b/eval.c
@@ -6439,24 +6439,21 @@ void eval_init(void)
reg_fun(intern(lit("fmt-flex"), system_package), func_n2v(fmt_flex));
reg_fun(intern(lit("fmt-join"), system_package), func_n0v(fmt_join));
- reg_varl(user_package_s = intern(lit("user-package"), user_package_var),
- user_package_var);
- reg_varl(system_package_s = intern(lit("system-package"), user_package_var),
- system_package_var);
- reg_varl(keyword_package_s = intern(lit("keyword-package"), user_package_var),
- keyword_package_var);
+ reg_varl(user_package_s = intern(lit("user-package"), user_package), user_package);
+ reg_varl(system_package_s = intern(lit("system-package"), user_package), system_package);
+ reg_varl(keyword_package_s = intern(lit("keyword-package"), user_package), keyword_package);
if (opt_compat && opt_compat <= 156) {
- reg_varl(intern(lit("*user-package*"), user_package), user_package_var);
- reg_varl(intern(lit("*system-package*"), user_package), system_package_var);
- reg_varl(intern(lit("*keyword-package*"), user_package), keyword_package_var);
+ reg_varl(intern(lit("*user-package*"), user_package), user_package);
+ reg_varl(intern(lit("*system-package*"), user_package), system_package);
+ reg_varl(intern(lit("*keyword-package*"), user_package), keyword_package);
}
reg_fun(intern(lit("make-sym"), user_package), func_n1(make_sym));
reg_fun(intern(lit("gensym"), user_package), func_n1o(gensym, 0));
reg_var(gensym_counter_s = intern(lit("*gensym-counter*"), user_package), zero);
reg_var(package_alist_s = intern(lit("*package-alist*"), user_package), packages);
- reg_var(package_s = intern(lit("*package*"), user_package), user_package_var);
+ reg_var(package_s = intern(lit("*package*"), user_package), user_package);
reg_fun(intern(lit("make-package"), user_package), func_n1(make_package));
reg_fun(intern(lit("find-package"), user_package), func_n1(find_package));
reg_fun(intern(lit("delete-package"), user_package), func_n1(delete_package));
diff --git a/lib.c b/lib.c
index f2a62d11..e45cdafe 100644
--- a/lib.c
+++ b/lib.c
@@ -83,7 +83,7 @@ int async_sig_enabled = 0;
val packages;
-val system_package_var, keyword_package_var, user_package_var;
+val system_package, keyword_package, user_package;
val package_alist_s;
val package_s, system_package_s, keyword_package_s, user_package_s;
@@ -5117,7 +5117,7 @@ static void symbol_setname(val sym, val name)
val symbol_package(val sym)
{
if (sym == nil)
- return user_package_var;
+ return user_package;
type_check(sym, SYM);
return sym->s.package;
}
@@ -5635,7 +5635,7 @@ val symbolp(val sym)
val keywordp(val sym)
{
- return tnil(sym && symbolp(sym) && sym->s.package == keyword_package_var);
+ return tnil(sym && symbolp(sym) && sym->s.package == keyword_package);
}
val get_current_package(void)
@@ -10664,8 +10664,8 @@ static void obj_init(void)
* symbols.
*/
- protect(&packages, &system_package_var, &keyword_package_var,
- &user_package_var, &null_string, &nil_string,
+ protect(&packages, &system_package, &keyword_package,
+ &user_package, &null_string, &nil_string,
&null_list, &equal_f, &eq_f, &eql_f,
&car_f, &cdr_f, &null_f, &list_f,
&identity_f, &less_f, &greater_f, &prog_string, &env_list,
diff --git a/lib.h b/lib.h
index b473b4dd..3f63acfe 100644
--- a/lib.h
+++ b/lib.h
@@ -441,13 +441,10 @@ INLINE val chr(wchar_t ch)
#define lit(strlit) lit_noex(strlit)
-#define keyword_package keyword_package_var
-#define user_package user_package_var
-#define system_package system_package_var
#define cur_package (get_current_package())
#define cur_package_alist_loc (get_current_package_alist_loc())
-extern val packages, system_package_var, keyword_package_var, user_package_var;
+extern val packages, system_package, keyword_package, user_package;
extern val package_alist_s;
extern val package_s, keyword_package_s, system_package_s, user_package_s;
extern val null_s, t, cons_s, str_s, chr_s, fixnum_sl;
diff --git a/parser.y b/parser.y
index 421f8a1d..3e0be699 100644
--- a/parser.y
+++ b/parser.y
@@ -1343,7 +1343,7 @@ static val sym_helper(parser_t *parser, wchar_t *lexeme, val meta_allowed)
val sym_name = string(colon + 1);
scrub_scanner(parser->scanner, SYMTOK, tokfree);
free(tokfree);
- sym = intern(sym_name, keyword_package_var);
+ sym = intern(sym_name, keyword_package);
} else if (colon != 0) {
val pkg_name = string(lexeme);
val sym_name = string(colon + 1);