RealMan's Compiler Collection

Latest version: 1.0.0

About

Not too long ago, programming consisted of popping your punch cards into a machine and praying for the correct output. Nowadays, programmers are spoiled by their software development tools: fancy editors with syntax highlighting, step-through debuggers, compilers with descriptive error messages. We have become soft, and our programs have suffered for it. Bugs run rampant in major applications.

The Real Man's Compiler Collection is a suite of compilers (currently only for C and C++) that hopes to address this problem. If you, like me, feel like you have become too reliant on your compiler providing helpful error messages that point you directly at the problems in your code, then this tool is for you.

A Real Man's Compiler keeps it simple. It does what a compiler should do - take source code as input and produce machine code as output - without bothering you with all the nitpicky details of what's wrong with your code. If your code contains a syntax error, undefined variable, or fails to link, the compiler will simply exit and print a nice, succint "No." And you can kiss annoying warnings goodbye! Once you have located all the compilation errors in your program, just run it through the Real Man's Compiler, and pat yourself on the back as you get a triumphant "Yes" in response.

(Note: Women are in fact not manly enough to handle the Real Man's Compiler, and should avoid using these tools.)

News

Download

Examples

Let's try to compile a simple program.
$ cat > a.c <<EOF
#include <stio.h>

int main()
{
    printf("I don't work.\n")
}
EOF
$ rmcc -o a a.c
No.
$ ./a
bash: ./a: No such file or directory
Oops! That didn't work. Hmm... what could be wrong? Well, being a Real Man, I'm not afraid to get my hands dirty and try to figure out the problem myself - without the help of any pussy compiler.
$ cat > b.c <<EOF
#include <stio.h>

int main()
{
    printf("I don't work.\n");
}
EOF
$ rmcc -o b b.c
No.
$ ./b
bash: ./b: No such file or directory
Damn, that didn't quite do it. Back to the drawing board...
$ cat > c.c <<EOF
#include <stdio.h>

int main()
{
    printf("I work.\n");
}
EOF
$ rmcc -o c c.c
Yes.
$ ./c
I work.
Ah ha! That did the trick. Nothing feels better than seeing that victorious "Yes." at the end of a long debugging session.