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