This is a bounty program which inspires interested programmers to solve bugs in the ooc language in exchange for fame, glory, and some money.
The ooc language was first released in 2009 and is a general-purpose high-level language which compiles to C code. Its compiler is called rock
.
In mid-2014 a fork was made of both the SDK, which is now greatly rewritten and extended, and the compiler. The latter has undergone some changes. Most notably, this fork does not use any garbage collection and introduces the virtual
and override
keywords. To distinguish it from upstream ooc it is sometimes called magic
or magic-lang
, but it is really ooc
with minor changes.
All the code submitted through this process will be made available under the MIT license just as the rock compiler is.
A solution is accepted if:
-
It solves all the problems presented in its description
-
It accurately compiles and runs the accompanied test files without crashes or memory leaks
-
An inspection by us does not find any bugs
-
The changes can be merged into the rock repo without any conflicts or introducing new problems
When a solution is accepted you will be contacted to receive your reward. This sum is specified in each problem's respective description. Any taxes or fees are paid for by the recipient.
-
Make sure you have Ubuntu (14.04 or later), with
gcc
andgit
installed (sudo apt-get install gcc git
). -
Run the script you find at the magic-tools repo. This will install an editor (VS Code) with proper syntax highlighting, the latest rock compiler, and some other useful tools.
-
Make a directory and clone the ooc-kean repo.
-
Run the
test.sh
file you find in its root directory to make sure everything works. -
Create a file called "helloworld.ooc" with the content
"Hello world!" println()
. -
Set the
OOC_LIBS
environment variable to the root of theooc-kean
directory.export OOC_LIBS=...
. -
Compile and run the file with
rock -r helloworld.ooc
You're good to go! You can start learning the language by browsing the code and reading the original (though slightly outdated) language documentation: https://ooc-lang.org/docs/lang/
-
Clone the rock fork repo.
-
Run
make clean
followed bymake rescue
. It is always a good idea to do both. -
The binary is now available in the
bin
folder. -
Copy the new rock binary to where you want to use it, to a system directory, or make a symlink.
Yes, it's that easy. Whenever you make changes, it is a good idea to run make clean
before make rescue
.
The beginnings of a rock documentation (updated almost daily) is available at the rock-dev repo. It includes a lot more detail on how to build rock, as well as information on its code structure and where different parts are located.
-
Find a problem which interests you among the folders in the bounty repo (this repo).
-
Not mandatory, but recommended: Contact us (see below) with a short message describing who you are, what problem(s) you want to tackle, and any questions you may have. We are happy to help guide you through the process. We can offer some help on ooc questions, but little to no help on rock-specific questions.
-
Solve the problem.
-
Make a pull request to our rock repo with the solution. Your pull request's description should contain a brief summary of what has been done, how it works and how the solution was found. This makes it easier for others to review and learn about rock. If you are unfamiliar with
git
orGitHub
, contact us and we will help you. -
Wait for us to review it (within a few work days)
-
Your pull request is either accepted or commented with questions or bugs we have found. Revise them and go to step 5.
-
Collect money.
For more information, please contact:
Fredrik Bryntesson
Uppsala, Sweden