Skip to content

Commit 4f79ca8

Browse files
committed
Wrap all flisp global states
1 parent 1e7e967 commit 4f79ca8

14 files changed

+1483
-1245
lines changed

src/ast.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ value_t fl_invoke_julia_macro(value_t *args, uint32_t nargs)
108108
return scmresult;
109109
}
110110

111-
static builtinspec_t julia_flisp_ast_ext[] = {
111+
static const builtinspec_t julia_flisp_ast_ext[] = {
112112
{ "defined-julia-global", fl_defined_julia_global },
113113
{ "invoke-julia-macro", fl_invoke_julia_macro },
114114
{ "current-julia-module", fl_current_julia_module },
@@ -128,8 +128,7 @@ void jl_init_frontend(void)
128128

129129
fl_applyn(0, symbol_value(symbol("__init_globals")));
130130

131-
jvtype = define_opaque_type(symbol("julia_value"), sizeof(void*),
132-
NULL, NULL);
131+
jvtype = define_opaque_type(fl_jl_sym, sizeof(void*), NULL, NULL);
133132

134133
assign_global_builtins(julia_flisp_ast_ext);
135134
true_sym = symbol("true");
@@ -390,7 +389,7 @@ static jl_value_t *scm_to_julia_(value_t e, int eo)
390389
jl_error("malformed tree");
391390
}
392391
}
393-
if (iscprim(e) && cp_class((cprim_t*)ptr(e))==wchartype) {
392+
if (iscprim(e) && cp_class((cprim_t*)ptr(e)) == fl_wchartype) {
394393
jl_value_t *wc =
395394
jl_box32(jl_char_type, *(int32_t*)cp_data((cprim_t*)ptr(e)));
396395
return wc;
@@ -427,7 +426,7 @@ static value_t julia_to_scm(jl_value_t *v)
427426
static void array_to_list(jl_array_t *a, value_t *pv)
428427
{
429428
if (jl_array_len(a) > 300000)
430-
lerror(OutOfMemoryError, "expression too large");
429+
lerror(fl_OutOfMemoryError, "expression too large");
431430
value_t temp;
432431
for(long i=jl_array_len(a)-1; i >= 0; i--) {
433432
*pv = fl_cons(FL_NIL, *pv);

src/flisp/builtins.c

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,9 @@ static value_t fl_length(value_t *args, u_int32_t nargs)
9797
}
9898
else if (iscprim(a)) {
9999
cv = (cvalue_t*)ptr(a);
100-
if (cp_class(cv) == bytetype)
100+
if (cp_class(cv) == fl_bytetype)
101101
return fixnum(1);
102-
else if (cp_class(cv) == wchartype)
102+
else if (cp_class(cv) == fl_wchartype)
103103
return fixnum(u8_charlen(*(uint32_t*)cp_data((cprim_t*)cv)));
104104
}
105105
else if (iscvalue(a)) {
@@ -150,7 +150,7 @@ static value_t fl_top_level_value(value_t *args, u_int32_t nargs)
150150
argcount("top-level-value", nargs, 1);
151151
symbol_t *sym = tosymbol(args[0], "top-level-value");
152152
if (sym->binding == UNBOUND)
153-
fl_raise(fl_list2(UnboundError, args[0]));
153+
fl_raise(fl_list2(fl_UnboundError, args[0]));
154154
return sym->binding;
155155
}
156156

@@ -174,28 +174,24 @@ static void global_env_list(symbol_t *root, value_t *pv)
174174
}
175175
}
176176

177-
extern symbol_t *symtab;
178-
179177
value_t fl_global_env(value_t *args, u_int32_t nargs)
180178
{
181179
(void)args;
182180
argcount("environment", nargs, 0);
183181
value_t lst = FL_NIL;
184182
fl_gc_handle(&lst);
185-
global_env_list(symtab, &lst);
183+
global_env_list(fl_symtab, &lst);
186184
fl_free_gc_handles(1);
187185
return lst;
188186
}
189187

190-
extern value_t QUOTE;
191-
192188
static value_t fl_constantp(value_t *args, u_int32_t nargs)
193189
{
194190
argcount("constant?", nargs, 1);
195191
if (issymbol(args[0]))
196192
return (isconstant((symbol_t*)ptr(args[0])) ? FL_T : FL_F);
197193
if (iscons(args[0])) {
198-
if (car_(args[0]) == QUOTE)
194+
if (car_(args[0]) == FL_QUOTE)
199195
return FL_T;
200196
return FL_F;
201197
}
@@ -286,10 +282,10 @@ static value_t fl_vector_alloc(value_t *args, u_int32_t nargs)
286282
fixnum_t i;
287283
value_t f, v;
288284
if (nargs == 0)
289-
lerror(ArgError, "vector.alloc: too few arguments");
285+
lerror(fl_ArgError, "vector.alloc: too few arguments");
290286
i = (fixnum_t)tosize(args[0], "vector.alloc");
291287
if (i < 0)
292-
lerror(ArgError, "vector.alloc: invalid size");
288+
lerror(fl_ArgError, "vector.alloc: invalid size");
293289
if (nargs == 2)
294290
f = args[1];
295291
else
@@ -320,13 +316,13 @@ static value_t fl_path_cwd(value_t *args, uint32_t nargs)
320316
size_t len = sizeof(buf);
321317
err = uv_cwd(buf, &len);
322318
if (err != 0)
323-
lerrorf(IOError, "path.cwd: could not get cwd: %s", uv_strerror(err));
319+
lerrorf(fl_IOError, "path.cwd: could not get cwd: %s", uv_strerror(err));
324320
return string_from_cstr(buf);
325321
}
326322
char *ptr = tostring(args[0], "path.cwd");
327323
err = uv_chdir(ptr);
328324
if (err != 0)
329-
lerrorf(IOError, "path.cwd: could not cd to %s: %s", ptr, uv_strerror(err));
325+
lerrorf(fl_IOError, "path.cwd: could not cd to %s: %s", ptr, uv_strerror(err));
330326
return FL_T;
331327
}
332328

@@ -347,7 +343,7 @@ static value_t fl_os_getenv(value_t *args, uint32_t nargs)
347343
char *val = getenv(name);
348344
if (val == NULL) return FL_F;
349345
if (*val == 0)
350-
return symbol_value(emptystringsym);
346+
return symbol_value(fl_emptystringsym);
351347
return cvalue_static_cstring(val);
352348
}
353349

@@ -376,15 +372,15 @@ static value_t fl_os_setenv(value_t *args, uint32_t nargs)
376372
#endif
377373
}
378374
if (result != 0)
379-
lerror(ArgError, "os.setenv: invalid environment variable");
375+
lerror(fl_ArgError, "os.setenv: invalid environment variable");
380376
return FL_T;
381377
}
382378

383379
extern void stringfuncs_init(void);
384380
extern void table_init(void);
385381
extern void iostream_init(void);
386382

387-
static builtinspec_t builtin_info[] = {
383+
static const builtinspec_t builtin_info[] = {
388384
{ "environment", fl_global_env },
389385
{ "constant?", fl_constantp },
390386
{ "top-level-value", fl_top_level_value },

0 commit comments

Comments
 (0)