Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


:ocean: self-hosted ooc compiler that generates c99

Subscribe to updates I use rock

Statistics on rock

Number of watchers on Github 327
Number of open issues 78
Average time to close an issue 13 days
Main language ooc
Average time to merge a PR 4 days
Open pull requests 4+
Closed pull requests 17+
Last commit over 4 years ago
Repo Created over 11 years ago
Repo Last Updated over 2 years ago
Size 17.5 MB
Homepage http://ooc-lang.org/
Organization / Authorooc-lang
Latest Releasev0.9.10
Page Updated
Do you use rock? Leave a review!
View open issues (78)
View rock activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating rock for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Build Status


rock is an ooc compiler written in ooc - in other words, it's where things begin to become really exciting.

it has been bootstrapping since April 22, 2010 under Gentoo, Ubuntu, Arch Linux, Win32, OSX...


You need the following packages when building rock:

  • GNU Make (make or gmake, depending on your operating system)
  • boehm-gc
  • tar (for extracting the C sources)
  • bzip2 (used by tar)

Get started

Run make rescue and you're good.

Wait, what?

make rescue downloads a set of C sources, compiles them, uses them to compile your copy of rock, and then uses that copy to recompile itself

Then you'll have a 'rock' executable in bin/rock. Add it to your PATH, symlink it, copy it, just make sure it can find the SDK!


See the INSTALL file

To switch to the most recent git, read ReleaseToGit


rock is distributed under the MIT license, see LICENSE for details.

Boehm GC sources are vendored, it is distributed under an X11/MIT-like license, see libs/sources/LICENSE for details.

rock open issues Ask a question     (View All Issues)
  • almost 4 years So, is OOC development still onging?
  • about 4 years The way rock constructs class information can lead to data races in seemingly unrelated code
  • about 4 years Weird behaviour with setters calling associated getter
  • over 4 years Rock cannot find sdk when run from make
  • over 4 years pkg-config/CustomPkg flags aren't passed to additionals
  • over 4 years Funcs should behave as Closures with extra type information.
  • over 4 years rock generates invalid C code when trying to access an interface's generic type
  • over 4 years Allow implementing interfaces after type declaration
  • over 4 years Add newcomer label to issues
  • over 4 years 'this' as default parameter value in a function refers to the wrong object
  • over 4 years Rock parses function arguments with default values incorrectly
  • over 4 years Wrong cast to non scalar type, and some other problems.
  • over 4 years Template type instances generated in separate modules do not generate include statements in C code
  • over 4 years The top 5 bugs?
  • over 4 years Multiple '+' or '-' prefix operators in a row should be disallowed
  • over 4 years The bounty program for rock is on
  • over 4 years Latest version of rock does not build on windows
  • over 4 years Handbook/documentation about coding on rock
  • over 4 years The number of super constructor arguments do not need to match
  • over 4 years Giving ooc to the community
  • almost 5 years ooc-array consisting of generic class gives compilation error
  • almost 5 years Safe-navigation operator fails when operand is a property
  • almost 5 years Infer template parameters the same way we deduce generics
  • almost 5 years Range has a funny constructor
  • almost 5 years Do some basic escape analysis
  • almost 5 years Move generic inference from FunctionCall, clean it up, make it recursive and use findCommonRoot on all candidates to get the final type.
  • almost 5 years Using a property ::= does not work for rvalue covers because a pointer is expected
  • almost 5 years Ternary operator should take the common root of the left and right expr types instead of equality checking them
  • almost 5 years Rock does not correctly call non-ACS generic function arguments
  • almost 5 years Build datetime (in rock -V) prints gibberish when the user's locale uses non-ASCII characters for AM and PM
rock open pull requests (View All Pulls)
  • Stricter and more correct referenceability checks
  • Rock can now extend generic classes
  • Changed Range new into a constructor.
  • Generate metaclass objects and initialize their names in the modules they were defined in
rock questions on Stackoverflow (View All Questions)
  • How to split a Torch class into several files in a Lua rock
  • Rock, Paper, Scissors in JavaScript
  • Rock, Paper, Scissors - How to start a new game when there's a draw
  • My Rock Paper Scissors program in jQuery is only returning the result when it is a tie
  • Rock Paper Scissors Game (Menu Method)
  • Rock Paper Scissor Python
  • game not ending in java rock paper scissors game
  • What's wrong with the indentation? Python, Rock Paper Scissors Game
  • Rock, Paper, Scissors - why doesn't this code work?
  • Rock, Paper, Scissors - Python
  • A rock, paper, scissors tournament is encoded as a bracketed array of games
  • Rock-Paper-Scissors invalid input loop not working
  • Python 3.4 Rock paper scissors with socket and pyqt5
  • Java rock, paper, scissors program with file input
  • rock paper scissor lizard spock in java
  • Is this function, to determine the result of rock paper scissors, correct?
  • Finishing Rock Paper Scissors Game
  • How to resolve a NameError in my 'rock, paper, scissors' function
  • My Rock, Paper, Scissors Game Won't Repeat Properly - Any Ideas?
  • Rock, Paper, Scissors, Lizard, Spock in JavaScript
  • More rock paper scissors
  • Writing a program that plays scissor-rock-paper game using loop
  • Paper Scissors Rock using switches Visual Studio
  • Rock Paper Scissors Lizard Spock game logic outputting wrong winners occasionally and I can't tell why
  • Python: Rock Paper Scissors While Loop Issue
  • Rock Paper Scissors simple java using methods
  • Rock-paper-scissors game c++
  • Trying to display images instead of letters for Rock Paper Scissors game
  • Rock Paper Scissors help needed
  • python rock paper scissors
rock list of languages used
More projects by ooc-lang View all
Other projects in ooc
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark