lihaoyi / macropy

Macros in Python: quasiquotes, case classes, LINQ and more!
3.28k stars 178 forks source link

Separate parts README.md to CONTRIBUTING.md #59

Open macobo opened 11 years ago

macobo commented 11 years ago

This should also include instructions on setting up development environment and running tests, coding style.

lihaoyi commented 11 years ago

Is there much to talk about, though? It's gonna be like "download from git - install using setup.py - run_tests.py to run tests"

reem commented 10 years ago

The source can be a bit hard to follow (though it is well commented). A short explanation of how the core of macropy works would be very useful to new contributors.

lihaoyi commented 10 years ago

Not-quite-core docs already exists in https://github.com/lihaoyi/macropy#reference, to the best of my abilities.

As for the core-core stuff, that's basically all in macropy/core, Apart from the fact that it uses import hooks and operates on Python ASTs, it is a reasonably standard data-processing application. There isn't any implicit structure (e.g. dependencies in mutable state) that isn't already encoded in the structure of the function calls.

That kind of structure isn't easy to read on github, but any decent IDE with jump-to-definition and find-usages will let you explore the shape of the program much better than I can write out in words, and those basically always work, since I don't do the functions-names-as-strings thing that you see in many other code bases. Exploring that structure will be much more useful than anything I can put down in words.

Best bet would be to open it up in PyCharm, start jumping around the code base, and sprinkle some print statements while running the "Hello World" examples to see how the macropy initializes and executes.