I2 Build Status for Alpha Phase I 01.08.03 September 9, 2012 Terminology: Alpha Phase I - Get everything working but there is no translation. The output code is the same as the input except most NOPs are removed. This is done in three steps: a. I2 must pass all tests (just like interp does.) b. Rewrite error handling (also affects interp.) c. Add function debug capabilities. Alpha Phase II- Translate to the new instruction set (with branching.) This is done in five steps: a. Rewrite backtrace() for I2 in imain.c. This will also involve changes to print_opcode.c. b. translate opcodes to the new instruction set. c. Extend the IIF by adding new record types for compiled global and compiled local functions. d. Add the built-in capability for I2 to create the updated IIF format. e. Add a run-only program that executes the new IIF record types. Beta - Create a regression test script and prove that everything still works. Status Snapshot: Alpha Phase I.a development was completed at 01.08.02m. Alpha Phase I.b development is now complete at 01.08.02n. Alpha Phase I.c development is now complete at 01.08.03. This table is effectively an I2 implementation progress report: y=it works for that mode. n=it doesn't work for that mode. nop=no code emitted for this (expected behavior) nvif=not valid in a function (expected behavior) unop=not allowed (expected behavior) ni=not implemented nt=not tested HEX | ASCII | INTERP | ALLOC | GEN | RUN | PRINT | DEBUG | OPCODE | OPCODE | MODE | MODE | MODE | MODE | MODE | MODE | STATUS =======+========+========+=======+======+======+=======+=======+======= 0x00 '\0' y y unop y n n ok 0x09 '\t' y nop nop nop nop nop ok 0x0A '\n' y nop nop nop nop nop ok 0x0C '\f' y nop nop nop nop nop ok 0x0D '\r' y nop nop nop nop nop ok 0x20 ' ' y nop nop nop y nop ok 0x21 '!' y y y y y y ok 0x22 '"' y y y y y ni ok 0x24 '$' y nvif nvif nvif nvif nvif ok 0x25 '%' y y y y y y ok 0x26 '&' y y y y y y ok 0x27 '\'' y y y y y y ok 0x28 '(' y y y y y y ok 0x29 ')' y y y y y y ok 0x2A '*' y y y y y y ok 0x2B '+' y y y y y y ok 0x2C ',' y y y y y ni ok 0x2D '-' y y y y y y ok 0x2E '.' y y y y y ni ok 0x2F '/' y y y y y y ok 0x30 '0' y y y y y y ok 0x31 '1' y y y y y y ok 0x32 '2' y y y y y y ok 0x33 '3' y y y y y y ok 0x34 '4' y y y y y y ok 0x35 '5' y y y y y y ok 0x36 '6' y y y y y y ok 0x37 '7' y y y y y y ok 0x38 '8' y y y y y y ok 0x39 '9' y y y y y y ok 0x3A ':' y y y y y y ok 0x3B ';' y y y y y y ok 0x3C '<' y y y y y y ok 0x3D '=' y y y y y y ok 0x3E '>' y y y y y y ok 0x3F '?' y y y y y y ok 0x40 '@' y y y y y y ok 0x44 'D' y y y y y n ok 0x46 'F' y y y y y y ok 0x49 'I' y y y y y y ok 0x4B 'K' y y y y y y ok 0x4C 'L' y y y y y y ok 0x4D 'M' y y y y y y ok 0x4E 'N' y y y y y y ok 0x50 'P' y y y y y ni ok 0x53 'S' y y y y y y ok 0x54 'T' y y y y y y ok 0x56 'V' y y y y y y ok 0x58 'X' y nvif nvif nvif nvif nvif ok 0x5B '[' y y y y y y ok 0x5C '\\' y y y y y y ok 0x5D ']' y y y nop y nop ok 0x5E '^' y y y y y y ok 0x60 '`' y y y n n y ok 0x61 'a' y y y y y y ok 0x62 'b' y y y y y y ok 0x64 'd' y nvif nvif nvif nvif nvif ok 0x66 'f' y y y y y y ok 0x68 'h' y y y y y y ok 0x6C 'l' y y y y y y ok 0x6D 'm' y y y y y y ok 0x6E 'n' y y y y y n ok 0x70 'p' y y y y y y ok 0x71 'q' y y y y y y ok 0x76 'v' y nvif nvif nvif nvif nvif ok 0x77 'w' y y y y y y ok 0x7B '{' y unop y nop unop y ok 0x7C '|' y y y y y y ok 0x7D '}' y y y nop unop n ok 0x7E '~' y y y y y y ok 0xA0 EODR y nvif nvif unop nvif ni ni 0xA1 GFR y nvif nvif unop nvif ni ni 0xB0 LFR y nvif nvif unop nvif ni ni 0x?? CGFR n nvif nvif unop nvif ni ni 0x?? CLFR n nvif nvif unop nvif ni ni