6/16/2016
Starting at rev 2.05 (initial 2.06
Test Suite gives
325 total tests
107 match
218 differ
213 out differ
14 err differ






6/17/2016

Made change in login.c regarding level pf prompt in case of abort_hook
That fixed that - but only that test.
I noticed wrong level in other tests.

Suspected level might be corrupted.

Investigating decided to make a, b, c elements of structures

wl_pair_list to aaaa_2, bbbb_2

wl_triple_list to aaaa_4, bbbb_4, cccc_4

wl_stack to aaaa_3, bbbb_3

wl_goal to aaaa_1, bbbb_1, cccc_1.

This was not to affect logic - but rather to make searching the code easier.
The Test Suite gave same counts afterwards.

As this was a lot of editing will make tar backup at this point.
Life-2.06-2016_06_17.A.tar.gz
--------------------------------------------------------------------

6/17/2016

--------------------------------------------------------------------
Changed how level is calculated in login.c
Not changed much else in wild life.
I had tried a lot of other things - but threw them away.
----------------------------------------------------------------

I did improve my debugging script -- ee.
Especially option 114.
It permits you to browse Test Suite and results.
Also approve current results - if you think they are more correct.
I've only approved addtab so far over original results.
-----------------------------------------------------------------------



6/27/16
Commented out "|| level > 0" line 2035 login.c -- don't print value if fails


in testing my version often gives @ in result where old ref or handbook gives variable.

Seems to be problem with ::

ex 09-02C value does not print bacause answer is no.
Result of "|| level > 0" cange - still think that is better.

Problem with op * - see bagof3 and bagof6

problem with copyfile

problem with curry - need to study

debug - clause # reversed

another trouble with * in disj1

trouble with :: see aaa-07-06 - not sure I'm using it correctly
also aaa-07-07

trouble with modules or features aaa-10-01 & aaa-10-04

6/28/2016 - Decided to try to attack problem with improper evaluating arguments.
will make aaa-00-listing test case (listing is such a predicate - saw in long in test suite.)

6/29/2016 - I think listing is working correctly - I just did not understand what it was supposed to do.

persistent terms are not being printed with other values see 09-04 & 09-06

quoting global variables not working as in handbook - see 09-07
-- quote itself seems ok - see aaa-00-quote
copied 09-07 to aaa-00-quote_2 for testing
 

current module not set right - see 10-04

problem with * (not same as other ops) -  see bagof3

7/1/2016 Major fixes to how comparisons work

7/2/16
NOTE bagof3 & bagof6 now working
Problem with import ib extest ?

Looked thru grammars

Added paths for import statements. used relative  - maybe should have ~/...

7/5/2016 Version 2.20 
- Abend on misplaced ' afer error message. (plilosophy)
-- No abend on missing " in write statement (after error message).

==========================================================================
7/6/2016 TestSuite NOTES on what does not match

aaa-00-complex-module (I made up) - module,public,open,display_modules

aaa-00-quote_2 (I made up) - global, '---',assert,listing (like aaa-09-07)

aaa-06-03 - Wrong value

aaa-07-06 - does not trace

aaa-07-07 - does not trace

aaa-08-14 - things swapped - may be OK
 
aaa-08-23 - does not write self [2.22 NOW DOES]

aaa-08-29 - wrong error code when system() fails [TWEAKED - OK]

aaa-09-04 - persistent

aaa-09-06 - *** Error: cannot unify persistent values

aaa-09-07 - cannot quote global (I think can quote non-global)

aaa-10-01 - module, publc, private_feature, open, display_modules

another-bug - did not investigate

babcode - different number of sorts - looks similar otherwise

children - bytedata missing (also some other - because not "raw"?)' [OK'd 2.22 just confif I think]

clause  - different - no not understand

debug - clause #'s reversed

dupfeat - line numbers not in error - I approved anyway (stdin?)

extest - examples not imported? path?

factorize - slightly different output

glob_test2 - *** Error: cannot unify persistent values

intlist - different output

inttrace - trace missing

lazy - different output - delay_check

libtest - reference has \'s missing as:
<   +>=,+=<,+>,+<,+><,==,+>=,+=<,+>,+<,+><,==
---
>   +>=,+=<,+>,+<,+><,==,+\>=,+\=<,+\>,+\<,+\><,\==

Mine match entries in Lib/structures.lf


listing1 - could see no difference - approved

long - different - don't see whats going on

manual4 - get error - using dynamic
*** Error: 'foo' is not a predicate or a function.
-- same error in reference. - approved.
mine in addition has
*** END Abort
at end
manual8 - no trace

matrix - very complicated - saw ",," in my result at end not in reference

module_test2 - both give error - same as manual4  - approved
mine in addition has
*** END Abort
at end

nofour - got a 4

pers2 - got
*** Error: cannot use '<-' on persistent value in  $@ <- hello
same as ref + *** END Abort
approved

posint - looks like both are wrong to me - not approved

prime - looks like mine corect - reference lists a lot of non-primes

print2 - refdiff shows stuff in neither file - not approved

soap - different not approved

subsort - different not approved

8101 - both out of memory - mine gives *** END Abort

8104 - Mine gives Infinity & NaN instead of inf & nan --- approved

8105 - Reference gives OUt OF MEMORY - mine nothing -- not approved

test03 - a bunch of things are no longer undefined -- not approved ????

testsl - I get Syntax error in SuperLint

t - now there are more sorts - probably OK but not approved


=====================================================================
7/72016-7/9/2016 Extensive editing

Created prototypes for all (non-static) functions - from 1.02 .c files.

Corrected all errors & warning - except x - I removed X11 define from makefile
temorarally.

Ran Test Suite - 2 matched.
Ran on pitch & realized I had trace turned on in .set_up
Tuened off. 8 matched.
Knew I had added & in fileptr2stream calls because of type discrepancy.
Removed them. 351 matched.

Then removed * from typ in fileptr2stream (also prototype).
Still 351 match - but warnings gone.

----------------------------------------------------------------------
Will only note differences I remember.
08-23 now works - approved.

one other approved - stats slightly different otherwise same - now 353

Noticed gc trace on (memory.c)  - now 378 match

babcode - data slightly different appears to work correctly - now 379

extest - I get wrong output 

djd-pitch - no longer get gc error
 
-----------------------------------------------------------------------
7/9/2016
tweaked c_system in bi_sys,c
08-29 now approved.

children approved - just differences in system definition
------------------------------------------------------------------------------
7/10/16 After more work

413 total tests.
396 match - (1 of those is just that some memory stats vary).
17 differ
17 differ on stdout
3 differ on stderr
-----------------------------------------
1 aaa-00-complex-module  I was experimenting - I probably am doing something wrong.

2 aaa-00-quote_2  Same as a later test trouble with globals & quote. I think I succeded with quotes elsewhere.

3. aaa-08-14 Slightly different but possibly equivalent output.

4. aaa-09-04 problem with persistent

5. aaa-09-06 *** Error: cannot unify persistent values

6. aaa-09-07 really same as #2 above.

7. aaa-10-01 *** Error: 'prison(door => guarded)' is not a predicate or a function.

8. another_bug - I have not tried to examine.

9. clause - same output in different order

10. debug - looks like same output except clause #'s reversed

11. libtesr - seems man entries missing - problem with import?

12. long  - problem with listing

13. matix - differs - too large to examine.

14. print2 - some 0's replaced by blanks in large negative numbers.

15. test02 - difference in listall?

16. testsl - syntax error in superlint - 

17. t - I don't understand

=====================================================================
7/11/2016 - still 2.22
added 13-01   - get an error (apply)
added 13.02   - works - approved.
added 13.03   - works - (apply) - I think I know how to use. approved.
added 13.04   - works - approved.

7/13/2016
eliminated enums with defines - def_ type was being used as ptr_definition
modified work.sh so can move LF files to LFSAV (in case they cannot be expected to match exactly).

eliminated aaa---00-complex-module - just my experiment

found 09-06 works - needed couple more blank lines - approved

08-14 - resulting expressions look equivalent but keeping

09-04 still differs - possibly incomplete example?

07-07 problem w global & single quote

10-01 - no match

13-01 get error - adding feature to mod

clause - same results in different order - approved

debug - same except clause # reversed - moved to LFSAV

libtest - think info missing or in different order  - elininated for naw

long - differ ???

matrix - too complex - eliminated

print2 - blanks in middle large numbers instead od 0's

test03 - depends on confis such as X11 - eliminated

testsl - changed \ to \\ places in c_tokenizer - lines 718 & 782 (Examples/SuperLint) - get 1 addl warning about __STDC__ already defined -- approved.

t -- only difference is I have 6 more sorts:
1 sys#bitvector
2 sys#regexp
3 sys#file_stream
4 sys#socket_stream
5 sys#stream
6 sys#bytedata

Approved

08-28 - eliminated - stats vary

eliminsted aaa-00-quote_2 --- identical with 09-07

approved 08-14 -- looks correct to me after study of handbook
 1
approved 09-04 -- looks correct to me after study of handbook

approved 09-07 -- I had mistyped - need leading backquote instead of quotes
 
approved 10-01 - just required very careful editing of input

eliminated 13-01 - think something wrong in example

eliminated long  -- think neither referene nor mine correct

print2 approved -- made correction in format of sprintf (went back to 1.02 print.c) -- now works

------------------------------------------------------------------
Had everything matching perfectly in 64 bit Ubuntu - moved to 64 bit cygwin.
Caught some use & definition of lf_strcmp -- eliminated them.
---------------------------------------------------------------------
All matched except 5.
08-29 "system" error message slightly different under cygwin -- IGNORE.
09-02B - reference had been blank - output is correct - approved
t8104  - got 2 cases of -nan instead of nan - IGNORE
testsl - had forgot to install life_local with SuperLint fix - did so
       fixed problem - there is slight difference in cygwin message
z_gctoken1 -- different output - slightly changed .lf file - then worked
	   do not trust test - eliminated.
-------------------------------------------------------------------------
copied back to ubuntu - all worked - 406 tests match perfectly.
-------------------------------------------------------------------------
copied to 32 bit ubuntu
got 2 compiler warnings - lines 1103 & 1104 of login.c
passing int to %ld in format
must br due to size of pointers - as when changed in 64 bit made opposite complaint.
also it said it was ignoring 64 bit libaries (Makefile should be different for
32 bit) but it handles it OK 

when ran test suite in 32 bit ubuntu got 3 differences
aaa-08-14-arith-64   size of numbers is smaller
babcode  - apparently difference in builtins
t  - apparently difference in builtins
------------------------------------------------------------------------------

Edited INSTALL file/

------------------------------------------------------------------------
2.25 edited buffer in error.c for longs to be %ld or %lx

-------------------------------------------------------------------------
7/20/2016
restored preparser.lf to Test Suite (it had crashed before)
Still Crashed
Changed \ to \\ on line 453 - then it worked correctly. 
(had done same in SuperLint
-------------------------------------------------------------------------

8/4/2016
Acquired splint - began using wild_life c source.

1st eliminated dupl declarations in def_glob.h
I had known there were some there.
Compiler itself gives errors if they do not match.

renamed sys_dbm.c sys_dbm.c.sav
It was causing trouble with splint & was not actually being used.

tarred as 2.25

--------------------------------------------------------------------
8/4/2016

Created 2.26 directory and did the following - also based on splint.

I tried to satisfy splint wherever reasonably easy.
I disabled many tests as the wild life code seemed designed to do what was complained about - mostly the way memory was allocated and used.

---------------------------------------------------------------------------

changed true to lf_true & false to lf_false
(emacs coloring & splint warnings)

got rid of memory_new_gamma.c & types_new_gamma.c

getting rid of
#ifndef lint
static char vcid[] = "$Id: parser.c,v 1.2 1994/12/08 23:32:03 duchier Exp $";
#endif /* lint */

in c files

changed
long open_output_file(string file);
to
long open_output_file(char *file);
in def_proto.h

in
long c_quiet()
in
bi_sys.c
changes success to long from int

added casts (void) to some function calls where return value ignored.

commented out
 strtod();
in make_feature_list
in built_ins.c

changed
static long unify_bool(arg)
to
static void unify_bool(arg)
because returned nothing

commented   long declare_operator();
in c_op in built_ins.c

changed sprintf to snprintf in built_ins.c
in static long c_project()
and static long c_exist_feature()

in built_ins.c 
void exit_life(nl_flag)
change exit(1) to exit(EXIT_SUCCESS)

in void global_one(t)
in built_ins.c 
removed unused val

in static long c_close()
in built_ins.c 
removed unused s

in static long c_exist_feature()  /*  PVR: Dec 17 1992  */  /* PVR 11.4.94 */
in built_ins.c 
removed unused np1

in static long c_features() and static long c_feature_values()
in built_ins.c 
removed unused the_list

in ptr_psi_term collect_symbols(sel) /*  RM: Feb  3 1993  */
in built_ins.c 
changed name to name_loc

in static long c_eval_inplace()
in built_ins.c 
removed unused copy_arg1

in static long c_chdir()
in built_ins.c 
removed unused result & t & val & num

in static long c_assign()
in built_ins.c 
removed unused perm & smallest


in static long c_global_assign()
in built_ins.c 
removed unused perm & smallest

in static long c_char()
in built_ins.c 
removed unused smaller & num1 & val1

in static long c_ascii()
in built_ins.c 
removed unused num1 & val1

in static long c_string2psi()
in built_ins.c 
removed unused arg3 & smaller

in static long c_psi2string()
in built_ins.c 
removed unused arg3

in static long c_psi2string()
changed sprintf to snprintf (100)

in static long c_int2string()
in built_ins.c 
removed unused arg3

in built_ins.c 
void new_built_in(nl_flag)
change exit(-1) to exit(EXIT_FAILURE)

in long c_initrandom()
in built_ins.c 
removed unused c_result

in long c_deref_length()
in built_ins.c 
removed unused arg2

in void mark_quote_c(t,heap_flag)
in copy.c
removed unused l

in void mark_eval_new(t)
in copy.c
removed unused l

in void void mark_quote_new(t)
in copy.c
removed unused l


in void void mark_quote(t)
in copy.c
removed unused l


in void void bk_mark_quote(t)
in copy.c
removed unused l

in outputline, traceline, infoline, warningline, Errorline & Syntaxerrorline
in error.c
removed unused l
and changed buffer to buffer_loc

in tracing
in error.c
changed indent to indent_loc

in void report_error_main(g,s,s2)
and void report_error2_main(g,s,s2)
in error.c
removed unused f

in void handle_interrupt()
in inerrupt.c
changed old_state to old_state_loc

in long do_residuation()
in lefun.c
removed unused gs

in   long success=TRUE;
in lefun.c
removed unused less, tmp

in long deref_args_eval(t,set)
in lefun.c
changed top to top_loc

in void exit_if_true(exitflag)
in lib.c
replaced exit(1) with exit(EXIT_FAILURE)

NOTED DJD_PORT code in lib.c'
tried disabling -- affects eoftests in test suite.
Not sure which better. Should look at orig Test results.

in void init_io()
in lib.c
FALSIFIED #ifdef for DJD_PORT
this affected eoftest and eoftest2 in testsuite


in void WFInit(argc, argv)
in lib.c
removed unused s, sort, exitflag and c

in char **WFFeatures(psi)
in lib.c
changed features to features_loc

in void init_system()
in lib.c
changed sprintf to snprintf (PROMPT_BUFFER)

in void get_one_arg_addr(t,a)
in login.c
removed unused b

in void assert_clause(t)
in login.c
removed unused arg1, arg2, str

in void push_choice_point(t,aaaa_6,bbbb_6,cccc_6)
in login.c
changed top to top_loc

in void undo_actions()
in login.c
removed unused u

in void backtrack()
in login.c
removed unused gts

in void clean_undo_window(disp,wind)
in login.c
removed unused prev, u, c

in void merge3(u,v)
in login.c
removed unused t2

in long unify_body(eval_flag)
in login.c
removed unused lu, lv

in long disjunct_aim()
in login.c
removed unused u,v, l

in long num_vars(vt)
in login.c
removed unused num

in long what_next_aim()
in login.c
changed cut to cut_loc

in int GetIntOption(name,def)
in memory.c
changed buffer to buffer_loc

int GetIntOption(name,def)
in memory.c
changed sprintf to snprintf

in static void check_special_addresses()
in memory.c
removed unused g

in long c_public()
in modules.c
removed unused arg1, arg2

in long c_private()
in modules.c
removed unused arg1, arg2

changed replace to void in modules.c

in long c_private_feature()    /*  RM: Mar 11 1993  */
in modules.c
removed unused arg1, arg2

in psi_term read_psi_term()
in parser.c
changed sprintf to snprintf

in psi_term make_life_form(tok,arg1,arg2)
in parser.c
removed unused l

in void init_print()
in print.c
changed sprintf to snprintf

in char * heap_nice_name()
in print.c
changed sprintf to snprintf

in char * heap_nice_name()
in print.c
removed unused leading_a

in GENERIC unique_name()
changed name to name_loc

in void go_through(t)
in print.c
removed unused l

in void pretty_list(t,depth)
in print.c
removed unused l, n2, colon

in long pretty_psi_with_ops(t,sprec,depth)
in print.c
removed unused new

in void pretty_psi_term(t,sprec,depth)
in print.c
removed   double fmod();

in void pretty_psi_term(t,sprec,depth)
in print.c
changed sprintf to snprintf

in long c_get_raw ()
in raw.c
removed unused key_code

in void raw_setup_builtins ()
in raw.c
changed function to function_it

in static long regexp_execute_internal(args,result,funct)
in sys.c
changed buffer to buffer_loc

in static long regexp_execute_internal(args,result,funct)
in sys.c
removed unused success

in void text_buffer_push(buf,c)
in sys.c
changed exit(-1) to exit(EXIT_FAILURE)

in static long socket_internal(args,result,funct)
in sys.c
removed unused t

in static long bind_or_connect_internal(args,result,funct,info)
in sys.c
changed name to name_loc

in sys.c 
changed name to name_str and value to value_str 
in psi_feature

in static long unify_pterm_result(t,sym,lst,n)
in sys.c
changed exit(-1) to exit(EXIT_FAILURE)


in char * get_numeric_feature(n)
in sys.c
changed sprintf snprintf.

in static long gethostname_internal(args,result,funct)
in sys.c
changed name to name_loc

also buffer to buffer_loc in sys.c
in
static long lazy_project_internal(args,result,funct)
static long wait_on_feature_internal(args,result,funct)
static long my_wait_on_feature_internal(args,result,funct)
static long apply1_internal(args,result,funct) THEN removed - NOT USED

in void restore_state(t)
in token.c
removed unused i

in char *expand_file_name(s)
in token.c removed getenv()

in int base2int(n)
changed exit(-1) to exit(EXIT_FAILURE)

in void read_number(tok,c)
in token.c
removed unused sgn

in long yes_or_no()
in types.c
changed old_state to old_state_loc

in long redefine(t)
in types.c
removed unused d2, l, l2

in void assert_complicated_type(t)
in types.c
removed unused lst

in void encode_types()
in types.c
removed unused err

in static long bind_or_connect_internal(args,result,funct,info)
in sys.c
removed unused port

in static long accept_internal(args,result,funct)
in sys.c
removed unused t

------------------------------------------------------------------------

8/11/2016
Creating 2.26 tar file.
I hestiate to do this, but think it best.
There is no difference from the 2.24 as far as the Test Suite goes.
But the next things to tackle regarding splint are not so straightforward.
Also my philosophy here is very incomplete - that is the main reason that I hestiate.
But I am always afraid something will happen to me before I get my work out.
Better to use the open source dictum, "Release early and often."
------------------------------------------------------------------------

