Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
An experimental, next-generation, coroutine-based, modular compiler for a subset of ooc.
ooc Shell
branch: master

This branch is 49 commits behind nddrylliog:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
docs
samples
source
.gitignore
README.md
clean
dl.use
install
make
oc.use
run-test
test

README.md

oc

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/libgc.so | 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!

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

cd $OOC_DIR
hub clone nddrylliog/nagaqueen

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

cd $OOC_DIR
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.