core: Remove macros from cell creation: make_char .. make_string.

* src/gc.c (make_char, make_continuation, make_macro, make_number,
make_ref, make_string0, make_string_port): New function.
(make_string): Move from string.c.
* include/mes/macros.h (MAKE_CHAR, MAKE_CONTINUATION, MAKE_MACRO,
MAKE_NUMBER, MAKE_REF, MAKE_STRING0, MAKE_STRING_PORT): Remove macro.
Update users.
* include/mes/m2.h: Likewise.
This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-05-18 22:35:12 +02:00
parent 0f951cac5d
commit 781f4f0e6c
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
16 changed files with 158 additions and 125 deletions

View File

@ -90,14 +90,6 @@ struct timeval
#define CSTRING(x) CBYTES (STRING (x))
#define MAKE_CHAR(n) make_cell (TCHAR, 0, n)
#define MAKE_CONTINUATION(n) make_cell (TCONTINUATION, n, g_stack)
#define MAKE_NUMBER(n) make_cell (TNUMBER, 0, n)
#define MAKE_REF(n) make_cell (TREF, n, 0)
#define MAKE_STRING0(x) make_string (x, strlen (x))
#define MAKE_STRING_PORT(x) make_cell (TPORT, -length__ (g_ports) - 2, x)
#define MAKE_MACRO(name, x) make_cell (TMACRO, x, STRING (name))
#define CAAR(x) CAR (CAR (x))
#define CADR(x) CAR (CDR (x))
#define CDAR(x) CDR (CAR (x))

View File

@ -58,14 +58,6 @@
#define CSTRING(x) CBYTES (STRING (x))
#define MAKE_CHAR(n) make_cell (TCHAR, 0, n)
#define MAKE_CONTINUATION(n) make_cell (TCONTINUATION, n, g_stack)
#define MAKE_NUMBER(n) make_cell (TNUMBER, 0, (long)n)
#define MAKE_REF(n) make_cell (TREF, n, 0)
#define MAKE_STRING0(x) make_string (x, strlen (x))
#define MAKE_STRING_PORT(x) make_cell (TPORT, -length__ (g_ports) - 2, x)
#define MAKE_MACRO(name, x) make_cell (TMACRO, x, STRING (name))
#define CAAR(x) CAR (CAR (x))
#define CADR(x) CAR (CDR (x))
#define CDAR(x) CDR (CAR (x))

View File

@ -91,10 +91,17 @@ SCM init_time (SCM a);
SCM make_builtin_type ();
SCM make_bytes (char const *s, size_t length);
SCM make_cell (long type, SCM car, SCM cdr);
SCM make_char (int n);
SCM make_continuation (long n);
SCM make_hash_table_ (long size);
SCM make_hashq_type ();
SCM make_initial_module (SCM a);
SCM make_macro (SCM name, SCM x);
SCM make_number (long n);
SCM make_ref (SCM x);
SCM make_string (char const *s, size_t length);
SCM make_string0 (char const *s);
SCM make_string_port (SCM x);
SCM make_vector__ (long k);
SCM mes_builtins (SCM a);
SCM push_cc (SCM p1, SCM p2, SCM a, SCM c);

View File

@ -99,8 +99,8 @@ init_builtin (SCM builtin_type, char const *name, int arity, FUNCTION function,
{
SCM s = cstring_to_symbol (name);
return acons (s,
make_builtin (builtin_type, symbol_to_string (s), MAKE_NUMBER (arity),
MAKE_NUMBER (function)), a);
make_builtin (builtin_type, symbol_to_string (s), make_number (arity),
make_number (function)), a);
}
SCM

View File

@ -49,7 +49,7 @@ check_formals (SCM f, SCM formals, SCM args) /*:((internal)) */
eputs (itoa (alen));
eputs ("\n");
write_error_ (f);
SCM e = MAKE_STRING0 (s);
SCM e = make_string0 (s);
return error (cell_symbol_wrong_number_of_args, cons (e, f));
}
return cell_unspecified;
@ -86,7 +86,7 @@ check_apply (SCM f, SCM e) /*:((internal)) */
eputs ("[");
write_error_ (e);
eputs ("]\n");
SCM e = MAKE_STRING0 (s);
SCM e = make_string0 (s);
return error (cell_symbol_wrong_type_arg, cons (e, f));
}
return cell_unspecified;
@ -425,7 +425,7 @@ eval_apply:
else if (R3 == cell_unspecified)
return R1;
else
error (cell_symbol_system_error, MAKE_STRING0 ("eval/apply unknown continuation"));
error (cell_symbol_system_error, make_string0 ("eval/apply unknown continuation"));
evlis:
if (R1 == cell_nil)
@ -652,7 +652,7 @@ eval:
if (macro_p != 0)
{
entry = macro_get_handle (name);
R1 = MAKE_MACRO (name, R1);
R1 = make_macro (name, R1);
set_cdr_x (entry, R1);
}
else if (global_p != 0)
@ -907,7 +907,7 @@ if_expr:
call_with_current_continuation:
gc_push_frame ();
x = MAKE_CONTINUATION (g_continuations);
x = make_continuation (g_continuations);
g_continuations = g_continuations + 1;
v = make_vector__ (STACK_SIZE - g_stack);
for (t = g_stack; t < STACK_SIZE; t = t + 1)

View File

@ -143,6 +143,59 @@ make_bytes (char const *s, size_t length)
return x;
}
SCM
make_char (int n)
{
return make_cell (TCHAR, 0, n);
}
SCM
make_continuation (long n)
{
return make_cell (TCONTINUATION, n, g_stack);
}
SCM
make_macro (SCM name, SCM x) /*:((internal)) */
{
return make_cell (TMACRO, x, STRING (name));
}
SCM
make_number (long n)
{
return make_cell (TNUMBER, 0, n);
}
SCM
make_ref (SCM x) /*:((internal)) */
{
return make_cell (TREF, x, 0);
}
SCM
make_string (char const *s, size_t length)
{
if (length > MAX_STRING)
assert_max_string (length, "make_string", s);
SCM x = make_cell (TSTRING, length, 0);
SCM v = make_bytes (s, length);
CDR (x) = v;
return x;
}
SCM
make_string0 (char const *s)
{
return make_string (s, strlen (s));
}
SCM
make_string_port (SCM x) /*:((internal)) */
{
return make_cell (TPORT, -length__ (g_ports) - 2, x);
}
SCM
gc_up_arena () /*:((internal)) */
{

View File

@ -39,7 +39,7 @@ hashq_ (SCM x, long size)
{
if (TYPE (x) == TSPECIAL || TYPE (x) == TSYMBOL)
return hash_cstring (CSTRING (x), size); /* FIXME: hash x directly. */
error (cell_symbol_system_error, cons (MAKE_STRING0 ("hashq_: not a symbol"), x));
error (cell_symbol_system_error, cons (make_string0 ("hashq_: not a symbol"), x));
}
int
@ -55,14 +55,14 @@ SCM
hashq (SCM x, SCM size)
{
assert_msg (0, "0");
return MAKE_NUMBER (hashq_ (x, VALUE (size)));
return make_number (hashq_ (x, VALUE (size)));
}
SCM
hash (SCM x, SCM size)
{
assert_msg (0, "0");
return MAKE_NUMBER (hash_ (x, VALUE (size)));
return make_number (hash_ (x, VALUE (size)));
}
SCM
@ -223,7 +223,7 @@ make_hash_table_ (long size)
SCM buckets = make_vector__ (size);
SCM values = cell_nil;
values = cons (buckets, values);
values = cons (MAKE_NUMBER (size), values);
values = cons (make_number (size), values);
values = cons (cell_symbol_hashq_table, values);
/*FIXME: symbol/printer
return make_struct (hashq_type, values, cstring_to_symbol ("hash-table-printer");*/

View File

@ -206,11 +206,11 @@ pair_p (SCM x)
SCM
char_to_integer (SCM x)
{
return MAKE_NUMBER (VALUE (x));
return make_number (VALUE (x));
}
SCM
integer_to_char (SCM x)
{
return MAKE_CHAR (VALUE (x));
return make_char (VALUE (x));
}

View File

@ -106,7 +106,7 @@ minus (SCM x) /*:((name . "-") (arity . n)) */
n = n - VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -119,7 +119,7 @@ plus (SCM x) /*:((name . "+") (arity . n)) */
n = n + VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -143,7 +143,7 @@ divide (SCM x) /*:((name . "/") (arity . n)) */
n = n / y;
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -160,7 +160,7 @@ modulo (SCM a, SCM b)
if (x != 0)
x = x % y;
return MAKE_NUMBER (x);
return make_number (x);
}
SCM
@ -173,7 +173,7 @@ multiply (SCM x) /*:((name . "*") (arity . n)) */
n = n * VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -186,7 +186,7 @@ logand (SCM x) /*:((arity . n)) */
n = n & VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -199,7 +199,7 @@ logior (SCM x) /*:((arity . n)) */
n = n | VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -207,7 +207,7 @@ lognot (SCM x)
{
assert_number ("lognot", x);
long n = ~VALUE (x);
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -220,7 +220,7 @@ logxor (SCM x) /*:((arity . n)) */
n = n ^ VALUE (car (x));
x = cdr (x);
}
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -235,5 +235,5 @@ ash (SCM n, SCM count)
result = cn >> -ccount;
else
result = cn << ccount;
return MAKE_NUMBER (result);
return make_number (result);
}

View File

@ -42,7 +42,7 @@ assoc_string (SCM x, SCM a) /*:((internal)) */
SCM
type_ (SCM x)
{
return MAKE_NUMBER (TYPE (x));
return make_number (TYPE (x));
}
SCM
@ -53,7 +53,7 @@ car_ (SCM x)
|| TYPE (CAR (x)) == TSPECIAL
|| TYPE (CAR (x)) == TSYMBOL || TYPE (CAR (x)) == TSTRING))
return CAR (x);
return MAKE_NUMBER (CAR (x));
return make_number (CAR (x));
}
SCM
@ -66,7 +66,7 @@ cdr_ (SCM x)
|| TYPE (CDR (x)) == TREF
|| TYPE (CDR (x)) == TSPECIAL || TYPE (CDR (x)) == TSYMBOL || TYPE (CDR (x)) == TSTRING))
return CDR (x);
return MAKE_NUMBER (CDR (x));
return make_number (CDR (x));
}
SCM
@ -147,7 +147,7 @@ length__ (SCM x) /*:((internal)) */
SCM
length (SCM x)
{
return MAKE_NUMBER (length__ (x));
return make_number (length__ (x));
}
SCM
@ -259,9 +259,9 @@ mes_g_stack (SCM a) /*:((internal)) */
{
g_stack = STACK_SIZE;
R0 = a;
R1 = MAKE_CHAR (0);
R2 = MAKE_CHAR (0);
R3 = MAKE_CHAR (0);
R1 = make_char (0);
R2 = make_char (0);
R3 = make_char (0);
return R0;
}
@ -276,7 +276,7 @@ mes_environment (int argc, char **argv)
#elif __TINYC__
compiler = "tcc";
#endif
a = acons (cell_symbol_compiler, MAKE_STRING0 (compiler), a);
a = acons (cell_symbol_compiler, make_string0 (compiler), a);
char *arch;
#if __i386__
@ -288,13 +288,13 @@ mes_environment (int argc, char **argv)
#else
#error arch not supported
#endif
a = acons (cell_symbol_arch, MAKE_STRING0 (arch), a);
a = acons (cell_symbol_arch, make_string0 (arch), a);
#if !MES_MINI
SCM lst = cell_nil;
int i;
for (i = argc - 1; i >= 0; i = i - 1)
lst = cons (MAKE_STRING0 (argv[i]), lst);
lst = cons (make_string0 (argv[i]), lst);
a = acons (cell_symbol_argv, lst, a);
#endif

View File

@ -90,13 +90,13 @@ unreadchar (int c)
SCM
peek_byte ()
{
return MAKE_NUMBER (peekchar ());
return make_number (peekchar ());
}
SCM
read_byte ()
{
return MAKE_NUMBER (readchar ());
return make_number (readchar ());
}
SCM
@ -109,7 +109,7 @@ unread_byte (SCM i)
SCM
peek_char ()
{
return MAKE_CHAR (peekchar ());
return make_char (peekchar ());
}
SCM
@ -118,7 +118,7 @@ read_char (SCM port) /*:((arity . n)) */
int fd = __stdin;
if (TYPE (port) == TPAIR && TYPE (car (port)) == TNUMBER)
__stdin = VALUE (CAR (port));
SCM c = MAKE_CHAR (readchar ());
SCM c = make_char (readchar ());
__stdin = fd;
return c;
}
@ -161,7 +161,7 @@ getenv_ (SCM s) /*:((name . "getenv")) */
char *p;
p = getenv (CSTRING (s));
if (p != 0)
return MAKE_STRING0 (p);
return make_string0 (p);
return cell_f;
}
@ -186,7 +186,7 @@ SCM
current_input_port ()
{
if (__stdin >= 0)
return MAKE_NUMBER (__stdin);
return make_number (__stdin);
SCM x = g_ports;
while (x && PORT (CAR (x)) != __stdin)
x = CDR (x);
@ -198,14 +198,14 @@ open_input_file (SCM file_name)
{
int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
if (filedes == -1)
error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
return MAKE_NUMBER (filedes);
error (cell_symbol_system_error, cons (make_string0 ("No such file or directory"), file_name));
return make_number (filedes);
}
SCM
open_input_string (SCM string)
{
SCM port = MAKE_STRING_PORT (string);
SCM port = make_string_port (string);
g_ports = cons (port, g_ports);
return port;
}
@ -230,13 +230,13 @@ set_current_input_port (SCM port)
SCM
current_output_port ()
{
return MAKE_NUMBER (__stdout);
return make_number (__stdout);
}
SCM
current_error_port ()
{
return MAKE_NUMBER (__stderr);
return make_number (__stderr);
}
SCM
@ -247,7 +247,7 @@ open_output_file (SCM x) /*:((arity . n)) */
int mode = S_IRUSR | S_IWUSR;
if (TYPE (x) == TPAIR && TYPE (car (x)) == TNUMBER)
mode = VALUE (car (x));
return MAKE_NUMBER (mes_open (CSTRING (file_name), O_WRONLY | O_CREAT | O_TRUNC, mode));
return make_number (mes_open (CSTRING (file_name), O_WRONLY | O_CREAT | O_TRUNC, mode));
}
SCM
@ -288,7 +288,7 @@ isatty_p (SCM port)
SCM
primitive_fork ()
{
return MAKE_NUMBER (fork ());
return make_number (fork ());
}
SCM
@ -299,7 +299,7 @@ execl_ (SCM file_name, SCM args) /*:((name . "execl")) */
if (length__ (args) > 1000)
error (cell_symbol_system_error,
cons (file_name, cons (MAKE_STRING0 ("too many arguments"), cons (file_name, args))));
cons (file_name, cons (make_string0 ("too many arguments"), cons (file_name, args))));
c_argv[i] = CSTRING (file_name);
i = i + 1;
while (args != cell_nil)
@ -318,7 +318,7 @@ execl_ (SCM file_name, SCM args) /*:((name . "execl")) */
}
}
c_argv[i] = 0;
return MAKE_NUMBER (execv (c_argv[0], c_argv));
return make_number (execv (c_argv[0], c_argv));
}
SCM
@ -326,7 +326,7 @@ waitpid_ (SCM pid, SCM options)
{
int status;
int child = waitpid (VALUE (pid), &status, VALUE (options));
return cons (MAKE_NUMBER (child), MAKE_NUMBER (status));
return cons (make_number (child), make_number (status));
}
#if __x86_64__
@ -355,24 +355,24 @@ SCM
init_time (SCM a) /*:((internal)) */
{
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &g_start_time);
a = acons (cell_symbol_internal_time_units_per_second, MAKE_NUMBER (TIME_UNITS_PER_SECOND), a);
a = acons (cell_symbol_internal_time_units_per_second, make_number (TIME_UNITS_PER_SECOND), a);
}
SCM
current_time ()
{
return MAKE_NUMBER (time (0));
return make_number (time (0));
}
SCM
gettimeofday_ () /*:((name . "gettimeofday")) */
{
#if __M2_PLANET__
return MAKE_NUMBER (0);
return make_number (0);
#else
struct timeval time;
gettimeofday (&time, 0);
return cons (MAKE_NUMBER (time.tv_sec), MAKE_NUMBER (time.tv_usec));
return cons (make_number (time.tv_sec), make_number (time.tv_usec));
#endif
}
@ -386,13 +386,13 @@ SCM
get_internal_run_time ()
{
#if __M2_PLANET__
return MAKE_NUMBER (0);
return make_number (0);
#else
struct timespec ts;
clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &ts);
long time = seconds_and_nanoseconds_to_long (ts.tv_sec - g_start_time.tv_sec,
ts.tv_nsec - g_start_time.tv_nsec);
return MAKE_NUMBER (time);
return make_number (time);
#endif
}
@ -400,13 +400,13 @@ SCM
getcwd_ () /*:((name . "getcwd")) */
{
char *buf = __getcwd_buf;
return MAKE_STRING0 (getcwd (buf, PATH_MAX));
return make_string0 (getcwd (buf, PATH_MAX));
}
SCM
dup_ (SCM port) /*:((name . "dup")) */
{
return MAKE_NUMBER (dup (VALUE (port)));
return make_number (dup (VALUE (port)));
}
SCM

View File

@ -51,7 +51,7 @@ reader_read_line_comment (int c)
return c;
c = readchar ();
}
error (cell_symbol_system_error, MAKE_STRING0 ("reader_read_line_comment"));
error (cell_symbol_system_error, make_string0 ("reader_read_line_comment"));
}
SCM reader_read_block_comment (int s, int c);
@ -96,7 +96,7 @@ reader_read_identifier_or_number (int c)
unreadchar (c);
if (negative_p != 0)
n = 0 - n;
return MAKE_NUMBER (n);
return make_number (n);
}
/* Fallthrough: Note that `4a', `+1b' are identifiers */
while (reader_end_of_word_p (c) == 0)
@ -175,7 +175,7 @@ reader_read_list (int c, SCM a)
if (c == ')')
return cell_nil;
if (c == EOF)
error (cell_symbol_not_a_pair, MAKE_STRING0 ("EOF in list"));
error (cell_symbol_not_a_pair, make_string0 ("EOF in list"));
SCM s = reader_read_sexp_ (c, a);
if (s == cell_dot)
return CAR (reader_read_list (readchar (), a));
@ -230,7 +230,7 @@ reader_read_hash (int c, SCM a)
if (c == ':')
{
SCM x = reader_read_identifier_or_number (readchar ());
SCM msg = MAKE_STRING0 ("keyword perifx ':' not followed by a symbol: ");
SCM msg = make_string0 ("keyword perifx ':' not followed by a symbol: ");
if (TYPE (x) == TNUMBER)
error (cell_symbol_system_error, cons (msg, x));
return symbol_to_keyword (x);
@ -338,10 +338,10 @@ reader_read_character ()
eputs ("char not supported: ");
eputs (buf);
eputs ("\n");
error (cell_symbol_system_error, MAKE_STRING0 ("char not supported"));
error (cell_symbol_system_error, make_string0 ("char not supported"));
}
}
return MAKE_CHAR (c);
return make_char (c);
}
SCM
@ -365,7 +365,7 @@ reader_read_binary ()
}
if (negative_p != 0)
n = 0 - n;
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -389,7 +389,7 @@ reader_read_octal ()
}
if (negative_p != 0)
n = 0 - n;
return MAKE_NUMBER (n);
return make_number (n);
}
SCM
@ -418,7 +418,7 @@ reader_read_hex ()
}
if (negative_p != 0)
n = 0 - n;
return MAKE_NUMBER (n);
return make_number (n);
}
SCM

View File

@ -58,17 +58,6 @@ list_to_cstring (SCM list, size_t *size)
return g_buf;
}
SCM
make_string (char const *s, size_t length)
{
if (length > MAX_STRING)
assert_max_string (length, "make_string", s);
SCM x = make_cell (TSTRING, length, 0);
SCM v = make_bytes (s, length);
CDR (x) = v;
return x;
}
SCM
string_equal_p (SCM a, SCM b) /*:((name . "string=?")) */
{
@ -140,7 +129,7 @@ bytes_to_list (char const *s, size_t i)
{
i = i - 1;
int c = (0x100 + s[i]) % 0x100;
p = cons (MAKE_CHAR (c), p);
p = cons (make_char (c), p);
}
return p;
}
@ -154,7 +143,7 @@ cstring_to_list (char const *s)
SCM
cstring_to_symbol (char const *s)
{
SCM string = MAKE_STRING0 (s);
SCM string = make_string0 (s);
return string_to_symbol (string);
}
@ -217,7 +206,7 @@ SCM
string_length (SCM string)
{
assert_msg (TYPE (string) == TSTRING, "TYPE (string) == TSTRING");
return MAKE_NUMBER (LENGTH (string));
return make_number (LENGTH (string));
}
SCM
@ -228,7 +217,7 @@ string_ref (SCM str, SCM k)
size_t size = LENGTH (str);
size_t i = VALUE (k);
if (i > size)
error (cell_symbol_system_error, cons (MAKE_STRING0 ("value out of range"), k));
error (cell_symbol_system_error, cons (make_string0 ("value out of range"), k));
char const *p = CSTRING (str);
return MAKE_CHAR (p[i]);
return make_char (p[i]);
}

View File

@ -56,7 +56,7 @@ SCM
struct_length (SCM x)
{
assert_msg (TYPE (x) == TSTRUCT, "TYPE (x) == TSTRUCT");
return MAKE_NUMBER (LENGTH (x));
return make_number (LENGTH (x));
}
SCM
@ -68,9 +68,9 @@ struct_ref_ (SCM x, long i)
if (TYPE (e) == TREF)
e = REF (e);
if (TYPE (e) == TCHAR)
e = MAKE_CHAR (VALUE (e));
e = make_char (VALUE (e));
if (TYPE (e) == TNUMBER)
e = MAKE_NUMBER (VALUE (e));
e = make_number (VALUE (e));
return e;
}

View File

@ -184,27 +184,27 @@ init_symbols () /*:((internal)) */
a = acons (cell_symbol_current_module, cell_symbol_current_module, a);
a = acons (cell_symbol_call_with_current_continuation, cell_call_with_current_continuation, a);
a = acons (cell_symbol_mes_version, MAKE_STRING0 (MES_VERSION), a);
a = acons (cell_symbol_mes_datadir, MAKE_STRING0 (g_datadir), a);
a = acons (cell_symbol_mes_version, make_string0 (MES_VERSION), a);
a = acons (cell_symbol_mes_datadir, make_string0 (g_datadir), a);
a = acons (cell_type_bytes, MAKE_NUMBER (TBYTES), a);
a = acons (cell_type_char, MAKE_NUMBER (TCHAR), a);
a = acons (cell_type_closure, MAKE_NUMBER (TCLOSURE), a);
a = acons (cell_type_continuation, MAKE_NUMBER (TCONTINUATION), a);
a = acons (cell_type_keyword, MAKE_NUMBER (TKEYWORD), a);
a = acons (cell_type_macro, MAKE_NUMBER (TMACRO), a);
a = acons (cell_type_number, MAKE_NUMBER (TNUMBER), a);
a = acons (cell_type_pair, MAKE_NUMBER (TPAIR), a);
a = acons (cell_type_port, MAKE_NUMBER (TPORT), a);
a = acons (cell_type_ref, MAKE_NUMBER (TREF), a);
a = acons (cell_type_special, MAKE_NUMBER (TSPECIAL), a);
a = acons (cell_type_string, MAKE_NUMBER (TSTRING), a);
a = acons (cell_type_struct, MAKE_NUMBER (TSTRUCT), a);
a = acons (cell_type_symbol, MAKE_NUMBER (TSYMBOL), a);
a = acons (cell_type_values, MAKE_NUMBER (TVALUES), a);
a = acons (cell_type_variable, MAKE_NUMBER (TVARIABLE), a);
a = acons (cell_type_vector, MAKE_NUMBER (TVECTOR), a);
a = acons (cell_type_broken_heart, MAKE_NUMBER (TBROKEN_HEART), a);
a = acons (cell_type_bytes, make_number (TBYTES), a);
a = acons (cell_type_char, make_number (TCHAR), a);
a = acons (cell_type_closure, make_number (TCLOSURE), a);
a = acons (cell_type_continuation, make_number (TCONTINUATION), a);
a = acons (cell_type_keyword, make_number (TKEYWORD), a);
a = acons (cell_type_macro, make_number (TMACRO), a);
a = acons (cell_type_number, make_number (TNUMBER), a);
a = acons (cell_type_pair, make_number (TPAIR), a);
a = acons (cell_type_port, make_number (TPORT), a);
a = acons (cell_type_ref, make_number (TREF), a);
a = acons (cell_type_special, make_number (TSPECIAL), a);
a = acons (cell_type_string, make_number (TSTRING), a);
a = acons (cell_type_struct, make_number (TSTRUCT), a);
a = acons (cell_type_symbol, make_number (TSYMBOL), a);
a = acons (cell_type_values, make_number (TVALUES), a);
a = acons (cell_type_variable, make_number (TVARIABLE), a);
a = acons (cell_type_vector, make_number (TVECTOR), a);
a = acons (cell_type_broken_heart, make_number (TBROKEN_HEART), a);
a = acons (cell_closure, a, a);

View File

@ -42,7 +42,7 @@ SCM
vector_length (SCM x)
{
assert_msg (TYPE (x) == TVECTOR, "TYPE (x) == TVECTOR");
return MAKE_NUMBER (LENGTH (x));
return make_number (LENGTH (x));
}
SCM
@ -54,9 +54,9 @@ vector_ref_ (SCM x, long i)
if (TYPE (e) == TREF)
e = REF (e);
if (TYPE (e) == TCHAR)
e = MAKE_CHAR (VALUE (e));
e = make_char (VALUE (e));
if (TYPE (e) == TNUMBER)
e = MAKE_NUMBER (VALUE (e));
e = make_number (VALUE (e));
return e;
}
@ -70,7 +70,7 @@ SCM
vector_entry (SCM x)
{
if (TYPE (x) != TCHAR && TYPE (x) != TNUMBER)
x = MAKE_REF (x);
x = make_ref (x);
return x;
}