ooc-lang / rock

:ocean: self-hosted ooc compiler that generates c99
http://ooc-lang.org/
MIT License
401 stars 40 forks source link

Handbook/documentation about coding on rock #975

Open fredrikbryntesson opened 8 years ago

fredrikbryntesson commented 8 years ago

Hello, dear ooc community!

We have decided to push forward with our fork of ooc and rock and are about to create a bounty program which will be released very soon.

The issues we want to solve are important for us but I also think ooc-lang will gain from this. Every solution the bounty program generates will be open source and up for grabs by ooc-lang. In most cases I do not think it will need any further work even though our fork and upstream differ slightly.

We hope to spread this program both in the ooc community and also to as many other people we can find, who are interested in compilers and programming langauges. But - to make the most out of this program and also for future work we have one request. One we want to assign especially to the core of rock developers:

We want some sort of handbook/documentation about coding on rock. Something that documents most or all parts of rock and their purpose and also how a programmer should approach the code base to solve issues in rock. For example: If I want to solve an issue about generics, which parts of rock should I look at, and which parts can I dismiss?

This handbook will, like rock itself, be open source and free for ooc-lang and everyone else to use.

We are interested in paying someone to write this documentation for us.

Ask any and all questions you may have here. If you are interested in doing this, please e-mail me at fredrik.bryntesson@vidhance.com to discuss details.

@fasterthanlime, @shamanas, @fredreichbier, @showstopper, @vendethiel, @kirbyfan64, @zhaihj, @ibara, @ds84182, @joshthecoder, @duckinator, @mt2d2, @nilium, @eagle2com, @rofl0r, @tsion, @komiga

alexnask commented 8 years ago

I could write up something basic now that my exams period is over, however I don't think any single person except Amos is 100% familiar with the whole codebase.

I have a fair bit of knowledge on the middle end, particularly function scoring, type inference (common roots etc) and the way the whole resolving phase goes (looping, replacing etc.)

I also know how most of the codegen/runtime operates but there are a couple of more ... esoteric ... features I never quite looked into in depth (particularly interfaces).

Anyways, I can probably start with some of the basics this weekend but my schedule is by no means reliable (in case you hadn't noticed). I don't expect any type of compensation by any means and anyone else willing to sink some time into this can just fork the repo I will be creating.

fredrikbryntesson commented 8 years ago

Well, anything is better then nothing :) And several people can add information to this, it does not have to be one person writing the whole thing. But to be sure that no one is feeling cheated, everyone that want to add to it (and cares about compensation) should send me a mail to straight out the compensation plan before starting on anything.

alexnask commented 8 years ago

Of course, I wouldn't expect to have any sort of exclusivity ;)
Besides, my writing is probably not the best, I would be happy to see anyone else take the initiative.

I think writing this stuff down now that it is all relatively fresh in my mind is a great thing, especially if it helps new devs get into rock's internals and will be really helpful to reflect on while building my toy compiler.

vendethiel commented 8 years ago

I don't know much about OOC, except for some wanderings in the source code here and there (and looking at PR code). I never built a real project with it (mostly due to windows incompatibilities), so I don't believe to be qualified enough :-).

horasal commented 8 years ago

I think I can write something on the Drivers in frontend, class/cover/ifelse and some other modules I have worked on in middleend. However, I have to finish my paper first so I can't really start writing before April 25.

refi64 commented 8 years ago

I don't know about ooc's internals that well...but I can definitely help with proofreading! I'm a grammar nerd. ;)

alexnask commented 8 years ago

I've started writing up some stuff, mainly some coding style things and an overview of rock's structure here.

fredrikbryntesson commented 8 years ago

@zhaihj and @shamanas: Awesome, this makes me very happy :) I read the stuff you wrote now and it looks very good :) Keep it coming and send me a mail if you want to talk about compensation.

alexnask commented 8 years ago

@fredrikbryntesson There are still many typos in there and I think some of it ought to be rewritten :)
I'll probably finish up Chapter 1 tomorrow and write a bit about the AST and the middle end in general Thursday.

h3l1xc commented 8 years ago

Nice! It's awesome to see that a project I love is alive! I also felt sometimes the need of a proper documentation. @shamanas great work! You can put a TODO list in your README, so we can start working on it.

alexnask commented 8 years ago

@h3l1xc Sure thing, it's now on my TODO list ;)
Seriously though, I will be updating some stuff later today.