--------------------------------------------------------------------------------------------------------
08.01.2003 19:25 (GMT), boris

  * I would like to say that 0.99.6 is now being released. Thank you to every one that contributed

--------------------------------------------------------------------------------------------------------
06.01.2003 22:52 (GMT), boris

  * More docs stuff almost there for a release, it would come along faster, but it's just so dull.
  * Fix for some sillyness in the comparison operators

--------------------------------------------------------------------------------------------------------
02.01.2003 20:04 (GMT), boris

  * Fix a semantic bug with err == null at startup would cause a pita if it 
    was being checked -> therefore required exception handling -> dirty code

--------------------------------------------------------------------------------------------------------
02.01.2003 19:49 (GMT), boris

  * Fix to tm struct items in the sys module
  
--------------------------------------------------------------------------------------------------------
31.12.2002 14:54 (GMT), boris

  * Various Solaris fixes - it now builds cleanly :)
  * Modification to the docs/Makefile.am to allow for api and capi building from
    a make command

--------------------------------------------------------------------------------------------------------
30.12.2002 23:17 (GMT), alex
Rewrote String.pad() and String.blocks() to eliminate some nasty bugs.

--------------------------------------------------------------------------------------------------------
30.12.2002 13:40 (GMT), alex
Rewrote String.escape() and String.unescape(). Fixes a nasty buffer overflow
bug, and properly implements the full set of standard C escape sequences.
Added a test script for the above two functions.

--------------------------------------------------------------------------------------------------------
29.12.2002 21:20 (GMT), boris

  * Bug fix for the ability to obtain the attributes from a method return. Need to fix it for normal
    namespace functions.

--------------------------------------------------------------------------------------------------------
29.12.2002 11:26 (GMT), boris

  * Part one of a documentation clean up

--------------------------------------------------------------------------------------------------------
28.12.2002 13:07 (GMT), alex
Added Array.sort()

--------------------------------------------------------------------------------------------------------
28.12.2002 00:48 (GMT), boris

  * Significant speed up to feritedoc! :)

--------------------------------------------------------------------------------------------------------
27.12.2002 22:49 (GMT), boris

  * Saner packet based tcpip layer for rmi
  * Fixed String.postTrim and added String.blocks and String.pad
  * Fixed foreach reset bug alex pointed out
  * Test fix for another array-in-script-iteration bug within foreach

--------------------------------------------------------------------------------------------------------
27.12.2002 16:47 (GMT), boris

  * Some reflection clean ups and error bugs
  * Various internal tweaks to make certain things more sane
  
--------------------------------------------------------------------------------------------------------
27.12.2002 08:34 (GMT), boris

  * Slight tweak to have the signature checking code use the variable type check function + some
    cruft removal.

--------------------------------------------------------------------------------------------------------
27.12.2002 06:48 (GMT), boris

  * Added a few lines of code allowing you to store pointers to both classes and namespaces in void 
    variables. This adds another level of cunning clean dynamicism to ferite.
  * Added a test script "scripts/test/passnscls.fe"
  
--------------------------------------------------------------------------------------------------------
25.12.2002 20:50 (GMT), boris

  * A bit more rmi work - you can now set attributes through assignment.
  * Modified reflection to add a class to allow fro variable tracing

--------------------------------------------------------------------------------------------------------
25.12.2002 01:40 (GMT), boris

  * Reworked some code in reflection module to fix a hack at overloading which ferite can now handle
  * rmi works! run scripts/test/rmi/server.fe in one term, and run scripts/test/rmi/test.fe in another
    and see the magic work! :)
    
  Happy Holidays. With a little more work and some more code testing this, along with ferite 0.99.6
  can be released :)

--------------------------------------------------------------------------------------------------------
25.12.2002 00:54 (GMT), boris

  * Lots more rmi work
  * rmi server example
  * Various additions to the reflection api to make it work better :)

--------------------------------------------------------------------------------------------------------
24.12.2002 14:16 (GMT), boris

  * Fixed a compiler bug when reporting line numbers of included scripts

--------------------------------------------------------------------------------------------------------
24.12.2002 01:27 (GMT), boris

  * Even more rmi work, the standard protocol can encode and decode variables
  * Fixed a bug in foreach()

--------------------------------------------------------------------------------------------------------
23.12.2002 21:37 (GMT), boris

  * More rmi stuff
  * String.unescape

--------------------------------------------------------------------------------------------------------
23.12.2002 15:51 (GMT), boris

  * Two more useful reflection class methods Class.classWithName() and Class.newObject()
  * Slight tweak in the executor to stop us doing things twice
  * An rmi module - this wont be released with 0.99.6. It's aim is to be pure ferite pluggable distributed
    ferite system which provides a transparent remote object access.

--------------------------------------------------------------------------------------------------------
23.12.2002 11:13 (GMT), boris

  * Added String.escape - a short method to quickly escape a string so that it can be quoted

--------------------------------------------------------------------------------------------------------
22.12.2002 23:33 (GMT), boris

  * Fixed another memory leak that occured when the api for ferite_object_call_super was changed. The
    return value from this function must be free'd. It used to not return anything.
  * Added --warnings [-w] to the ferite command line program to display warnings even if there is no
    compile error.
  * Updated man page.

--------------------------------------------------------------------------------------------------------
22.12.2002 18:57 (GMT), boris

  * Fix of a semantic bug with foreach whic I now agree is wrong [pointed out by holden]. You can
    use a void variable to iterate through an array with various types and it will be reset on each
    iteration.
  * Fixed an issues where caught errors where still being reported.
  * Fixed warning reporting back to the user.
  * Saner error handling in the threading code

--------------------------------------------------------------------------------------------------------
22.12.2002 01:55 (GMT), boris

  * Another fix for opcode stuff. Amazes me that this went so long with out a fix.

--------------------------------------------------------------------------------------------------------
20.12.2002 16:55 (GMT), boris

  * Fix for opcode deletion, and well, opcodes in general - too bizarre to explain. But it was an
    issue if you have just enough opcodes to fill the list - it wont be made bigger, and the next 
    opcode wont be made NULL. Therefore it would run off the end of the list. This should also fix
    the duplication bug cms was seeing.
  * Fix for IPV6 networking code on OS X - the hint structure has to be NULL/0 for all fields except
    a few.

--------------------------------------------------------------------------------------------------------
20.12.2002 14:30 (GMT), boris

  * Slight fix in the executor which would mean a bug in function calling wouldnt show
  * Signal handler code which will hapilly work per multiple scripts runnign concurrently
    in the engine.

--------------------------------------------------------------------------------------------------------
17.12.2002 13:22 (GMT), alex
Changed Sys.getcwd() to allocate its buffer dynamically because the PATH_MAX
constant isn't a reliable or portable way to determine the actual maximum
possible length of a path in any given file system.

--------------------------------------------------------------------------------------------------------
16.12.2002 22:16 (GMT), alex
Fixed classic format string security hole in syslog.

--------------------------------------------------------------------------------------------------------
16.12.2002 15:44 (GMT), alex
Added Array.union(), Array.intersect(), and Array.subtract().
Added a test script (sets.fe) for the above functions.

--------------------------------------------------------------------------------------------------------
16.12.2002 12:44 (GMT), alex
Generate the system constant arrays using a shell script at build time, with
#ifdefs around every constant. Avoids the problem that not all of the constants
are present on every platform and also makes it a bit easier to maintain the
list of constants.

--------------------------------------------------------------------------------------------------------
16.12.2002 11:01 (GMT), alex
Make the constants actually constant, so the user can't accidentally modify
their value.

--------------------------------------------------------------------------------------------------------
16.12.2002 10:42 (GMT), alex
Added the errno constants.

--------------------------------------------------------------------------------------------------------
16.12.2002 10:13 (GMT), alex
Added Sys.utime()

--------------------------------------------------------------------------------------------------------
16.12.2002 09:17 (GMT), alex
Switched from using fixed system constant values to creating them at runtime
from a table in module-init. Probably not the final solution to the problem,
but hopefully a step in the direction of greater portability...

--------------------------------------------------------------------------------------------------------
16.12.2002 08:55 (GMT), alex
Added a few test scripts.

--------------------------------------------------------------------------------------------------------
15.12.2002 23:28 (GMT), boris

  * Hopefully the fix for holden's segfault bug he found
  * A few documentation additions

--------------------------------------------------------------------------------------------------------
15.12.2002 11:02 (GMT), alex
Fix to segfault when running "ferite -e" without specifying an argument, found
by doneill.

--------------------------------------------------------------------------------------------------------
14.12.2002 20:01 (GMT), alex
Implemented Sys.StringStream.
Changed opendir() to return a StringStream instead of a DirStream.
Implemented Sys.Dir.

--------------------------------------------------------------------------------------------------------
14.12.2002 15:19 (GMT), alex
Fixed the ffree() macro which was expanding into two statements without any
brackets around them, which was causing a buffer overrun in the engine (see
changelog on include/ferite/fmem.h for details).
Fixed a bug in the engine where two structures were being allocated too small
for the data that was going in them.
Fixed a bug in the engine where an array was being overrun by one.
All three bugs were found by Electric Fence.

--------------------------------------------------------------------------------------------------------
14.12.2002 08:24 (GMT), alex
Fixed the bug which was causing Sys.timestamp() to return a totally bogus
fractional part (usec = millionths of a second, not thousandths).

--------------------------------------------------------------------------------------------------------
13.12.2002 12:14 (GMT), boris

  * Various tweaks and fixes

--------------------------------------------------------------------------------------------------------
10.12.2002 17:22 (GMT), alex
Fixed a bug in Sys.system() which was causing it to return the wrong return
value from the system command.

--------------------------------------------------------------------------------------------------------
09.12.2002 16:37 (GMT), boris

  * Fixed a segfault in printf()
  * Modified the api for add_self such that it takes an object not a variable [like the other 
    object/class functions]
  * Fixed a memory leak
  * Change the executor and what not to use the get methods for functions and classes like good people 
    should. This is the correct way of doing things.
  * Various tweaks

--------------------------------------------------------------------------------------------------------
09.12.2002 15:13 (GMT), alex
Added Sys.Stream.printf()

--------------------------------------------------------------------------------------------------------
09.12.2002 12:54 (GMT), alex
Added the String.is*() functions.
Added String.sprintf().

--------------------------------------------------------------------------------------------------------
06.12.2002 20:21 (GMT), alex
Partially implemented signal handling support

--------------------------------------------------------------------------------------------------------
05.12.2002 23:33 (GMT), boris

  * Compiler fix doneill spotted

--------------------------------------------------------------------------------------------------------
05.12.2002 21:52 (GMT), alex
Added String.charToNum() and String.numToChar().

--------------------------------------------------------------------------------------------------------
05.12.2002 19:39 (GMT), boris

  * Fixed the compiler to make sure that not only it check for maximum parameters but also the maximum
    number of arguments used in a function call.
  * Fixed builder to handle multiple native functions
  * Added the ability to register fake modules [for embedding ferite in applications]

--------------------------------------------------------------------------------------------------------
04.12.2002 12:09 (GMT), boris

  * Docs on writing a native function by hand and writting a native module

--------------------------------------------------------------------------------------------------------
04.12.2002 12:02 (GMT), alex
Added String.toHex() and fixed Network.UDPSock.recv() to return an empty string
on error instead of a null object.

--------------------------------------------------------------------------------------------------------
02.12.2002 19:25 (GMT), alex
Added doneill's Array.toHash() and Array.getEntrynum() functions (slightly
modified and renamed to Array.combine() and Array.find()).

--------------------------------------------------------------------------------------------------------
02.12.2002 18:00 (GMT), boris
 
  * Added meaningfull exceptions to foreach()
  * Added ferite_types_are_equal() to test whether or not two variable's types are equal according to 
    ferite

--------------------------------------------------------------------------------------------------------
02.12.2002 17:32 (GMT), boris

  * Fix for an odd compiler bug. Only exhibited if a script was include()'d and uses "" a module not 
    previously loaded. 

--------------------------------------------------------------------------------------------------------
02.12.2002 13:48 (GMT), boris

  * Fixed a bug in util_network.c where in IPV4 only mode the code would go and write 16 bytes to a 4 
    byte structure

--------------------------------------------------------------------------------------------------------
02.12.2002 13:08 (GMT), alex
Added shorter forms of tcp_connect(), tcp_bind(), UDPSocket.connect(), and
UDPSocket.bind() for backwards compatibility and convenience reasons.

--------------------------------------------------------------------------------------------------------
02.12.2002 11:58 (GMT), boris

  * Added a parameter to the ferite_error() call

--------------------------------------------------------------------------------------------------------
02.12.2002 11:46 (GMT), alex
Added an overloaded String.toArray() function which has the same arguments
as the old toArray().

--------------------------------------------------------------------------------------------------------
02.12.2002 11:11 (GMT), boris

  * More embedding docs

--------------------------------------------------------------------------------------------------------
02.12.2002 10:36 (GMT), alex
Added configure checks for various things in the sys module.
Rewrote a lot of the networking code to fully support IPV6 and also work on
machines which don't support IPV6.
Documented the fact that inet_aton() and inet_ntoa() are deprecated because
they don't support IPV6.

--------------------------------------------------------------------------------------------------------
02.12.2002 07:44 (GMT), boris

  * Adding embed.sgml - currently it will generate documentation and is fairly complete. The only 
    sections that really need to be done are: Native Modules By Hand, Embedding Ferite, and a set of 
	real world examples for people to refer to. The first two should come pretty quickly.

--------------------------------------------------------------------------------------------------------
30.11.2002 22:51 (GMT), boris

  * Fixed a bug in method overloading in classes
  * Changed the api for adding methods to a class slightly to keep it inline with adding variables

--------------------------------------------------------------------------------------------------------
30.11.2002 21:47 (GMT), alex
The fix to split() was not correct because it changed its behaviour (this was
accidental- the function was not documented adequately and I misunderstood what
the broken code was trying to do). However, the new behaviour is quite useful
in itself, so I've renamed the new version of split() to dissect() in order to
make it clear that it is different from split(). If anyone actually wants the
behaviour which split() was supposed to have, they are welcome to put it back
in after fixing it. 
I also added a new feature to toArray() and dissect() requested by doneill- a
limit parameter which if > 0, limits the maximum number of times which the
string is cut into substrings (apparently this is a feature of split() in Perl).

--------------------------------------------------------------------------------------------------------
30.11.2002 17:40 (GMT), alex
Rewrote String.split() because the old one was broken. Rewrote the
documentation of String.split() and String.toArray() because it wasn't clear
what each did and what the difference between them was.

--------------------------------------------------------------------------------------------------------
30.11.2002 16:21 (GMT), boris

  * If you are going to terminate a string, do it properly.

--------------------------------------------------------------------------------------------------------
30.11.2002 10:36 (GMT), boris

  * Fix for foreach bug found by doneill

--------------------------------------------------------------------------------------------------------
29.11.2002 15:54 (GMT), boris

  * Some more changes to the docs
  * Fix for iferr

--------------------------------------------------------------------------------------------------------
29.11.2002 14:48 (GMT), alex
Rewrote String.isNumber() again because I thought of a much nicer way of doing
it.

--------------------------------------------------------------------------------------------------------
29.11.2002 14:27 (GMT), alex
Rewrote String.toNumber()

--------------------------------------------------------------------------------------------------------
29.11.2002 13:54 (GMT), boris

  * Got the doc system up and running agian, I can now generate the online, html and pdf manual

--------------------------------------------------------------------------------------------------------
28.11.2002 22:59 (GMT), alex
Rewrote String.isNumber() because it didn't work at all.

--------------------------------------------------------------------------------------------------------
28.11.2002 19:51 (GMT), boris

  * New to string method

--------------------------------------------------------------------------------------------------------
28.11.2002 15:24 (GMT), alex
Implemented Sys.select()

--------------------------------------------------------------------------------------------------------
27.11.2002 20:44 (GMT), alex
Fixed the Sys.UnixStream.path variable and added the Network.UDPSocket class.

--------------------------------------------------------------------------------------------------------
27.11.2002 15:59 (GMT), alex
Added Sys.UnixStream, Network.unix_bind(), and Network.unix_connect().

--------------------------------------------------------------------------------------------------------
27.11.2002 13:43 (GMT), alex
Implemented Network.Host and fixed tcp_connect() and tcp_bind() to use the new
thread-safe lookup routines. Also removed a superflous semicolon from the end
of the frealloc() macro.

--------------------------------------------------------------------------------------------------------
26.11.2002 22:33 (GMT), alex
Changed bofh.fe to use the Ferite BOFH excuse server on www.alexholden.net:6666
and also to check for failure to connect.
Fixed a compiler warning bug in syslog.fec
Added Network.getHostname(), Network.Service, Network.getServiceByPort(), and
Network.getServiceByName().

--------------------------------------------------------------------------------------------------------
26.11.2002 18:59 (GMT), alex
Added the rest of the signal constants and a conversion function to work
around the problem of other flavours of Unix having different signal numbers.

--------------------------------------------------------------------------------------------------------
25.11.2002 23:42 (GMT), alex
Added Sys.waitpid(), Sys.sleep(), Sys.access(), Sys.umask(), Sys.mkfifo(),
Sys.Pipe, Sys.Uname, Sys.chmod(), Sys.chown(), Sys.Chroot(),
Sys.FileStream.lock() Sys.FileStream.unlock(), Sys.geteuid(), Sys.setuid(),
Sys.getgid(), Sys.getegid(), Sys.setgid(), Sys.getpid(), Sys.getppid(),
Sys.setsid(), Sys.kill(), Sys.getpriority(), Sys.setpriority(), Sys.Rusage,
Sys.Rlimit, Sys.Rusage, and Sys.exec().

--------------------------------------------------------------------------------------------------------
25.11.2002 23:21 (GMT), boris

  * fixed a <operator>= bug spotted by Alex. ferite would segfault if the result of the operator caused 
    an exception [it didnt check before assigning therefore messing up]

--------------------------------------------------------------------------------------------------------
25.11.2002 20:34 (GMT), boris

  * Fixed a bug with negative number initialisers on class/namespace variables spotted by alexholden

--------------------------------------------------------------------------------------------------------
25.11.2002 14:25 (GMT), boris

  * Applied Alex Holdens syslog patch

--------------------------------------------------------------------------------------------------------
23.11.2002 13:58 (GMT), boris

  * Fixed a problem in the compiler with regards to objects
  * Fixed a memory leak in the compiler when it transformed internal functions to external ones

--------------------------------------------------------------------------------------------------------
23.11.2002 12:47 (GMT), boris

  * Fix in triton's dlfcn loader from a bug spotted by Alex Holden

--------------------------------------------------------------------------------------------------
21.11.2002 22:44 (GMT), boris

  * Tweaked the .cvsignore files

--------------------------------------------------------------------------------------------------------
21.11.2002 22:36 (GMT), boris

  * Added F_OP_PUSHATTR to the executor, this removes a dedicated if statement, granted this is nothing 
    really - it just makes things more obivous
  * Added F_OP_PUSHINDEX, now local variables whithin a function [including parameters] are accessed 
    via an index - this makes things like loops faster.
  * Various compiler fixes and enhancements
  * Some more utility methods
  
  Next thing to do is to add block-nested-variables

--------------------------------------------------------------------------------------------------------
18.11.2002 14:02 (GMT), boris

  * Some more clean ups and fixes - bugs that have been missed for a while now

--------------------------------------------------------------------------------------------------------
16.11.2002 14:57 (GMT), boris

  * Various source cleanups

--------------------------------------------------------------------------------------------------------
04.10.2002 14:16 (BST), boris

  * Have fixed script duplication from when i broke it the other day!

--------------------------------------------------------------------------------------------------------
27.09.2002 12:44 (BST), boris

  * Fix for function duplication in script duplication. To handle method overloading

--------------------------------------------------------------------------------------------------------
25.09.2002 18:38 (BST), boris

  * yet a few more document stuff

--------------------------------------------------------------------------------------------------------
24.09.2002 20:15 (BST), boris

  * More documentation changes
  * Some changes to the html template in feritedoc

--------------------------------------------------------------------------------------------------------
24.09.2002 13:20 (BST), boris

  * More c api docs - upto ferite_obj.c
  * Fix for include()

--------------------------------------------------------------------------------------------------------
24.09.2002 09:38 (BST), boris

  * Added Array.getName( array, index ) to get the name of an index's name
  * Added Obj.copy() 
  * Moved Obj specific code into src/ferite_obj.c and include/ferite/fobj.h
  * Fixed regex's so the right number of count's are cleared on each one

--------------------------------------------------------------------------------------------------------
17.09.2002 14:49 (BST), boris

  * Function caching, this should provide about [from tests] a 6% increase in speed
  * Removed the delete keyword, I have decided that I dont like it

--------------------------------------------------------------------------------------------------------
16.09.2002 10:19 (BST), boris

  * More documentation, done foreach and fncArgs changes

--------------------------------------------------------------------------------------------------------
15.09.2002 14:36 (BST), boris

  * Fix for constructor overloading

--------------------------------------------------------------------------------------------------------
13.09.2002 11:48 (BST), boris

  * Fix for gc bug. Freeing up the wrong generation.

--------------------------------------------------------------------------------------------------------
12.09.2002 13:07 (BST), boris

  * remove fncArgs - it is a huge overhead for little benifit
  * to get the arguements, use the sudo function getArgs 
  * updated scripts to work with it

--------------------------------------------------------------------------------------------------------
12.09.2002 11:23 (BST), boris

  * Added method overloading and an example. This is experimental but should work!

--------------------------------------------------------------------------------------------------------
11.09.2002 15:55 (BST), boris

  * Fix for assignments which caused segfaults
  * Added ( expr ? expr : expr ) conditional statement. You HAVE to use the brackets.

--------------------------------------------------------------------------------------------------------
10.09.2002 10:40 (BST), boris

  * Fix for an incorrect String.reverse bug

--------------------------------------------------------------------------------------------------------
05.09.2002 10:06 (BST), boris

  * Fix for a dumbass mistake.

--------------------------------------------------------------------------------------------------------
03.09.2002 16:40 (BST), boris

  * Slight clean up

--------------------------------------------------------------------------------------------------------
03.09.2002 12:33 (BST), boris

  * Better function declaration parsing - you can't put variables after a '...' this means that better 
    assumptions can be made in the executor.
  * Fix for the gc generalisation code - we need 'extern' in the header.
  * Fix for cache deinit for when the compilation fails

--------------------------------------------------------------------------------------------------------
02.09.2002 01:31 (CEST), stephan_eng

  * Made hashtables growable, it will speedup large hashsets quite a bit.

--------------------------------------------------------------------------------------------------------
01.09.2002 21:49 (CEST), stephan_eng

  * Made the GC work per thread, so the locks around the GC could be removed
  * Removed the ifdefs around the GC calls and used functionpointers instead
    for plugin GC

--------------------------------------------------------------------------------------------------------
31.08.2002 15:11 (BST), boris

  * Some changes in the code that dispatches functions this works, so I am committing it. This is the 
    start of the method overloading code.
  * Fixed a memory leak in the cache code
  
--------------------------------------------------------------------------------------------------------
30.08.2002 16:23 (CEST), stephan_eng

  * Variables have a flag now if it's name is allocated or not, gives huge speedup

--------------------------------------------------------------------------------------------------------
30.08.2002 14:21 (BST), boris

  * fix for another bug that stephan told me about with the issues of arrays within arrays.

--------------------------------------------------------------------------------------------------------
30.08.2002 09:56 (BST), boris

  * Fix for nested structures and the 'break' statement

--------------------------------------------------------------------------------------------------------
28.08.2002 16:27 (CEST), stephan_eng

  * Try to cache variables, stacks and objects. We cut down number of mallocs 25%

--------------------------------------------------------------------------------------------------------
12.08.2002 17:39 (CEST), stephan_eng

  * Cleanup of hash functions and a pretty good speedup

--------------------------------------------------------------------------------------------------------
29.07.2002 13:19 (CEST), cms
  
  * XML module work:
    Implemented a validating tree parser
    and the ability to fetch values from the tree using XPath.
    The parser can parse XML from files or from a string in memory,
    save the tree to a file or return it as a string.


--------------------------------------------------------------------------------------------------------
24.07.2002 01:08 (CEST), stephan_eng

  * Better serializer. Handles object references and a buch of sanity checks

--------------------------------------------------------------------------------------------------------
22.07.2002 22:38 (CEST), cms

  * Implemented: ferite_verror() && ferite_vwarning()
  * XML module error and warning callbacks.

--------------------------------------------------------------------------------------------------------
22.07.2002 20:25 (CEST), cms

  * Renamed class xml to saxparser.
  * Implemented: comments, cdata, PI callback functions in the sax parser,
	         ParseChunk() parse an xml string from memory,
	
--------------------------------------------------------------------------------------------------------
22.07.2002 19:05 (BST), boris

  * Added object support to foreach also added an example

--------------------------------------------------------------------------------------------------------
21.07.2002 21:52 (BST), boris

  * Implemented foreach! :) Works with strings and arrays

--------------------------------------------------------------------------------------------------------
21.07.2002 14:02 (CEST), cms

  * xml module now works again. 

--------------------------------------------------------------------------------------------------------
20.07.2002 16:54 (GMT), boris

  * Darwin fixes
  * Fix for module loading in builder

--------------------------------------------------------------------------------------------------------
20.07.2002 16:47 (CEST), cms

  * Solaris build fix.
	
--------------------------------------------------------------------------------------------------------
19.07.2002 10:53 (BST), boris

  * Fix for solaris

--------------------------------------------------------------------------------------------------------
19.07.2002 09:25 (BST), boris

  * Fix a bug in the native functions

--------------------------------------------------------------------------------------------------------
18.07.2002 14:25 (BST), boris

  * Repeat after me, chris is a stupid moron, remeber to _clear_ a string before you write to it, so 
    it gets terminated correctly.

--------------------------------------------------------------------------------------------------------
18.07.2002 10:55 (BST), boris

  * Find myself writing functions that do one little 'operation'. I decided to add the ability to just 
    put a statement under the function declaration rather than having to put the {}'s there aswell. It 
	works for if statements, why not functions? :)

    e.g. instead of:
	
	  function foo( void someVar )
	  {
	      return someVar+1;
	  }
	  
    you can now do
	
	  function foo( void someVar )
	    return someVar + 1;

  * Slight change to the xml module
  * Work on XML-RPC interface
  * Hopefully a speed up on module loading - removed some expensive system calls
  
--------------------------------------------------------------------------------------------------------
17.07.2002 15:08 (BST), boris

  * You can now do super() to call the parent constructor :)

--------------------------------------------------------------------------------------------------------
17.07.2002 11:16 (BST), boris

  * Fix the many op that I broke yesterday =/

--------------------------------------------------------------------------------------------------------
16.07.2002 15:33 (BST), boris

  * A little bit of code to test duplication vs. compilation - looks like duplication is 360% or so 
    faster, which means that it was worth the hassle :)

--------------------------------------------------------------------------------------------------------
16.07.2002 14:58 (BST), boris

  * Script duplication should now work - use with care!

--------------------------------------------------------------------------------------------------------
16.07.2002 09:21 (BST), boris

  * Slight change with accessors to variables - makes them more sane :)
  * Slight change in behavior in the constructor calling code.
  
    If a null object is returned, a null object will be returned to the caller of 'new'
	If a C NULL is returned an exception is thrown
	Otherwise the Constructor is assumed to have worked correctly 
	
--------------------------------------------------------------------------------------------------------
15.07.2002 23:51 (BST), boris

  * Added Function.getParameterDetails() to reflection module
  * More work on script duplication

--------------------------------------------------------------------------------------------------------
12.07.2002 21:50 (BST), boris

  * Saner triton compilation

--------------------------------------------------------------------------------------------------------
12.07.2002 19:26 (BST), boris

  * Removed some dead wood with script->exec_stack [not needed]
  * Modified the case statement slightly internally to make it work with the above change
  * Made threading a compile time option

--------------------------------------------------------------------------------------------------------
12.07.2002 16:18 (BST), boris

  * Fixed a bug found by cms when you try and call a function which isn't a function
  * x86 Profiler support from stephan

--------------------------------------------------------------------------------------------------------
12.07.2002 11:28 (CEST), stephan_eng

  * Changed the variable flags to use a bitmask instead of char's

--------------------------------------------------------------------------------------------------------
10.07.2002 22:55 (BST), boris

  * And 0.99.5 was realsed unto the world

---------------------------------------------------------------------------------------------------------
10.07.2002 22:43 (BST), boris

  * Tweaks and tidy ups preparing for release
  * Complex number class for the maths module

--------------------------------------------------------------------------------------------------------
10.07.2002 15:59 (BST), boris

  * A feritedoc wrapper around generate-module

--------------------------------------------------------------------------------------------------------
10.07.2002 10:06 (CEST), cms

  * build issues (sys module).

--------------------------------------------------------------------------------------------------------
09.07.2002 15:59 (BST), boris

  * Added docs/build_api_docs.sh - now everyone can have their own copy of documentation

--------------------------------------------------------------------------------------------------------
09.07.2002 14:59 (BST), boris

  * Some more work on feritedoc/html output - it is now all css driven

--------------------------------------------------------------------------------------------------------
09.07.2002 15:25 (CEST), cms

  * generate-module fixxes.

--------------------------------------------------------------------------------------------------------
09.07.2002 02:04 (BST), boris

  * Compiler error fix
  * ferite doc now handles modified classes and namespaces [almost correctly]

--------------------------------------------------------------------------------------------------------
08.07.2002 21:49 (BST), boris

  * Comments for array, console, math, reflection, serialization, string
  * Image files are now copied over when the docs are created
  * Added --prefix to feritedoc to allow for a different directory to be used for output

--------------------------------------------------------------------------------------------------------
08.07.2002 19:13 (BST), boris

  * The html output works with feritedoc

--------------------------------------------------------------------------------------------------------
08.07.2002 13:07 (BST), boris

  * Some fixes for including a file
  * feritedoc the program now works when installed

--------------------------------------------------------------------------------------------------------
08.07.2002 12:13 (BST), boris

  * Another fix for arrays in script - required an extra operator =/
  * Text output for feritedoc works

--------------------------------------------------------------------------------------------------------
07.07.2002 19:02 (BST), boris

  * couple of fixes

--------------------------------------------------------------------------------------------------------
05.07.2002 13:16 (BST), boris

  * Added a contrib directory
  * Added modes for jed, kate [for KDE], and vim to do syntax highlighting

--------------------------------------------------------------------------------------------------------
04.07.2002 13:32 (BST), boris

  * A couple of changes to the compiler to make return values from include and eval availible to the 
    scripter
  * A bug fix with the exception handling of the constructor calling now handled correctly
  * More doc generator work

--------------------------------------------------------------------------------------------------------
03.07.2002 09:20 (BST), boris

  * aphex clean ups

--------------------------------------------------------------------------------------------------------
03.07.2002 08:59 (BST), boris
 
  * Fixed Darwin support. It was stephans fault =P

--------------------------------------------------------------------------------------------------------
02.07.2002 20:42 (BST), boris

  * More darwin fixes thanks to Carl Drinkwater

--------------------------------------------------------------------------------------------------------
02.07.2002 13:52 (BST), boris

  * cygwin support is now there out of the box
  * re-write of the recursive mutex code based upon some reading

--------------------------------------------------------------------------------------------------------
01.07.2002 16:48 (CEST), boris

  * A man page for builder

--------------------------------------------------------------------------------------------------------
01.07.2002 14:19 (BST), boris

  * Slight fix to the variable accessor system
  * Some documents about them
  * Header update

--------------------------------------------------------------------------------------------------------
01.07.2002 13:57 (BST), boris

  * Added file-prefix to builder allowing for generated files to be placed in a different dir rather 
    than the current
  * Accessors should now work

--------------------------------------------------------------------------------------------------------
01.07.2002 13:10 (BST), boris

  * Added attribute_missing -> see scripts/test/autoload.fe
  * Changed 'autoload' to 'method_missing', makes things more coherrent and inline
  * Started work on variable accessor code, now I just have to hook it up in the executor and the 
    assignment operator
  * Formatted the scripts properly
  
--------------------------------------------------------------------------------------------------------
29.06.2002 10:05 (BST), boris

  * Changes to triton

--------------------------------------------------------------------------------------------------------
29.06.2002 09:49 (BST), boris

  * Two fixes for darwin [triton library loader and in Sys.timestamp()]
  * Reformated all the module .fec's and added a copyright to the thread one

--------------------------------------------------------------------------------------------------------
28.06.2002 21:52 (BST), boris

  * Formated src/ferite_parser.y

--------------------------------------------------------------------------------------------------------
28.06.2002 16:42 (BST), boris

  * Reformat of code - all the same style now :)
  * Copyright updates on files without them

--------------------------------------------------------------------------------------------------------
28.06.2002 15:55 (BST), boris

  * More work on cleaning up the source tree
  * More work on ferite script duplication

--------------------------------------------------------------------------------------------------------
28.06.2002 14:21 (BST), boris

  * A slight fix for aphex & triton on darwin

--------------------------------------------------------------------------------------------------------
28.06.2002 12:34 (BST), boris

  * A clean up of include/ferite/fstructs.h. It is now much cleaner and most of the structures are 
    commented to give developers a better idea of what is going on
  * Some more work on script duplication

--------------------------------------------------------------------------------------------------------
27.06.2002 13:17 (CEST), stephan_eng

  * Added scripts/benchmarks for the Shootout benchmark scripts

--------------------------------------------------------------------------------------------------------
26.06.2002 11:09 (BST), boris

  * You can now do "... ${a valid ferite expression} ..." and have it placed inthe string when the 
    string is evaluated. This means, instead of doing:
	
	  Console.println( "Array size = " + Array.size(foo) );
	
    You can do:
	
	  Console.println( "Array size = ${ Array.size(foo) }" );
	
    This is an extesion of the $variableName syntax that is in the current implementation
	
  * clean up of ferite varaible to str function
  * made regex script evaluation thread safe
  
--------------------------------------------------------------------------------------------------------
26.06.2002 00:14 (BST), boris

  * Better threading
  * Ability to tell thread to detach on start
  * Various fixes

--------------------------------------------------------------------------------------------------------
25.06.2002 15:57 (CEST), boris

  * Initial work on a generaltional GC

--------------------------------------------------------------------------------------------------------
24.06.2002 13:04 (CEST), boris

  * TcpStream.listen(backlog) added

--------------------------------------------------------------------------------------------------------
24.06.2002 11:42 (CEST), boris

  * Fix for the parser to allow for empty statments ';'
  * Change the expected conflicts

--------------------------------------------------------------------------------------------------------
21.06.2002 10:55 (BST), boris

  * Some cleanups and a correct recusive implementation [with a bit of luck] of recursive mutexs

--------------------------------------------------------------------------------------------------------
21.06.2002 02:16 (PDT), ntropy

+ Ported to darwin. Had to make an ad-hoc recursive mutex and add some code to aphex to
  make polling crossplatform

--------------------------------------------------------------------------------------------------------
19.06.2002 14:11 (BST), boris

  * Dont execute a script if it is unrunable

--------------------------------------------------------------------------------------------------------
18.06.2002 10:55 (BST), boris

  * fix for ferite_hash_delete(), if the item is in the head of the hash chain, dont remove the entire 
    chain

--------------------------------------------------------------------------------------------------------
17.06.2002 19:26 (BST), boris

  * A couple more clean ups I missed in the regex memory fix

--------------------------------------------------------------------------------------------------------
17.06.2002 16:43 (BST), boris

  * Fix for null from an object constructor
  * Fix to make sure the correct line numbers are returned

--------------------------------------------------------------------------------------------------------
17.06.2002 16:24 (BST), boris

  * Found a bug in the executor introduced with the change in function code
  * Fixed line number bugs

--------------------------------------------------------------------------------------------------------
17.06.2002 13:48 (BST), boris

  * Start of work to allow for script duplication
  
--------------------------------------------------------------------------------------------------------
17.06.2002 10:58 (BST), boris

  * Added ferite_script_compile_with_path( char *filename, char **paths );
          ferite_compile_string_with_path( char *str, char **paths );
		  
	These allow you to define a set of paths that are specific to the script being compiled. Eg.
	In a multithreaded enviroment.
  * PCRE now, by default, uses it's own memory mechanisms, pass --fe-use-mm-with-pcre to have jedi 
    used

--------------------------------------------------------------------------------------------------------
17.06.2002 10:16 (BST), boris

  * Slight bug fix in the compiler - this should solve stephans issue

--------------------------------------------------------------------------------------------------------
17.06.2002 00:59 (BST), boris

  * Commented GetOptLong
  * Fixed the parser to deal with multiline comments.
  * Fixed a segfault bug in the regex engine

--------------------------------------------------------------------------------------------------------
16.06.2002 19:07 (BST), boris

  * Fix to the array in-script-code this was seriously b0rked before, but now is correct
  * Memory leak fix in the array duplication code

--------------------------------------------------------------------------------------------------------
16.06.2002 17:21 (BST), boris

  * removed is* and instanceof from the Reflection module - not needed with the two new operators
  * fixed Reflection.type()
  * changed script/test-suite/reflection.fe to reflect the changes =P

--------------------------------------------------------------------------------------------------------
16.06.2002 14:17 (BST), boris

  * Added isa and instanceof operators:
  
   isa use -> somevar isa type, eg. "hello" isa string -> true
   insanceof use -> somevar instanceof Sys.StdioStream -> true
   
   see scripts/test/native_inheiritance.fe for an example   
 * Some fixes to the math module 
 * Start of some work on a GetOptLong class
 * Renamed FeriteObject->tmpl to FeriteObject->klass to make it more obvious
 * Updated documentation

--------------------------------------------------------------------------------------------------------
16.06.2002 12:24 (BST), boris

  * If you want to pass arguements to the script they get placed after a '--'. eg. 
   
      "ferite somescript.fe -- some args to script"
	  
	This makes argument parsing alot more sane
  * More work on feritedoc

--------------------------------------------------------------------------------------------------------
16.06.2002 11:11 (BST), boris

  * fixed return values from the ferite command line tool to return errors as different values
  * added 'make test' and 'make test-verbose' to the test-suite. This allows the tests to be run to see 
    where stuff is failing.

--------------------------------------------------------------------------------------------------------
15.06.2002 20:00 (BST), boris

  * Some more clean ups in terms of optimsation

--------------------------------------------------------------------------------------------------------
15.06.2002 19:42 (BST), boris

  * Cleaner and faster function execution

--------------------------------------------------------------------------------------------------------
15.06.2002 17:26 (BST), boris
 
  * Removal of some ferite_stop_execution() statements, we only call this if the program must finish

--------------------------------------------------------------------------------------------------------
15.06.2002 15:13 (BST), boris

  * if you return 'null' from a constructor, an error is thrown, and a null object returned
  * return value from a script, if you do "return x;" at the end of a script's main body it'll be 
    returned to the program
  * fix to Array.getIndex() to stop the segfault, removed Array.walk() - it's target function will be 
    replaced when foreach() gets placed within the code
  * The hash keys for deleted keys should now be removed

--------------------------------------------------------------------------------------------------------
14.06.2002 15:18 (BST), boris

  * Some more doc tool work, it can now generate a structure of the stuff, next job, write something 
    that can do something with it, and some templates

--------------------------------------------------------------------------------------------------------
13.06.2002 15:48 (BST), boris

  * exp() is exp() not log()

--------------------------------------------------------------------------------------------------------
13.06.2002 14:43 (BST), boris

  * Thread.join(thread)
  * start of feritedoc in tools/doc/

--------------------------------------------------------------------------------------------------------
11.06.2002 17:13 (BST), boris

  * eval is now more fun -> you can modify exisitng stuff :)

--------------------------------------------------------------------------------------------------------
11.06.2002 12:48 (BST), boris

  * A memory leak and segfault fix in the Sys.Tm class

--------------------------------------------------------------------------------------------------------
11.06.2002 10:36 (BST), boris

  * All classes now inherit from an 'Object' class. This allows us to do clever things if we want :)

--------------------------------------------------------------------------------------------------------
10.06.2002 22:51 (BST), boris

  * Proper handling of the dependancies in builder, it will make the _core.c dependant on all .fec files
  * All other .c files depend on the _core.c file, which means that you can now do make -j<some number> 
    to speed up builds, as _core.c will be generated, then the .c files built. tasty.

--------------------------------------------------------------------------------------------------------
10.06.2002 11:36 (BST), boris

  * Array.join from Christian M. Stamgren <christian@centiongroup.com> - i re-wrote it to make it 
    cleaner
  * when an object is converted to a string, .toString() will be checked for and called. see 
    scripts/test/test2.fe for an example. This means that objects can be easily used.

--------------------------------------------------------------------------------------------------------
10.06.2002 11:15 (BST), boris

  * this should give proper use of && and || - please check it :)

--------------------------------------------------------------------------------------------------------
07.06.2002 15:50 (BST), boris

  * work on more feature rich operators

--------------------------------------------------------------------------------------------------------
06.06.2002 12:43 (BST), boris

  * Testing the use of .foo aswell as using self.foo -> see scripts/test/dot_self.fe

--------------------------------------------------------------------------------------------------------
06.06.2002 11:55 (BST), boris

  * more builder-closed cleanups
    - correct registration of namespaces
	- correct handling of variables -> the compile wont start polluting the namespace
    - various clean ups
	
	We are almost at 0.99.4 functionality [it would only do this mode]. The next job is better 
	Makefile.am generation which will effect both modes.

--------------------------------------------------------------------------------------------------------
05.06.2002 18:17 (BST), boris

  * initial work on allowing for completely closed modules from builder, do not use. it's very rough

--------------------------------------------------------------------------------------------------------
05.06.2002 14:31 (BST), boris

  * A fix in the executor, it restores the file it's executing in on a functions return

--------------------------------------------------------------------------------------------------------
05.06.2002 13:57 (BST), boris

  * Added Object.hasMember( object, "name" ) to the reflection module

--------------------------------------------------------------------------------------------------------
05.06.2002 12:41 (BST), boris

  * A couple more fixes where the script was being passed around the compiler correctly
  * Added prefixes to the messages in ferite_error.c

--------------------------------------------------------------------------------------------------------
05.06.2002 11:36 (BST), boris

  * slight internal name change to avoid conflict!
  * added module-register and module-unregister to builder
  * fix to builder when generating function registration code

--------------------------------------------------------------------------------------------------------
05.06.2002 11:15 (BST), boris

  * removal of some messages that are not needed
  * use the script if we get passed it. silly me.

--------------------------------------------------------------------------------------------------------
05.06.2002 10:38 (BST), boris

  * fix to the module stuff that got changed
  * and a compile of logic errors

--------------------------------------------------------------------------------------------------------
04.06.2002 16:02 (CEST), stephan

  * Changed error handling to buffer up instead of printing to stderr or hookup to function pointers

--------------------------------------------------------------------------------------------------------
04.06.2002 12:56 (BST), boris

  * precedence error for || and &&

--------------------------------------------------------------------------------------------------------
03.06.2002 21:51 (BST), boris

  * err.errstr err.errno -> err.str err.num respectively
  * err and null can't be used as variable names

--------------------------------------------------------------------------------------------------------
03.06.2002 21:45 (BST), boris

  * err and null are now reserved variable names. No cookie for you if you use those names.

--------------------------------------------------------------------------------------------------------
03.06.2002 21:27 (BST), boris

  * Slight fix. To see if a script is valid check to see if script->mainns exists, if it does, got for 
    gold - if not things have fouled up. Read script->last_error for the error messages, then hand the 
	script to ferite_script_delete as per usual. This is slightly saner behavior for builder.

--------------------------------------------------------------------------------------------------------
03.06.2002 21:06 (BST), boris

  * delete and rename now work all over the shop. This means that namespaces can be worked with and as 
    a direct result you can fiddle with anything!

--------------------------------------------------------------------------------------------------------
03.06.2002 16:44 (BST), boris

  * rename of global variables show_debug and hide_mem_use
  * thread locking on the compiler, this should work but as yet, is untested
  * change of error reporting. Now during a compile you will always get a script back, if 
    script->last_error != NULL you have a compile error. if it == NULL then you are fine and can 
	execute it

--------------------------------------------------------------------------------------------------------
31.05.2002 16:43 (BST), boris

  * Slight clean up on constructor calling. Upon object creation a constructor will be called. If there 
    is no constructor, ferite will find the first parent constructor.

--------------------------------------------------------------------------------------------------------
28.05.2002 16:44 (BST), boris

  * Changes and a fix for a memory leak in aphex, found by valgrind [the tool]

--------------------------------------------------------------------------------------------------------
27.05.2002 12:36 (BST), boris

  * Now all errors get reported back to the callbacks [->error_cb and ->warning_cb]

--------------------------------------------------------------------------------------------------------
27.05.2002 12:03 (BST), boris

  * This should stop the same file being used more than once be resovling the entire name, not just the 
    relative paths

--------------------------------------------------------------------------------------------------------
23.05.2002 15:34 (BST), boris

  * A segfault fix. there was an overflow in the scanner if you have a huge native block of code
    it'll now truncate the native code.

--------------------------------------------------------------------------------------------------------
22.05.2002 18:01 (BST), boris

  * Added c modifier for regular expressions this allows you to do:
  
     foo =~ c/some (regex)/place_I_want_it_to_go/
	 
	instead of 
	
	 foo =~ m/some (regex)/;
	 place_I_want_it_to_go = r1;
	 
    Fun! :)
	
  * Fixed a memory leak in modules/sys/util_stream.c

--------------------------------------------------------------------------------------------------------
22.05.2002 10:27 (BST), boris

  * Some fixes higlighted by a sekrit module that I am working on. Basically duff return values, double 
    free's and playing with empty arrays == bad idea

--------------------------------------------------------------------------------------------------------
21.05.2002 17:20 (BST), boris

  * FE_RETURN_STR returns a FeriteString* not a char* now. This make binary string support from 
    modules

--------------------------------------------------------------------------------------------------------
20.05.2002 13:03 (BST), boris

  * proper locking in the Stream class
  * various fixes
  * Added Sys.openprocess( cmd, modes )
  * Added Sys.env.* [modules/sys/env.fec]

--------------------------------------------------------------------------------------------------------
18.05.2002 20:39 (BST), boris

  * Slight changes to cope with the removed cvs modules

--------------------------------------------------------------------------------------------------------
17.05.2002 16:32 (BST), boris

  * found the bug - issue with stream flushing in sys module

--------------------------------------------------------------------------------------------------------
17.05.2002 15:51 (BST), boris

  * Some clean ups that I noticed whilst trying to track down some bugs

--------------------------------------------------------------------------------------------------------
16.05.2002 21:21 (BST), boris

  * thread groups - wont return until all threads are dead
  
  ferite has some threading issues, i am in the process of tracking them down. they tend to rear their 
  ugly head every now and again in the form of memory corruption and various other bits of fun :)

--------------------------------------------------------------------------------------------------------
12.05.2002 18:05 (BST), boris

  * Divide by zero fix0r

--------------------------------------------------------------------------------------------------------
11.05.2002 08:43 (BST), boris

  * Ok, this should unbreak stephans code, whilst still maintaining the fix for ppc archs

--------------------------------------------------------------------------------------------------------
10.05.2002 20:05 (BST), boris

  * test fix

--------------------------------------------------------------------------------------------------------
08.05.2002 10:19 (BST), boris

  * Real numbers must have atleast a '0' after the decimal point [they need not start with one]
  * Array[foo .. bar] used to only work, now you can do Array[foo..bar]
  

--------------------------------------------------------------------------------------------------------
07.05.2002 20:19 (BST), boris

  * fixed a bug with variable substitution in the regex engine, this would cause ferite to lock in an 
    endless loop if there was a '$' at the end of the match or swap section

--------------------------------------------------------------------------------------------------------
07.05.2002 12:08 (BST), boris

  * bug fix in array slice for strings
  
  PLEASE, when you touch ops mark absolutly CERTAIN that they return a variable, even if the variable 
  is a void variable to facilitate the return of an error - ferite will b0rk! This is a C problem!

--------------------------------------------------------------------------------------------------------
07.05.2002 01:17 (BST), boris

  * Move stat calls into aphex - now all file loading and management is in this library
  * Updated src/ferite_module.c to use the aphex calls

--------------------------------------------------------------------------------------------------------
06.05.2002 23:33 (BST), boris

  * Added Stream.eos() [end of stream] - works for file and network IO

--------------------------------------------------------------------------------------------------------
06.05.2002 22:12 (BST), boris

  * some more bug fixes and memory leak fixes
  * scripts/test/bofh.fe - get a BOFH excuse from the net :)

--------------------------------------------------------------------------------------------------------
06.05.2002 18:31 (BST), boris

  * Fixed about a billion memory leaks!

--------------------------------------------------------------------------------------------------------
06.05.2002 17:19 (BST), boris

  * Fixed some memory leaks
  * Sys.open() -> Sys.openfile() to better reflect it's use

--------------------------------------------------------------------------------------------------------
06.05.2002 16:34 (BST), boris
 
  * there are times in ones life when you make stupid. extremely stupid. potentially catstrophic 
    mistakes. this is one of them. I was doing bad thinks with the loaded native modules list. it is 
	fixed now.
  * modulename_deinit is called on script deletion now

--------------------------------------------------------------------------------------------------------
06.05.2002 15:34 (BST), boris

  * move() is better than chname() imho

--------------------------------------------------------------------------------------------------------
06.05.2002 12:03 (BST), boris

  * Added FE_RETURN_OBJ
  * Added FE_RETURN_ARRAY
  * Added ferite_object_get_var, ferite_class_get_var, and ferite_object_get_function
  * Added module_unregister mechanism [just need to hook up module_deinit to script deletion]
  * ferite cvs is a bit broken at the minute, trying to find the bug
  * Added ferite_uarray_get_from_string and ferite_uarray_delete_from_string
  * Initial new file, console, network and sys module code. Needs *lots* of work to get it mature 
    enough, but it compiles. The main change that is needed is the passing around of file 
	descriptors/FILE*

--------------------------------------------------------------------------------------------------------
27.04.2002 14:55 (BST), boris

  * a few cleanups highlighted by xchat-ferite

--------------------------------------------------------------------------------------------------------
27.04.2002 12:27 (BST), boris

  * a couple of builder fixes

--------------------------------------------------------------------------------------------------------
23.04.2002 12:10 (BST), boris

  * when you include(ascript) the body is executed :)

--------------------------------------------------------------------------------------------------------
21.04.2002 11:16 (BST), boris

  * reflection fixes, it now works - doesn't corrupt memory or leak it! ;)

--------------------------------------------------------------------------------------------------------
20.04.2002 13:19 (BST), boris

  * Fixed builder bug which occurs with namespace or classes within another namespace
  * Fixed the compiler to allow the extension of classes that are within a namespace: see 
    scripts/test/cls_ex_ns_cls.fe
	
--------------------------------------------------------------------------------------------------------
20.04.2002 12:34 (BST), boris

  * another bug-in-builder fix
  * fixed the inheritance bug highlighted by stephan

--------------------------------------------------------------------------------------------------------
19.04.2002 22:35 (BST), boris

  * the code at the end of a module is now executed when the module file is parsed. 
    eg.
	 
	 file 'include.fe'
	 
	   Console.println( "in include.fe" );
	   
	 file 'test.fe'
	 
	   uses "console", "include";
	   
	 Running test.fe will cause "in include.fe" to be outputed. Fun,
 

--------------------------------------------------------------------------------------------------------
18.04.2002 08:52 (BST), boris

  * fix0r that allows flat functions to be atomic
  * fix0r that stops final variables being modified by ++ and --
  * formating in src/ferite_ops.c

--------------------------------------------------------------------------------------------------------
17.04.2002 12:07 (BST), boris

  * Made src/ferite_ops.c lock the input variables to operators
  * put #ifdef's round new thread code so it is only compiled in when debug is enabled.
  * added locking of functions

--------------------------------------------------------------------------------------------------------
16.04.2002 21:23 (BST), boris

  * Added ->lock vars to functions and variables
  * Added 'atomic' keyword to scanner
  * Cleaned up the parser a little to reduce shift/reduce conflicts [was 8 now down to 4!]
  * Implemented recursive mutex's in aphex
  * Hooked up code to create and delete the mutex's.
  * Added some warning messages to the compiler

--------------------------------------------------------------------------------------------------------
15.04.2002 08:15 (BST), boris

  * removed realloc deadlock in ferite_mem_jedi
  * made jedi, classic and gc locking cleaner
  * moved FeriteThread struct into include/ferite/fstructs.h

  TBD:
    * thread sleeping and wakeup
    * 'atomic' keyword that guarantees mutally exculsive access to methods and variables
    * thread groups on a script to stop it returning until they have all
      run. If a thread is still running when the main loop ends ferite will
      segfault!
    * testing!
	
  To use this compile ferite with:
  
    ./autogen.sh --enable-debug
    
  It will only work in debug mode!
  
--------------------------------------------------------------------------------------------------------
14.04.2002 20:40 (BST), boris

  * Better threading in aphex along with mutex's added
  * Jedi thread safe by default
  * Added GC locking
  * Moved jedi and the gc to use the aphex mutex stuff
  * Removed '->'

--------------------------------------------------------------------------------------------------------
14.04.2002 14:16 (BST), boris

  * Basic threading. I know this is for 0.99.6. But I got bored with a VRML project =P Basically, 
    dont use this for anything other than a 'proof of concept'. See scripts/test/thread.fe for how to 
	'do' it.

--------------------------------------------------------------------------------------------------------
14.04.2002 11:46 (BST), boris

  * Better error reporting with the module loader
  * Removed an error message in the compiler as it causes confusion
  * Started to prototype the thread code in aphex

--------------------------------------------------------------------------------------------------------
14.04.2002 09:15 (BST), boris

  * Fixed regexps

--------------------------------------------------------------------------------------------------------
13.04.2002 10:36 (BST), boris

  * operators are stored in a table and now referenced by their value rather than their address

--------------------------------------------------------------------------------------------------------
13.04.2002 09:14 (BST), boris

  * Fixed a bug with the error system not setting the correct string length in src/ferite_error.c
  * Removed some rubbish output I added before
  * Fixed a segfault in the executor to do with variable arguments.
  
--------------------------------------------------------------------------------------------------------
12.04.2002 17:07 (BST), boris

  * Moved to a GC per loaded script. This reduces GC errors on deletion of objects.
  * Fixed a memory leak in the parser when a module can't be loaded
  * Fixed a issue with ferite_build_object - this shouldn't mark the variable as disposable. 
    ferite_new_object should!

--------------------------------------------------------------------------------------------------------
11.04.2002 13:27 (BST), boris

  * Fixed a memory leak in src/ferite_string.c in ferite_str_destroy
  * Fixed a memory leak in src/ferite_module.c 

--------------------------------------------------------------------------------------------------------
27.03.2002 08:56 (PST), ntropy

   * Cleaned up a few things in buffer, made it use ferite_variable_tostr
     for it's conversions (centralized features == good thing, multiple
     implementations in one project == bad thing)

--------------------------------------------------------------------------------------------------------
26.03.2002 18:06 (PST), ntropy

   * Added a quote flag to variable_tostr to support convertion in
     different places better.

   * Made OP(add) use variable_tostr instead of it's hackish way ;)

--------------------------------------------------------------------------------------------------------
26.03.2002 17:45 (PST), ntropy

   * Expanded uarray_tostr by adding ferite_variable_tostr, which
     converts any variable to it's string value to be used wherever.

   * Made Console.print and Console.println alot smarter by accepting
     any number of variables via ..., and using ferite_variable_tostr
     to accept and print any variable

--------------------------------------------------------------------------------------------------------
22.03.2002 01:25 (PST), ntropy

   * Fixed a small memory leak in the array stringizer

--------------------------------------------------------------------------------------------------------
22.03.2002 01:05 (PST), ntropy

   * Added the slice operation to [] ops, see script/test/slice.fe for 
     examples
     - syntax: ele[lower .. upper], where 
         - if lower is omitted, 0 is assumed
         - if upper is omitted, the size of the ele - 1 is assumed
         - lower and upper are long's relative to the position of
           first char (position 0), so -1 means the last char (wrapping
           back around)
         - if lower is calculated to be greater then upper, the 
           elements are returned in reverse, the order assumed by the
           programmer. example ele[4 .. 0] returns 
            [ ele[4], ele[3], ..., ele[0] ]
           and ele[-1 .. 0] returns
            [ ele[size - 1], ele[size - 2], ..., ele[1], ele[0] ]
   
   * Arrays can now be stringized by adding them to strings. The string
     representation of the array is the same as the inline array 
     creation method ( the [1, 2, 3] method ) (see script/test/slice.fe
     for usage examples)
     
     - This still needs work because it doesnt recurse if it finds an array
       in the array being stringized, it just handles them the same as
       objects and prints out the mem address of the var

   * Started code for letting inline array creation method accepted named
     keys as well ( so ["one":1, "two":2, "three":3] works )

--------------------------------------------------------------------------------------------------------
11.03.2002 12:35 (GMT), boris

  * A slight optimsation in the jedi memory system

--------------------------------------------------------------------------------------------------------
10.03.2002 10:21 (GMT), boris

  * Added FE_RETURN_NULL_OBJECT

--------------------------------------------------------------------------------------------------------
09.03.2002 13:06 (GMT), boris

  * Some more builder clean ups
  * Modified ferite.m4 to be more usefull in terms of library paths
  * Added a skeleton tree
  * generate-module noew works - see TODO for what needs to be done
  
--------------------------------------------------------------------------------------------------------
08.03.2002 17:07 (GMT), boris

  * Start of work on a generate-module that is native ferite, going to eat some food and finish it later
  * File.exists() to the File class
  * Fixed an odd bug that was causing self not to be hooked up on script methods with variable argument 
    lists. Dont know why I missed it before.
	
--------------------------------------------------------------------------------------------------------
08.03.2002 14:41 (GMT), boris

  * a configure patch for pcre fix, and threading from Ian Main <imain@stemwinder.org>

--------------------------------------------------------------------------------------------------------
08.03.2002 14:05 (GMT), boris

  * Modified builder to allow for more flexible options regarding Makefile.am generation
  * Rebuilt the modules to allow for this, and modfied the configure.in.stub
  
--------------------------------------------------------------------------------------------------------
08.03.2002 13:06 (GMT), boris

  * Changed the license to be less restrictive [new BSD]
  * Updated all files to reflect this
  * Added the correct copyright on code

--------------------------------------------------------------------------------------------------------
07.03.2002 20:25 (GMT), boris

  * ferite_new_object can take a NULL for params - means no need for parameter list when calling 
    a constructor without params :)

--------------------------------------------------------------------------------------------------------
02.03.2002 12:09 (GMT), boris

  * Added two macros FE_ARRAY_ADD_AT_END and FE_ARRAY_ADD_AT_START to make adding things to arrays make 
    more sense :)
  * Updated all code not using this to use this
  
--------------------------------------------------------------------------------------------------------
01.03.2002 23:48 (GMT), boris

 * Added ferite_number_as_long and ferite_number_as_double - they will take a number variable and 
   convert it to the correct type

--------------------------------------------------------------------------------------------------------
01.03.2002 20:16 (GMT), boris

  * This is the test suite and the serialize stuff the Stephan Engstr?m <sem@cention.se> wrote
    Sorry for the delay - I have been really busy =/

--------------------------------------------------------------------------------------------------------
01.03.2002 19:49 (GMT), boris

  * just some stuff

--------------------------------------------------------------------------------------------------------
18.02.2002 11:42 (GMT), boris

  * script clean ups

--------------------------------------------------------------------------------------------------------
17.02.2002 11:47 (GMT), boris

  * Start on work for some binary safe strings, they will hold their length with them, plus 'encoding' 
    so that in the future we can hold what encoding they can use, eg. unicode, utf8, compression etc

--------------------------------------------------------------------------------------------------------
17.02.2002 01:51 (GMT), boris

  * changed ferite_class_get_function() to be more simple :)
  * reformated src/ferite_class.c [*hug jed]

--------------------------------------------------------------------------------------------------------
15.02.2002 14:18 (GMT), boris

  * Force dword not word alignment in ferite jedi - thanks to Stephan Engstr?m <sem@cention.se> for 
    this fix

--------------------------------------------------------------------------------------------------------
13.02.2002 11:43 (GMT), boris

  * operator change => to >=

--------------------------------------------------------------------------------------------------------
11.02.2002 18:13 (GMT), boris

  * String module fixes and a new test script from Stephan Engstr?m <sem@cention.se>

--------------------------------------------------------------------------------------------------------
11.02.2002 14:07 (GMT), boris

  * Libraries get loaded using a .lib extension now, this stops certain issues with module loading, 
    and it also clarifies to someone reading your code that you are loading a native library.
  * Updated docs

--------------------------------------------------------------------------------------------------------
11.02.2002 10:04 (GMT), boris

  * Bug highlighted from Jeremy Norris <ishmael27x@yahoo.com>

--------------------------------------------------------------------------------------------------------
10.02.2002 20:55 (GMT), boris

  * A few more changes to the module stuff, better error recovery, also some slight changes to allow 
    for the code I'll add tomorrow WRT native or script based ferite module initialisers [I'll explain 
	later]

--------------------------------------------------------------------------------------------------------
10.02.2002 14:56 (GMT), boris

  * pre-loading of modules on the command line, this is also useful for applications
  * added -Pmodule or --preload module

eg.
  
  ferite -Pconsole -e "Console.println('Hello World');"
  
--------------------------------------------------------------------------------------------------------
09.02.2002 20:37 (GMT), boris

  * some more fixes from Stephan Engstr?m <sem@cention.se> for building, and the file's utility.c

--------------------------------------------------------------------------------------------------------
08.02.2002 16:11 (GMT), boris

  * docmented the switch statement
  * updated some other files

--------------------------------------------------------------------------------------------------------
08.02.2002 15:36 (GMT), boris
 
  * first rule of compiler writing. if you change the parser. regerate it.

--------------------------------------------------------------------------------------------------------
08.02.2002 15:11 (GMT), boris

  * updated some docs

--------------------------------------------------------------------------------------------------------
08.02.2002 13:22 (GMT), boris

  * a few more clean ups
  
  I am now using this rather than just testing in a sand box :)

--------------------------------------------------------------------------------------------------------
08.02.2002 12:50 (GMT), boris

  * an attempt to fix the reflection code
  * some fixes with the module loader - it'll be more robust

--------------------------------------------------------------------------------------------------------
08.02.2002 11:14 (GMT), boris

  * Some copyright updates - thanks to term for pointing them out

--------------------------------------------------------------------------------------------------------
08.02.2002 05:55 (GMT), boris

  * cleaner platform detection for the native module dir

--------------------------------------------------------------------------------------------------------
08.02.2002 04:35 (GMT), boris

  * new file loading
  * module system now works
  * added aphex_relative_to_absolute()
  * updated scripts to use new system
  * library is now $prefix/lib/ferite
  * native code now goes in $prefix/lib/ferite/$platform
  * builder works correctly

DO NOT USE THIS YET :) I HAVE YET TO TEST IS THOROUGHLY, it;s being commited
so I dont loose the code. Really, it should work, but i need to test it.

Please have a dig around, look at the fec files, install it into a sepearate 
directory and see what is installed. I will write about how it works after 
testing it :)

Things that need to be sorted:

  - error being thrown when nothing gets loaded into the system
  - reflection seems to be borked - see the test script
  - regex's need tweaking [parser bug in src/ferite_regex.c]
  - module-flags in builder has to be spat in config.m4
  
I will test this thorouly tomorrow at somepoint :)

--------------------------------------------------------------------------------------------------------
07.02.2002 00:51 (GMT), boris

  * merged the builder and ferite parser
  * changed native functions to be
  
     native function name( args )
	 {
	   /* c code here */
	 }
	 
  * change init, deinit, flags, header keywords to module-init, module-deinit, module-flags and 
    module-header respectively
  * builder adds line and file information to generated c code to make coding easier
  * updated existing modules to use new definitions
  * changed builder to use new parser
  * various clean ups and removals of unsed vars

--------------------------------------------------------------------------------------------------------
06.02.2002 15:03 (GMT), boris

  * various more fixes from Stephan Engstr?m <sem@cention.se>
  * s/__ferite/ferite/g; on all source code
  * module work :)

--------------------------------------------------------------------------------------------------------
25.01.2002 16:56 (GMT), boris

  * Added a fix for ferite_get_parameters() from Stephan Engstr?m <sem@cention.se>
    This will stop it segfaulting when passed a NULL.

--------------------------------------------------------------------------------------------------------
19.01.2002 01:42 (GMT), boris

  * phase one of the regex clean up, this is the parsing. the next is to make the script interface to 
    the aftermath easier to play with :)

--------------------------------------------------------------------------------------------------------
18.01.2002 12:28 (GMT), boris

  * Complete re-write of the array system, should be alot more effcient than before in both terms of 
    memory and speed. It's light years faster, the script should run in about 40 seconds 
	(scripts/test/huge_but_small.fe), before the script would cause ferite to use in exess of
	about 900Mb of ram (caused my machine with 768Mb ram to swap like hell), now it only uses about 320Mb 
	ram. But I also need to add lossy indexing which means we will only have to re-index the variables 
	within the hash after a lot of shifting. (where time(re-index) < time(find variable))
  * Added declarations of a load of functions to headers
  * Deleted non-used functions
  * Updated rest of the engine to work on new system
  * Some code clean ups
  * Changed jedi to not allocate as much larger memory than smaller memory when doing a morecore

--------------------------------------------------------------------------------------------------------
15.01.2002 12:32 (GMT), boris

  * Fix ansi escape sequences for octal

--------------------------------------------------------------------------------------------------------
15.01.2002 00:05 (GMT), boris

  * This should fix darwin builds - it needs -lferite for the modules.

--------------------------------------------------------------------------------------------------------
14.01.2002 22:23 (GMT), boris

  * Copyright update
  * Author file clean up

--------------------------------------------------------------------------------------------------------
14.01.2002 17:34 (GMT), boris

  * Modfied the scanner ased upon stuff from pfv
  * Addition of pthread defs to the modules  

--------------------------------------------------------------------------------------------------------
14.01.2002 10:39 (GMT), boris

  * Fixored a bug in the function parameter checking code, found by Gnea (#e/OPN)
  * Changed display of output messages
  * Added 'delete' to delete a class function
  * Modfied the docs slightly

--------------------------------------------------------------------------------------------------------
14.01.2002 09:15 (GMT), boris

  * some fix0rs for FreeBSD

--------------------------------------------------------------------------------------------------------
14.01.2002 00:55 (GMT), boris

  * function renaming in classes - see scripts/test/rename.fe
  * class modifies Foo - modify an existing class
  * namespace modifies Foo - modify an existing namespace (changed from namespace extends foo)

--------------------------------------------------------------------------------------------------------
13.01.2002 23:29 (GMT), boris

  * Fixes for win32 stuff - it'll be native at somepoint soon :)

--------------------------------------------------------------------------------------------------------
12.01.2002 14:16 (GMT), boris

  * Some changes to aphex for windows support

--------------------------------------------------------------------------------------------------------
12.01.2002 13:01 (GMT), boris

  * An initial man page for ferite :)

--------------------------------------------------------------------------------------------------------
12.01.2002 12:30 (GMT), boris

  * Additions to hopefully get triton working on OpenBSD :)
  
--------------------------------------------------------------------------------------------------------
12.01.2002 11:32 (GMT), boris

  * ripped out old code that was stolen from imlib2, this code is much cleaner and nicer
  * modifed the engine to use aphex for loading of scripts
  * rewrote the module scanning stuff to make use of aphex - much cleaner :)
  * aphex cleanups - now exports a macro 'DIR_DELIM' for the directory delimiter

--------------------------------------------------------------------------------------------------------
12.01.2002 02:10 (GMT), boris

  * implemnented unique_prefix()
  * fixed some bugs

--------------------------------------------------------------------------------------------------------
12.01.2002 01:14 (GMT), boris

  * start on aphex - see the README in libs/aphex/ for more information, once aphex is more complete 
    I will change the engine to use it

--------------------------------------------------------------------------------------------------------
11.01.2002 18:10 (GMT), boris

  * clean ups, tweaks et al :)
  * wrote a win32 loader for triton :)

--------------------------------------------------------------------------------------------------------
11.01.2002 10:47 (GMT), boris

  * some clean ups
  * a change to make ferite build like before (ie auto-regeneration of c files in modules)

--------------------------------------------------------------------------------------------------------
09.01.2002 21:56 (GMT), boris

  Changes based on initial feedback
  
  * More additions from Pete <pfv@voyager.net> (for console, string and system)
  * FreeBSD changes from Jeremy Norris <ishmael27x@yahoo.com>
  * ferite.m4 from Ryan Pavlik <rpav@users.sourceforge.net> to sllow for people to include ferite in 
    their apps more easily:
	
	  This SHOULD be obvious, but here's how you use it.  Just put this in
	  your configure.ac:
	
	  AM_PATH_FERITE(0.99.4,, [echo bitch and whine])
	
	  Which will bitch and whine if ferite isn't found that's at least  
	  0.99.4.  Next just use @FERITE_CFLAGS@ and @FERITE_LIBS@ in the proper
	  targets in your Makefile.am.  That's it.

--------------------------------------------------------------------------------------------------------
09.01.2002 16:03 (GMT), boris

  * A fix for new checker-outers of cvs ferite

--------------------------------------------------------------------------------------------------------
09.01.2002 16:03 (GMT), boris

  * 0.99.4 released

--------------------------------------------------------------------------------------------------------
09.01.2002 14:41 (GMT), boris

  * Final fix, this should be it. We should be on a 0.99.4 release :)

--------------------------------------------------------------------------------------------------------
09.01.2002 12:54 (GMT), boris

  * Fix for speech, we want Darwin not SunOS
  * Polishing

--------------------------------------------------------------------------------------------------------
09.01.2002 10:33 (GMT), boris

  * Some fixed suggested by Adam C Powell <hazelsct@mit.edu>
  * A few tweaks here and there - debs now build successfully :)  

--------------------------------------------------------------------------------------------------------
08.01.2002 19:16 (GMT), boris

  * Build fixes, triton should now work according to plan.

--------------------------------------------------------------------------------------------------------
07.01.2002 12:04 (GMT), boris

  * When an error or warning occurs, ferite will report which line and file it comes from, this means 
    that trying to work out where stuff is going wrong during execution is easy :)
  * Something else. But I forget.

--------------------------------------------------------------------------------------------------------
06.01.2002 23:03 (GMT), boris

  * fix to stop a segfault in parameter checking

--------------------------------------------------------------------------------------------------------
06.01.2002 20:42 (GMT), boris
 
  * Some cleanups
  * Fixed the module loader situation by making sure -ldl was added to the dlfcn loader code
  * Added a new __ferite_check_params method, and a fix to the -ve operator from Andrew Moenk 
    <deimos@kfa.cx>  
  * Tweaked the triton bit to clean up configure
  
--------------------------------------------------------------------------------------------------------
05.01.2002 10:27 (GMT), boris

  * fixed a bug hilighted by Andrew Moenk <deimos@kfa.cx>. It caused ferite to segfault when you 
    accessed a non existant variable in an object.

--------------------------------------------------------------------------------------------------------
04.01.2002 17:58 (GMT), boris

  * Some more cleanups after ntropy

--------------------------------------------------------------------------------------------------------
03.01.2002 18:00 (GMT), ntropy

  * Bigger and better reflection
  * libTriton - a cross platform library loader
  
--------------------------------------------------------------------------------------------------------
02.01.2002 16:54 (GMT), boris

  * Clean ups to the src/ directory making it compile (almost) 97% cleanly with -Wall -ansi -pedantic
  * Changed the FeriteVariable struct slightly to be cleaner  

--------------------------------------------------------------------------------------------------------
29.12.2001 20:29 (GMT), boris

  * Added File.sync() and File.dataSync() to allow for explicit flushing of data to a physical disk

--------------------------------------------------------------------------------------------------------
29.12.2001 11:56 (GMT), boris

  * added initialisers for namespace, class and global variables (see the example 
    initialisers_non_function.fe)
  * updated docs
  * a few tweaks to the compi;er here adn there
  
  I think we are nearing a 0.99.4 release fun :)

--------------------------------------------------------------------------------------------------------
28.12.2001 20:09 (GMT), boris

  * some tweaks to the classic memory manager it'll show all memory unfree'd when using: 
          --fe-show-mem-use --fe-use-classic 
		  
	NB. This is only in debug compile (./autogen.sh --enable-debug)

--------------------------------------------------------------------------------------------------------
23.12.2001 20:54 (GMT), boris

  * More cleanups in the compiler 
    - removed the second un-used opdate_two and renamed opdata_one to opdata
	- used to use a FeriteVariable VAI'd to hold the address that a instruction should branch to/jump 
	  to, changed that to a long variable 'addr' in the opcode data, updated the executer, this should 
	  reduce memory use a bit (about 20 bytes per op), it should also make things slightly faster
	- compiler request's for the switch statment are now cleared up
    - fixed an issue with multiple files and the array stack (being that it tries to get free'd up more)
  * Fixed the executor so that it allocates enougth memory for the paramerters when we are going for 
    autoload (causing the class memory manager to segfault)
	
  All test scripts should now work with --fe-use-classic and normal ferite. fun. :)

--------------------------------------------------------------------------------------------------------
22.12.2001 17:31 (GMT), boris

  * Some internal compiler clean ups
  * Some output cleanups
  * Rearranged some of the compiler grammer in preparation of the ability to assign values to variables
    you will be able to set a default value for string and number variables, object, array and void will 
	be a no go. Those will be a v2 feature (it's an internal issue that I dont want to fix)

--------------------------------------------------------------------------------------------------------
22.12.2001 00:06 (GMT), boris

  * fixed an eval() issue
  * fixed some compiler bugs
  * implemented switch(){} - works pretty much the same as c switch except you can switch on anything, 
    and the switch statement can switch on anything, and the accepting conditions can be expresions :)
    
	- there will be a more advanced test script soon, for now cope with script/test/switch.fe
	
	WARNING: it needs to be tested extensivly, I shall do this tomorrow :)

--------------------------------------------------------------------------------------------------------
20.12.2001 13:36 (GMT), boris

  * Added the ability to assign an array to a void variable (how did (I forget this?)
  * Added arrays that can be done like [ expr, expr ] - it is also possible to embed an array in another
  * added scripts/test/arrays_in_script.fe
  
  Next to add associativity with expr => "value"
  
--------------------------------------------------------------------------------------------------------
19.12.2001 17:21 (GMT), boris
  
  * Merged in a new printf
  * Added new Poll class
  
  (from pfv)

--------------------------------------------------------------------------------------------------------
19.12.2001 12:35 (GMT), boris

  * fixed a bug in the ferite compiler causing it to segfault on a non existant script
  * fixed a bug in builder causing it to also segfault.

--------------------------------------------------------------------------------------------------------
18.12.2001 01:33 (GMT), boris

  * added pfv's file module - cleaned up some of the code, fixed a few memory issues
  * added pfv's system module, 
     - cleaned up alot of this to stop memory leaks, basically removed the bootstrap code which is 
       unecessary imho
	 - merged the darwin fix into it
	 - removed the use*() methods and replaced them with setEffectiveUser( number uid, number gid )
  * fixed ntopy's ltdl loader for the new loader system - really dont know what crack he was smoking
  * various other fixes

My plan of action now is to add switch to the engine, and then initialisers....

--------------------------------------------------------------------------------------------------------
17.12.2001 15:46 (GMT), boris
 
  * fixed a bug in __ferite_find_function_in_object
  * Added __ferite_object_call_super to call an object's super class constructor

--------------------------------------------------------------------------------------------------------
17.12.2001 00:04 (GMT), boris

  * Have fixed a bug hilighted by PoppaVic on irc, basically builder wasn't registering classes in 
    the correct order to ensure they were inheiriting from each other correctly. This fixes that with 
	a cunning algorithm :) 
  * Fix for __ferite_find_namespace for non existance element and type checking

--------------------------------------------------------------------------------------------------------
15.12.2001 15:34 (GMT), boris

  * Added '...' to builder
  * Fixed 'extends' in builder
  * Uhm. Yes :)
  * Fixed a couple of buglets in the ferite engine
  * Re Implemented Console.printf

--------------------------------------------------------------------------------------------------------
13.12.2001 16:10 (GMT), boris

 * Fixed an issue with the gc -> checks entire gc now, rather than the first 50
 * Fixed a bug that must have been around for ages WRT self-> in script based classes
 * Added a check to stop ferite segfaulting when trying to access a variable in a null object

--------------------------------------------------------------------------------------------------------
12.12.2001 17:28 (GMT), boris

  * strucutres when created internally are now done via defiens - allows tweaking of the engine to use 
    different amounts of memory

--------------------------------------------------------------------------------------------------------
11.12.2001 10:15 (GMT), boris

  * Quick change suggested by ntropy - added int type to the parameter list of __ferite_find_namespace 
    - this allows you to force type checking of the returned bucket. A value of 0 will stop this behaviour

--------------------------------------------------------------------------------------------------------
10.12.2001 22:16 (GMT), boris

  * Fixed an issue with the global error object
  * added __ferite_set_error( script, errno, msg_format, ... )
  
--------------------------------------------------------------------------------------------------------
21.11.2001 11:47 (GMT), boris

  * Added prototypes for more functions within the file package
  * Added an ipc module written by Espen <nilsenea@plu.edu> - this is a great start at a fully blown 
    IPC module. Currently it supports SHM with semaphore locking :)
  * Added a new string module by pfv <pfv@voyager.net> - this has a sh*t load of new and useful goodies
  * Changed str[someValue] to return a number representing a chars value

  I just want to say thanks to these two guys for their hardwork :)

--------------------------------------------------------------------------------------------------------
20.11.2001 13:56 (GMT), boris
 
  * Some more function calls documented. Almost half done now :)

--------------------------------------------------------------------------------------------------------
20.11.2001 02:28 (GMT), boris

  * With variable arguments to a class we dont want to have self and super (hidden args) mixed in
  * Also added System.execute() to launch a command

--------------------------------------------------------------------------------------------------------
19.11.2001 20:14 (GMT), boris

  * Changed moduels so the init is modulename_init - this means that in the future people should be 
    able to build static versions of ferite with modules built in and we wont have conflicts! :)
  * Changed the %{ and %} in the buidler app for the header to:
   
     header %{ 
	 %}
	 
  * Added init and deinit versions of the above so people can add code to the initialisation
    and deinititalisation system :)
  * Updated all .fec's in the module directories
  * Fixed __ferite_find_namespace (src/ferite_namespace.c) - it will now do recursive desent on a 
    namespace tree and find a bucket for you. This means ...("Console.println") will get that bucket 
	for you :) NULL return if needs be.
	
  I have some other code - for string and ipc modules. These will be coming in at somepoint soonish.

--------------------------------------------------------------------------------------------------------
18.11.2001 10:01 (GMT), boris

  * Ok, a while back I changed from using int's and floats to longs and doubles, it was hilighted that 
    the macros and function calls all use the old int and float labels. This has been fixed.
  * Fixed the build system to work - this is now new and improved. You must run ./autogen.sh
  * Modifed builder to generate a more sane Makefile.am (it now places extra files after the generated 
    ones) 
  * Moved configure.in to old.configure.in
  * Upped the version number
  * Added FE_RETURN_STR(), FE_RETURN_TRUE, FE_RETURN_FALSE
  * Updated TODO and ROADMAP

--------------------------------------------------------------------------------------------------------
16.11.2001 00:22 (GMT), boris

  * fixes for the mysql db module

--------------------------------------------------------------------------------------------------------
15.11.2001 18:09 (GMT), boris

  * ferite 0.99.3 released.

--------------------------------------------------------------------------------------------------------
15.11.2001 16:30 (GMT), boris

  * This should make the build system sane :)

--------------------------------------------------------------------------------------------------------
15.11.2001 09:59 (GMT), boris

  * fixed a memory leak with the include() operator
  * fixed a memory leak with Array.getIndex() 
  * modifed the ROADMAP - this was to allow for the sudden work I had done in other areas (as part of a 
    bug fixing exercise)
  * updated the docs

--------------------------------------------------------------------------------------------------------
14.11.2001 15:50 (GMT), boris

  * Rewrote a portion of the parameter checking code :)
  * fixed the autoload code
  * added a autload example (scripts/test/autoload.fe)

--------------------------------------------------------------------------------------------------------
14.11.2001 14:54 (GMT), boris

  * added example (scripts/test/var_args.fe)
  * fixed a segfault in the new code

--------------------------------------------------------------------------------------------------------
14.11.2001 13:53 (GMT), boris

  * fixed some issues
  * fixed a bug with void variables in function signitures - you can now pass any variable 
  * variable argument lists -> a function variables are placed within the array 'fargs', and 
    it is now possible to specify '...' in the compiler - to specify variable argument lists
  * fixed the docs up to reflect this change
  * variable named 'fncArgs'

--------------------------------------------------------------------------------------------------------
11.11.2001 19:12 (GMT), boris

  * Added regex /e modfier
  * Updated docs some relating to regexps
  * Synced configure.in and configure.ac

--------------------------------------------------------------------------------------------------------
11.11.2001 16:10 (GMT), boris

  * re-wrote some operators to be more source clean (removed alot of repetition using macros)
  * added +/- as unary operators  
  * implemented >>, <<, >>=, <<=, &, |, ^, &=, |=, ^=
  * updated docs to reflect the new operators

--------------------------------------------------------------------------------------------------------
10.11.2001 18:06 (GMT), boris

 * Some changes to help building on sun architecture (sparcs)
    - fixed a bus error in ferite_variables.c
	- added -lferite to the module build stuff
	- modifed the config.m4 for network to add '-lsocket -lnsl' under Solaris
	- added '-lm' for the maths module
	
 * Modifications to builder 
    - fixed the help output
    - added '-k' or '--force-makefile' to force the generation of a Makefile.am

 I want to say thank you to Nathan Yocom <yocomnw@plu.edu> for use of resources to allow me to fix 
 these errors - without him it would not have been possible. (I dont have Solaris)

--------------------------------------------------------------------------------------------------------
07.11.2001 11:42 (GMT), boris

  * added hex numbers
  * added << >> <<= >>= |= &= (well the stubs)
  * changed the debug macro names to different ones to stop pollution of namespaces
  
  Will clean up ferite_ops.c a hella lot soon (when I write the above operators)

--------------------------------------------------------------------------------------------------------
28.10.2001 15:15 (GMT), boris

  * added the sgml docuymentation that Blake Watters <blakewatters@nc.rr.com> provided
  * cleaned up the sagml file (it's all nicely formated to make things easier)
  * nicked cK's html customisations :)

--------------------------------------------------------------------------------------------------------
17.10.2001 00:33 (BST), boris

  * Ok fixed a few buglets here and there
  * Initial implementation of include(), now there are bugs that need to be resolved
     -> there is a memory leak based upon the compiler picking up the first token of
	    the _start method
	 -> there are issues with regards to using uses as exsiting modules and scripts
	    are deleted when the script is compiled (so are not around for stopping reinclusion 
		of modules) - i will tie the include list to the script tomorrow
  * upped the version number
  
  I plan on wadding my way through the operators tomorrow and should have
  them pretty much complete - I am also going to rework some of the existing ones
  
  I will then get regex evals working :)

--------------------------------------------------------------------------------------------------------
08.10.2001 20:16 (BST), boris

  * 0.99.1 relese version. Please read that changelog for changes.

--------------------------------------------------------------------------------------------------------
10.09.2001 18:07 (BST), boris

  * ok have been really busy, documenting code, plus taken a number of days of coding this engine.
  * code's more documented in the source file to help people
  
--------------------------------------------------------------------------------------------------------
31.08.2001 09:09 (BST), boris

 * fixed some symbol names - bug spotted by "Bryce Dooley" <bryced@ameritech.net>, in the compiler for 
   both builder and libferite

--------------------------------------------------------------------------------------------------------
30.08.2001 18:25 (BST), boris

  * Added two more options to the builder application:
      
	  --init-name <string> : this allows for a person to specify the initialiser function name
	  --no-deinit : stop builder generating a deinit function 
	  --no-makefile : dont generate a makefile
	  --no-configm4 : dont generate a config.m4
	  
	This makes builder nicer for building code for apps.
  * some initial docs for embedding ferite. next thing to do is add docs on creating native functions

--------------------------------------------------------------------------------------------------------
29.08.2001 09:30 (BST), boris
  
  * fixed a configure bug
  * i suck at spelling, change signiture to signature :)   

--------------------------------------------------------------------------------------------------------
28.08.2001 18:14 (BST), boris

  * static works in the builder app for both variables and functions. rock. :)
  * added namespace extends <foo> syntax :)

--------------------------------------------------------------------------------------------------------
28.08.2001 01:40 (BST), boris

  * static members in classes work for both variables and functions
  * static keyword can be used else wehre in namespaces etc but has no effect at the moment.
  * minor changes to prep the builder app, will finish this tomorrow as I am shattered and need sleep :)

--------------------------------------------------------------------------------------------------------
26.08.2001 11:47 (BST), boris

  * changed #!/bin/bash to #!/bin/sh in modules/build_modules.sh to make FreeBSD happy, also added 
    --include-deps to automake in the same script, thanks to Jeremy Norris <ishmael27@home.com> for the 
	heads up on this.
  * fixed a bug in jedi which was causing some 'issues'. I personally think this is a libc buglet - but 
    the fix keeps things clean anyways
  * classes can now be places in namesapces and be created from within them
  * fixed a constructor bug with regards to scripts (it's signiture is verified against the calling 
    params)  

--------------------------------------------------------------------------------------------------------
25.08.2001 21:55 (BST), boris

  * a fix for pcre issues
  * upped the version number so that we know we aint with 0.99.0

--------------------------------------------------------------------------------------------------------
20.08.2001 22:22 (BST), boris

  * We are going for release

--------------------------------------------------------------------------------------------------------
15.08.2001 21:15 (BST), boris

 * Some more additions to the modules specifically, System and time

--------------------------------------------------------------------------------------------------------
15.08.2001 17:41 (BST), boris

  * more work on the sql module this should make it completely functional
  * some conditional build additions and some fixes

--------------------------------------------------------------------------------------------------------
14.08.2001 10:58 (BST), boris

  * made the gc and the jedi memory manager thread safe with pthread mutex's

--------------------------------------------------------------------------------------------------------
12.08.2001 11:30 (BST), boris

  * work on making things thread safe
  * fixing a buglet that Lawrence Manning (lawrence@smoothwall.org) found

--------------------------------------------------------------------------------------------------------
07.08.2001 19:26 (BST), boris

  * this should be the real regex fix. damn I hate string manipluations in c - the error was basically
    the swap regex was fouling up the buffer and over writing memory - this only showed itself with
    big data. This should be the final time I have to fix this - touch wood :)

--------------------------------------------------------------------------------------------------------
07.08.2001 16:34 (BST), boris

  * Another bug fix0red, this time it was overflowing the swap buffer in the s/// regex. This has
    been fixed. Nice :)

--------------------------------------------------------------------------------------------------------
07.08.2001 12:19 (BST), boris

  * fixed a bug hilighted by mikoyan <hckx@netscape.net>  regarding the super->method() in non 
    constructor places. It was a stupid bug and it has been fixed :)

--------------------------------------------------------------------------------------------------------
07.08.2001 01:06 (BST), boris

  * dtopped a dumb arsed regex buffer overflow. i suck at times - i really do.
  * a couple of optimsations within the regex engine

--------------------------------------------------------------------------------------------------------
06.08.2001 20:18 (BST), boris

  * added error and warning callbacks. The error call back is only called if an exception is called
    whereas the warnings will always be called.                     ( ^^ a non handled one)
  * added it to mod_ferite

--------------------------------------------------------------------------------------------------------
06.08.2001 18:16 (BST), boris

  * remove global script 

--------------------------------------------------------------------------------------------------------
06.08.2001 17:37 (BST), boris

  * in now compiles it should be almost there but got a little way to go

--------------------------------------------------------------------------------------------------------
06.08.2001 01:12 (BST), boris

 * ferite wont compile now. I broke it deliverately. I am making things far more threadsafe
   and multiple things running at the same time safe. This should take a few more days to complete.
   It will be worth it in the long run as multiple threads will be able to run concurrently, the
   main issue at the moment is the error code as that is global ans causes all sorts of dubious
   issues. This will eventually allow me to make even compliation context sensitive so that
   compliations executions and the like can all be done in parallel 

--------------------------------------------------------------------------------------------------------
03.08.2001 13:40 (BST), boris

  * fixed a bug regarding trying to access a method within a null object. 
  * added some code to stop recusive adding of script files, it also has the side effect of stopping
    multiple includes of the same scripts (not a correct thing) and stops wastage with regards to
    multiple module includes.
  * proper search paths using ferite_add_search_path() and ferite_delete_search_paths();
  * upped the version number
  * added variable substiution to regex's. now $var will be replaced like "$var", and follows the same 
    scope rules (ie global or function)

--------------------------------------------------------------------------------------------------------
02.08.2001 18:25 (BST), boris

  * had to rewrite mod_ferite as I deleted it somehow. It's now pretty much alot better.
  * fixed a buglet with ferite which caused a file to be compiled after another one to cause
    segfault (a stack was not nullified properly and the line count was not reset).
  * rectified a scanner issue regarinf T_LABEL - vars can now be started with a '_'
  * cookies can now be used via httpd/cookies.feh - very cool :)

--------------------------------------------------------------------------------------------------------
31.07.2001 22:09 (BST), boris

  * added cookie support to mod_ferite
  * made is so that if variables are passed to a webpage via query or cookies, they wont be repeated

--------------------------------------------------------------------------------------------------------
31.07.2001 17:36 (BST), boris

  * added variable suppoer to the builder application :)

--------------------------------------------------------------------------------------------------------
31.07.2001 12:33 (BST), boris

  * have added '' strings which will output exactly what is in them, i am going to add a slight change
    in functionality to other systems and that is to add the $variableName to it.
  * some changes in other places to make things a little cleaner.
  * started mod_ferite a couple of days ago, it's current status is as follows:
      o load, compile and run ferite scripts
      o output buffering (hidden) and flushing, header and content control via the 'httpd'
        namespace (done via a builder module)
      o export of form variables into the global avariable section, currently only GET works, still
        trying to work out apache (will aim to fix this once I get back from holiday as it's 
        currently almost impossible for me to dial up to the net in france)
        This si because I feel that POST should also be handled, unfortunatly the CGI module's code
        doesn't seem to work with us..........
      o will handle .fe and .fhtml file
    The next set of things to be implmented are:
      o script cacheing
      o web based configuration -> ie. special scripts with server configuration ability -> via
        a special namespace -> httpd_conf?
      o ability to add hooks to the apache engine (write modules within ferite)
      o configuration via apache module

  NB: I am going to have to add execution contexts to the ferite engine soon such that we dont ever
      access global variables, eg compiler errors, execution error, current script. The only stuff we
      have global is the memory access functions and settings.

--------------------------------------------------------------------------------------------------------
26.07.2001 13:02 (BST), boris

  * server socket now works, have a look at the server.fe in the network directory

--------------------------------------------------------------------------------------------------------
26.07.2001 08:41 (BST), boris

  * fixed a recursive error with the networking -> readln() wont keep b0rking
    it'll just return an empty string (and an exception thrown)

--------------------------------------------------------------------------------------------------------
26.07.2001 07:05 (BST), boris
 
  * some fixes for building ferite
  * added argv array to all scripts for command line arguments - needs cleaning up, but works :)

--------------------------------------------------------------------------------------------------------
25.07.2001 21:33 (BST), boris

  * more work on sql stuff (rock!) we can now select stuff and get results :)
  * configured the memory manager so it's a runtime choice rather than
    compile time - tres cool, makes debugging easier :)

--------------------------------------------------------------------------------------------------------
24.07.2001 22:01 (BST), boris

  * some sql changes - work mainly on getting mysql support up and running
  * more xml work

--------------------------------------------------------------------------------------------------------
20.07.2001 14:07 (BST), boris

  * More xml cleanups
  * helper functions for native->script functions (for building a parameter list, and for calling a funcion 
    from a FeriteFunction * struct )
  * eval operator cleanups
  * added String.trim()

--------------------------------------------------------------------------------------------------------
19.07.2001 16:20 (BST), boris

  * more work on xml module
  * some fixes for function calling

--------------------------------------------------------------------------------------------------------
19.07.2001 13:54 (BST), boris

  * new build system based on php's (i like it)
  * xmlrpc script (beginnings of)
  * xml module (beginnigs of)

--------------------------------------------------------------------------------------------------------
18.07.2001 13:46 (BST), boris

  * fixed build system
  * commited it all

--------------------------------------------------------------------------------------------------------
18.07.2001 02:15 (BST), boris

  * added a cgi.fe script (al-la cgi-lib.pl)
  * we is now using libltdl properly
  * builder will now only output stuff to stdout if passed -v
  * modified build_modules.sh such that each step of the (slow) makefile generation has a '.' echo'd -
    tells the user that something is being done.

--------------------------------------------------------------------------------------------------------
17.07.2001 17:55 (BST), boris

  * more fun work on modules, build method has been fixed
  * all old modules are now on the new system

--------------------------------------------------------------------------------------------------------
17.07.2001 12:36 (BST), boris

  * re doing the build system -> modules should get automatically built -> they are now all going
    to be using builder (hey why not)
      - build_modules.sh in the modules directory will build make files and generated the correct files 
        so that a "make" will build the corrct modules, it'll also case modules to be built
	
  * added the following features to builder:
      - make clean will cause files generated by builder to be removed
      - -a <file> will cause an external file to be included into the Makefile.am
      - builder will automatically be called if $modulename_core.c isn't found.
    Now all that needs to be done is the hooking up of variables into builder
    
  * started re-writing existing module code so that it is alot cleaner and tidier.

--------------------------------------------------------------------------------------------------------
16.07.2001 10:04 (BST), boris

  * added the ability to do $variable name in a stirng to add it.... 

--------------------------------------------------------------------------------------------------------
13.07.2001 16:25 (BST), boris

  * Whoa piles of changes can't think of all of them just yet but heres the summary:
    - added logos to docs/images
    - more work on documentation (regular epxression and builder mainly)
    - work on builder - it now generates c, h and makefiles
    - moved the engine over to using uarray exclusiviely only one issue found so far
      but that only needs to be dealt with slightly differently (is foo[0] wont work unless [0] exists)
    - started writing the existing modules using builder, need to work out a dash cunning build process 
      such that modules automatically get rebuilt on-da-fly
    - fixed scripts to reflect changes
    - still moving ferite over to libltdl
    - started investigating a win32 port. I think someone more dedicated should do this.
    

--------------------------------------------------------------------------------------------------------
10.07.2001 00:09 (BST), boris

  * moving ferite back to the older libltdl - more portable
  * working on builder a tool to make writing modules easy :-)

--------------------------------------------------------------------------------------------------------
27.06.2001 13:28 (BST), 

  * Updated the scripts makefile.am so they all get installed

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

26.06.2001 21:07 (BST), boris

  * fixed all remaining issues with uarrays.

--------------------------------------------------------------------------------------------------------
25.06.2001 14:44 (BST), 
  
  * made some changes to try and get the commits list working......

--------------------------------------------------------------------------------------------------------
12.06.2001 19:00 (BST), boris

  * Some more changes to the documentation stuff.

--------------------------------------------------------------------------------------------------------
09.06.2001 14:47 (BST), boris

  * fixed and issue with truth values
  * started working on some serious documentation - atleast when we pre-release people will be able to 
    read the docs

--------------------------------------------------------------------------------------------------------
08.06.2001 15:35 (BST), boris

  * Some more fixes (things that were sparked off due to the console buglet)

--------------------------------------------------------------------------------------------------------
08.06.2001 14:09 (BST), boris

  * Finally found the bug that was causing memory corruption with regard to objects. It was all due to 
    the Console module over writing the memory it was allocated. This was causing all sorts of evilness. 
    Fixed that by making sure the buffer it allocated wan't well, allocated -> there is no need.
  * changes to objects allocated internally - you can now do if xyz == null. It also doesn't use as much 
    memory. 

--------------------------------------------------------------------------------------------------------
29.05.2001 18:16 (BST), boris

  * Some clean ups
  * Fixed a bug within the error stuff
  - Realised that i seriously need to add the context stuff to remove the need for global variables

--------------------------------------------------------------------------------------------------------
26.05.2001 16:09 (BST), boris

  * fixed bug in returning an operator's return from a method -> it wasn't being free'd up - caused a huge 
    memory leak in the recursion test script
  * removed the nasty assertion checking in the executor -> now propogates errors up the system
  * change syntax of scripts such that all varaibles in a function must be declared at the beginning (read 
    same as c). This was done because i think's it messy mixing code and declarations of variables 
    (looses read ability)
  * added better error recovery 
  * fixed a bug regarding the gc and objects being used within a function see object_test.fe to see what 
    caused it - it was causing segfaults when trying to delete the object.
  * cleaned up the error and warning messages from the old fugly way to a cleaner method employed by gcc.

--------------------------------------------------------------------------------------------------------
26.05.2001 13:51 (BST), boris

  * fixed the file module to compile on non linuxy machines more cleanly

--------------------------------------------------------------------------------------------------------
26.05.2001 13:43 (BST), boris

  * woah, no work for a while - been real busy with exams.
  * fixed null scripts -> ferite will pull an error when it can't include or compile another script in
  * cleaned up warnings
  * a minor tweak to the lexer - on test.fe a splurious 'r' was there and caused it to be echo'd to 
    screen.
  * some clean ups in the file module (bzero -> memset)

--------------------------------------------------------------------------------------------------------
07.05.2001 00:55 (BST), boris

  * added script to the calling of native functions so thinga know where they are being called from

--------------------------------------------------------------------------------------------------------
06.05.2001 23:46 (BST), boris

  * fixed some symbol conflicts within the module loader

--------------------------------------------------------------------------------------------------------
27.04.2001 12:18 (BST), boris

  * back ticks work, \1 and so forth. I have also allowed for escaping of the ticks

--------------------------------------------------------------------------------------------------------
27.04.2001 00:49 (BST), boris

  * Added emlemtry regex swap support what needs to be done now is 
      - back ticks '\<insert number here>'
      - eval
      - string capture

--------------------------------------------------------------------------------------------------------
21.04.2001 16:30 (BST), boris

  * the modules are more ansi friendly - this are clean :)

--------------------------------------------------------------------------------------------------------
20.04.2001 23:43 (BST), boris

  * making ferite more ansi friendly

--------------------------------------------------------------------------------------------------------
14.04.2001 12:29 (BST), boris

  * some build issues for compiling external modules (spec. mem)

--------------------------------------------------------------------------------------------------------
13.04.2001 00:17 (BST), boris

  * more bug fixes 
  * object, object is now automativally tacked onto the end of class methods


--------------------------------------------------------------------------------------------------------
12.04.2001 19:14 (BST), boris

  * fixes to function calling
  * fixed number checking within paramter passing
  * fixed class method calling
  * fixed a gc issue
  * added scripts/ directory, now all script stuff goes in there and is installed to 
    $PREFIX/lib/ferite/scripts make more sense as binary stuff goes in modules
  * cleaned up some build issues - so that code doesn't get rebuilt unless necessary
  * fixed memory leak in new operator
  * fixed memory leak in String module
  

--------------------------------------------------------------------------------------------------------
12.04.2001 01:36 (BST), boris

  * wrote a native description to signiture convertor - needs some work
  * some compiler clean ups higlighted with the new code
  - still some bugs related to object oriented functions will fix those tomorrow :)

--------------------------------------------------------------------------------------------------------
11.04.2001 00:23 (BST), boris

  * fixed the check parameters stuff
  * cleaned up the function calling in the executor
  * fixed ferite_get_parameter_count() it now returns the correct number
  * now both internal and external methods/functions run off the same singiture system
  * cleaner parameter checking
  

--------------------------------------------------------------------------------------------------------
10.04.2001 00:58 (BST), boris

  * rewrote function parameters internal and external functions share the same signiture checking
  * cleaned up namespace api
  * cleaned up executor code
  * changed some of the code in ferite_function.c
  * updated modules to newer api
  * changed some varaible names within compiler to reduce symbol conflict
  * modifed the parser to deal with new parameter registering system
  
  TBD: o better signiture definition method for external functions -> make it more like
         sciprintg
       o better args passed <-> signiture checking
       o named arguemtn passing and ordering in params checking
       o macros to make api cleaner

04.07.2001 03:32 (PDT), ntropy

  * moved the Utils Str code to the String module, Utils is now empty

--------------------------------------------------------------------------------------------------------
03.04.2001 19:47 (BST), boris

  * corrected Net module
  * corrected Timer module
  * fixed build issue with array module
  * move FE_SELF macro from the File module into the ferite.h header
  * TODO changes
  
  I am curently preparing for a huge code hack0ring session. These are just some cleanups.

--------------------------------------------------------------------------------------------------------
02.04.2001 12:25 (BST), boris

  * wow, another month. I have c++ised ferite.h that should be enough (you
    should only need to include ferite.h and i should happily cover the other
    includes
  * upped the version number to 0.7


--------------------------------------------------------------------------------------------------------
11.03.2001 13:58 (GMT), boris

  * dont know what i've done, but richlowe is bugging me on irc for a commit.

--------------------------------------------------------------------------------------------------------
07.03.2001 19:10 (GMT), boris   

  * adding some skelton api, still need to convert older modules over to the new namespace API

--------------------------------------------------------------------------------------------------------
05.03.2001 08:10 (GMT), boris

  * start of array types -> starts as a linear array, then can be turned into associative array using 
    Array module. This still need to be completed -> but the internal mechanisms are there.

--------------------------------------------------------------------------------------------------------
04.03.2001 18:49 (GMT), boris

  * fixed the jedi memory manager - it now works, in test.fe you only ever hit the OS 59 times as opposed 
    to 6102 times.

--------------------------------------------------------------------------------------------------------
26.02.2001 15:45 (GMT), boris

  * more ork on jedi -> it works now, all I need to do is make it 
       alot faster :)
       total amount of ram used configurable

--------------------------------------------------------------------------------------------------------
25.02.2001 21:25 (GMT), boris

  * more work on jedi mm

--------------------------------------------------------------------------------------------------------
25.02.2001 18:07 (GMT), boris

  * start of the jedi memory manager for ferite. this will ultimatly be based on the algorithm
    described in malloc.c in the perl distribution. This strikes me as a nice, and very fast method 
    for virtual heap allocation.
  * adding more modules to the system - jjust put directories there to remind me :)

--------------------------------------------------------------------------------------------------------
23.02.2001 17:17 (GMT), boris

  * namespace syntax added
  * cleaned up the parser
  * more cleanups to the compiler

--------------------------------------------------------------------------------------------------------
23.02.2001 12:56 (GMT), boris

  * fixed the eval() operator -> the script it compiled on the fly would not be freed up.

--------------------------------------------------------------------------------------------------------
22.02.2001 19:52 (GMT), boris

  * mwhahaha. i rock. fixed a stupid bug within the hashing code that was casuing all sorts of segfaults 
    in the compiler - it would basically cause the head of a hash bucket list to not be made NULL 
    therefore would not be percieved as being empty. Although you mileage would vary depending on the script.

--------------------------------------------------------------------------------------------------------
22.02.2001 10:36 (GMT), boris

  * fixed ptoential bug due to module loading failure
  * as the module will only ever get loaded once -> we need to call the module_init() for each and every 
    script that needs it.
  * modified the current modules to check for the symbols within the namespace

--------------------------------------------------------------------------------------------------------
22.02.2001 08:30 (GMT), boris

  * cleaned upthe error stuff a little more. still is't quiet right, but is getting there
  * more compiler clean ups
  * fixed issues regarding the included script being dead -> causes overal compilation failure - fixed, 
    now works correctly.
  * fixed segfault pertaining to not actually load the script before trying to compile it into the system. 
    WHY? because I am a cripple and can't actually keep lines.

--------------------------------------------------------------------------------------------------------
21.02.2001 18:18 (GMT), boris

  * masive compiler clean ups, now on a syntax error the compiler wont die,
    and neither will ferite force and exit but clen up properly. this rocks
  * cleanup to error messages

--------------------------------------------------------------------------------------------------------
21.02.2001 11:31 (GMT), boris

  * added commit.pl which was blatantly stolen from good ol' enlightenments
    cvs server this should make life easier :)

--------------------------------------------------------------------------------------------------------
20.02.2001 16:33 (GMT), boris

  * fixed a bug within the compiler -> the __ferite_compile_string wasn't compiling properly for 
    execution (missing some of the script entities).
  * fixed some crazy issues that had slipped through regarding the headers and the actual methods 
    called.
  * added -e to the ferite commandline tool so you can now do
  
      ferite -e "uses Console; Console.println(\"Hello World\");"
      
    and it will run the script :)

--------------------------------------------------------------------------------------------------------
20.02.2001 12:04 (GMT), boris

  * fixed the tests/super.fe script, i wanted to see the eorr handling working.
  * changed the fatal error message style as the last one suck0r
  * cleaned up some stuff in the changelog
  
--------------------------------------------------------------------------------------------------------
19.02.2001 22:03 (GMT), boris

  * hrmm, more clean ups more of the scripts now work, and the error handling
    is done properly. 
  * all the test scripts bar the one for ferk work. loverly.
  
--------------------------------------------------------------------------------------------------------
19.02.2001 18:11 (GMT), boris

  * ok no updates for a while, as i have been real busy
  * namespace is even cleaner now - there is no way one script could
    interfere with another
  * compiler clean ups
  * api clean ups
  * test program clean ups

--------------------------------------------------------------------------------------------------------
07.02.2001 14:36 (GMT), boris

  * hrmm lots of stuff, done a load of namespace stuff (that went up within the last commit)
  * cleanup of some of the compiler code
  
--------------------------------------------------------------------------------------------------------
02.01.2001 20:11 (GMT), boris

  - fixed a bug with the Console.printf() it require two or more parameters, but it should only require
    one atleast one.
  - fixed an issue with recursive errors (leads to messy segfaults)
  - fixed an issue with the scanner and freeing up a file name

--------------------------------------------------------------------------------------------------------
29.12.2000 12:36 (GMT), boris

  * more changes to the error handling (small clean ups)
  * some changes to the op code naming - cleaned up some

--------------------------------------------------------------------------------------------------------
28.12.2000 23:51 (GMT), boris

  * fixed the error handling so that one may have embeded iferr's in a script. toy.

--------------------------------------------------------------------------------------------------------
28.12.2000 23:13 (GMT), boris

  * added super object to each class -> so you can call parent methods :)

--------------------------------------------------------------------------------------------------------
27.12.2000 18:47 (GMT), boris

  * added "continue" will work with while() for() and do..while loops
  * added "break" see above. btw FYI this is the most evil of all keywords ;) even more so than
    error handling. it basically requies keeping track of the current construct you are in, then 
    going back and updating the address of each JMP instruction generated. fun.well atleast it's now done :)
  * sligh tweaks in the compiler...

--------------------------------------------------------------------------------------------------------
27.12.2000 15:41 (GMT), boris

  * fixes within error recovery
  * added exception handling within the ferite engine
    
       iferr {
         ... code that might go wrong ...
       } fix {
         ... handler code ... 
       } [ else {
         .. code executed if no expcetion caused ...
       } ]
       
    the []'s denote not necessary, - still needs work so you can have
    exception handler within exception handlers.
  * some more fixes within the compiler (silly bug)
  * executor fixes

--------------------------------------------------------------------------------------------------------
20.12.2000 18:10 (GMT), boris

HA!. Ok you will need slang to be installed, also make sure you have libpcre3
and libpcre3-dev installed if you have debian (the older versions suck). for the
slang stuff it's slang1 and slang1-dev that you will need (debian). Other dists
sort ya self out :)

test/ferk this is the start of ferk the ferite irc client currently window stuff
is being done :) this requires the new Screen object (which requires slang)

various clean ups within the object stuff

--------------------------------------------------------------------------------------------------------
17.12.2000 03:05 (GMT), boris

  * ok ferite will now load another script file into the system to use this just do
  
     uses "<script name";
  
    currently the script to be loaded needs to be either a correct relative URL or 
    and abosulte url. once I have added search path checking for script loading this
    will become a useful feature :)
  * some clean ups in the parser area :)

--------------------------------------------------------------------------------------------------------
15.12.2000 00:43 (GMT), boris

  * Removed the libs/ dir finally gave up and left giblet have his way :) besides it makes more sense
    and avoids the name conflicts that php and perl are having for example as a result of compiled in 
    symbols.
  * Added inheritance to ferite. Currently it can cope with inherited methods and varaibles. I need to
    add super as an object inherited classes as a refernce to itself as the parent class. fun. :)
  * various clean ups around the place :)

--------------------------------------------------------------------------------------------------------
11.12.2000 08:43 (GMT), boris

  * moved functions stored within class's and objects over to using hashes. this means alot less work
    to find a function whilst executing. Currently we wont notice much of a difference, but as there
    are alot of functions going into classes the speed imporvement should be seen.
  * classes are now all held in a hash - once again a perfomance thing :)
  * fixed spelling of Enviroment to Environment :) (thanks humming)
  * fixed all code pertaining to the above changes

--------------------------------------------------------------------------------------------------------
10.12.2000 14:00 (GMT), boris

  * Added better error detection on adding functions to a class or object. before it would allow you to 
    do it but not now :) (thanks to humming for higlighting that bug)
    
--------------------------------------------------------------------------------------------------------
09.12.2000 11:30 (GMT), boris

  * added modulus operator :)

--------------------------------------------------------------------------------------------------------
09.12.2000 11:05 (GMT), boris

  * added script classes - very toy
  * added constructor on script classes
  * change function from "function <type> <name>" to "fucntion <name>"
  * even better script function checking :)
  * added string indexing (via the array[] brackets)
  * a few clean ups in the executor

--------------------------------------------------------------------------------------------------------
26.11.2000 17:50 (GMT), boris

  * fixed some issues with function parameter checking (yes there are still some :)
  * made regex m//g act more like perl after some testing (ought to write the s/// code)
  * made some changes to Console::printf
  * fixed two segfault bugs within the executor (mainly regarding global objects) and also fixed a (what
    could be) nasty memory leak bug -> memory was not being freed before the executor did a runner....
  * done other stuff but forgotten what it was...  

--------------------------------------------------------------------------------------------------------
19.11.2000 19:27 (GMT), boris

  * fixed some more stuff up
  * i *need* to allow include( expression ) for other script files

--------------------------------------------------------------------------------------------------------
19.11.2000 17:49 (GMT), boris

  * a number of clean ups
  * stopped using libltdl -> it cause very very odd behaviour with certain libs, this was shown in
    the Gtk module (caused the library thingy within linux to segfault). Changed back tpo using a 
    cleaner internal version with an aim to support the different loading mechanisms for different
    OS's. Currently only for -ldl. If anyone would sort this outforother OS'd please shout
  * *much* cleaner parameter checking for external parameters, it'll detect bad stuff and shout :)
  * much more Gtk stuff :)

--------------------------------------------------------------------------------------------------------
15.11.2000 21:32 (GMT), boris

  * lots of fixes and changes and even more code clen ups -> will now recover even better after an internal
    error
  * added a Gtk module -> this will change fairly rapidly over the coming weeks as i want to write and app 
    in Gtk using ferite (for ferite). Currently buttons, labels, windows and hbox's are abvailible. Events
    work on all objects using .addEvent( string:event, string:function name to handle it ). Added a gtk test
    script.
  * fixed a highly obscure bug within ferite_get_parameters(). The bug caused memory to get corrupted resulting
    in *highly* odd behaviour. It was a result of the function getting and object, but not advancing through
    the va_list of arguments
  * added "true" and "false" to the scripting engine.

--------------------------------------------------------------------------------------------------------
13.11.2000 11:04 (GMT), boris

  * fixed an issue in returning a value from an eval, this is now fixed. as far as i am concerned, the 
    eval operator acts as a dynamic anonymous function -> ie they have no set return type, and the contents
    is dynamic. i like.
  * multi line strigns are now accepted, -> need to add a non escape string al la '' in perl and {} in tcl.  

--------------------------------------------------------------------------------------------------------
12.11.2000 02:49 (GMT), boris

  * added --enable-debug to turn on and off the debuging within the ferite engine at the compile time
    -> make it easy than changing header filers around.

--------------------------------------------------------------------------------------------------------
12.11.2000 01:53 (GMT), boris

  * better error detection and recovery -> error propgates up through the system allowing the system
    to clean up gracefully.
  * clean up of some of the syntax -> ie you can have as many functions/global/use blocks as you want
    -> just make sure that the classes from which you wish to instantiate are loaded into the system
    first.

--------------------------------------------------------------------------------------------------------
10.11.2000 20:24 (GMT), boris

  * fixed local scope variables on eval()
    NB. if you happen to have a variable in the eval called "xyz" and a variable in the function you are 
    currently in called the same, the one in the function will be scoped before the one in the eval.
  * with the test script is shows that on release i will have to compile without debug code, on the basis
    that release stuff is 22x faster than debug :)

--------------------------------------------------------------------------------------------------------
10.11.2000 02:26 (GMT), boris

  * ok, the code cleanup stuff is painfully broken. i need to investigate. but thats for another day,
    along with locally scoped variables within an eval op.
  * nailed new line ug within the compiler. damn printf's :)

--------------------------------------------------------------------------------------------------------
10.11.2000 02:10 (GMT), boris

  * more clena ups regarding the regex code
  * internal chage as to how code is compiled ie added in a few more redirections regarding the compiler
    interface to allow for eval().
  * added eval() operator to the ferite engine, it works vbery niceley.
  * added execution tracking regarding variables and stuff this is for two reasons, 1) when we fire off
    a ferite_error() we want to be able to free up all memory eaten up by a script as we dont want to exit
    the host app just because someone write a bad script, and 2) it allows up to make it look like eval()
    code runs in the same enviroment as the other code within a function.
  * changes to the way the code is executed - moved code out of the execution function into a cleaner place.

--------------------------------------------------------------------------------------------------------
07.11.2000 23:17 (GMT), boris

  * finsihed of matching code -> now works just like perl. wikkid. the /g operator will return an array
    of matches, with the number of matches held in the "Count" array location.
  * constant variables are now working. use "final" key word on a varaible, once a value has been assigned
    to it - it is set to being read only
  * small number of changes to the compiler

--------------------------------------------------------------------------------------------------------
06.11.2000 09:34 (GMT), boris

  * preliminary matching on regex's work -> need to do alot more work to get any where near the 
    functionality of perl, but we will get there -> see test/test.fe for more info on what works  

--------------------------------------------------------------------------------------------------------
05.11.2000 13:35 (GMT), boris

  * added pcrelib (Perl Compatible Regular Expressions Library -> by Philip Hazel <ph10@cam.ac.uk>, see
    libs/libpcre/AUTHORS and libs/libpcre/* for more information) as part of the move towards regular 
    expressions within ferite.
  * moved libltdl into libs/ along with pcre for a cleaner tree
  * hacked together the pcre to work with the current build tree
  * added src/ferite_regex.c and include/ferite/fregex.h

--------------------------------------------------------------------------------------------------------
05.11.2000 02:54 (GMT), boris

  * added the start of support for regex's within the compiler -> need to work out best way for internal 
    storage (ie precompile)
  * fixed huge bug with the scanner -> it was reseting to it's initial state (S_SCRIPTING) everytime the 
    scanner ran -> which crippled forward looking for ceratin stuff (eg object properties and regex's)
  * worked out how folding worked in jed -> enabled in some files (src/ferite_ops.c, src/ferite_execute.c, 
    test/main.c). This is to make the files i spend all my life in easier to navigate. 
  * if you run jed i have added some mode stuff so that the ferite_scanner.l and ferite_parser.y files are 
    higlighted along with the test/*.fe
  * automatic stack cleaning during execution -> cause a slight slow down but worth it for the reduce in 
    memory sage
  * various clena ups and fixes.

----------------------------------------------------------------------------------------------------------
04.11.2000 19:40 (GMT), boris

  * changed the way numbers are handled inside some more (ie if you are going to jump to a *very* big
    number in longs -> flip over to doubles)
  * change function declaration from "<type> <name> ( <params> ) {}" to "function <type> <name> ( <params> ) 
    {}"
  * fixed some issues with numbers and return values
  * fixed the add operator realating to strings
  * created hidden function _start for scripts so you now need not create *any* functions and just type
    code -> this makes things like eval() a little easier to implement
  * changed the internal representation of floats to doubles and int's to longs (still refered to as floats 
    and ints in methods -> just container is a little bigger)
  * created the type "array", not it's a container to put other information in -> ie you can mixed floats, 
    objects etc etc (PITA having array->type)
