--------------------------------------------------------------------------------------------------------
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)
