Skip to content

stage0-posix 1.8.0

Choose a tag to compare

@stikonas stikonas released this 15 Mar 15:54
· 12 commits to master since this release
Release_1.8.0

M2-Planet

  • Added support for pointer arithmetic for += and -= operators (not yet supported for + and -).
  • Added support for __LINE__ macro.
  • Added support for __FILE__ macro.
  • Added support for __DATE__ macro which will always be Jan 1 1970 and __TIME__ which will always be 00:00:00.
  • Added support for __STDC__, __STDC_HOSTED__, and __STDC_VERSION__ macros. __STDC_VERSION__ claims support for C89.
  • Added initial support for function-like macros.
  • enum support.
  • Added _Bool type.
  • Added support for west-const for variables and function arguments.
  • Improved RISC-V support to work with large types (size > 11 bits).
  • Added support for octal and \? escape codes.
  • Make arguments that aren't options be considered files.
  • Make help output more accurately describe available options.
  • Added support for multiple variable declarations per statement.
  • Added support for static/inline/_Noreturn qualifiers on globals.
  • Added support for static local variables.
  • Make implicit return load 0 for the main function.
  • Fix dereferencing char pointers (or other types whose size is not equal to register size).
  • Added support for multi token integer types (unsigned int, long long, long long int, etc.).
  • Allow anonymous structs/enums and inline typedef.
  • Added support arrays on the stack.
  • Added support for using variables in sizeof, including dereferencing.
  • Added support for string literals in sizeof.
  • Added support for variables in loop bodies (doesn't work with goto yet).
  • Added __M2C__, __M2C_MINOR__, and __M2C_PATCHLEVEL__ defines.
  • Add support for locals in loops.
  • Fixed multiple chained uses of dot and arrow operators segfaulting.
  • Added support for initializer lists for global integer arrays.
  • Added support for global arrays without explicit size when initializer lists are used.
  • Improved switch statement to support constant expressions in case statements.

M2-Mesoplanet

  • Make arguments that aren't options be considered files.
  • Make help output more accurately describe available options.
  • Fix make install not working.

M2libc

  • Convert setenv/getenv calls to use C-like pointer arithmetic.
  • Add stdbool.h
  • Fixed a few aarch64 syscalls.
  • Add support for symlink system call.
  • Make retrieving UEFI variables conform to spec.
  • Removed undefined behavior in int2str.

mescc-tools

  • Added support for %&! to M1 for knight architecture and allowed @$ syntax.

mescc-tools-extra

  • Mount /dev/pts in the wrap environment.
  • Add support for symlinks in untar.
  • Switch ungz to use C-like pointer arithmetic.
  • unxz: Do not crash when input file is not found.

bootstrap-seeds

  • Reduced POSIX/x86/hex0-seed from 190 to 181 bytes.
  • Reduced POSIX/x86/kaem-optional-seed from 640 to 632 bytes.
  • Reduced POSIX/AMD64/hex0-seed from 292 to 229 bytes.

stage0-posix-x86

  • Updated hex0 source to match the one in bootstrap-seeds.

stage0-posix-amd64

stage0-posix-aarch64

stage0-posix-riscv64

stage0-posix-riscv32