2018-05-26 21:33:00 +01:00
|
|
|
## Copyright (C) 2017 Jeremiah Orians
|
|
|
|
## This file is part of stage0.
|
|
|
|
##
|
|
|
|
## stage0 is free software: you an redistribute it and/or modify
|
|
|
|
## it under the terms of the GNU General Public License as published by
|
|
|
|
## the Free Software Foundation, either version 3 of the License, or
|
|
|
|
## (at your option) any later version.
|
|
|
|
##
|
|
|
|
## stage0 is distributed in the hope that it will be useful,
|
|
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
## GNU General Public License for more details.
|
|
|
|
##
|
|
|
|
## You should have received a copy of the GNU General Public License
|
|
|
|
## along with stage0. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
* Current
|
|
|
|
** Added
|
2018-06-26 22:03:17 +01:00
|
|
|
Added support for global intializers
|
2018-07-20 03:33:02 +01:00
|
|
|
Introduced base offset local and argument load/store
|
|
|
|
Added function pointer requirement into M2-Planet
|
|
|
|
Added test24 - get_machine
|
|
|
|
Added General_Recursion to reduce complexity
|
|
|
|
Added uniqueID to purge all code segments that recreate it's functionality
|
|
|
|
Added struct Char arrays for structs
|
2018-06-26 22:03:17 +01:00
|
|
|
|
|
|
|
** Changed
|
|
|
|
Made String naming 100% deterministic
|
2018-07-20 03:33:02 +01:00
|
|
|
Broke up all_expr to simplify any manual implementations
|
|
|
|
Cleaned up function calls
|
|
|
|
Simplify variable looksup
|
|
|
|
Reused a union to reduce globals
|
|
|
|
Brought back common recursion
|
|
|
|
Reorged logic tree to reduce complexity
|
|
|
|
Simplified expression
|
|
|
|
Changed EOF detection logic to deal with unsigned bits
|
2018-06-26 22:03:17 +01:00
|
|
|
|
|
|
|
** Fixed
|
|
|
|
Correct bug in how \" is treated
|
2018-07-20 03:33:02 +01:00
|
|
|
Clean up of & when && should have been used
|
|
|
|
Made test22 for consistent
|
|
|
|
Fixed !c->a regression
|
2018-07-21 17:45:19 +01:00
|
|
|
Fixed ARM platform build
|
2018-07-26 23:27:32 +01:00
|
|
|
Reduced Memory usage per Token to size of string plus fixed padding
|
2018-06-26 22:03:17 +01:00
|
|
|
|
|
|
|
** Removed
|
2018-06-28 21:40:51 +01:00
|
|
|
Removed need for string copying in M2-Planet
|
2018-07-20 03:33:02 +01:00
|
|
|
Wasted steps in stack offsets
|
|
|
|
Need for stack relative offsets
|
|
|
|
Extra stack walks
|
|
|
|
Removed need for current_function
|
|
|
|
Removed unused values
|
|
|
|
Removed legacy x86 << >> hacks at the cost of more instructions
|
2018-06-26 22:03:17 +01:00
|
|
|
|
|
|
|
* 0.2 - 2018-06-21
|
|
|
|
** Added
|
2018-05-26 21:33:00 +01:00
|
|
|
Added type promotion to allow progress on mes.c
|
|
|
|
Add support for anonymous unions inside of structs
|
|
|
|
Added support for passing of function pointers via FUNCTION
|
|
|
|
Added support for Local functions
|
|
|
|
Added support for EOF
|
|
|
|
Added additional debug information to M2-Planet
|
|
|
|
Added line numbers and files names for errors in parsing to help debug
|
|
|
|
Added support for close and fclose
|
2018-06-02 01:05:27 +01:00
|
|
|
Added prototype support for chmod
|
|
|
|
Added basic support for escape strings
|
|
|
|
Added support for continue
|
|
|
|
Added string_length function to string.c
|
|
|
|
Added function numerate_string for converting string to integer
|
|
|
|
Added supporting hex2char, char2hex, dec2char and char2dec functions
|
|
|
|
Added support bitwise xor
|
2018-06-02 02:45:48 +01:00
|
|
|
Added Blood-elf test
|
|
|
|
Added Hex2_linker test
|
2018-06-02 03:52:30 +01:00
|
|
|
Added M1-macro test
|
2018-06-06 02:08:15 +01:00
|
|
|
Added prototypes to allow functions to be independently built
|
2018-06-07 02:37:19 +01:00
|
|
|
Added support for debug format output to help debugging
|
2018-06-08 20:43:36 +01:00
|
|
|
Added function specific counters to make output even more deterministic
|
2018-06-22 02:33:50 +01:00
|
|
|
Added M1-macro seed to eliminate C compiler dependency for bootstrap
|
2018-05-26 21:33:00 +01:00
|
|
|
|
|
|
|
** Changed
|
|
|
|
Improving Documentation to help new programmers get functional
|
2018-06-02 01:05:27 +01:00
|
|
|
Cleaned up numerate_number to make it more general purpose
|
|
|
|
Enabled stand alone builds of calloc
|
|
|
|
Unified bitwise operations
|
|
|
|
Made string.c more independent
|
2018-06-06 02:08:15 +01:00
|
|
|
Created a M1-macro stub file to simplify independent builds
|
2018-06-07 02:37:19 +01:00
|
|
|
Created a hex2_linker stub file to simplify independent builds
|
|
|
|
Created a blood-elf stub file to simplify independent builds
|
2018-05-26 21:33:00 +01:00
|
|
|
|
|
|
|
** Fixed
|
|
|
|
Minor cleanup and removal of unneeded whitespace
|
|
|
|
Fixed outstanding bug when struct foo* foo and foo->bar was used
|
2018-06-02 01:05:27 +01:00
|
|
|
Fixed ":foo bug
|
|
|
|
Fixed "\n:foo bug
|
|
|
|
Adjusted all previous references to numerate_number to ensure output is consistent
|
|
|
|
Fixed up reader so that '\'' and "\"" work correctly now
|
|
|
|
fixed "\"" bug in string output generation
|
2018-05-26 21:33:00 +01:00
|
|
|
|
|
|
|
** Removed
|
2018-06-02 01:05:27 +01:00
|
|
|
Removed need for memset in numerate_number
|
2018-06-06 02:08:15 +01:00
|
|
|
Removed minimal build target as it no longer serves a purpose
|
2018-06-08 20:43:36 +01:00
|
|
|
Removed independent counters for for, while and if jumps
|
2018-05-26 21:33:00 +01:00
|
|
|
|
|
|
|
* 0.1 - 2018-02-23
|
|
|
|
** Added
|
|
|
|
Added example programs
|
|
|
|
Added first generation libc
|
|
|
|
Added first generation defs.M1
|
|
|
|
added FOR Loop support along with example
|
|
|
|
Added support for assembly statements
|
|
|
|
Added CONSTANT to the language
|
|
|
|
Added support for <. >= and > expressions
|
|
|
|
Added struct support
|
|
|
|
Added unary - and ! support
|
|
|
|
Added additional functionality such as mixed structs, do while loops, gotos and tests for the new functionality
|
|
|
|
Incorporate breaks into loops
|
|
|
|
Became Self-Hosting
|
|
|
|
|
|
|
|
** Changed
|
|
|
|
Tweaked argument processing to help mescc support
|
|
|
|
Isolated global_token to cc.c
|
|
|
|
Moved strings to the bottom of the output
|
|
|
|
Broke out globals
|
|
|
|
Started to move type information out of hard-coded logic
|
|
|
|
Started adding tests instead of examples
|
|
|
|
Put common x86 platform logic in a shared folder to reduce duplicate code
|
|
|
|
Converted from legacy M2-Planet Input.c Output.c to M2-Planet -f input.c ... -f
|
|
|
|
Minor reordering of tests
|
|
|
|
|
|
|
|
** Fixed
|
|
|
|
expanded type support to include integer arrays
|
|
|
|
Reduced the memory churn in string creation
|
|
|
|
fixed Capitalization problems
|
|
|
|
|
|
|
|
** Removed
|
|
|
|
Removed need for enum in bootstrapping
|
|
|
|
Removed need for global output list
|
|
|
|
Eliminated the global stack
|
|
|
|
Reduced library dependencies
|
|
|
|
|
|
|
|
* 0.0 - 2017-07-05
|
|
|
|
** Added
|
|
|
|
Added minimal tokenizer
|
|
|
|
Added minimal string support
|
|
|
|
Added minimal parser
|
|
|
|
|
|
|
|
** Changed
|
|
|
|
|
|
|
|
** Fixed
|
|
|
|
|
|
|
|
** Removed
|