248 lines
8.4 KiB
Org Mode
248 lines
8.4 KiB
Org Mode
## Copyright (C) 2017 Jeremiah Orians
|
|
## This file is part of M2-Planet.
|
|
##
|
|
## M2-Planet is free software: you can 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.
|
|
##
|
|
## M2-Planet 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 M2-Planet. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* Current
|
|
** Added
|
|
Added 22/24 working tests for armv7l
|
|
|
|
** Changed
|
|
|
|
** Fixed
|
|
Fixed unsigned division in ARMv7l port
|
|
Fixed non-uniform behavior across locales and *BSDs
|
|
Fixed broken stack in ARMv7l thanks to dddddd
|
|
|
|
** Removed
|
|
|
|
* 1.1 - 2019-03-09
|
|
** Added
|
|
Added support for \f, \v and \e
|
|
Added refresh to bootstrap.sh to build seed from cc_x86.s
|
|
Added missing license headers
|
|
Added support for ~expressions
|
|
Added prototype for Slow_Lisp build test
|
|
Added Custom type for mes.h
|
|
Added support for octal and binary numbers
|
|
Added support for \0
|
|
Added support for GET_MACHINE_FLAGS in tests
|
|
Added --architecture flag
|
|
Added 24/24 working tests for knight-posix
|
|
Added working HEAP/malloc to knight-posix
|
|
|
|
** Changed
|
|
Converted M2-Planet to use GNU style error message
|
|
Seed.M1 when built will now have the same checksum as M2-Planet self-hosted
|
|
Harmonized license headers
|
|
Updated M1 to current version
|
|
Updated hex2 to current version
|
|
Updated get_machine to current version
|
|
Updated to mescc-tools 0.6.0 syntax
|
|
Changed default architecture to knight-native
|
|
Moved x86 specific exit.c and putchar.c to test/common_x86/functions
|
|
Relocated x86 specific libc.M1 to test/common_x86
|
|
Formalized Knight-posix execve standard
|
|
Relocated x86 specific file.c to test/common_x86/functions
|
|
|
|
** Fixed
|
|
Fixed typo in file headers
|
|
Fixed version number to reflect current version
|
|
Thanks to akkartik several documentation issues were identified and fixed
|
|
Corrected missed license headers
|
|
Fix regression caused by Linux 4.17
|
|
Fixed broken logic comparions for knight-posix
|
|
Fixed CONSTANT logic for knight-posix
|
|
|
|
** Removed
|
|
Removed redundent x86 definitions
|
|
|
|
* 1.0 - 2018-08-26
|
|
** Added
|
|
Added more generic logic to lookup_type
|
|
Added prim_types to simply the task of reducing search space to primitives
|
|
|
|
** Changed
|
|
Reorganized Primitive expression evaluation
|
|
Reorganized Collect_local to better match implementation
|
|
Broke out process_break
|
|
Changed ordering in declare_function to reduce stack operations
|
|
Converted weird_string collection into a simpler form
|
|
Inlined 2 small stubs as breaking them out wouldn't help implementation
|
|
Reordered conditionals for easier implementation and reduced operations
|
|
Broke out OUT and FUNCTION to silence a single GCC warning
|
|
Moved required_match and line_error into cc_core.c and removed required_match.c
|
|
Relocated contents of test/functions to functions
|
|
Upgrades mescc-tools to 40537c0200ad28cd5090bc0776251d5983ef56e3 commit
|
|
Tweaked order for for, while and do loops to make them more in commone
|
|
Tweaked source to better match assembly
|
|
Simplify implementation order of logic
|
|
Simplifed the promote_type logic to a much breifer form
|
|
Broke out generally useful member lookup
|
|
Upgraded seed.M1 to be generated by cc_x86
|
|
|
|
** Fixed
|
|
Fixed detection of locals to screen out all non-primitive name space collisions
|
|
Checked in updated gcc function definition
|
|
Changed's numerate_number's behavior related to zeros
|
|
Improved error message to help debugging
|
|
Fixed bootstrap.sh to build a working M2-Planet binary
|
|
|
|
** Removed
|
|
Removed redundent steps in Recursive statement
|
|
Removed several redundent steps in Collect_arguments
|
|
|
|
* 0.3 - 2018-08-12
|
|
** Added
|
|
Added support for global intializers
|
|
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
|
|
Added in_set to make complex conditional logic into a simple char search
|
|
|
|
** Changed
|
|
Made String naming 100% deterministic
|
|
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
|
|
Reduced Memory usage down from 50MB to 2MB
|
|
Simplified Tokenizer logic for easier implementation and understanding
|
|
Simplified program logic
|
|
Significantly reduced weird string detection logic
|
|
Trimmed escape_lookup down to a key core
|
|
Eliminated Several Minor unneeded steps
|
|
|
|
** Fixed
|
|
Correct bug in how \" is treated
|
|
Clean up of & when && should have been used
|
|
Made test22 for consistent
|
|
Fixed !c->a regression
|
|
Fixed ARM platform build
|
|
Reduced Memory usage per Token to size of string plus fixed padding
|
|
|
|
** Removed
|
|
Removed need for string copying in M2-Planet
|
|
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
|
|
|
|
* 0.2 - 2018-06-21
|
|
** Added
|
|
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
|
|
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
|
|
Added Blood-elf test
|
|
Added Hex2_linker test
|
|
Added M1-macro test
|
|
Added prototypes to allow functions to be independently built
|
|
Added support for debug format output to help debugging
|
|
Added function specific counters to make output even more deterministic
|
|
Added M1-macro seed to eliminate C compiler dependency for bootstrap
|
|
|
|
** Changed
|
|
Improving Documentation to help new programmers get functional
|
|
Cleaned up numerate_number to make it more general purpose
|
|
Enabled stand alone builds of calloc
|
|
Unified bitwise operations
|
|
Made string.c more independent
|
|
Created a M1-macro stub file to simplify independent builds
|
|
Created a hex2_linker stub file to simplify independent builds
|
|
Created a blood-elf stub file to simplify independent builds
|
|
|
|
** Fixed
|
|
Minor cleanup and removal of unneeded whitespace
|
|
Fixed outstanding bug when struct foo* foo and foo->bar was used
|
|
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
|
|
|
|
** Removed
|
|
Removed need for memset in numerate_number
|
|
Removed minimal build target as it no longer serves a purpose
|
|
Removed independent counters for for, while and if jumps
|
|
|
|
* 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
|