Skip to content

Commit

Permalink
update docs a bit.
Browse files Browse the repository at this point in the history
  • Loading branch information
kjs committed Jun 7, 2012
1 parent 7d0f1d4 commit 4e011d3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
7 changes: 3 additions & 4 deletions docs/TODO.txt
Expand Up @@ -6,7 +6,6 @@ How can you help?
If you're interested in M1 and M0, contributions in the following
areas are particularly welcome:
* writing tests (try to break M1!).
* figure out how to do function calls and parameters.
* figure out how to do modules (multi-file programs)
* figure out how to do pointers and/or references (Java-like).
* can we do exceptions at this level/
Expand Down Expand Up @@ -37,10 +36,11 @@ What's working?
* unary minus op.
* array access (x[42] = 3; x = y[3])
* field access (x.y = 3; )
* function calls and returns.

What's not working?
-------------------
* function calls (mostly the returns); parameters/arguments.
* parameters/arguments.
* namespaces
* PMC definitions (incl methods)
* return statements
Expand All @@ -55,7 +55,6 @@ What's not working?

short-term roadmap:
-------------------
* implement function calls properly (including returning from a function) HIGH PRIORITY
* look into vtable implementation for PMCs for calling member functions x.y();
* think about a module management system. No preprocessor please. Maybe similar to Java's import statement. This might include namespaces, and also private and public scopes for modules (keywords needed?)
* generate instructions (struct instances) rather than print directly to stdout. This will allow analysis and optimization.
Expand All @@ -64,7 +63,7 @@ random list of items:
---------------------
* implement parameter and argument handling
* implement namespaces and their handling
* implement structs or other aggregate types; PMCs native?
* implement PMCs
* any other keywords? e.g., continue?
* implement semantic checker (a thorough one!)
* finish code generator
Expand Down
9 changes: 7 additions & 2 deletions docs/pddxx_m1.pod
Expand Up @@ -8,8 +8,13 @@ M1 refers to a C-like language targeting the M0 "virtual machine". That is,
M0 can be considered as a virtual machine which defines an instruction set
and a computation model. Details of M0 can be found in [1].

The M1 compiler is reentrant, which means it is thread-safe. This allows to
invoke the M1 compiler if it's already running.

=head2 Status

See the TODO file for the current status.

=head2 Design Principles of M1

A few basic design principles (so-called I<key drivers>) drove the design
Expand Down Expand Up @@ -70,14 +75,14 @@ Completed milestones:

=item * simple structs; read and write

=item * function calls and returns

=back

Incomplete milestones:

=over 4

=item * function calls and returns

=item * Enumerations

=item * PMC definitions
Expand Down

0 comments on commit 4e011d3

Please sign in to comment.