current stable:
cvs (0.99.7)
  Home / News
  The Team

  Source Tarball
  CVS Web View
  Misc. Files

The Manual
  Download [html]
  Download [pdf]
  View Online
  Download [html]
  View Online
  Script Examples

Developer Guide
  Download [html]
  Download [pdf]
  View Online
Ferite C API
  Download [html]
  View Online

Open Source Approved

SourceForge Logo - browse the Keyword Map of

Site variations: Master Site · UK Mirror · US Mirror · SE Mirror


Welcome to the 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.


March 23rd 2004 nameservers changed and updated
    Having setup the mirrors, has been renewed and transfered to a more reliable set of nameservers. The mirrors are now known as uk. se. and They are the same machines as before but have a more obvious name.
March 17th 2004 happy new year
    Better late than never. 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 The second is the European Mirror from cention. It is
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 site status page.
January 8th 2003 happy new year
    Happy New Year! What with Christmas having passed aswell as the New Year, we have a present for you. It's a new stable version of ferite. This feature is as big as before and provides even more goodies for people to play with. Go and play! The release notes are below:

    • Many bug fixes and performance enhancements including speedups between 3-12 times and a couple of critical compiler fixes.
    • Much more documentation, including API, C API and a developers guide
    • Object methods can call the constructor of their parent class with super().
    • Single line functions don't need braces around the function body, eg.
              function foo( number bar )
                return bar + 42;
    • Added the foreach() operator.
    • Added ( foo ? bar1 : bar0 ) conditionals.
    • Added parameter overloading- you can now do things like:
              function foo( number bar )
        	Console.println("foo: got number " + bar);
              function foo( string bar )
        	Console.println("foo: got string " + bar);
    • 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
ferite et al © 2000-2004, Chris Ross