11 static long amount_used;
42 if(
arg_v[i][0]==
'-' && (
int)strlen(
arg_v[i])>=l+1)
43 if(!strncmp(
arg_v[i]+1,name,l))
44 if(
arg_v[i][l+1]==
'=')
59 return strcmp(s,
"off");
70 (void)snprintf(buffer_loc,40,
"%d",def);
84 printf(
"stack pointer is: %lx\n",(
unsigned long)
stack_pointer);
86 printf(
"\tc=%lx\ts=%lx\tg=%lx\tu=%lx\n",(
unsigned long)c,(
unsigned long)c->
stack_top,(
unsigned long)c->goal_stack,(
unsigned long)c->undo_point);
114 printf(
"UNDO: type:%ld a:%lx b:%lx next:%lx\n",u->
type,(
unsigned long)u->
aaaa_3,(
unsigned long)u->
bbbb_3,(
unsigned long)u->
next);
115 (void)fflush(stdout);
133 printf(
"\nUNDO: u=%lx\n",(
long)u);
136 printf(
"\nUNDO: u:%lx type:%ld a:%lx b:%lx next:%lx\n",
137 (
unsigned long)u,(
unsigned long)u->
type,(
unsigned long)u->aaaa_3,(
unsigned long)u->bbbb_3,(
unsigned long)u->next);
139 (void)fflush(stdout);
212 len /=
sizeof(*addr);
215 for (i=0; i<len; i++) {
218 if (*(addr+
delta)>=len)
222 *(addr+
delta) = (
long)new_addr + 1;
224 if (*(addr+
delta) & 1 == 0)
225 printf (
"compress: could be a bug ...\n");
251 len /=
sizeof (*addr);
259 len /=
sizeof (*addr);
277 for (i=0; i<len; i++) {
282 *(addr+
delta) = (
long)new_addr + 1;
292 #define UNCHECKED(P) (! *((GENERIC)(P)+delta))
315 long result=
FALSE, value;
321 printf(
"p=%lx,*p=%lx\n",p,*p);
332 printf(
"len=%ld,value=%ld\n",len,value);
337 if (!value || value==
LONELY) {
345 else if (value < len && len !=
LONELY) {
346 Errorline(
"in garbage collection, %d < %d.\n", value, len);
348 else if (value > len && len !=
LONELY) {
349 Errorline(
"in garbage collection, %d > %d.\n", value, len);
385 bytes=strlen((
char *)*s)+1;
403 amount_used+=strlen(*s)+1;
422 unsigned long bytes = *((
unsigned long *) *s);
423 unsigned long size = bytes +
sizeof(bytes);
582 for(i=0;i<table->size;i++)
620 printf(
"%lx %20s %ld\n",*d,(*d)->keyword->symbol,amount_used);
638 check_block_def(&((*d)->block_def));
696 check_block_def(&((*d)->block_def));
744 switch ((*g)->type) {
839 Errorline(
"in garbage collection, bad goal on stack.\n");
872 printf(
"Found an old list!!\n");
936 if ((*t)->type==
alist) {
939 printf(
"Found an old list!\n");
951 else if ((*t)->type->type==block) {
952 check_block_value(&((*t)->value_3));
955 else if ((*t)->type==
cut) {
958 (*t)->value_3=(
GENERIC)choice_stack;
963 else if ((*t)->type!=
stream)
964 Errorline(
"non-NULL value field in garbage collector, type='%s', value=%d.\n",
965 (*t)->type->keyword->combined_name,
1043 switch((*s)->type) {
1073 check_block_value(&((*s)->bbbb_3));
1399 fprintf(stderr,
" [%ld%% free (%ldK), %ld%% heap, %ld%% stack",
1401 ((
unsigned long)
heap_pointer-(
unsigned long)stack_pointer+512)/1024,
1405 fprintf(stderr,
", %1.3fs cpu (%ld%%)",
1409 fprintf(stderr,
"]\n");
1433 struct tms garbage_start_time,garbage_end_time;
1434 long start_number_cells, end_number_cells;
1438 (void)times(&garbage_start_time);
1445 fprintf(stderr,
"*** Garbage Collect ");
1446 fprintf(stderr,
"\n*** Begin");
1448 (void)fflush(stderr);
1460 fprintf(stderr,
"- Done pass 1 ");
1466 fprintf(stderr,
"- Done compress ");
1474 fprintf(stderr,
"- Done pass 2\n");
1482 (void)times(&garbage_end_time);
1483 gc_time=(garbage_end_time.tms_utime - garbage_start_time.tms_utime)/60.0;
1487 fprintf(stderr,
"*** End ");
1490 (void)fflush(stderr);
1496 assert(end_number_cells<=start_number_cells);
1524 s /=
sizeof (*heap_pointer);
1529 Errorline(
"the heap overflowed into the stack.\n");
1552 s /=
sizeof (*stack_pointer);
1557 Errorline(
"the stack overflowed into the heap.\n");
1612 Errorline(
"Wild_life could not allocate sufficient memory to run.\n\n");
1627 if(
verbose) fprintf(stderr,
"\n");
1631 fprintf(stderr,
"*********************\n");
1632 fprintf(stderr,
"*** OUT OF MEMORY ***\n");
1633 fprintf(stderr,
"*********************\n");
static void check_type_disj(ptr_int_list *p)
ptr_definition boolpredsym
static void check_undo_stack()
ptr_node printed_pointers
GENERIC stack_alloc(long s)
static void check_resid_list()
static void check_bytedata(GENERIC *s)
static void check_resid(ptr_residuation *r)
ptr_module current_module
ptr_definition dynamicsym
ptr_definition xdisplaylist
static void check_goal_stack(ptr_goal *g)
ptr_definition xbutton_event
ptr_definition listingsym
static void check_operator_data(ptr_operator_data *op)
ptr_psi_term null_psi_term
static void check_string(GENERIC *s)
static void check_special_addresses()
ptr_definition aborthooksym
ptr_definition xexpose_event
static void check_pair_list(ptr_pair_list *p)
static void check_module()
GENERIC heap_alloc(long s)
ptr_definition xmotion_event
static long unchecked(GENERIC *p, long len)
ptr_resid_list resid_vars
struct wl_list * ptr_list
ptr_definition xmisc_event
long abort_life(int nlflag)
ptr_definition minus_symbol
static void check_symbol(ptr_node *n)
static void check_choice()
long sub_type(ptr_definition t1, ptr_definition t2)
void check_definition(ptr_definition *d)
void print_gc_info(long timeflag)
ptr_definition add_module3
static void check_kids(ptr_int_list *c)
void Errorline(char *format,...)
static void check_def_code(ptr_definition *d)
void check_resid_block(ptr_resid_block *rb)
static void check_choice_structs(ptr_choice_point *c)
ptr_definition xkeyboard_event
ptr_definition first_definition
ptr_psi_term error_psi_term
ptr_definition * gamma_table
static void check_triple_list(ptr_triple_list *p)
ptr_definition quoted_string
struct wl_definition * ptr_definition
void check_psi_term(ptr_psi_term *t)
static void check_module_list(ptr_int_list *c)
ptr_definition disjunction
static void check_code(ptr_int_list *c)
ptr_definition xenter_event
ptr_definition add_module2
int GetBoolOption(char *name)
ptr_definition delay_checksym
void check_definition_list()
ptr_definition final_question
char * GetStrOption(char *name, char *def)
ptr_psi_term saved_psi_term
ptr_definition sys_bytedata
ptr_definition add_module1
static void check_var(ptr_node *n)
struct wl_psi_term * ptr_psi_term
void stack_info(FILE *outfile)
long sub_CodeType(ptr_int_list c1, ptr_int_list c2)
ptr_definition xdestroy_event
static void check_module_tree(ptr_node *n)
int GetIntOption(char *name, int def)
ptr_definition xleave_event
static void check_psi_list()
static void check_gamma_rest()
void check_sys_definitions()
ptr_definition xconfigure_event
ptr_psi_term xevent_existing
static void check_keyword()
void check_attr(ptr_node *n)
ptr_definition inputfilesym
long open_input_file(char *file)
static struct tms last_garbage_time
static void check_def_rest(ptr_definition *d)
ptr_definition call_handlersym
ptr_choice_point choice_stack
ptr_psi_term old_saved_psi_term
ptr_definition eval_argsym