git @ Cat's Eye Technologies SixtyPical / 8298ad3
Expand on what the range-checking includes in this version. Chris Pressey 4 years ago
1 changed file(s) with 9 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
66 * It is a static analysis error if it cannot be proven that a read or write
77 to a table falls within the defined size of that table.
88 * The reference analyzer's ability to prove this is currently fairly weak,
9 but it does exist.
9 but it does exist:
10 * Loading a constant into a memory location means we know the range
11 is exactly that one constant value.
12 * `AND`ing a memory location with a value means the range of the
13 memory location cannot exceed the range of the value.
14 * Doing arithmetic on a memory location invalidates our knowledge
15 of its range.
16 * Copying a value from one memory location to another copies the
17 known range as well.
1018 * Cleaned up the internals of the reference implementation (incl. the AST)
1119 and re-organized the example programs in the `eg` subdirectory.
1220 * Most errors produced by the reference implementation now include a line number.