diff --git a/src/c/all_symbols.d b/src/c/all_symbols.d index c2a2e1af7..4299adc88 100644 --- a/src/c/all_symbols.d +++ b/src/c/all_symbols.d @@ -2,6 +2,13 @@ #include "ecl.h" #include "internal.h" +#define CL_ORDINARY 0 +#define CL_SPECIAL 1 +#define CL_CONSTANT 2 +#define SI_ORDINARY 4 +#define SI_SPECIAL 5 +#define KEYWORD 10 + #include "symbols_def.h" #include "symbols_list.h" @@ -117,54 +124,54 @@ cl_index cl_num_symbols_in_core = 0; @) static void -make_this_symbol(int index, const char *name, cl_object package, bool special) +make_this_symbol(int i, cl_object s, int code, const char *name, cl_object *loc) { - cl_object s = (cl_object)(cl_symbols + index); + enum stype stp; + cl_object package; + + switch (code & 3) { + case 0: stp = stp_ordinary; break; + case 1: stp = stp_special; break; + case 2: stp = stp_constant; break; + } + switch (code & 12) { + case 0: package = lisp_package; break; + case 4: package = system_package; name = name + 4; break; + case 8: package = keyword_package; name = name + 1; break; + } s->symbol.t = t_symbol; s->symbol.mflag = FALSE; SYM_VAL(s) = OBJNULL; SYM_FUN(s) = OBJNULL; s->symbol.plist = Cnil; s->symbol.hpack = Cnil; - s->symbol.stype = special? stp_special : stp_ordinary; + s->symbol.stype = stp; s->symbol.mflag = FALSE; s->symbol.isform = FALSE; s->symbol.hpack = package; s->symbol.name = make_constant_string(name); sethash(s->symbol.name, package->pack.external, s); if (package == keyword_package) { - s->symbol.stype = stp_constant; SYM_VAL(s) = s; } - cl_num_symbols_in_core = index + 1; + if (loc != NULL) + *loc = s; + cl_num_symbols_in_core = i + 1; } void init_all_symbols(void) { - int i; + int i, code; + const char *name; + cl_object s, *loc; /* We skip NIL and T */ for (i = 2; cl_symbols[i].init.name != NULL; i++) { - cl_object *loc = cl_symbols[i].init.loc; - - switch (cl_symbols[i].init.type) { - case CL_ORDINARY: - make_this_symbol(i, cl_symbols[i].init.name, lisp_package, FALSE); - break; - case CL_SPECIAL: - make_this_symbol(i, cl_symbols[i].init.name, lisp_package, TRUE); - break; - case SI_ORDINARY: - make_this_symbol(i, cl_symbols[i].init.name+4, system_package, FALSE); - break; - case SI_SPECIAL: - make_this_symbol(i, cl_symbols[i].init.name+4, system_package, TRUE); - break; - case KEYWORD: - make_this_symbol(i, cl_symbols[i].init.name+1, keyword_package, TRUE); - } - if (loc != NULL) - *loc = (cl_object)(cl_symbols+i); + s = (cl_object)(cl_symbols + i); + code = cl_symbols[i].init.type; + name = cl_symbols[i].init.name; + loc = cl_symbols[i].init.loc; + make_this_symbol(i, s, code, name, loc); } } diff --git a/src/c/array.d b/src/c/array.d index 7e516aa64..ad3e84f62 100644 --- a/src/c/array.d +++ b/src/c/array.d @@ -770,7 +770,7 @@ ILLEGAL: FEerror("~S is an illegal axis-number to the array ~S.", void init_array(void) { - make_constant("ARRAY-RANK-LIMIT", MAKE_FIXNUM(ARANKLIM)); - make_constant("ARRAY-DIMENSION-LIMIT", MAKE_FIXNUM(ADIMLIM)); - make_constant("ARRAY-TOTAL-SIZE-LIMIT", MAKE_FIXNUM(ATOTLIM)); + SYM_VAL(@'array-rank-limit') = MAKE_FIXNUM(ARANKLIM); + SYM_VAL(@'array-dimension-limit') = MAKE_FIXNUM(ADIMLIM); + SYM_VAL(@'array-total-size-limit') = MAKE_FIXNUM(ATOTLIM); } diff --git a/src/c/character.d b/src/c/character.d index 904adac44..af899c2d5 100644 --- a/src/c/character.d +++ b/src/c/character.d @@ -463,7 +463,7 @@ digit_weight(int w, int r) void init_character(void) { - make_constant("CHAR-CODE-LIMIT", MAKE_FIXNUM(CHAR_CODE_LIMIT)); + SYM_VAL(@'char-code-limit') = MAKE_FIXNUM(CHAR_CODE_LIMIT); STreturn = make_simple_string("RETURN"); register_root(&STreturn); diff --git a/src/c/cmpaux.d b/src/c/cmpaux.d index 3321138f6..2424fb2a2 100644 --- a/src/c/cmpaux.d +++ b/src/c/cmpaux.d @@ -384,9 +384,9 @@ check_other_key(cl_object l, int n, ...) void init_cmpaux(void) { - make_constant("LAMBDA-LIST-KEYWORDS", + SYM_VAL(@'LAMBDA-LIST-KEYWORDS') = list(8, @'&optional', @'&rest', @'&key', @'&allow-other-keys', @'&aux', - make_ordinary("&WHOLE"), make_ordinary("&ENVIRONMENT"), make_ordinary("&BODY"))); + @'&whole', @'&environment', @'&body'); - make_constant("LAMBDA-PARAMETERS-LIMIT", MAKE_FIXNUM(64)); + SYM_VAL(@'LAMBDA-PARAMETERS-LIMIT') = MAKE_FIXNUM(64); } diff --git a/src/c/eval.d b/src/c/eval.d index 17f495252..18ded12bd 100644 --- a/src/c/eval.d +++ b/src/c/eval.d @@ -208,7 +208,7 @@ link_call(cl_object sym, cl_objectfn *pLK, int narg, va_list args) void init_eval(void) { - make_constant("CALL-ARGUMENTS-LIMIT", MAKE_FIXNUM(64)); + SYM_VAL(@'call-arguments-limit') = MAKE_FIXNUM(64); three_nils.nil3_self[0] = Cnil; three_nils.nil3_self[1] = Cnil; diff --git a/src/c/main.d b/src/c/main.d index 756e9acc4..75edf74b7 100644 --- a/src/c/main.d +++ b/src/c/main.d @@ -163,8 +163,6 @@ cl_boot(int argc, char **argv) void init_main(void) { - make_ordinary("LISP-IMPLEMENTATION-VERSION"); - { cl_object features; features = CONS(make_keyword("ECL"), @@ -221,6 +219,4 @@ init_main(void) SYM_VAL(@'*features*') = features; } - - make_si_constant("+OBJNULL+", OBJNULL); } diff --git a/src/c/num_co.d b/src/c/num_co.d index cdd36e81f..8de36f7bd 100644 --- a/src/c/num_co.d +++ b/src/c/num_co.d @@ -915,50 +915,50 @@ init_num_co(void) cl_object num; num = make_shortfloat(FLT_MAX); - make_constant("MOST-POSITIVE-SHORT-FLOAT", num); - make_constant("MOST-POSITIVE-SINGLE-FLOAT", num); + SYM_VAL(@'MOST-POSITIVE-SHORT-FLOAT') = num; + SYM_VAL(@'MOST-POSITIVE-SINGLE-FLOAT') = num; num = make_shortfloat(FLT_MIN); - make_constant("LEAST-POSITIVE-SHORT-FLOAT", num); - make_constant("LEAST-POSITIVE-SINGLE-FLOAT", num); + SYM_VAL(@'LEAST-POSITIVE-SHORT-FLOAT') = num; + SYM_VAL(@'LEAST-POSITIVE-SINGLE-FLOAT') = num; num = make_shortfloat(-FLT_MIN); - make_constant("LEAST-NEGATIVE-SHORT-FLOAT", num); - make_constant("LEAST-NEGATIVE-SINGLE-FLOAT", num); + SYM_VAL(@'LEAST-NEGATIVE-SHORT-FLOAT') = num; + SYM_VAL(@'LEAST-NEGATIVE-SINGLE-FLOAT') = num; num = make_shortfloat(-FLT_MAX); - make_constant("MOST-NEGATIVE-SHORT-FLOAT", num); - make_constant("MOST-NEGATIVE-SINGLE-FLOAT", num); + SYM_VAL(@'MOST-NEGATIVE-SHORT-FLOAT') = num; + SYM_VAL(@'MOST-NEGATIVE-SINGLE-FLOAT') = num; num = make_longfloat(DBL_MAX); - make_constant("MOST-POSITIVE-DOUBLE-FLOAT", num); - make_constant("MOST-POSITIVE-LONG-FLOAT", num); + SYM_VAL(@'MOST-POSITIVE-DOUBLE-FLOAT') = num; + SYM_VAL(@'MOST-POSITIVE-LONG-FLOAT') = num; num = make_longfloat(DBL_MIN); - make_constant("LEAST-POSITIVE-DOUBLE-FLOAT", num); - make_constant("LEAST-POSITIVE-LONG-FLOAT", num); + SYM_VAL(@'LEAST-POSITIVE-DOUBLE-FLOAT') = num; + SYM_VAL(@'LEAST-POSITIVE-LONG-FLOAT') = num; num = make_longfloat(-DBL_MIN); - make_constant("LEAST-NEGATIVE-DOUBLE-FLOAT", num); - make_constant("LEAST-NEGATIVE-LONG-FLOAT", num); + SYM_VAL(@'LEAST-NEGATIVE-DOUBLE-FLOAT') = num; + SYM_VAL(@'LEAST-NEGATIVE-LONG-FLOAT') = num; num = make_longfloat(-DBL_MAX); - make_constant("MOST-NEGATIVE-DOUBLE-FLOAT", num); - make_constant("MOST-NEGATIVE-LONG-FLOAT", num); + SYM_VAL(@'MOST-NEGATIVE-DOUBLE-FLOAT') = num; + SYM_VAL(@'MOST-NEGATIVE-LONG-FLOAT') = num; num = make_shortfloat(FLT_EPSILON); - make_constant("SHORT-FLOAT-EPSILON", num); - make_constant("SINGLE-FLOAT-EPSILON", num); + SYM_VAL(@'SHORT-FLOAT-EPSILON') = num; + SYM_VAL(@'SINGLE-FLOAT-EPSILON') = num; num = make_longfloat(DBL_EPSILON); - make_constant("DOUBLE-FLOAT-EPSILON", num); - make_constant("LONG-FLOAT-EPSILON", num); + SYM_VAL(@'DOUBLE-FLOAT-EPSILON') = num; + SYM_VAL(@'LONG-FLOAT-EPSILON') = num; num = make_shortfloat(-FLT_EPSILON); - make_constant("SHORT-FLOAT-NEGATIVE-EPSILON", num); - make_constant("SINGLE-FLOAT-NEGATIVE-EPSILON", num); + SYM_VAL(@'SHORT-FLOAT-NEGATIVE-EPSILON') = num; + SYM_VAL(@'SINGLE-FLOAT-NEGATIVE-EPSILON') = num; num = make_longfloat(-DBL_EPSILON); - make_constant("DOUBLE-FLOAT-NEGATIVE-EPSILON", num); - make_constant("LONG-FLOAT-NEGATIVE-EPSILON", num); + SYM_VAL(@'DOUBLE-FLOAT-NEGATIVE-EPSILON') = num; + SYM_VAL(@'LONG-FLOAT-NEGATIVE-EPSILON') = num; plus_half = make_ratio(MAKE_FIXNUM(1), MAKE_FIXNUM(2)); register_root(&plus_half); diff --git a/src/c/num_log.d b/src/c/num_log.d index a41939b2c..bf22d57c6 100644 --- a/src/c/num_log.d +++ b/src/c/num_log.d @@ -499,22 +499,22 @@ int_bit_length(int i) void init_num_log(void) { - make_constant("BOOLE-CLR", MAKE_FIXNUM(BOOLCLR)); - make_constant("BOOLE-SET", MAKE_FIXNUM(BOOLSET)); - make_constant("BOOLE-1", MAKE_FIXNUM(BOOL1)); - make_constant("BOOLE-2", MAKE_FIXNUM(BOOL2)); - make_constant("BOOLE-C1", MAKE_FIXNUM(BOOLC1)); - make_constant("BOOLE-C2", MAKE_FIXNUM(BOOLC2)); - make_constant("BOOLE-AND", MAKE_FIXNUM(BOOLAND)); - make_constant("BOOLE-IOR", MAKE_FIXNUM(BOOLIOR)); - make_constant("BOOLE-XOR", MAKE_FIXNUM(BOOLXOR)); - make_constant("BOOLE-EQV", MAKE_FIXNUM(BOOLEQV)); - make_constant("BOOLE-NAND", MAKE_FIXNUM(BOOLNAND)); - make_constant("BOOLE-NOR", MAKE_FIXNUM(BOOLNOR)); - make_constant("BOOLE-ANDC1", MAKE_FIXNUM(BOOLANDC1)); - make_constant("BOOLE-ANDC2", MAKE_FIXNUM(BOOLANDC2)); - make_constant("BOOLE-ORC1", MAKE_FIXNUM(BOOLORC1)); - make_constant("BOOLE-ORC2", MAKE_FIXNUM(BOOLORC2)); + SYM_VAL(@'BOOLE-CLR') = MAKE_FIXNUM(BOOLCLR); + SYM_VAL(@'BOOLE-SET') = MAKE_FIXNUM(BOOLSET); + SYM_VAL(@'BOOLE-1') = MAKE_FIXNUM(BOOL1); + SYM_VAL(@'BOOLE-2') = MAKE_FIXNUM(BOOL2); + SYM_VAL(@'BOOLE-C1') = MAKE_FIXNUM(BOOLC1); + SYM_VAL(@'BOOLE-C2') = MAKE_FIXNUM(BOOLC2); + SYM_VAL(@'BOOLE-AND') = MAKE_FIXNUM(BOOLAND); + SYM_VAL(@'BOOLE-IOR') = MAKE_FIXNUM(BOOLIOR); + SYM_VAL(@'BOOLE-XOR') = MAKE_FIXNUM(BOOLXOR); + SYM_VAL(@'BOOLE-EQV') = MAKE_FIXNUM(BOOLEQV); + SYM_VAL(@'BOOLE-NAND') = MAKE_FIXNUM(BOOLNAND); + SYM_VAL(@'BOOLE-NOR') = MAKE_FIXNUM(BOOLNOR); + SYM_VAL(@'BOOLE-ANDC1') = MAKE_FIXNUM(BOOLANDC1); + SYM_VAL(@'BOOLE-ANDC2') = MAKE_FIXNUM(BOOLANDC2); + SYM_VAL(@'BOOLE-ORC1') = MAKE_FIXNUM(BOOLORC1); + SYM_VAL(@'BOOLE-ORC2') = MAKE_FIXNUM(BOOLORC2); } @(defun si::bit_array_op (o x y r) diff --git a/src/c/num_sfun.d b/src/c/num_sfun.d index 0fc344cad..520d5eaec 100644 --- a/src/c/num_sfun.d +++ b/src/c/num_sfun.d @@ -526,5 +526,5 @@ init_num_sfun(void) imag_two = make_complex(make_shortfloat(0.0), make_shortfloat(2.0)); register_root(&imag_two); - make_constant("PI", make_longfloat(M_PI)); + SYM_VAL(@'pi') = make_longfloat(M_PI); } diff --git a/src/c/number.d b/src/c/number.d index 2f67c7c06..d73ef997f 100644 --- a/src/c/number.d +++ b/src/c/number.d @@ -229,8 +229,8 @@ init_number(void) register_root(&shortfloat_zero); register_root(&longfloat_zero); - make_constant("MOST-POSITIVE-FIXNUM", MAKE_FIXNUM(MOST_POSITIVE_FIXNUM)); - make_constant("MOST-NEGATIVE-FIXNUM", MAKE_FIXNUM(MOST_NEGATIVE_FIXNUM)); + SYM_VAL(@'most-positive-fixnum') = MAKE_FIXNUM(MOST_POSITIVE_FIXNUM); + SYM_VAL(@'most-negative-fixnum') = MAKE_FIXNUM(MOST_NEGATIVE_FIXNUM); init_big(); init_num_co(); diff --git a/src/c/symbols_list.h b/src/c/symbols_list.h index 98fb31b4b..e0eee080a 100644 --- a/src/c/symbols_list.h +++ b/src/c/symbols_list.h @@ -1,9 +1,3 @@ -#define CL_ORDINARY 1 -#define CL_SPECIAL 2 -#define SI_SPECIAL 3 -#define SI_ORDINARY 4 -#define KEYWORD 5 - #ifdef DPP #define SW(a,b,c) a #else @@ -92,7 +86,9 @@ SW("ARRAY-ELEMENT-TYPE", CL_ORDINARY, NULL), SW("ARRAY-HAS-FILL-POINTER-P", CL_ORDINARY, NULL), SW("ARRAY-IN-BOUNDS-P", CL_ORDINARY, NULL), SW("ARRAY-RANK", CL_ORDINARY, NULL), +SW("ARRAY-RANK-LIMIT", CL_CONSTANT, NULL), SW("ARRAY-ROW-MAJOR-INDEX", CL_ORDINARY, NULL), +SW("ARRAY-TOTAL-SIZE-LIMIT", CL_CONSTANT, NULL), SW("ASIN", CL_ORDINARY, NULL), SW("ASINH", CL_ORDINARY, NULL), SW("ASSERT", CL_ORDINARY, NULL), @@ -116,16 +112,34 @@ SW("BIT-VECTOR", CL_ORDINARY, &clSbit_vector), SW("BIT-XOR", CL_ORDINARY, NULL), SW("BLOCK", CL_ORDINARY, &clSblock), SW("BOOLEAN", CL_ORDINARY, NULL), +SW("BOOLE-CLR", CL_CONSTANT, NULL), +SW("BOOLE-SET", CL_CONSTANT, NULL), +SW("BOOLE-1", CL_CONSTANT, NULL), +SW("BOOLE-2", CL_CONSTANT, NULL), +SW("BOOLE-C1", CL_CONSTANT, NULL), +SW("BOOLE-C2", CL_CONSTANT, NULL), +SW("BOOLE-AND", CL_CONSTANT, NULL), +SW("BOOLE-IOR", CL_CONSTANT, NULL), +SW("BOOLE-XOR", CL_CONSTANT, NULL), +SW("BOOLE-EQV", CL_CONSTANT, NULL), +SW("BOOLE-NAND", CL_CONSTANT, NULL), +SW("BOOLE-NOR", CL_CONSTANT, NULL), +SW("BOOLE-ANDC1", CL_CONSTANT, NULL), +SW("BOOLE-ANDC2", CL_CONSTANT, NULL), +SW("BOOLE-ORC1", CL_CONSTANT, NULL), +SW("BOOLE-ORC2", CL_CONSTANT, NULL), SW("BREAK", CL_ORDINARY, NULL), SW("BROADCAST-STREAM", CL_ORDINARY, &clSbroadcast_stream), SW("BYTE", CL_ORDINARY, NULL), SW("BYTE8", CL_ORDINARY, &clSbyte8), SW("BYTE-POSITION", CL_ORDINARY, NULL), SW("BYTE-SIZE", CL_ORDINARY, NULL), +SW("CALL-ARGUMENTS-LIMIT", CL_CONSTANT, NULL), SW("CCASE", CL_ORDINARY, NULL), SW("CERROR", CL_ORDINARY, NULL), SW("CELL-ERROR", CL_ORDINARY, &clScell_error), SW("CHAR", CL_ORDINARY, NULL), +SW("CHAR-CODE-LIMIT", CL_CONSTANT, NULL), SW("CHARACTER", CL_ORDINARY, &clScharacter), SW("CHECK-TYPE", CL_ORDINARY, NULL), SW("CIS", CL_ORDINARY, NULL), @@ -186,6 +200,8 @@ SW("DO-SYMBOLS", CL_ORDINARY, NULL), SW("DOCUMENTATION", CL_ORDINARY, NULL), SW("DOLIST", CL_ORDINARY, NULL), SW("DOUBLE-FLOAT", CL_ORDINARY, &clSdouble_float), +SW("DOUBLE-FLOAT-EPSILON", CL_CONSTANT, NULL), +SW("DOUBLE-FLOAT-NEGATIVE-EPSILON", CL_CONSTANT, NULL), SW("DPB", CL_ORDINARY, NULL), SW("DRIBBLE", CL_ORDINARY, NULL), SW("ECASE", CL_ORDINARY, NULL), @@ -241,14 +257,26 @@ SW("INSPECT", CL_ORDINARY, NULL), SW("INSTANCE", CL_ORDINARY, &clSinstance), SW("INTEGER", CL_ORDINARY, &clSinteger), SW("INTEGER8", CL_ORDINARY, &clSinteger8), +SW("INTERNAL-TIME-UNITS-PER-SECOND", CL_CONSTANT, NULL), SW("INTERSECTION", CL_ORDINARY, NULL), SW("ISQRT", CL_ORDINARY, NULL), SW("KEYWORD", CL_ORDINARY, &clSkeyword), SW("LAMBDA", CL_ORDINARY, &clSlambda), SW("LAMBDA-BLOCK", CL_ORDINARY, &clSlambda_block), +SW("LAMBDA-LIST-KEYWORDS", CL_CONSTANT, NULL), +SW("LAMBDA-PARAMETERS-LIMIT", CL_CONSTANT, NULL), SW("LDB", CL_ORDINARY, NULL), SW("LDB-TEST", CL_ORDINARY, NULL), +SW("LEAST-NEGATIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-NEGATIVE-LONG-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-NEGATIVE-SHORT-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-NEGATIVE-SINGLE-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-POSITIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-POSITIVE-LONG-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-POSITIVE-SHORT-FLOAT", CL_CONSTANT, NULL), +SW("LEAST-POSITIVE-SINGLE-FLOAT", CL_CONSTANT, NULL), SW("LISP-IMPLEMENTATION-TYPE", CL_ORDINARY, NULL), +SW("LISP-IMPLEMENTATION-VERSION", CL_ORDINARY, NULL), SW("LIST", CL_ORDINARY, &clSlist), SW("LIST*", CL_ORDINARY, &clSlistX), SW("LOAD", CL_ORDINARY, &clSload), @@ -266,6 +294,8 @@ SW("LOGORC2", CL_ORDINARY, NULL), SW("LOGTEST", CL_ORDINARY, NULL), SW("LONG-SITE-NAME", CL_ORDINARY, NULL), SW("LONG-FLOAT", CL_ORDINARY, &clSlong_float), +SW("LONG-FLOAT-EPSILON", CL_CONSTANT, NULL), +SW("LONG-FLOAT-NEGATIVE-EPSILON", CL_CONSTANT, NULL), SW("LOOP", CL_ORDINARY, NULL), SW("LOOP-FINISH", CL_ORDINARY, NULL), SW("MACHINE-INSTANCE", CL_ORDINARY, NULL), @@ -281,6 +311,16 @@ SW("MERGE", CL_ORDINARY, NULL), SW("MEMBER", CL_ORDINARY, &clSmember), SW("MISMATCH", CL_ORDINARY, NULL), SW("MOD", CL_ORDINARY, &clSmod), +SW("MOST-NEGATIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL), +SW("MOST-NEGATIVE-FIXNUM", CL_CONSTANT, NULL), +SW("MOST-NEGATIVE-LONG-FLOAT", CL_CONSTANT, NULL), +SW("MOST-NEGATIVE-SHORT-FLOAT", CL_CONSTANT, NULL), +SW("MOST-NEGATIVE-SINGLE-FLOAT", CL_CONSTANT, NULL), +SW("MOST-POSITIVE-DOUBLE-FLOAT", CL_CONSTANT, NULL), +SW("MOST-POSITIVE-FIXNUM", CL_CONSTANT, NULL), +SW("MOST-POSITIVE-LONG-FLOAT", CL_CONSTANT, NULL), +SW("MOST-POSITIVE-SHORT-FLOAT", CL_CONSTANT, NULL), +SW("MOST-POSITIVE-SINGLE-FLOAT", CL_CONSTANT, NULL), SW("MULTIPLE-VALUE-SETQ", CL_ORDINARY, NULL), SW("NINTERSECTION", CL_ORDINARY, NULL), SW("NINTH", CL_ORDINARY, NULL), @@ -306,6 +346,7 @@ SW("PACKAGE-ERROR", CL_ORDINARY, &clSpackage_error), SW("PARSE-ERROR", CL_ORDINARY, &clSparse_error), SW("PATHNAME", CL_ORDINARY, &clSpathname), SW("PHASE", CL_ORDINARY, NULL), +SW("PI", CL_ORDINARY, NULL), SW("PLUSP", CL_ORDINARY, &clSplusp), SW("POP", CL_ORDINARY, NULL), SW("POSITION", CL_ORDINARY, NULL), @@ -358,7 +399,12 @@ SW("SETF", CL_ORDINARY, &clSsetf), SW("SEVENTH", CL_ORDINARY, NULL), SW("SHIFTF", CL_ORDINARY, NULL), SW("SHORT-FLOAT", CL_ORDINARY, &clSshort_float), +SW("SHORT-FLOAT-EPSILON", CL_CONSTANT, NULL), +SW("SHORT-FLOAT-NEGATIVE-EPSILON", CL_CONSTANT, NULL), SW("SHORT-SITE-NAME", CL_ORDINARY, NULL), +SW("SINGLE-FLOAT", CL_ORDINARY, NULL), +SW("SINGLE-FLOAT-EPSILON", CL_CONSTANT, NULL), +SW("SINGLE-FLOAT-NEGATIVE-EPSILON", CL_CONSTANT, NULL), SW("SIGNED-BYTE", CL_ORDINARY, &clSsigned_byte), SW("SIGNED-CHAR", CL_ORDINARY, &clSsigned_char), SW("SIGNED-SHORT", CL_ORDINARY, &clSsigned_short), diff --git a/src/c/time.d b/src/c/time.d index e620c1e17..09c6db874 100644 --- a/src/c/time.d +++ b/src/c/time.d @@ -156,7 +156,7 @@ init_unixtime(void) { beginning = time(0); - make_constant("INTERNAL-TIME-UNITS-PER-SECOND", MAKE_FIXNUM(HZ)); + SYM_VAL(@'internal-time-units-per-second') = MAKE_FIXNUM(HZ); Jan1st1970UT = number_times(MAKE_FIXNUM(24 * 60 * 60),