Record of Report of WildLIFE from version 1.02
Started 7/31/2019 6:30pm CT
Working in Ubuntu 18.04 Linux

Created WildLIFE-4.01 Directory
Created WildLIFE-4.01 Subdirectory
Copied Life-1.02.tar.gz into Subdirectory
Unpacked to Life-1.02 Subdirectory
Rnamed it to WildLIFE-4.01
Unpacked Life-1.02.tar.gz again
chmod -R u-w Life-1.02
Copy Life-2.33 to WildLIFE-4.01/WildLIFE-4.01
Unpacked to Life-2.33 Subdirectory
chmod -R u-w Life-2.33

THOUGHTS - NOT DONE YET
My initial thought is that a great deal of the porting work is captured
in the headers files - especially function prototypes.
So I plan to insert the header files (from 2.33) into the c files
(in 4.01 - as copied from 1.02) one at a time.
I also plan to do the Makefile more correctly this time. Previously,
I was just deleting all object files each time.


Also - I am not using "configure".
My code is intended to work on any 64 bit Linux or cygwin without "configure."
I copied Makefile in WildLIFE-4.01 to Makefile.orig (to make sure saved)
Proceeding to work on Makefile.
Looks Like I will need to create Makefile in Source subdirectory.
It would have been created by "configure."

END THOUGHTS


I will start by copying Makefile from the one in Source subdirectory in Life-2.33
Also copied my scripts ee and ee? from Life-2.33 to WildLIFE-4.01.
(Mostly to make editing easier.).
Made ee writable and added Port.txt
Copied mk.sh & made writable.
Added "./" before Try in Makefile in regexp
I use "./ee" for most editing and its option 111 for make.
For now, it deletes all ".o" files - rather than relying on Makefile correctness.

Seems rexexp compiles OK.

Get error about varargs.h - C now uses stdarg.h
(in extern.h from bi_math.c)

AT THIS POINT ADDING HEADERS FROM 2.33

Copy defs.h, def_const.h, def_glob.h, def_macro.h, def_proto.h, def_struct.h

Copied above from Life-2.33/Source to Life-4.01/Source

Start with bi_math.c

WILL USE #ifdef REV102 to ifdef out code removed.
WILL USE #ifdef REV401PLUS to include new code 

In goal structure I had changed "a" and "b" to "aaaa_1" and "bbbb_1"
(I find members of different structures confusing.)
(Also one letter variables practically impossible for searching.)
Did global changes aim->a and aim->b to aim->aaaa_1 and aim->bbbb_2

In new_built_in
change "function" to "(def_type)function_it"
it had been an enumeration in 1.02 - now it is an integer.
Tobe cast to a pointer.



The defines replacing the enums are:
#define   undef_it 1
#define   predicate_it 2
#define   function_it 3
#define   type_it 4
#define   global_it 5
#define   block_it 6

Where I worked we did not use enumerations.
And it is used as pointer - I did not feel compfortable with enum as pointer.
My defines are cast with (def_type) to pointers when compared

IN bi_bi_sys.c
Did global changes aim->a and aim->b to aim->aaaa_1 and aim->bbbb_2

changed "true" & "false" to "lf_true" and "lf_false" (avoiding possible conflicts)

Added (THIS NEW WHEN REPORTING)
#define Infoline   if (NOTQUIET) infoline
to def_macro.h
(seemed missing)

Im memory statistics added "l" in format strings (for longs)
Change in psi_terms value to value_3 (less confusing - using different names in different structures).
Change ptr_int_list value to value_1
NEXT 3 seemed to be mistakes in port before
ptr_psi_term quotedStackCopy(ptr_psi_term p); // Reverted - ptr back in arg REV401PLUS 
ptr_psi_term stack_copy_psi_term(ptr_psi_term t); // added ptr_ to arg REV401PLUS
ptr_psi_term heap_copy_psi_term(ptr_psi_term t);  // added ptr_ to arg REV401PLUS

channge value to value_1, value_2 or value_3 according to structure its in

struct wl_definition’ has no member named ‘type’ NOW it is type_def

in bi_type.c lone 639 added cast in next line
push_choice_point(type_disj, result, (ptr_psi_term)decodedType, NULL);

--------------------------------------------------------------------------
STARTING AGAIN 8/1/2019

changed char *arg_v[ARGNN]; // Modified DJD in built_ins.c

following defines used to indicate comparison function rather than
passing function pointer which is difficult when function parameters differ.

#define STRCMP  1L 
#define INTCMP  2L
#define FEATCMP 3L

also cast 4th argument of stack_insert to (GENERIC)

Global replace DEFRULES with (ptr_psi_term)DEFRULES

change several locals from "eval" to "eval_2" because of conflict with a define

true & false changed to lf_true & lf_false

