Update to 2.0.0 tree from current Fremantle build
[opencv] / apps / Hawk / CVEiCL / EiC / Change.html
diff --git a/apps/Hawk/CVEiCL/EiC/Change.html b/apps/Hawk/CVEiCL/EiC/Change.html
deleted file mode 100644 (file)
index b9eaf60..0000000
+++ /dev/null
@@ -1,1073 +0,0 @@
-<hmtl> <head> <title> EiC's Change log </title>\r
-</HEAD>\r
-<body bgcolor="white"> <font size=2>\r
-<!--Navigation Panel-->\r
-\r
-<h1>EiC's Change Log.</h1> <br>\r
-<pre>\r
-                       Significance of Changes\r
-\r
-                       *  minor change or bug fix \r
-                     ***  a new feature or function\r
-                  ******  major change or addition\r
-\r
-</pre>\r
-<multicol cols=2>\r
-\r
-\r
-<b> Changes from 4.3.0 to 4.3.1 (next_release) </b>\r
-<pre>\r
-\r
-       * fixed bug as reported by Steve Marthouse from vrml3d.com, \r
-         that EiC's float conversion mechanism fails to execute \r
-         correctly:\r
-\r
-               float f = 0.7F;\r
-                assert(f == 0.7F);\r
-\r
-       * fixed bug as reported by  Victor Eruhimov, that during\r
-         error recovery EiC would on occassions aborting due to \r
-         some bad memory addressing\r
-\r
-</pre>\r
-\r
-\r
-<b> Changes from 4.2.8 to 4.3.0 </b>\r
-<pre>\r
-\r
-  ***** With the help of Al Amzeen, EiC compiles using DJGPP \r
-        under win32. This provides fairly complete EiC \r
-        installation, under win32.\r
-\r
-    *** Added `void EiC_setMessageDisplay(void (*)(char*))' \r
-        function. The purpose of this function is to allow \r
-        an embedding system to control how EiC's error and \r
-        warning messages are displayed. This is done by passing\r
-        EiC_setMessageDisplay the function it wants used for \r
-        displaying EiC's error and warning messages. The \r
-        replacement function returns void and must accept a C \r
-        style string. The strings passed are stack based and \r
-        therefore, should either be displayed straight away or \r
-        copied into a buffer space.\r
-\r
-    *** added the `getcwd' function to unistd.h. \r
-        Compliance: POSIX.1\r
-\r
-    *** added SVR4 and 4.3+BSD macro extensions to termios.h\r
-\r
-    *** the win32 port of EiC now stores its include files in\r
-        EiC\include. The environment variable HOMEofEiC\r
-        doesn't need to be set if EiC is installed in \r
-        C:\EiC.\r
-\r
-    *** Matt Minnis has added a `:quit' command to EiC and\r
-        is simply an alias to `:exit'.\r
-\r
-    *** More externally visible identifiers prefixed with\r
-        `EiC_'.\r
-\r
-      * fixed problem with EiC not detecting HOMEofEiC\r
-        environment variable under DJGPP and probably also \r
-       under win32\r
-\r
-      * brought EiC/main/examples/embedEiC.c up todate:\r
-        changed the call to init_EiC to EiC_init_EiC and\r
-        the include path under win32. \r
-\r
-      * fixed compile problems with the FreeBSD port of EiC.\r
-\r
-      * fixed one cause of segmentation violation due to certain\r
-        types of errors during declaration parsing.\r
-\r
-      * fixed bug with EiC's scanf function as reported by\r
-        Sean McTigue:\r
-             while(scanf("%d", &num)==1)\r
-               printf("d\n", num);\r
-\r
-        getting caught in a infinite loop when illegal input is\r
-        entered.\r
-\r
-      * fixed problem with :gen command  outputting the\r
-        function call to add_builtinfunc rather than to\r
-        EiC_add_builtinfunc.\r
-\r
-\r
-</pre>\r
-<b> Changes from 4.2.7 to 4.2.8  (Jun 12 2000) </b>\r
-<pre>\r
-\r
-    *** The win32 makefile systems has had some modifications \r
-               (still needs more).\r
-        The EiC\config\genstdio.c is now incorporated into the make system\r
-        and is used to generate standard header files. And EiC\main\main.c\r
-        is used rather than EiC\src\main.c, bringing inline more closely\r
-        with the Unix version.\r
-        \r
-    *** The `:clear' command now takes multiple file names delimited\r
-        by commas as its arguments:\r
-\r
-             :clear file[,<file>]*\r
-          \r
-    *** More name space tweaking. Most, if not all, externally visible variables \r
-        and functions, are now prefixed by EiC_. This is to reduce \r
-       the possibility of name conflicts between EiC source code\r
-       and any embedding system. \r
-\r
-    *** EiC now supports ISO-C signal.h and the signals (SIGXXXX) defined \r
-        for POSIX.1 signal.h. See EiC's library documentation \r
-        for details.\r
-\r
-    *** EiC's interface to the standard C library functions fgets() \r
-        and gets() have been made safe against buffer overflows \r
-        when used with safe pointers.\r
-\r
-    *** Added to unistd.h the functions pause and alarm\r
-        compliance: SVr4, SVID, POSIX, X/OPEN, BSD 4.3\r
-\r
-    *** Added the standard ISO-C header iso646.h\r
-    \r
-      * removed limits.h and signal.h as they are now completely\r
-        generated via EiC/config/genstdio\r
-\r
-      * fixed EiC failure to apply the address operator to functions:\r
-\r
-         EiC 1> int foo(int x) { return x;}\r
-        EiC 2> foo == &foo;  \r
-                1\r
-      \r
-      * fixed typo in EiC's online :help info for the :gen command \r
-\r
-      * fixed access violation problem, as reported by Eroukhimov, \r
-        Victor, caused sometimes by an error occuring with the operational\r
-        type with in a selection statement.\r
-\r
-      * included missing file EiC/test/EiCtests/teststatic3.aux\r
-        within EiC's CVS repository.\r
-</pre>\r
-\r
-\r
-<b> Changes from 4.2.6 to 4.2.7  (May 16 2000) </b>\r
-<pre>\r
-\r
-    ***        A reset operator has been added. It is used to set EiC \r
-        to a default internal state. All memory is freed, the \r
-        contents of include files and global variables, allocated, \r
-        included and declared, after the reset point, are removed. Any\r
-       global scalar variables declared prior to the reset point will have \r
-        their previous values restored. The default reset point is equivalent\r
-        to starting EiC with the -N command line switch:\r
-\r
-            EiC > :reset  // regain a previous state\r
-\r
-       It is also possible for the user to define the `reset point'\r
-        by using the `:reset here' command:\r
-\r
-          EiC 1> int p = 66;\r
-          EiC 2> :reset here // set reset state\r
-           EiC 3> p = 88;\r
-                  88\r
-          EiC 4> :reset\r
-          EiC 5> p;\r
-                 66\r
-\r
-        see EiC's documentation for further details and gotchas.\r
-\r
-\r
-      * documentation updated to reflect the `:reset' command.\r
-\r
-      * termio and termios.h files have been updated on the Linux\r
-        platform to conform with libc6.\r
-\r
-      * fixed problem as reported Eroukhimov, Victor that \r
-        EiC's source file src/assertp.h fails to define \r
-        assertp when NDEBUG is defined. \r
-\r
-      * Applied Ken Settle's patch that corrected EiC's \r
-        failure to diagnose:\r
-\r
-            EiC 1> 0 (15); //Function names cannot be constants\r
-\r
-      * Applied Kaz Kylheku's patch to rid EiC's source code\r
-        of many externally visible variables, by converting all \r
-        object and function declarations, where possible, to static.\r
-        This is important as it reduces the possibility of name\r
-        conflicts between EiC source code and any embedding\r
-        system. It also removed several dead function and variable \r
-        definitions.\r
-\r
-      * Further refinement to prevent name clashes between\r
-        private and public object and function definitions\r
-        between EiC functions. \r
-\r
-</pre>\r
-<b> Changes from 4.2.1 to 4.2.6  (Mar 25 2000) </b>\r
-\r
-<pre>\r
-\r
-   ***  The module termios.h has been interfaced to EiC.\r
-        This allows for serial port programming under Unix.     \r
-\r
-   ***  The :gen command has now an extra option, `num', which\r
-        controls the number of multiplex callbacks generated:\r
-\r
-          :gen <include_file> [num] ["<output_file>"]\r
-\r
-        both num and output_file are optional. the \r
-       default value for num is 1.\r
-\r
-      * Fixed problem reported by Sreeni R. Nair\r
-        with a typedef clash  between SunOS header file\r
-        and eicval.h\r
-\r
-      * Fixed the following bugs as reported by \r
-        Victor Eroukhimov:\r
-\r
-        1, EiC fails to diagnose:\r
-            EiC > char a[5][];\r
-       2, That char a[3][] = {"abc", "def"}; causes\r
-           EiC to abort.\r
-       3, That EiC was not initialising char pointers correctly\r
-           during declaration:\r
-              EiC > char a[] = "adsf"; char *b = a;\r
-              EiC > b == a;\r
-\r
-      * documentation update and corrections.\r
-\r
-      * Fixed bug associated with EiC's :show command\r
-        causing illegal storage access when display\r
-        struct, union or enum tag specifiers.\r
-\r
-      * Fixed the following bugs as reported by \r
-        Kaz Kylheku:\r
-\r
-        1, that EiC at times fails to parse character \r
-           literals correctly:\r
-            EiC > int x;\r
-             EiC > assert(x == '\'');\r
-        2, that EiC failed to assign pointers to builtin \r
-           code correctly:\r
-            EiC > int (*p)(const char *fmt, ...) = printf;\r
-          where printf is a builtin function.  \r
-       3, that ULONG_MAX definition on the win32 was \r
-          incorrect\r
-       4, that static variables declared in a file not \r
-          always being hidden from clashes with other objects\r
-          declared with the same name but within other\r
-          files. \r
-       5, function runEIC in starteic.c has a little transgression related\r
-          to the use of the setjmp macro:\r
-             if ((E = setjmp(env)) == 0) {\r
-                  /*...*/\r
-              } else if (E == _Err_) {\r
-                }\r
-\r
-       * Applied David Ell's patch that removed \r
-         hard coded directory \r
-         reference in the EiC/src/Makefile. \r
-\r
-</pre>\r
-\r
-<b> Changes from 4.2.0 to 4.2.1  (Jan 14 2000) </b>\r
-\r
-<pre>\r
- ******  EiC now supports setjmp.h\r
-\r
- ******  EiC now supports gotos and labels as specified by ANSI-C.\r
-\r
- ****** EiC's parser can now handle LL(N) grammar, Previously it was\r
-         only able to parse an LL(1) type grammar. This change in\r
-         principle enables more easily language enhancements and\r
-         extentions. N is specified via the definition of MAX_TOKENS\r
-         in EiC/src/lexer.h and is currently set to 3.\r
-\r
-\r
-    ***  added the function `putenv' to stdlib.h\r
-         Compliance: SVID 3, POSIX, BSD 4.3\r
-\r
-    ***  added the function `strdup' to string.h\r
-         Compliance: SVID 3,  BSD 4.3.      \r
-\r
-    ***  Documentation updated to reflect the addition of setjmp.h, \r
-         gotos, putenv and strdup.\r
-\r
-      * for the win32 port, added missing file sys/time.h\r
-\r
-      * fixed bug as reported by Victor that EiC doesn't handle error\r
-        recovery correctly with respect to the removal of \r
-        prototypes to builtin functions.       \r
-\r
-      * Incorporated Ken Settle's patch enabling EiC to handle correctly:\r
-            \r
-            EiC 1> #define FOO int\r
-            EiC 2> FOO (*a)(FOO x);\r
-\r
-\r
-      * Fixed bug with EiC_parseString, as reported by Kester McKinney,\r
-        failing to allocate on occassions sufficient buffer space for \r
-        passing the format string.\r
-\r
-      *  Fixed bug with EiC failing to diagnose correctly: \r
-         passing indirectly an unsafe pointer to a function\r
-         expecting indirectly a safe pointer or vice versa:\r
-\r
-              EiC 1> char * * p;\r
-              EiC 2> char * *unsafe q;\r
-              EiC 3> void f1(char * * p) {1;}\r
-              EiC 4> void f2(char * *unsafe q) {1;}\r
-              EiC 5> f1(p);   // okay\r
-              EiC 6> f1(q);   // error\r
-              EiC 7> f2(p);   // error\r
-              EiC 8> f2(q);   // okay\r
-\r
-         For more information see EiC's documentation covering\r
-         pointers: www.pobox.com/~eic/EiC\r
-\r
-      *  Fixed bug with EiC's address, `@', operator failing to \r
-         handle more  compilcated data types properly:\r
-\r
-             char *vec[] = {"hello", "world"};\r
-             char *p[2]  @ &vec;\r
-\r
-      *  Fixed problem related to David Binette's report of a \r
-         security concern with respect to EiC's demo cgi program \r
-         `uploadfile.eic.cgi'\r
-\r
-      *  Fixed bug with the definition of CLOCKS_PER_SEC on the \r
-         Linux platform as reported by Derek Simkowiak.\r
-\r
-      *  Fixed several causes of EiC reporting memory violations\r
-         when compiling C code with errors coinciding with\r
-         implicit or explicit variable casts.\r
-\r
-</pre>\r
-<b>Changes from 4.1.2 to 4.2.0 (Aug 2 1999)</b>\r
-<pre>\r
-\r
- ******  Jean-Bruno Richard has modified EiC's `:gen' command so \r
-         that it now automatically handles multiplexed callbacks.\r
-\r
-    ***  The WIN32 binary distribution of EiC also includes eic.lib\r
-         to enable embedding eic, see file c:\eic\examples\embedEiC.c\r
-\r
-    ***  EiC/config/genstdio now also generates limit.h\r
-         and float.h \r
-\r
-    ***  EiC's builtin function popen and pclose have been ported to \r
-         the WIN32 platform\r
-      \r
-      *  several unused files have been removed from the distribution:\r
-\r
-               EiC/module/stdClib/src/fopen.c\r
-               EiC/module/stdClib/src/scanf.c\r
-         \r
-         the following files were removed as they are automatically\r
-         generated at compile time.\r
-\r
-               EiC/module/stdClib/src/_PLATFORM/stdio.h\r
-               EiC/module/stdClib/src/_PLATFORM/stdlib.h\r
-               EiC/module/stdClib/src/_PLATFORM/errno.h\r
-               EiC/module/stdClib/src/_PLATFORM/stdtypes.h\r
-               EiC/module/stdClib/src/_PLATFORM/limits.h\r
-               EiC/module/stdClib/src/_PLATFORM/float.h\r
-   \r
-      \r
-      *  fixed bug with EiC failing to cast result of bitwise\r
-         negation `~' to `unsigned int' if operand is `unsigned int' or\r
-         to `unsigned long' if operand is `unsigned long'\r
-              \r
-      *  fixed bug with lexical analyzer failing to handle ULONG_MAX\r
-         correctly.\r
-\r
-      *  corrected definition of LONG_MAX for the WIN32 platform.\r
-      \r
-      *  fixed bug with EiC/main/example/embedEiC.c\r
-         being platform dependent.\r
-\r
-      *  fixed Jean-Bruno Richard's report that EiC\r
-         was failing to implicitly dereference pointers\r
-         to functions when declared as structure members\r
-         during function calls:\r
-\r
-              EiC 1> void foo() { printf("hello\n"); }\r
-              EiC 2> typedef struct { void (*f)(); } Test;\r
-              EiC 3> Test *x, y;\r
-              EiC 4> x = &y; x->f = foo;\r
-              EiC 5> (*x->f)(); // explicit dereference old C style\r
-              EiC 5> x->f();    // implicit dereference new C style\r
-              EiC 6> y.f();     // implicit dereference new C style\r
-\r
-</pre>\r
-<b>Changes from 4.1.1 to 4.1.2 (Jul 18 1999)</b>\r
-<pre>\r
-    \r
-    *** Igloo, a port of EiC to WIN32 with  opengl support, with \r
-        the NT4 glu/glut/opengl DLLs by Jean-Bruno Richard, has\r
-        been added to EiC/contribute directory:\r
-\r
-          www.pobox.com/~eic/EiCdist/contribute\r
-\r
-    *** the WIN32 port now looks for the environmental variable\r
-         HOMEofEiC \r
-\r
-    *** readline has been ported so it works also under WIN32 using MSVC++.\r
-\r
-</pre>   \r
-<b>Changes from 4.1.0 to 4.1.1</b>\r
-<pre>\r
-\r
-      * Fixed problems with EiC binary install procedure\r
-\r
-</pre>\r
-<b>Changes from 4.0.1 to 4.1.0 (Jun 26 1999)</b>\r
-<pre>\r
-\r
-    ***  An EiC module to interface to the C-API of MySQL \r
-         (3.22.22-2) is available from:\r
-           \r
-            http://www.datagrid.com/~eic/modules\r
-\r
-  ****** EiC now supports long longs:\r
-\r
-            EiC > long long a; unsigned long long b;\r
-\r
-         NOTE at this stage `unsigned long long' is simply\r
-         mapped to `long long'; that is, `unsigned long long'\r
-         is not yet properly supported and is handled as \r
-         signed values. \r
-\r
-  ****** an alien of port of EiC to the WIN32 platform has been \r
-         contributed by Jean-Bruno Richard.\r
\r
-  ***** Ported EiC to FreeBSD.\r
-  \r
-\r
-    *** The reliance on the use of the `ksh' shell in EiC's make\r
-         system has been removed.\r
-\r
-      * fixed bug with redeclarations of reference variables \r
-         causing any immediately and previously declared \r
-         variable in the same translation unit to get corrupted; \r
-         example:\r
-\r
-            EiC 1> int a; int b @ &a;\r
-            EiC 2> double c; extern int b;\r
-\r
-            `c' will now be of type `int'.\r
-\r
-       * the platform dependent bug with `:gen' and \r
-         printf's %p conversion character used for \r
-         interfacing with shared variables has been fixed, \r
-         by using %ld.\r
-\r
-       * fixed bug with EiC's automatic interface generation \r
-         failing to handle enumeration constants properly.\r
-         \r
-       * fixed bug with EiC's automatic interface generation\r
-         failing to handle the return of unsafe pointers\r
-         correctly.\r
-\r
-\r
-</pre>\r
-<b>Changes from 4.0 to 4.0.1 (May 23 1999)</b>\r
-<pre>\r
-\r
-\r
-     *** Debian `deb' and RedHat `rpm' packages for EiC's\r
-         binary distribution are now available from home\r
-         page.\r
-       \r
-     *** updated  EiC's binary installation procedure -- corrected\r
-         some inconsistencies.\r
-     \r
-     *** changed the names of several files in \r
-         EiC/module/cgihtml/cgi-bin to reflect a more \r
-         consistent nomenclature.\r
-     \r
-       * fixed 3 bugs as reported by Larry Battraw:\r
-         (1) setting HOMEofEiC in EiC/main/Makefile line 13, \r
-            via $(PWD)/.. fails when using bash. Changed to:\r
-\r
-            HOMEofEiC := $(shell pwd)/..\r
-\r
-         (2) Under linux the file dirent.c tries to include \r
-            "direntry.h" when it really wants dirent.h:\r
-\r
-            removed inclusion of direntry.h \r
-        \r
-         (3) In the stdClib directory, the \r
-             file stdio.c defines the following on line 66:\r
-             static FILE * book2[FOPEN_MAX] = {stdin,stdout,stderr};\r
-             Gcc complains about stdin, stdout, etc. not being \r
-             constants. corrected initialisation problem.\r
-\r
-       * fixed bugs with EiC's binary distribution installation \r
-         procedure.\r
-\r
-       * fixed bug with EiC's automatic interface generation \r
-         returning pointers from builtin code properly.\r
-\r
-       * fixed bug with EiC'c automatic interface generation not \r
-         handling          typedefs correctly.\r
-\r
-\r
-</pre>\r
-<b>Changes from 3.9 to 4.0 Fri (May 17 1999)</b>\r
-<pre>\r
-\r
- ******  EiC now supports callbacks. That is, it is possible for \r
-         compiled code to call EiC interpreter functions.  The \r
-         compiled code doesn't need to be altered. It is all \r
-         handled through  EiC's interface to builtin code. The \r
-         basic design  was developed and contributed to EiC by \r
-         Jean-Bruno Richard.\r
-\r
-         The same builtin code can make callbacks to different\r
-         functions, which take different number and different \r
-         types of arguments, but not to functions that take a \r
-         variable  number of arguments. \r
-\r
-         At this stage all the basic scalar types and arrays of\r
-         scalars are supported through the callback\r
-         mechanism. Updates and patches will be made available as\r
-         support for more data types are added.\r
-         \r
-\r
- ****** Jean-Bruno Richard also initiated EiC's\r
-         command `:gen', which is used for automating\r
-         the generation of EiC interface code to\r
-         compiled library code:\r
-\r
-             EiC 1> #include foo.h\r
-             EiC 2> :gen  foo.h\r
-\r
-         The interface routines will be printed\r
-         to stdout, unless the optional string argument \r
-         is used to redirect the output to a file:\r
-\r
-             EiC 3> :gen foo.h "foo.c"\r
-\r
-\r
- ****** Mesa/Opengl has been interfaced to EiC via glut. Its\r
-         interface module can be found in: \r
-              \r
-             www.pobox.com/~eic/modules\r
-\r
-         Example code is also given in the module distribution (GL).\r
-\r
- ******* Jochen Pohl has ported EiC to NETBSD and\r
-         Solaris/i386. In doing so Jochen Pohl made the following \r
-         changes to EiC's distribution:\r
-            ./Makefile\r
-            ./src/Makefile\r
-                - under NetBSD, ksh is installed as /bin/ksh, not /usr/bin/ksh.\r
-            ./README\r
-            ./config/alignment.c\r
-            ./src/metric.h\r
-            ./src/ppc403/include/metric.h\r
-                - renamed LITTLE_ENDIAN in EIC_LITTLE_ENDIAN to avoid conflict\r
-                  with system header file\r
-                - for i386 and sparc, use hardware name instead of operating\r
-                   system to define data size and alignment\r
-            ./config/makeconfig\r
-               - if shell variable PWD not set or empty, set it to `pwd`\r
-               - use cp -f to overwrite read only files\r
-            ./main/main.c\r
-               - define __LITTLE_ENDIAN__ as 1 or 0, depending on whether\r
-                 the machine is littel endian or not. Needed on some tests\r
-                 to get them running on both little endian and big endian\r
-                 machines\r
-               - define __LP64__ or __ILP32__, depending on whether the machine\r
-                 has 64 or 32 bit longs and pointers. Needed in in NetBSD\r
-                 header files to add (untested) support for alpha CPU.\r
-            ./module/stdClib/src/dirent.c:\r
-               - telldir() and seekdir() use long, not off_t. would make a\r
-                 difference on NetBSD, where off_t is long long.\r
-            ./src/eicval.h\r
-               - on NetBSD, use long instead of off_t for offval (because\r
-                 off_t is long long)\r
-            ./test/runtest\r
-               - use either echo -n foo or echo foo\c\r
-            ./test/EiCtests/teststdio.c\r
-               - fixed assertions (STDC requires that the return value of\r
-                fputs() is EOF on error and a nonnegative value otherwise)\r
-            ./test/eicScripts/Driver.c.def\r
-            ./test/eicScripts/script1.eic\r
-            ./test/eicScripts/script2.eic\r
-            ./test/eicScripts/www_eic.eic\r
-              - change path to eic binary to some standard value\r
-            ./test/posix.1/tstfilelock.c\r
-              - use memset() to initialize struct flock to zero.\r
-                necessary because under NetBSD the l_start and\r
-                l_len values are 64 bit, but only 32 bit can be\r
-                set from eic\r
-              - before F_GETLK, set lock type to F_WRLCK. necessary\r
-                because F_GETLK returns the first lock that blocks\r
-                the lock description pointed to by the third argument.\r
-                if this lock description has lock type F_UNLCK,\r
-                 probably no lock will be returned.\r
-            ./test/sniptests/bitcnt_4.c\r
-            ./test/sniptests/bitops.h\r
-              - use unsigned long instead of long to avoid infinite\r
-                recursion if a negative long is passed to either\r
-                ntbl_bitcnt() or btbl_bitcnt().\r
-              - fixed btbl_bitcnt() to work on big endian machines too.\r
-            ./test/sniptests/dbl2long.c\r
-              - make this test work on big endian machines (and, hopefully,\r
-               on LP64 machines).\r
-\r
-    *** There is now an Advanced section\r
-        in EiC's documentation explaining how\r
-        to build an EiC module, and how to perform\r
-        callbacks.\r
-\r
-            www.pobox.com/~eic/EiC\r
-\r
-    *** EiC web page now contains a separate section\r
-        for EiC modules. \r
-\r
-            www.pobox.com/~eic/modules\r
-\r
-    ***  The parse_form_encoded function of\r
-         the EiC's cgihtml library module has been modified\r
-         to do buffered IO rather than just single byte\r
-         IO. This improves the speed of this\r
-         function for http file uploads by 2 to 3 fold.\r
-\r
-    ***  Several changes and additions have been made to\r
-         EiC's module MathStats.\r
-\r
-    ***  The infinite loop that one runs into by running \r
-         "eic < infile" if there is no `:exit' at the end\r
-         of the infile has been fixed -- kindof. EiC now\r
-         recognises the EOF for this purpose iff the\r
-         Non-interactive flag `A' is used:\r
-\r
-              eic -As < infile\r
-         \r
-         Otherwise `:exit' must still be present. \r
-\r
-\r
-      *  fixed bug with the address operator\r
-         not working with pointers:\r
-\r
-           EiC 1> int b = 22; int *a = &b;\r
-           EiC 2> int *c @ &a;\r
-           EiC 3> assert(*c == 22);\r
-\r
-      *  fixed bug with redeclaration \r
-         error being reported for extern\r
-         definitions of variables declared\r
-         previously as reference variables\r
-         via the address `@'  operator \r
-\r
-            EiC 1> int a; int b @ &a;\r
-            EiC 2> extern int b;\r
-\r
-      *  fixed bug with EiC not being reentrant\r
-         with respect to callback code.\r
-\r
-      *  fixed bug with EiC_parseString failing\r
-         if called from a translation unit,\r
-         which have strings that gets gabbage collected.\r
-         For example:\r
-\r
-         EiC > while(i++<5) printf("%d\n",func());\r
-\r
-         where func is a builtin function that\r
-         calls EiC_parseString. The string\r
-         "%d\n", would be gabbage collected after\r
-          the first call to EiC_parseString, and\r
-         before the calling translation is finished.\r
\r
-\r
-      *  fixed bug with EiC reporting a redeclaration error\r
-         for macros with null token sequence when seen more \r
-         than once:\r
-         \r
-             EiC 1> #define X\r
-             EiC 2> #define X\r
-\r
-      *  Fixed Jean-Bruno Richard's report of EiC\r
-         failing with the unary opertor `+' when\r
-         applied to constants:\r
-         \r
-                EiC 1> #define X 1\r
-                EiC 2> +X;\r
-\r
-       * Incorporated Tim Baker's bug fixes with respect\r
-         to handling declared const types within \r
-         unary operations properly and EiC failing to\r
-         parse if-statements, if the type of the expression\r
-         evaluates to unsigned short int:\r
-\r
-           unsigned short a[1] = {1};\r
-           if (a[0])\r
-               a[0]--;\r
-\r
-</pre>\r
-<b>Changes from 3.8 to 3.9 Fri (Apr  2 1999)</b>\r
-<pre>\r
-\r
- ******  Eugene Brooks has helped modify EiC so it \r
-         builds without using its own headers, and\r
-         no longer defines its own version of the\r
-         stdio functions. This is designed to eliminate\r
-         conflicts between system code and EiC when\r
-         embedding EiC into other systems\r
- ******  EiC no longer compiles out-of-the-box\r
-         under SUNOS 4.1 or less -- unless your C \r
-         implementation is ISO/ANSI C compliant           \r
-     **  EiC now also parses `\r\n' line endings rather\r
-         than just the Unix style `\n'\r
-     **  Matt Minnis has modified EiC's show\r
-         routine so that it also displays a variables\r
-         value along with its type\r
-      *  fixed bug with EiC becoming unstable\r
-         when an error occurs during the parsing of a translation\r
-         unit with a prototype to a builtin function.\r
-         This is a fix to one of EiC's most outstanding\r
-         bugs :)\r
-      *  re-fixed bug with EiC not allowing for the\r
-         re-declaration of enumeration types\r
-      *  fixed bug with EiC's restart mechanism sometimes reporting\r
-         an illegal operation when initiated via\r
-             eic -r or eic -R\r
-      *  fixed bug with EiC not handling global scalar const \r
-         objects properly.\r
-\r
-</pre>         \r
-<b>Changes from 3.7.5 to 3.8 (Feb 6 1999)</b>\r
-<pre>\r
-\r
- ******  added the address specifier operator `@':\r
-\r
-            int a @ dddd;\r
-\r
-          defines `a' to be an integer whose value\r
-          is at address dddd. dddd must be a constant \r
-          integral express. This will then, among other things,\r
-          allow the following type of call to be setup from \r
-          outside EiC:\r
-          \r
-             double d;\r
-             EiC_parseString("double d @ %ld",(long)&d);\r
-\r
-          At this stage the address specifier can be applied to\r
-          objects or to functions that accept void arguments \r
-          and which return void:\r
-\r
-             void foo(void) { puts("Hello world!\n");}\r
-             EiC_parseString("void foo(void) @ %ld",(long)foo);\r
-\r
-    ***  Bret Deck and Eugene Brooks have improved\r
-         EiC error detection mechanism for identifying array bound\r
-         and memory address violations.     \r
-    ***  technical document EiC/doc/tech_docs/typesets.doc\r
-         explains how object types and operators are (can be)\r
-         added to EiC.\r
-    ***  I have rationalised/cleaned-up EiC stdClib interface.\r
-         However, a major revision of how EiC's implements the\r
-         standard C library is under development.\r
-      *  fixed bug with EiC's interpreter not being\r
-         reentrant\r
-      *  fixed bug with EiC not handling typedef types correctly \r
-         with respect to scope such as:          \r
-              typedef struct { char a; } c;\r
-              typedef struct { short c; } scs;\r
-      * fixed bug with EiC not determining the sizeof\r
-        enumeration types; that is:              \r
-                sizeof(<enumeration_type>)\r
-      * fixed bug with the use of enumeration types\r
-        as structure/union members\r
-      * fixed bug with EiC not handling pointers to\r
-        enumeration variables correctly.\r
-      * fixed bug with EiC not allowing for the\r
-        re declaration of enumeration types.\r
-      * Massaged EiC's tex documents so as LaTeX2html \r
-        would do a better job in building EiC's\r
-        online documentation. \r
-\r
-\r
-</pre>\r
-<b>Changes from 3.7.2 to 3.7.5 (Nov 23 1998)</b>\r
-<pre>\r
-\r
-  ****** added the pointer type qualifiers `safe' and \r
-         `unsafe' to the EiC language. For example:\r
-\r
-                int * unsafe p;\r
-\r
-         defines `p' to be an `unsafe' pointer or a normal C type \r
-         pointer, while\r
-\r
-                int * safe p;  \r
-\r
-         defines `p' to be a `safe' pointer, which is the normal \r
-         EiC type pointer. \r
-         Rationale: to make it easier to interface EiC to builtin \r
-            library functions, which use `unsafe' pointers and take \r
-            argument types such as: arrays of pointers or structures  \r
-            with pointer members. \r
-  ****** to control the default pointer type, three pragma\r
-         directives have been added to the EiC language and which work \r
-         on a stack principle:\r
-\r
-            #pragma  push_safeptr   /* default pointer type is safe */\r
-            #pragma  push_unsafeptr /* default pointer type is unsafe */\r
-            #pragma  pop_ptr        /* return to previous ptr type. */\r
-\r
-     *** the EiC_parseString function now accepts variable \r
-         arguments:\r
-        \r
-                EiC_parseString(char *fmt, ...);\r
-              \r
-     *** the howto documentation for adding builtin \r
-         functions to EiC has been upgraded to reflect\r
-         the usage of safe and unsafe pointer, see:\r
-             .../EiC/doc/tech_doc/builtin.doc\r
-     *** the `p' conversion character in printf now \r
-         prints out in hexidecimal format.\r
-     *** the `p' conversion character in scanf now\r
-         matches a hexidecimal input sequence corresponding\r
-         to the output style of printf. \r
-       * fixed EiC's Linux definitons of various system\r
-         types not being libc6 compatible; such as\r
-          `struct stat', `struct dirent' and `struct tm'\r
-       * fixed bug with the casting of integer constants\r
-         to pointers:\r
-                     int *p = (int*)dddd;\r
-         where dddd is a numeric integer constant.           \r
-       * fixed bug with EiC's `:rm' facility\r
-         failing to remove properly typedef definitions\r
-         of array types.\r
-\r
-</pre>\r
-<b>Changes from 3.7.1 to 3.7.2 (Aug 23 1998)</b>\r
-<pre>\r
-    \r
-       * fixed bug with internal signal code not being\r
-         GNU libc6 compatible\r
-     *** The PowerPC 403 port of EiC has \r
-         been incorporated into the main distribution\r
-         of EiC.\r
-     *** EiC now considers it illegal for the \r
-         function `main' not to return type `int'\r
-     *** In script mode, control is now passed\r
-         to a main function if it exists. This\r
-         makes it easier to run C programs via\r
-         EiC's script mode\r
-       * fixed bug with EiC failing to recognise\r
-         the ISO C additional escape-code '\?'\r
-\r
-</pre>\r
-<b>Changes from 3.7 to 3.7.1 </b>\r
-<pre>\r
-\r
-       * fixed bug with sys/stat.h for\r
-         SOLARIS and IRIX platforms\r
-       * fixed bug in readdir on the SOLARIS\r
-         and IRIX platforms due to safeptrs      \r
-\r
-</pre>\r
-<b>Changes from 3.6 to 3.7</b>\r
-<pre>\r
-        \r
-       * added the unistd.h function chdir\r
-     *** added facilities to interface with EiC\r
-         from other programs. \r
-         See the EiC/main/README file in the source\r
-         distribution for more details.\r
-       * fixed bug with printf handling:\r
-           printf("%s\n",NULL);\r
-       * fixed bug with strtok due to \r
-          safe pointers\r
-     *** EiC can now be compiled on a HPUX\r
-         platform thanks to Alf Clement.\r
-     *** The main distribution now has a contribution\r
-         section, that includes a port of EiC for the PowerPC\r
-         403 thanks to Larry Battraw.\r
-     *** Eugene Kim's upgrade of cgihtml (1.69) \r
-         has been incorporated\r
-\r
-</pre>\r
-<b>Changes from 3.5 to 3.6 </b>\r
-<pre>\r
-\r
-      *** added module `xv', which\r
-          provides a primative interface\r
-          to xv.         \r
-        * Fixed bug in EiC's test-module\r
-            EiC/test/EiCtests/testinclude.c \r
-        * Documentation updated to reflect\r
-          EiC's internet programming facility.\r
-        * if EiC is installed in /usr/local\r
-          then the environmental variable \r
-          HOMEofEiC does not need to be\r
-          defined             \r
-      *** added the command line switch '-e'.\r
-          It is used  for debugging CGI scripts.\r
-          See documentation for details. \r
-        * fixed bug with fgetc not returning \r
-          the next character as an unsigned char\r
-          converted to an int\r
-        * fixed bug with EiC core dumping when\r
-          the environmental variable HOMEofEiC is \r
-          not defined\r
-\r
-</pre>\r
-<b>Changes from 3.4 to 3.5</b>\r
-<pre>\r
-\r
-      *** added module `cgihtml'\r
-   ****** all global variables and functions declared \r
-          static within an include file are now private to \r
-          that file, and are only visible within the scope of\r
-          the include file. Therefore, in general,  their \r
-          names will not clash with the names of any global \r
-          variable visible from the EiC prompt or within any other \r
-          include file.\r
-        * fixed bug with EiC becoming internally\r
-          unstable after passing structures/unions\r
-          by value to functions from scope level\r
-          file:\r
-                EiC > struct {int a, b;} ab_t;\r
-                ...\r
-                EiC > foo(ab_t); // eic is now unstable\r
-        * fixed bug with type conflicts generated by\r
-          declarations of the type:\r
-                int ff(char *ff);\r
-          and definitions of the type:\r
-                int ss(int ss) { return ss;}\r
-        * fixed bug caused by safe pointers\r
-          when passing structures by value\r
-          to functions.\r
-        * rationalised slightly the header\r
-          files in EiC/src\r
-\r
-</pre>\r
-<b>Changes from 3.3 to 3.4 </b>\r
-<pre>\r
-\r
-      *** added modules `tools' and `examples'  \r
-        * documentation updated\r
-      *** most of the example code given in\r
-          EiC's documentation is now included\r
-          in the directory:\r
-                 ../EiC/module/examples\r
-      *** the installation procedure has\r
-          changed; this is because `eicc' no\r
-          longer exists.\r
-   ****** EiC can run its own shell scripts of the form:\r
-               #!/usr/local/bin/eic -f\r
-               #include <stdio.h>\r
-               printf("Hello, world.\n");\r
-        * fixed bug with enum being declared extern:\r
-                enum rgb {RED,GREEN, BLUE};\r
-                extern enum rgb colour;\r
-                enum rgb colour = RED;\r
-        * fixed bug with the comma operator processing\r
-          syntax of the form:\r
-                foo(),f;\r
-        * fixed bug with boundary affects, due to \r
-          safe pointers, in `memmove' and `strncpy'\r
-        * fixed bug with eic failing to cast \r
-          `unsigned int' to `long' properly \r
-          on platforms where sizeof(int) == sizeof(long)\r
-        * fixed bug with eic to pass command line \r
-          arguments in double quotes properly:\r
-                % eic main2.c " hello  world  "\r
-        * fixed bugs with safe pointers when dealing with:\r
-                int a, b; memcpy(&a,&b,sizeof(b));\r
-        * fixed bug with using casts with type qualifiers:\r
-                (const char *)p;\r
-        * fixed bug with the incrementing or deincrementing\r
-          of arrays passed to functions:\r
-                void foo(char *argv[]) \r
-                        ...\r
-                       *++argv;    //bug here\r
-        * fixed bug with the initialisation of char arrays\r
-          of the type:\r
-                 char buf[13] = "\0""1234456789";\r
-        * fixed bug with pp directives of the type: \r
-                  #if !(hello)\r
-        * for main, argv[argc] is now set to NULL on setup. \r
-        * fixed bug with the formation of a new macro during\r
-          an expansion that extends across multiple lines. \r
-\r
-</pre>\r
-<b>Changes from 3.2 to 3.3 </b>\r
-<pre>\r
-\r
-      *** improved array bound checking functionality   \r
-        * update of EiC's documentation (still needs some work though)  \r
-      *** implemented the <stdlib.h> function `atexit'\r
-        * fixed bug with rename not removing the oldfile\r
-        * fixed bug with gets setting the wrong flag, preventing\r
-          it from working correctly with the rest of the <stdio.h> \r
-          IO functions.\r
-      *** added the <stdio.h> function freopen\r
-        * fixed several bugs with EiC's <stdio.h> functions\r
-\r
-</pre>\r
-<b>Changes from 3.1 to 3.2</b>\r
-<pre>\r
-\r
-        * fixed several bugs in EiC's <string.h>\r
-          functions\r
-      *** added the switch -N to stop eic from using\r
-          any startup.h file when started.\r
-   ****** MADE EiC POINTER SAFE (alpha stage) \r
-        * fixed bug with EiC repeatedly catching\r
-           the same SIGNAL violation\r
-        * fixed bug with the initialising of\r
-          non STR variables\r
-\r
-</pre>\r
-<b>Changes from 3.0 to 3.1</b>\r
-<pre>\r
-\r
-        * fixed defect with showMacro.\r
-        * corrected NULL pointer definition.\r
-        * fixed typo in "unsigned char" \r
-        * fixed checking of function return type\r
-      *** added POSIX.1 functions `access' and `fcntl'\r
-        * convert to unsigned int for `%b'; i.e. \r
-           printf("%b",15) ->  binary numbers are unsigned.\r
-        * fixed bug with indexing arrays of pointers with\r
-          the assign operator.\r
-        * prevented interpreter functions from masking \r
-          builtin functions.\r
-        * fixed problem with the initialisation of a global\r
-          char NULL pointer:\r
-              char *p = NULL;\r
-      *** added the interpreter command ":clear"\r
-\r
-\r
-</pre>\r
-<b>Changes from 0 to 3.0</b>\r
-<pre>\r
-\r
-        Too many to list\r
-\r
-</pre>\r
-</multicol>\r
-\r
-\r
-<ADDRESS>\r
-<!-- ADDRESS field used for automatic insertion of links -->\r
-</ADDRESS>\r
-\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r