Debug prints added

This commit is contained in:
Egor Sheremetov 2024-02-20 02:32:42 +01:00 committed by Roman Venediktov
parent c4ffeb2fbf
commit 73edd5603d
3 changed files with 22 additions and 11 deletions

View file

@ -52,18 +52,21 @@ void *alloc (size_t size) {
#ifdef DEBUG_VERSION
++cur_id;
#endif
size_t bytes_sz = size;
size_t obj_size = size;
size = BYTES_TO_WORDS(size);
size_t padding = size * sizeof(size_t) - obj_size;
#if defined(DEBUG_VERSION) && defined(DEBUG_PRINT)
fprintf(stderr, "allocation of size %zu words (%zu bytes): ", size, bytes_sz);
#endif
void *p = gc_alloc_on_existing_heap(size);
if (!p) {
fprintf(stderr, "Garbage collection is not implemented yet.\n");
exit(149);
// fprintf(stderr, "Garbage collection is not implemented yet.\n");
// exit(149);
// not enough place in the heap, need to perform GC cycle
// p = gc_alloc(size);
p = gc_alloc(size);
}
printf("Object allocated: content [%p, %p) padding [%p, %p)\n", p, p + obj_size, p + obj_size, p + size * sizeof(size_t));
fflush(stdout);
return p;
}
@ -185,6 +188,8 @@ void *gc_alloc_on_existing_heap (size_t size) {
}
void *gc_alloc (size_t size) {
printf("Reallocation!\n");
fflush(stdout);
#if defined(DEBUG_VERSION) && defined(DEBUG_PRINT)
fprintf(stderr, "===============================GC cycle has started\n");
#endif
@ -880,6 +885,7 @@ void *alloc_string (auint len) {
obj->id = cur_id;
#endif
obj->forward_address = 0;
printf("Allocated string\n");
return obj;
}
@ -893,6 +899,7 @@ void *alloc_array (auint len) {
obj->id = cur_id;
#endif
obj->forward_address = 0;
printf("Allocated array\n");
return obj;
}
@ -907,6 +914,7 @@ void *alloc_sexp (auint members) {
#endif
obj->forward_address = 0;
obj->tag = 0;
printf("Allocated sexp\n");
return obj;
}
@ -921,5 +929,6 @@ void *alloc_closure (auint captured) {
obj->id = cur_id;
#endif
obj->forward_address = 0;
printf("Allocated closure\n");
return obj;
}

View file

@ -41,7 +41,9 @@
// # define MINIMUM_HEAP_CAPACITY (8)
// #else
// # define MINIMUM_HEAP_CAPACITY (1 << 2)
#define MINIMUM_HEAP_CAPACITY (1 << 30)
//#define MINIMUM_HEAP_CAPACITY (1 << 30)
//#define MINIMUM_HEAP_CAPACITY (30)
#define MINIMUM_HEAP_CAPACITY (30)
// #endif
#include <stdbool.h>

View file

@ -786,9 +786,9 @@ extern void *Bclosure (aint bn, void *entry, ...) {
va_list args;
aint i, ai;
#ifdef X86_64
register size_t *stack_frame asm("ebp");
#else
register size_t *stack_frame asm("rbp");
#else
register size_t *stack_frame asm("ebp");
#endif
size_t *argss;
data *r;
@ -877,13 +877,13 @@ extern void *Bsexp (aint bn, ...) {
return (void *)((data *)r)->contents;
}
extern long Btag (void *d, aint t, aint n) {
extern aint Btag (void *d, aint t, aint n) {
data *r;
if (UNBOXED(d)) return BOX(0);
else {
r = TO_DATA(d);
return (long)BOX(TAG(r->data_header) == SEXP_TAG && TO_SEXP(d)->tag == UNBOX(t)
return (aint)BOX(TAG(r->data_header) == SEXP_TAG && TO_SEXP(d)->tag == UNBOX(t)
&& LEN(r->data_header) == UNBOX(n));
}
}
@ -1255,9 +1255,9 @@ extern void *Lhd (void *v) { return Belem(v, BOX(0)); }
extern void *Ltl (void *v) { return Belem(v, BOX(1)); }
/* Lread is an implementation of the "read" construct */
extern long Lread () {
extern aint Lread () {
// int result = BOX(0);
int64_t result = BOX(0);
aint result = BOX(0);
printf("> ");
fflush(stdout);