Skip to content
An experimental, next-generation, coroutine-based, modular compiler for a subset of ooc.
ooc Shell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


oc is an ooc compiler written in ooc. It focuses on clean design, flexibility and scalability. oc is planned to replace rock, the current standard ooc compiler.

Building & installing

You can install oc easily in only 42 steps:

  • Install boehm-gc, with thread support. If your distribution has libgc by default, you can run:

nm -D /usr/lib/ | grep GC_pthread_create

  • Make yourself a favor and grab hub while you're at it.
  • Then go all like:

export OOC_DIR=~/ooc
mkdir -p $OOC_DIR && cd $OOC_DIR
hub clone nddrylliog/rock && cd rock
make rescue && sudo make install

  • This should end with 'Congrats! You have a rock in bin/rock. If it does nawt, report an issue.
  • Now it's time to get greg and nagaqueen!

hub clone nddrylliog/greg && cd greg
make && sudo make install

hub clone nddrylliog/nagaqueen

  • Now we'll grab oc, along with a frontend and a backend, and compile the shiznit out of it:

hub clone nddrylliog/oc
hub clone nddrylliog/oc-nagaqueen
hub clone nddrylliog/oc-c89
export PREFIX=$OOC_DIR/oc/prefix
cd oc-nagaqueen && ./make && cd ..
cd oc-c89 && ./make && cd ..
cd oc && ./make && sudo make install

  • If everything went fine, you should now be the happy owner of an oc setup!
  • Since oc is entirely modular, feel free to write another frontend, or another backend, and only recompile your code, not the main compiler. Yes, rock has some pretty awesome sides as well.

About the transition

Oh who am I kidding, I'm changing ideas every 15 minutes anyway. We do thoroughly love zeromq lately, though :)

Something went wrong with that request. Please try again.