Switch Type.unique implementation from ref to Symbol
[tiger.ml.git] / README.md
index 4f0cd80..cae72e2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,24 +1,31 @@
 Tiger.ml
 ========
+A Tiger-compiler implementation in (OCa)ML
 
 Status
 ------
 
-### Done
+![screenshot-tests-head](screenshots/tests-head.jpg)
+...
+![screenshot-tests-tail](screenshots/tests-tail.jpg)
+
+### Features
+#### Done
 - [x] ch 1: Warm-up AST
 - [x] ch 2: Lexer
 - [x] ch 3: Parser
 - [x] ch 4: AST
-### TODO (short-term)
-- [-] ch 5: Semantic Analysis (type checking)
+- [x] ch 5: Semantic Analysis (type checking)
+#### In-progress
 - [ ] ch 6: Activation Records
+#### TODO (short-term)
 - [ ] ch 7: Translation to Intermediate Code
 - [ ] ch 08: Basic Blocks and Traces
 - [ ] ch 09: Instruction Selection
 - [ ] ch 10: Liveness Analysis
 - [ ] ch 11: Register Allocation
 - [ ] ch 12: Putting It All Together
-### TODO (long-term)
+#### TODO (long-term)
 - [ ] ch 13: Garbage Collection
 - [ ] ch 15: Functional Programming Languages
 - [ ] ch 16: Polymorphic Types
@@ -27,9 +34,25 @@ Status
 - [ ] ch 19: Static Single-Assignment Form
 - [ ] ch 20: Pipelining and Scheduling
 - [ ] ch 21: The Memory Hierarchy
-### Maybe
+#### Maybe
 - [ ] ch 14: Object-Oriented Languages
 
+### Technical issues
+- [-] testing framework
+  - [x] run arbitrary code snippets
+  - [x] check non-failures
+  - [x] check expected output
+  - [-] check expected exceptions
+    - [x] semant stage
+    - [ ] generalized expect `Output ('a option) | Exception of (exn -> bool)`
+  - [x] run all book test case files 
+  - [-] grid view (cols: lex, pars, semant, etc.; rows: test cases.) 
+    - [x] implementation
+    - [ ] refactoring
+  - [ ] test time-outs (motive: cycle non-detection caused an infinite loop)
+    - [ ] parallel test execution
+- [ ] Travis CI
+
 Implementation Notes
 --------------------
 
@@ -42,3 +65,6 @@ Implementation Notes
 ### AST
 
 #### print as M-exp
+
+### Machine
+Will most-likely compile to RISC and execute using SPIM (as favored by Appel)
This page took 0.026591 seconds and 4 git commands to generate.