Skip to content
Permalink
Browse files

Added a Source Map to the docs.

  • Loading branch information
Alex Gaynor
Alex Gaynor committed Apr 9, 2013
1 parent 7c7fb94 commit 904969bbd5725420dad429032d4815219b521f5d
Showing with 85 additions and 0 deletions.
  1. +1 −0 docs/index.rst
  2. +84 −0 docs/source-map.rst
@@ -16,6 +16,7 @@ To get started right away, you can `download a pre-built binary`_ and run it::
current-status
contributing
style-guide
source-map
community
code-of-conduct
blog/index
@@ -0,0 +1,84 @@
Source Code Map
===============

This document is a map of the source code, it describes what many of the
directories/files contain.

``ast.py``
----------

This contains each of the AST node classes. Each of these is responsible for
encoding the structure of the program, and compiling itself to bytecode.

``astcompiler.py``
------------------

This contains utility classes for compiling ASTs to bytecode.

``coerce.py``
-------------

This contains logic for performing type coercion on Ruby objects. It contains
implementations for behaviors like, "this Ruby function takes an Integer
argument".

``executioncontext.py``
------------------------

This contains logic specific to the current thread of execution in Ruby. It
maintains things like the Ruby call stack.

``frame.py``
-------------

This contains Ruby frame objects, and assosciated logic for manipulating them.

``gateway.py``
---------------

This contains logic for exposing RPython functions in Ruby.

``interpreter.py``
-------------------

This contains the bytecode interpreter itself.

``lexer.py``
-------------

This contains the hand written Ruby lexer.

``main.py``
------------

This contains the command line entry-point, including things like argument
parsing logic.

``module.py``
--------------

This contains an API for exposing RPython classes in Ruby, it should be merged
with ``gateway.py``.

``objspace.py``
----------------

This contains the ``ObjectSpace`` (unrelated to Ruby's ``ObjectSpace`` module),
it is responsible for encoding the behaviors of Ruby, for example it contains
methods like ``find_const``, ``send``, and methods for creating new Ruby
objects from RPython ones.

``parser.py``
-------------

This contains the parse rules and actions, built atop ``rply``.

``modules/``
------------

This contains built-in Ruby ``Module`` objects. There is one ``Module`` per file.

``objects/``
------------

This contains built-in Ruby ``Class`` objects. There is one ``Class`` per file.

0 comments on commit 904969b

Please sign in to comment.