15 static long amount_used;
48 if(
arg_v[i][0]==
'-' && (
int)strlen(
arg_v[i])>=l+1)
49 if(!strncmp(
arg_v[i]+1,name,l))
50 if(
arg_v[i][l+1]==
'=')
68 return strcmp(s,
"off");
82 (void)snprintf(buffer_loc,40,
"%d",def);
96 printf(
"stack pointer is: %lx\n",(
unsigned long)
stack_pointer);
98 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);
128 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);
129 (void)fflush(stdout);
152 printf(
"\nUNDO: u=%lx\n",(
long)u);
155 printf(
"\nUNDO: u:%lx type:%ld a:%lx b:%lx next:%lx\n",
156 (
unsigned long)u,(
unsigned long)u->
type,(
unsigned long)u->aaaa_3,(
unsigned long)u->bbbb_3,(
unsigned long)u->next);
158 (void)fflush(stdout);
239 len /=
sizeof(*addr);
242 for (i=0; i<len; i++) {
245 if (*(addr+
delta)>=len)
249 *(addr+
delta) = (
long)new_addr + 1;
251 if (*(addr+
delta) & 1 == 0)
252 printf (
"compress: could be a bug ...\n");
278 len /=
sizeof (*addr);
286 len /=
sizeof (*addr);
304 for (i=0; i<len; i++) {
309 *(addr+
delta) = (
long)new_addr + 1;
317 #define UNCHECKED(P) (! *((GENERIC)(P)+delta))
342 long result=
FALSE, value;
348 printf(
"p=%lx,*p=%lx\n",p,*p);
359 printf(
"len=%ld,value=%ld\n",len,value);
364 if (!value || value==
LONELY) {
372 else if (value < len && len !=
LONELY) {
373 Errorline(
"in garbage collection, %d < %d.\n", value, len);
375 else if (value > len && len !=
LONELY) {
376 Errorline(
"in garbage collection, %d > %d.\n", value, len);
414 bytes=strlen((
char *)*s)+1;
432 amount_used+=strlen(*s)+1;
455 unsigned long bytes = *((
unsigned long *) *s);
456 unsigned long size = bytes +
sizeof(bytes);
629 for(i=0;i<table->
size;i++)
669 printf(
"%lx %20s %ld\n",*d,(*d)->
keyword->
symbol,amount_used);
687 check_block_def(&((*d)->block_def));
750 check_block_def(&((*d)->block_def));
804 switch ((*g)->type) {
899 Errorline(
"in garbage collection, bad goal on stack.\n");
934 printf(
"Found an old list!!\n");
1000 if ((*t)->value_3) {
1002 if ((*t)->type==
alist) {
1005 printf(
"Found an old list!\n");
1017 else if ((*t)->type->type==block) {
1018 check_block_value(&((*t)->value_3));
1021 else if ((*t)->type==
cut) {
1024 (*t)->value_3=(
GENERIC)choice_stack;
1029 else if ((*t)->type!=
stream)
1030 Errorline(
"non-NULL value field in garbage collector, type='%s', value=%d.\n",
1031 (*t)->type->keyword->combined_name,
1117 switch((*s)->type) {
1147 check_block_value(&((*s)->bbbb_3));
1494 fprintf(stderr,
" [%ld%% free (%ldK), %ld%% heap, %ld%% stack",
1496 ((
unsigned long)
heap_pointer-(
unsigned long)stack_pointer+512)/1024,
1500 fprintf(stderr,
", %1.3fs cpu (%ld%%)",
1504 fprintf(stderr,
"]\n");
1532 struct tms garbage_start_time,garbage_end_time;
1533 long start_number_cells, end_number_cells;
1537 (void)times(&garbage_start_time);
1544 fprintf(stderr,
"*** Garbage Collect ");
1545 fprintf(stderr,
"\n*** Begin");
1547 (void)fflush(stderr);
1559 fprintf(stderr,
"- Done pass 1 ");
1565 fprintf(stderr,
"- Done compress ");
1573 fprintf(stderr,
"- Done pass 2\n");
1581 (void)times(&garbage_end_time);
1582 gc_time=(garbage_end_time.tms_utime - garbage_start_time.tms_utime)/60.0;
1586 fprintf(stderr,
"*** End ");
1589 (void)fflush(stderr);
1595 assert(end_number_cells<=start_number_cells);
1621 s /=
sizeof (*heap_pointer);
1626 Errorline(
"the heap overflowed into the stack.\n");
1651 s /=
sizeof (*stack_pointer);
1656 Errorline(
"the stack overflowed into the heap.\n");
1711 Errorline(
"Wild_life could not allocate sufficient memory to run.\n\n");
1728 if(
verbose) fprintf(stderr,
"\n");
1732 fprintf(stderr,
"*********************\n");
1733 fprintf(stderr,
"*** OUT OF MEMORY ***\n");
1734 fprintf(stderr,
"*********************\n");
static void check_type_disj(ptr_int_list *p)
check_type_disj
ptr_definition boolpredsym
static void check_undo_stack()
ptr_node printed_pointers
long memory_check()
memory_check
GENERIC stack_alloc(long s)
stack_alloc
static void check_resid_list()
static void check_bytedata(GENERIC *s)
check_bytedata
void clear_copy()
clear_copy
static void check_resid(ptr_residuation *r)
check_resid
ptr_module current_module
ptr_definition dynamicsym
ptr_definition xdisplaylist
static void check_goal_stack(ptr_goal *g)
check_goal_stack
ptr_definition xbutton_event
ptr_definition listingsym
static void check_operator_data(ptr_operator_data *op)
check_operator_data
ptr_psi_term null_psi_term
static void check_string(GENERIC *s)
check_string
static void check_special_addresses()
check_special_addresses
ptr_definition aborthooksym
ptr_definition xexpose_event
static void check_pair_list(ptr_pair_list *p)
check_pair_list
static void check_module()
GENERIC heap_alloc(long s)
heap_alloc
ptr_definition xmotion_event
static long unchecked(GENERIC *p, long len)
unchecked
ptr_resid_list resid_vars
struct wl_list * ptr_list
ptr_definition xmisc_event
long abort_life(int nlflag)
abort_life
ptr_definition minus_symbol
static void check_symbol(ptr_node *n)
check_symbol
static void check_choice()
long sub_type(ptr_definition t1, ptr_definition t2)
void check_definition(ptr_definition *d)
check_definition
void print_gc_info(long timeflag)
print_gc_info
ptr_definition add_module3
static void check_kids(ptr_int_list *c)
check_kids
void Errorline(char *format,...)
static void check_def_code(ptr_definition *d)
check_def_code
void check_resid_block(ptr_resid_block *rb)
check_resid_block
static void check_choice_structs(ptr_choice_point *c)
check_choice_structs
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)
check_triple_list
ptr_definition quoted_string
void print_undo_stack()
print_undo_stack
struct wl_definition * ptr_definition
void check_psi_term(ptr_psi_term *t)
check_psi_term
static void check_module_list(ptr_int_list *c)
check_module_list
ptr_definition disjunction
static void check_code(ptr_int_list *c)
check_code
ptr_definition xenter_event
void init_memory()
init_memory ()
ptr_definition add_module2
int GetBoolOption(char *name)
GetBoolOption.
ptr_definition delay_checksym
void check_definition_list()
check_definition_list
static void compress()
compress
ptr_definition final_question
char * GetStrOption(char *name, char *def)
GetStrOption.
ptr_psi_term saved_psi_term
ptr_definition sys_bytedata
ptr_definition add_module1
void check_gamma_code()
check_gamma_code
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)
void check_hash_table(ptr_hash_table table)
check_hash_table
ptr_definition xdestroy_event
static void check_module_tree(ptr_node *n)
check_module_tree
int GetIntOption(char *name, int def)
GetIntOption.
ptr_definition xleave_event
static void check_psi_list()
static void check_gamma_rest()
check_gamma_rest
void check_sys_definitions()
ptr_definition xconfigure_event
ptr_psi_term xevent_existing
static void check_keyword()
long bounds_undo_stack()
bounds_undo_stack
void check_attr(ptr_node *n)
check_attr
ptr_definition inputfilesym
long open_input_file(char *file)
static struct tms last_garbage_time
static void check_def_rest(ptr_definition *d)
check_def_rest
ptr_definition call_handlersym
ptr_choice_point choice_stack
ptr_psi_term old_saved_psi_term
ptr_definition eval_argsym