Hi Andrew,

Thanks for the encouragement! :)

I went ahead and updated the wiki and incorporated my links. I also gave some more guidelines for each link. [1]

Cheers,
Arash



[1]: https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Cmm

On 2014-05-04 16:53, Andrew Farmer wrote:
Are all of these links collected on the GHC wiki somewhere? If not,
would you mind adding them?

I, for one, appreciate a curated list of references like this!

On Sat, May 3, 2014 at 5:33 AM, Arash Rouhani
<rar...@student.chalmers.se> wrote:
(Sorry Florian, I forgot to "reply to list"!)

Hi Florian!

Forget Cminusminus.org, in my experience it seems to have diverged from the
GHC version of Cminusminus.

I would recommend these resources

See the top of
https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmParse.y
Be ready to occasionally look into
https://github.com/ghc/ghc/blob/master/includes/Cmm.h
Edward Yang's blog post is a must-read
http://blog.ezyang.com/2013/07/no-grammar-no-problem/ (less than a year old)
You can also get the big picture of Cmm from David Terei's bachelor thesis:
https://davidterei.com/downloads/papers/terei:2009:honours_thesis.pdf
2 years ago, Simon Marlow extended the classical Cmm syntax to make it much
nicer:
https://github.com/ghc/ghc/commit/a7c0387d20c1c9994d1100b14fbb8fb4e28a259e
The commentary (it is kinda outdated in my experience, but worth taking a
look :)), https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Cmm and
https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/CmmType
Read the code! There's a lot of Cmm files and after looking at various parts
of it for a while parts start to make sense :)
Shameless plug: You might find sections 4.2 and 4.2.1 from my master thesis
helpful to understand the difference between arguments and fields.
http://arashrouhani.com/papers/master-thesis.pdf

And it will take time to learn Cmm. The most unintuitive thing for me that
took me a while to understand is that there are no function calls in
"classical" cmm code. The newer syntax allows function calls but you should
know that they are kind of magical. Hope this helps! :)

(Sorry for giving so many reading references :p)

Cheers,
Arash



On 2014-05-03 12:05, Florian Weimer wrote:

I'm looking for a specification of C--.  I can't find it on the
cminuscminus.org web site, and it's also not included in the release
tarball.  Does anybody know where to get it?
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs



_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to