Commit c9b91f96 authored by jjgarcia's avatar jjgarcia

Minimal patches for C++ compatibility

parent f226ba3e
......@@ -7,7 +7,8 @@ VPATH = @[email protected]
# Programs used by "make":
#
CC = @[email protected]
TRUE_CC = @[email protected]
CC = @[email protected]
DEFS = -D@[email protected]
CFLAGS = -c -I../h -I$(HDIR) @[email protected] @[email protected] $(DEFS)
......@@ -67,7 +68,7 @@ clean:
# Build rules
$(DPP): $(srcdir)/dpp.c
$(CC) @[email protected] -I$(HDIR) $(srcdir)/dpp.c -o [email protected]
$(TRUE_CC) @[email protected] -I$(HDIR) $(srcdir)/dpp.c -o [email protected]
#
# Some files may break due to gcc optimizations
......
......@@ -845,10 +845,10 @@ init_all_functions(void) {
for (f = all_functions; f->name != NULL; f++) {
switch (f->type) {
case cl:
make_function(f->name, f->f);
make_function(f->name, (cl_objectfn)f->f);
break;
case si:
make_si_function(f->name, f->f);
make_si_function(f->name, (cl_objectfn)f->f);
break;
case form: {
cl_object s = make_ordinary(f->name);
......
#include <ctype.h>
#include "ecl.h"
#include "page.h"
#define CL_ORDINARY 1
#define CL_SPECIAL 2
#define SI_SPECIAL 3
#define SI_ORDINARY 4
const struct symbol_info all_symbols[] = {
/* array.c */
{&clSbyte8, "BYTE8", CL_ORDINARY},
......@@ -329,7 +335,8 @@ const struct symbol_info all_symbols[] = {
fun = symbol->symbol.gfdef;
if (fun != OBJNULL && type_of(fun) == t_cfun) {
for (l = 0; all_functions[l].name != NULL; l++)
if (fun->cfun.entry == all_functions[l].f) {
if ((cl_objectfn)fun->cfun.entry ==
(cl_objectfn)all_functions[l].f) {
if (fun->cfun.name != Cnil)
symbol = fun->cfun.name;
found = Ct;
......@@ -341,7 +348,7 @@ const struct symbol_info all_symbols[] = {
symbol = symbol->symbol.name;
l = symbol->string.fillp;
source = symbol->string.self;
output = alloc_simple_string(l+1); array_allocself(output);
output = cl_alloc_simple_string(l+1); array_allocself(output);
dest = output->string.self;
if (is_symbol && source[0] == '*') {
if (l > 2 && source[l-1] == '*') l--;
......
......@@ -115,7 +115,7 @@ resize_hole(cl_index n)
}
/* Allocates n pages from the hole. */
void *
static void *
alloc_page(cl_index n)
{
cl_ptr e = heap_end;
......@@ -149,7 +149,7 @@ add_page_to_freelist(cl_ptr p, struct typemanager *tm)
}
cl_object
alloc_object(cl_type t)
cl_alloc_object(cl_type t)
{
register cl_object obj;
register struct typemanager *tm;
......@@ -309,7 +309,7 @@ ONCE_MORE:
#endif
#ifdef CLOS
case t_instance:
obj->instance.class = OBJNULL;
CLASS_OF(obj) = OBJNULL;
obj->instance.slots = NULL;
break;
case t_gfun:
......@@ -426,7 +426,7 @@ Use ALLOCATE to expand the space.",
}
cl_object
alloc_instance(cl_index slots)
cl_alloc_instance(cl_index slots)
{
cl_object i = alloc_object(t_instance);
/* INV: slots > 0 */
......@@ -436,7 +436,7 @@ alloc_instance(cl_index slots)
}
void *
alloc(cl_index n)
cl_alloc(cl_index n)
{
register cl_ptr p;
register struct contblock **cbpp;
......@@ -510,7 +510,7 @@ Use ALLOCATE-CONTIGUOUS-PAGES to expand the space.",
* sorted by increasing size.
*/
void
dealloc(void *p, cl_index s)
cl_dealloc(void *p, cl_index s)
{
struct contblock **cbpp, *cbp;
......@@ -534,7 +534,7 @@ dealloc(void *p, cl_index s)
* required for the block.
*/
void *
alloc_align(cl_index size, cl_index align)
cl_alloc_align(cl_index size, cl_index align)
{
void *output;
start_critical_section();
......
......@@ -28,7 +28,7 @@ struct typemanager tm_table[(int)t_end];
#endif
cl_object
alloc_object(cl_type t)
cl_alloc_object(cl_type t)
{
register cl_object obj;
register struct typemanager *tm;
......@@ -38,7 +38,6 @@ alloc_object(cl_type t)
return MAKE_FIXNUM(0); /* Immediate fixnum */
case t_character:
return CODE_CHAR(' '); /* Immediate character */
default:
}
if (t < t_start || t >= t_end) {
printf("\ttype = %d\n", t);
......@@ -47,7 +46,7 @@ alloc_object(cl_type t)
tm = tm_of(t);
start_critical_section();
obj = GC_malloc(tm->tm_size);
obj = (cl_object)GC_malloc(tm->tm_size);
obj->d.t = t;
/* GC_malloc already resets objects */
end_critical_section();
......@@ -66,7 +65,7 @@ make_cons(cl_object a, cl_object d)
start_critical_section();
obj = GC_malloc(sizeof(struct cons));
obj = (cl_object)GC_malloc(sizeof(struct cons));
obj->d.t = (short)t_cons;
CAR(obj) = a;
CDR(obj) = d;
......@@ -77,17 +76,17 @@ make_cons(cl_object a, cl_object d)
}
cl_object
alloc_instance(cl_index slots)
cl_alloc_instance(cl_index slots)
{
cl_object i;
i = alloc_object(t_instance);
i->instance.slots = alloc_align(sizeof(cl_object) * slots, sizeof(cl_object));
i = cl_alloc_object(t_instance);
i->instance.slots = (cl_object *)cl_alloc_align(sizeof(cl_object) * slots, sizeof(cl_object));
i->instance.length = slots;
return i;
}
void *
alloc(size_t n)
cl_alloc(size_t n)
{
void *output;
start_critical_section();
......@@ -97,7 +96,7 @@ alloc(size_t n)
}
void *
alloc_atomic(size_t n)
cl_alloc_atomic(size_t n)
{
void *output;
start_critical_section();
......@@ -111,7 +110,7 @@ alloc_atomic(size_t n)
* sorted by increasing size.
*/
void
dealloc(void *p, size_t s)
cl_dealloc(void *p, size_t s)
{
GC_free(p);
}
......@@ -121,12 +120,12 @@ dealloc(void *p, size_t s)
* required for the block.
*/
void *
alloc_align(size_t size, size_t align)
cl_alloc_align(size_t size, size_t align)
{
char *output;
start_critical_section();
align--;
output = GC_malloc(size + align);
output = (char*)GC_malloc(size + align);
output = (char*)(((cl_fixnum)output + align) & ~align);
end_critical_section();
return output;
......@@ -137,12 +136,12 @@ alloc_align(size_t size, size_t align)
* required for the block.
*/
void *
alloc_atomic_align(size_t size, size_t align)
cl_alloc_atomic_align(size_t size, size_t align)
{
char *output;
start_critical_section();
align--;
output = GC_malloc_atomic_ignore_off_page(size + align);
output = (char*)GC_malloc_atomic_ignore_off_page(size + align);
output = (char*)(((cl_fixnum)output + align) & ~align);
end_critical_section();
return output;
......@@ -277,12 +276,12 @@ cl_object @'si::*gc-message*';
void
register_root(cl_object *p)
{
GC_add_roots(p, p+1);
GC_add_roots((char*)p, (char*)(p+1));
}
@(defun gc (area)
@
gc(0);
gc((enum cl_type)0);
@(return)
@)
......
......@@ -17,7 +17,7 @@
#include "ecl.h"
cl_object
APPLY(int n, cl_object (*fn)(), cl_object *x)
APPLY(int n, cl_objectfn fn, cl_object *x)
{
switch (n) {
case 0: return (*fn)(n);
......@@ -342,7 +342,7 @@ APPLY(int n, cl_object (*fn)(), cl_object *x)
}
cl_object
APPLY_closure(int n, cl_object (*fn)(), cl_object cl, cl_object *x)
APPLY_closure(int n, cl_objectfn fn, cl_object cl, cl_object *x)
{
switch (++n) {
case 1: return (*fn)(n, cl);
......@@ -663,7 +663,7 @@ APPLY_closure(int n, cl_object (*fn)(), cl_object cl, cl_object *x)
#ifdef NO_ARGS_ARRAY
cl_object
va_APPLY(int n, cl_object (*fn)(), va_list args)
va_APPLY(int n, cl_objectfn fn, va_list args)
{
cl_object x[n];
int i;
......@@ -672,7 +672,7 @@ va_APPLY(int n, cl_object (*fn)(), va_list args)
}
cl_object
va_APPLY_closure(int n, cl_object (*fn)(), cl_object cl, va_list args)
va_APPLY_closure(int n, cl_objectfn fn, cl_object cl, va_list args)
{
cl_object x[n+1];
int i;
......
......@@ -278,12 +278,12 @@ aset1(cl_object v, cl_index index, cl_object val)
cl_object x;
@
r = narg - 4;
x = alloc_object(t_array);
x = cl_alloc_object(t_array);
x->array.displaced = Cnil;
x->array.self.t = NULL; /* for GC sake */
x->array.rank = r;
x->array.elttype = (short)get_elttype(etype);
x->array.dims = alloc_atomic_align(sizeof(int)*r, sizeof(int));
x->array.dims = (cl_index *)cl_alloc_atomic_align(sizeof(cl_index)*r, sizeof(cl_index));
if (r >= ARANKLIM)
FEerror("The array rank, ~R, is too large.", 1, MAKE_FIXNUM(r));
for (i = 0, s = 1; i < r; i++) {
......@@ -320,13 +320,13 @@ aset1(cl_object v, cl_index index, cl_object val)
FEerror("The vector dimension, ~D, is too large.", 1, dim);
f = d;
if (aet == aet_ch) {
x = alloc_object(t_string);
x = cl_alloc_object(t_string);
d++; /* extra for null terminator */
}
else if (aet == aet_bit)
x = alloc_object(t_bitvector);
x = cl_alloc_object(t_bitvector);
else {
x = alloc_object(t_vector);
x = cl_alloc_object(t_vector);
x->vector.elttype = (short)aet;
}
x->vector.self.t = NULL; /* for GC sake */
......@@ -365,7 +365,7 @@ array_allocself(cl_object x)
/* assign self field only after it has been filled, for GC sake */
case aet_object: {
cl_object *elts;
elts = alloc_align(sizeof(cl_object)*d, sizeof(cl_object));
elts = (cl_object *)cl_alloc_align(sizeof(cl_object)*d, sizeof(cl_object));
for (i = 0; i < d; i++)
elts[i] = Cnil;
x->array.self.t = elts;
......@@ -373,7 +373,7 @@ array_allocself(cl_object x)
}
case aet_ch: {
char *elts;
elts = alloc_atomic(d);
elts = (char *)cl_alloc_atomic(d);
for (i = 0; i < d; i++)
elts[i] = ' ';
if (type_of(x) == t_string) elts[d-1] = '\0';
......@@ -381,9 +381,9 @@ array_allocself(cl_object x)
break;
}
case aet_bit: {
char *elts;
byte *elts;
d = (d+(CHAR_BIT-1))/CHAR_BIT;
elts = alloc_atomic(d);
elts = (byte *)cl_alloc_atomic(d);
for (i = 0; i < d; i++)
elts[i] = '\0';
x->vector.offset = 0;
......@@ -392,7 +392,7 @@ array_allocself(cl_object x)
}
case aet_fix: {
cl_fixnum *elts;
elts = alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
elts = (cl_fixnum *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0;
x->array.self.fix = elts;
......@@ -400,7 +400,7 @@ array_allocself(cl_object x)
}
case aet_sf: {
float *elts;
elts = alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
elts = (float *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0.0;
x->array.self.sf = elts;
......@@ -408,7 +408,7 @@ array_allocself(cl_object x)
}
case aet_lf: {
double *elts;
elts = alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
elts = (double *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0.0;
x->array.self.lf = elts;
......@@ -416,7 +416,7 @@ array_allocself(cl_object x)
}
case aet_b8: {
u_int8_t *elts;
elts = alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
elts = (u_int8_t *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0;
x->array.self.b8 = elts;
......@@ -424,7 +424,7 @@ array_allocself(cl_object x)
}
case aet_i8: {
int8_t *elts;
elts = alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
elts = (int8_t *)cl_alloc_atomic_align(sizeof(*elts)*d, sizeof(*elts));
for (i = 0; i < d; i++)
elts[i] = 0;
x->array.self.i8 = elts;
......@@ -539,7 +539,7 @@ because the total size of the to-array is too small.", 0);
from->array.self.t = (cl_object *)(array_address(to, j));
#endif
else
from->string.self = array_address(to, j);
from->string.self = (char *)array_address(to, j);
}
/*
......@@ -739,40 +739,39 @@ ILLEGAL: FEerror("~S is an illegal axis-number to the array ~S.",
Used in ADJUST-ARRAY.
*/
@(defun si::replace_array (old new)
@(defun si::replace_array (olda newa)
cl_object displaced, dlist;
ptrdiff_t diff;
@
if (type_of(old) != type_of(new)
|| (type_of(old) == t_array && old->array.rank != new->array.rank))
if (type_of(olda) != type_of(newa)
|| (type_of(olda) == t_array && olda->array.rank != newa->array.rank))
goto CANNOT;
if (!old->array.adjustable)
FEerror("~S is not adjustable.", 1, old);
diff = (char*)(new->array.self.t) - (char*)(old->array.self.t);
dlist = CDR(old->array.displaced);
displaced = CONS(CAR(new->array.displaced), dlist);
check_displaced(dlist, old, new->array.dim);
adjust_displaced(old, diff);
/* undisplace(old); */
switch (type_of(old)) {
if (!olda->array.adjustable)
FEerror("~S is not adjustable.", 1, olda);
diff = (char*)(newa->array.self.t) - (char*)(olda->array.self.t);
dlist = CDR(olda->array.displaced);
displaced = CONS(CAR(newa->array.displaced), dlist);
check_displaced(dlist, olda, newa->array.dim);
adjust_displaced(olda, diff);
switch (type_of(olda)) {
case t_array:
case t_vector:
case t_bitvector:
old->array = new->array;
olda->array = newa->array;
break;
case t_string:
old->string = new->string;
olda->string = newa->string;
break;
default:
goto CANNOT;
}
old->array.displaced = displaced;
@(return old)
olda->array.displaced = displaced;
@(return olda)
CANNOT:
FEerror("Cannot replace the array ~S by the array ~S.", 2, old, new);
FEerror("Cannot replace the array ~S by the array ~S.", 2, olda, newa);
@)
void
......
......@@ -52,8 +52,8 @@ setf_namep(cl_object fun_spec)
cl_object sym, fn_name = CAR(cdr);
cl_object fn_str = fn_name->symbol.name;
int l = fn_str->string.fillp + 7;
cl_object string = alloc_simple_string(l);
char *str = alloc_atomic(l+1);
cl_object string = cl_alloc_simple_string(l);
char *str = (char *)cl_alloc_atomic(l+1);
string->string.self = str;
strncpy(str, "(SETF ", 6);
strncpy(str + 6, fn_str->string.self, fn_str->string.fillp);
......
......@@ -298,9 +298,9 @@ init_backq(void)
r = standard_readtable;
r->readtable.table['`'].syntax_type = cat_terminating;
r->readtable.table['`'].macro = make_cf(@backquote-reader);
r->readtable.table['`'].macro = make_cf((cl_objectfn)@backquote-reader);
r->readtable.table[','].syntax_type = cat_terminating;
r->readtable.table[','].macro = make_cf(@comma-reader);
r->readtable.table[','].macro = make_cf((cl_objectfn)@comma-reader);
backq_level = 0;
}
......@@ -57,18 +57,18 @@ big_register_free(cl_object x)
cl_object
big_register_copy(cl_object old)
{
cl_object new = alloc_object(t_bignum);
cl_object new_big = cl_alloc_object(t_bignum);
if (old->big.big_dim > BIGNUM_REGISTER_SIZE) {
/* The object already has suffered a mpz_realloc() so
we can use the pointer */
new->big = old->big;
new_big->big = old->big;
big_register_free(old);
} else {
/* As the bignum points to the bignum_register_limbs[] area
we must duplicate its contents. */
mpz_init_set(new->big.big_num,old->big.big_num);
mpz_init_set(new_big->big.big_num,old->big.big_num);
}
return new;
return new_big;
}
cl_object
......@@ -96,19 +96,19 @@ big_register_normalize(cl_object x)
cl_object
big_alloc(int size)
{
volatile cl_object x = alloc_object(t_bignum);
volatile cl_object x = cl_alloc_object(t_bignum);
if (size <= 0)
error("negative or zero size for bignum in big_alloc");
x->big.big_dim = size;
x->big.big_size = 0;
x->big.big_limbs = alloc_atomic_align(size * sizeof(mp_limb_t), sizeof(mp_limb_t));
x->big.big_limbs = (mp_limb_t *)cl_alloc_atomic_align(size * sizeof(mp_limb_t), sizeof(mp_limb_t));
return(x);
}
cl_object
bignum1(int val)
{
volatile cl_object z = alloc_object(t_bignum);
volatile cl_object z = cl_alloc_object(t_bignum);
mpz_init_set_si(z->big.big_num, val);
return(z);
}
......@@ -128,7 +128,7 @@ bignum2(mp_limb_t hi, mp_limb_t lo)
cl_object
big_copy(cl_object x)
{
volatile cl_object y = alloc_object(t_bignum);
volatile cl_object y = cl_alloc_object(t_bignum);
mpz_init_set(y->big.big_num, x->big.big_num);
return(y);
}
......@@ -242,13 +242,13 @@ big_normalize(cl_object x)
static void *
mp_alloc(size_t size)
{
return alloc_atomic_align(size, sizeof(mp_limb_t));
return cl_alloc_atomic_align(size, sizeof(mp_limb_t));
}
static void *
mp_realloc(void *ptr, size_t osize, size_t nsize)
{
void *p = alloc_atomic_align(nsize, sizeof(mp_limb_t));
void *p = cl_alloc_atomic_align(nsize, sizeof(mp_limb_t));
memcpy(p, ptr, osize);
return p;
}
......@@ -256,7 +256,7 @@ mp_realloc(void *ptr, size_t osize, size_t nsize)
static void
mp_free(void *ptr, size_t size)
{
dealloc(ptr,size);
cl_dealloc(ptr,size);
}
void
......@@ -264,7 +264,7 @@ init_big(void)
{
int i;
for (i = 0; i < 3; i++) {
bignum_register[i] = alloc_object(t_bignum);
bignum_register[i] = cl_alloc_object(t_bignum);
register_root(&bignum_register[i]);
big_register_free(bignum_register[i]);
}
......
......@@ -22,11 +22,11 @@ cl_object @'defun', @'defmacro';
#endif PDE
cl_object
make_cfun(cl_object (*self)(), cl_object name, cl_object cblock)
make_cfun(cl_objectfn self, cl_object name, cl_object cblock)
{
cl_object cf;
cf = alloc_object(t_cfun);
cf = cl_alloc_object(t_cfun);
cf->cfun.entry = self;
cf->cfun.name = name;
cf->cfun.block = cblock;
......@@ -34,11 +34,11 @@ make_cfun(cl_object (*self)(), cl_object name, cl_object cblock)
}
cl_object
make_cclosure(cl_object (*self)(), cl_object env, cl_object block)
make_cclosure(cl_objectfn self, cl_object env, cl_object block)
{
cl_object cc;
cc = alloc_object(t_cclosure);
cc = cl_alloc_object(t_cclosure);
cc->cclosure.entry = self;
cc->cclosure.env = env;
cc->cclosure.block = block;
......@@ -46,7 +46,7 @@ make_cclosure(cl_object (*self)(), cl_object env, cl_object block)
}
void
MF(cl_object sym, cl_object (*self)(), cl_object block)
MF(cl_object sym, cl_objectfn self, cl_object block)
{
cl_object cf;
......@@ -58,7 +58,7 @@ MF(cl_object sym, cl_object (*self)(), cl_object block)
#ifdef PDE
record_source_pathname(sym, @'defun');
#endif PDE
cf = alloc_object(t_cfun);
cf = cl_alloc_object(t_cfun);
cf->cfun.entry = self;
cf->cfun.name = sym;
cf->cfun.block = block;
......@@ -67,7 +67,7 @@ MF(cl_object sym, cl_object (*self)(), cl_object block)
}
void
MM(cl_object sym, cl_object (*self)(), cl_object block)
MM(cl_object sym, cl_objectfn self, cl_object block)
{
cl_object cf;
......@@ -79,7 +79,7 @@ MM(cl_object sym, cl_object (*self)(), cl_object block)
#ifdef PDE
record_source_pathname(sym, @'defmacro');
#endif PDE
cf = alloc_object(t_cfun);
cf = cl_alloc_object(t_cfun);
cf->cfun.entry = self;
cf->cfun.name = sym;
cf->cfun.block = block;
......@@ -88,7 +88,7 @@ MM(cl_object sym, cl_object (*self)(), cl_object block)
}
cl_object
make_function(char *s, cl_object (*f)())
make_function(const char *s, cl_objectfn f)
{
cl_object x;
......@@ -99,7 +99,7 @@ make_function(char *s, cl_object (*f)())
}
cl_object
make_si_function(char *s, cl_object (*f)())
make_si_function(const char *s, cl_objectfn f)
{
cl_object x;
......
......@@ -58,12 +58,16 @@ main(int argc, char **args)
#ifdef CLX
SYM_VAL(@'*features*') = CONS(make_keyword("WANTS-CLX"), SYM_VAL(@'*features*'));
#endif
make_si_function("TOP-LEVEL", @si::simple-toplevel);
make_si_function("TOP-LEVEL", (cl_objectfn)@si::simple-toplevel);
funcall(1, _intern("TOP-LEVEL", system_package));
return(0);
}
int init_LSP() {}
#ifdef __cplusplus
extern "C" void init_LSP(void);
extern "C" void init_CLOS(void);
#endif
int init_CLOS() {}
void init_LSP(void) {}
void init_CLOS(void) {}
......@@ -41,14 +41,14 @@ make_our_hash_table(cl_object test, int size)
else if (test == @'equal')
htt = htt_equal;
h = alloc_object(t_hashtable);
h = cl_alloc_object(t_hashtable);
h->hash.data = NULL; /* for GC sake */
h->hash.test = (short)htt;
h->hash.size = size;
h->hash.rehash_size = rehash_size;
h->hash.threshold = rehash_threshold;
h->hash.entries = 0;
h->hash.data = alloc_align(size * sizeof(struct hashtable_entry), sizeof(int));
h->hash.data = (struct hashtable_entry *)cl_alloc_align(size * sizeof(struct hashtable_entry), sizeof(int));
for(i = 0; i < size; i++) {
h->hash.data[i].key = OBJNULL;
h->hash.data[i].value = OBJNULL;
......@@ -64,9 +64,9 @@ clos_boot(void)
/* booting Class CLASS */
class_class = alloc_instance(4);
class_class = cl_alloc_instance(4);
register_root(&class_class);
class_class->instance.class = class_class;
CLASS_OF(class_class) = class_class;
CLASS_NAME(class_class) = @'class';
CLASS_SUPERIORS(class_class) = Cnil;
CLASS_INFERIORS(class_class) = Cnil;
......@@ -76,9 +76,9 @@ clos_boot(void)
/* booting Class BUILT-IN */
class_built_in = alloc_instance(4);
class_built_in = cl_alloc_instance(4);
register_root(&class_built_in);
class_built_in->instance.class = class_class;
CLASS_OF(class_built_in) = class_class;
CLASS_NAME(class_built_in) = @'built-in';
CLASS_SUPERIORS(class_built_in) = CONS(class_class, Cnil);
CLASS_INFERIORS(class_built_in) = Cnil;
......@@ -88,9 +88,9 @@ clos_boot(void)
/* booting Class T (= OBJECT) */
class_object = alloc_instance(4);
class_object = cl_alloc_instance(4);
register_root(&class_object);
class_object->instance.class = class_built_in;
CLASS_OF(class_object) = class_built_in;
CLASS_NAME(class_object) = Ct;
CLASS_SUPERIORS(class_object) = Cnil;
CLASS_INFERIORS(class_object) = CONS(class_class, Cnil);
......
......@@ -14,6 +14,7 @@
See file '../Copyright' for full details.
*/