Find a Bug, Get a License

Last May, we released version 1.3.00 of Funky, the embeddable functional programming language. Now, almost three montsh later, we are preparing the next version of Funky, 1.4.00, with several new features, including some changes to the grammar to make it even easier to write scripts to embed with your applications.

During this development phase, we've found a bug in version 1.3.00 that apparently slipped through the rigourous testing 1.3.00 went through before it was released. The bug affects a feature that is new to version 1.3.00 and apparently doesn't get used a lot yet - at least not in the form in which it is buggy. Now mind you, this bug will not crash the interpreter or anything like that: it will simply reject a script as invalid that we had intended to be valid. This is because it concerns a corner-case in the grammar that we hadn't thought of when we implemented version 1.3.00.

Registered users of Funky have already received notice of this bug, and will receive version 1.3.01 as soon as it's ready. As we are preparing version 1.4.00, version 1.3.01 will not be publicly released because it will likely coincide with version 1.4.00. Version 1.3.01 will only be released because version 1.4.00 will contain a breaking change to Funky's API, and we do not want to force users of version 1.3.00 to change their code.

As you know, Funky is Free/Libre Open Source Software (FLOSS). This means that you have access to the C++ source code of at least two of the dialects that exist today. Both of them have the bug in question. We would like to know how likely any-one is to run into the bug and find it by themselves: as we were looking for bugs while preparing version 1.4.00, we do not know how likely it is to run into this one. This is one of the ways we want to test our quality assurance process.

If you take on this challenge, we want to reward you for your efforts: should you find either the bug that we found or any other bug, you will win an unencumbered perpetual license to Funky, including all current dialects - even the ones that are not in the FLOSS version now. Currently registered users, their employees and relatives of their employees are excluded from this contest.

To join the contest is easy: download the Funky source code now and try to find a bug. If you find a bug, report it to us including:

 

  • a description of the bug: what did you expect the interpreter to do and what did it do?
  • a Funky script that reproduces the bug;
  • a description of how you found the bug.
In order to win the unencumbered perpetual license to Funky the bug has to be valid - i.e. the interpreter must really do something unexpected (such as reject valid code, crash, etc.), the bug must be in the unaltered code of version 1.3.00 of Funky, as released in May 2009 by Vlinder Software, the bug must be reproducible from your instructions and you must be the first person outside Vlinder Software to find the bug.
 
If you fix the bug in the C++ code and the bug in question is valid according to the terms above, we will pay you an extra $50 Canadian, on top of the unencumbered perpetual license provided you give us the right to use your fix under an unencumbered perpetual license as well. Fixes must include regression tests and unit tests, be written in C++ and be compliant with the High Integrity C++ Coding Manual to be accepted, and will only be looked at once a disclaimer has been signed by you and received by us giving us the right to use and modify the code in question as we see fit. 
 
You have until we release version 1.4.00 of Funky to enter bug reports. Version 1.4.00 is slated to be released in September.