Skip to content
TiMBuS edited this page Sep 13, 2010 · 33 revisions

Fun: An even happier Joy.

‘Fun’ is an implementation (or some might say bastardization) of the elegant functional stack-based language ‘joy.’ It is mostly a pet project that I spent far too much time on, but will hopefully result in a usable, enjoyable fun language for people to play with.
Fun is now pretty much fully-working. All of its features and functions are implemented, all that remains are bugs and antipatterns that should be factored out.

The next big step is to add an optimizer that takes advantage of the functional aspects of the language. I’d also like to better implement the concept of immutable data on the stack, but this could lead to performance issues if certain cases are not optimized away. The problem is that all this optimization ruins the language purity, which ruins the entire concept of joy. I guess what this means is it’s time for a new branch. Maybe even a new project.

Installing fun

Fun is hosted on the Parrot Virtual Machine, and as such requires it, along with a C compiler and Perl 5 to compile and run. There are instructions for downloading the source code and compiling Parrot on their website, and it is fairly straightforward.
Once you have downloaded Parrot, make sure you have permissions to the ‘languages’ directory, change to it, and then checkout a copy of fun from github.

The whole process on linux can be done like so:


svn co https://svn.parrot.org/parrot/trunk parrot
cd parrot
perl Configure.pl
make
make install-dev
cd languages
git clone git://github.com/TiMBuS/fun.git
cd fun
perl Configure.pl
make

After that, invoke the REPL by using parrot fun.pbc

Project Status

Done, for now..

User Testimonies

bahblah: Fun is absolute…fun!

Fun links

An informal joy tutorial