Bug#312734: ITP: felix -- a high performance statically typed scripting language
* Package Name : felix
Version : 1.1.0
Upstream Author: john skaller<firstname.lastname@example.org>
* URL : http://felix.sourceforge.net
* License : BSD
* Description : high performance statically typed scripting language
Felix is a new high performance language with
support for functional programming, ultra-lightweight
high performance user space threads, garbage
collection, and C/C++ interoperability.
Felix provides a scripting harness with auto-compilation
in the style of systems such as Python. Underneath, however,
the translator generates C++ which is compiled into binary
executable code, by default a shared library which is run by a
There is a strong functional subsystem which provides
first class lexically scoped functions, pattern matching,
variants, and other common features of ML family languages,
with a syntax adapted to be slightly more familiar to
the target audience, C and C++ programmers.
Felix also provides ultra high performance user space
threading (cooperative multi-tasking). The system
translates blocking message reads into event driven
callbacks to achieve this. This is basically
a procedural continuation passing model, more
precisely it uses the method of resumptions.
The original inspiration for this work was a system
for managing telephone calls in an embedded environment
requiring sub-second response times, call creation rate
of around 600 threads/second, and supporting several
hundred thousand concurrent threads --- a continuously
running system also requiring live upgrades.
Other special features include builtin linear
regular expression matching in the style of lex tools,
and a builtin GLR (generalised LR) parsing engine
based on Elkhound, which is capable of parsing any
context free language.
The system also features a rich syntax for binding
to a C/C++ code, and, by both adopting the C/C++
object model and supporting source level interleaving,
assures a smooth migration to Felix in a manner
similar to the path from C to C++.
John Skaller, skaller at users.sf.net
PO Box 401 Glebe, NSW 2037, Australia Ph:61-2-96600850
Download Felix here: http://felix.sf.net