|
home
Welcome to the ferite.org website.
ferite is a scripting engine and language written in c for complete
portability. For more information please see the about page.
We are currently marching towards a 1.0 release - this has only taken
use since Summer 2000 to get here so far.
quick example:
ferite is a clean language and here is an example:
uses "console";
Console.println( "Hello World" );
|
This is the famous "Hello World" program in ferite, to see more examples have a
look at this
cvs page. To view the scripts click on the version number. ferite
features a wealth of features including explicit global variables,
namespaces, normal functions, exception handling, perl like regular
epxressions, variable argument lists, plus all sorts of other goodies
to provide a pleasant programming experience.
news
March 23rd 2004 nameservers changed and updated
Having setup the mirrors, ferite.org has been renewed and transfered to a
more reliable set of nameservers. The mirrors are now known as uk. se. and us.ferite.org. They are the same machines as before but have a more obvious name.
March 17th 2004 happy new year
Better late than never. ferite.org has had a rocky few months due to the hosting
being a bit shaky. To stop the lack of information in the future we are implementing
a couple of mirrors. The first to become live is ferite.sourceforge.net.
The second is the European Mirror from cention. It is ferite.centiongroup.com.
December 14th 2003 activity at last, lambda, basics as objects
The silence is broken and code has been written. Having played with lambda
calculus for so long through my PhD, I have decided to bite the bullet and
add statically bound lambda constructs to ferite. The work is currently in
cvs. Please see scripts/test/closure.fe.
It works nicely. I am also in the process of fixing the regular expression
code that was broken when block scoped variables are in. Once these fixes
are in I will do some testing and release 0.99.7.
August 12th 2003 been away
Unfortunately, due to some technical dificulties, the site has been away. But
now it is back. Most of the development on ferite has halted whilst we
have a break over the summer and collect our ideas. We are not dead - just
revitalising ourselves.
Work in progress has been the Ferite.framework which is a ObjectiveC
framework for quickly deploying ferite into Cocoa based Mac OS X projects.
There has also been work on making all type objects which will no doubt feature
in the CVS repository once it has become slightly less unstable.
February 16th 2003 quick cvs update: private, protected and public
The recent CVS changes have made it possible to make class items private,
protected or public. This make larger projects and library access control
more flexible. By default variables are private and methods are public.
It is also now possible to make classes abstract or final. And when an error
is thrown and not caught a backtrace is given out making finding the errors
easier.
January 16th 2003 anonymous cvs issues
Due to technical issues at SourceForge, anonymous CVS access is currently
unavailable. The cvs browser and examples page will be down for the duration.
More info can be found on the SourceForge.net site status page.
January 8th 2003 happy new year
Changed the way variable argument lists are accessed via script code
Added many new functions, classes, and constants to the Sys module. In particular:
- Syslog
- select()
- printf()
- UDP sockets
- Signal handlers
- Full IPV6 support
- Unix domain sockets
- A pipe stream class
- A string stream class
- A host class for DNS lookups
- Many system constants (eg. the errno and signal values), the values
of which are determined at compile time
Rewrote several String functions and added many new ones
Added several new Array functions, including a generic array sorting routine
Added several new Reflection functions, including better object and function
runtime inspection, and the ability to trace a variable's modification.
Feritedoc is now much faster
Basic Remote Method Invocation framework in pure ferite
The ability to duplicate a scripts in C code
The XML module has been re-written in places to be more flexible
Saner Error handling regarding multiple threads within a script
Ferite works on Linux, Solaris, Mac OS X, Cygwin and FreeBSD.
Please see the download page for details on obtaining ferite.
I have also modified the site menu to make navigation less complicated
and confusing.
December 2nd 2002 developers guide
Well, as promised there is a developers guide availiable. It is currently
in a state of flux and any significant updates will be mentioned here. You
can access it the same formats as the normal manual by clicking on the menu
items on the left. Enjoy.
November 29th 2002 documentation
The documentation had been updated on this site to include the latest cvs
documentation for the manual, the module api and the C api for developers.
This should make developing ferite easier. Aswell as online versions there
are tarballs that can be downloaded. The next piece of documentation on its
way is the guide for developers wishing to do clever things with ferite.
Enjoy.
November 26th 2002 back
After some down time and various people having breaks from coding, development
has started again, the website is back and things are starting to gain more
momentum. Recently there has been a huge commit by Alex Holden on the Sys
module providing some posix'y good ness, and work on better variable handling
in the engine with a view of implementing block-nested-variables at somepoint
soon. Be patient as 0.99.6 will be here at somepoint soon.
October 9th 2002 ferite 0.99.6 is almost here
ferite is still alive. This seems like deja-vu. There hasn't been that many
news items of worthy note recently. The main changes between 0.99.5 and the
current source tree is numerous bug fixes and clean ups aswell as vast speed
improvements. The ackermann benchmarks now run three times faster than before.
There are also some syntax cleanups, additions aswell as some documentation
for developers.
July 11th 2002 ferite 0.99.5 released
ferite 0.99.5 has now been released. It's hot, its great, go download and
play with it now. You should be impressed. We are, it's definatly been work
the last 6 months hard work. Here are the release notes:
- FreeBSD, Darwin, OpenBSD and Solaris fixes
- Support for Cygwin
- ferite.m4 for easy ferite install checking
- Cross platform library for system interaction [aphex], Provides consistant file, directory and threading interface
- man pages for both ferite and builder
- Full api documentation
- function renaming and deletion in classes
- Complete re-write of the array subsystem
- Large amounts of module work
- Complete re-write of the module system
- Re-write of builder to reflect changes
- Much more flexible load unload system
- Syntax clean ups
- Slice operator - allows the selection of ranges out of an array or string
- Removed '->'
- uses now only accepts a quoted string. Including a new contruct c///,
this allows for capture strings to be placed in the variables mentioned in
the comma separated list on the right hand side.
- Better regular expression detection and processing
- New 'atomic' keyword for threadin - provides locking for functions and
variables at script level.
- Code at the end of a module is now executed when loaded in
- eval() modifies the script it runs in
- include() can be used to load up another script at run time
- Arrays can be created in scripts using [ value, ... ] syntax
- isa operator to check a variables type
- instanceof operator to see if a variable is an instance of a class or
parent class.
- Ability to embed expressions in a string using "${expr}" syntax.
- More functionality added to the command line ferite tool
- Big clean up of the native api
- More convinience functions
- More macros for easy of use
- All functions now start with ferite rather than __ferite
- generate-module - a tool to allow the easy deployment of third party modules
- feritedoc - a javadoc like tool for generating documentation in various
formats, currently only text and html are outputed. [used for the api docs]
- New system module, providing a complete stream interface, test suite,
serialization, and threading libraries. See the API docs for more
information.
- More test scripts
- Variable accessors allowing for tracking of variable changes in native
code
- Hundreds of bug fixes and clean ups
We hope you enjoy :-) Please see the download page for obtaining instructions.
Old News
|