lh-l4v/tools/c-parser/RELEASES.md

4.5 KiB

StrictC Releases

0.1 Disentangle c-parser tech from seL4 verification effort.

  • In particular, use standard word types from HOL-Word rather than seL4-specific word types.

0.2: First public release

0.3

  • Fix for bug in guards attached to switch statement expressions.
  • Dependency files (with .d extension) don't include references to /home/michaeln

0.4

  • All files should now be labelled with correct copyright/licence information.

0.5

  • The types of C arrays now have size types that are numerals rather than ugly tycopy<n> names. Unfortunately, the size 8192 has to be an exception to this; the corresponding type is called "ty8192".

0.6

  • More (all?) files appropriately labelled with copyright/licence information.

  • Better introduction to using the system in INSTALL/MANIFEST/README

  • Some cleanups in the ctranslation document

  • Ctranslation document PDF is part of the release

  • Regression tests factorial, list_reverse_norm, list_reverse and struct_list_reverse all now build. List reversal was one of the examples discussed in our POPL 2007 paper "Types, bytes and separation logic".

  • Handling of local variable "default initialisation" is now properly non-deterministic. This makes it more apparent that depending on uninitialised memory is a bad idea. However, it is not ideal in that it still allows the user to conclue that

    int f(void) { int i; return i - i; }

    returns 0, rather than being undefined behaviour.

0.7

  • Correct bug caused by pathological programs that have no local variables, parameters or returns with attached expressions (every function is of type taking-void-returning-void).

0.7.1

  • Correct bug in Makefile controlling build of standalone parser tool.

0.7.2

  • Adjust source code to be better compatible with Isabelle 2011, removing deprecated commands such as "axclass".
  • Ensure that tokenizer tool (in standalone-parser directory) builds with Poly as well as mlton.

1.0

  • Builds with isabelle-2011-1 (VER 109)
  • Other minor fixes
    • allow break statements within switch statements even if they don't appear at the end of the case. (VER 110)
    • fix Makefiles in tools/{mllex,mlyacc} so that those tools can be built independently (VER 111)
    • fix casts from "boolean" expressions (e.g. (x > 2)). (VER 92)
    • ensure that guards on switch statements are subjected to integer promotions. (VER 39)
    • fix lexing of certain comments. (VER 105)
    • make size_of on known types automatically simplify (VER 125)
    • generate correct guards for double pointer deref (VER 152)
    • use "type_synonym" rather than "types"

1.12.0

  • Builds with isabelle-2012 (VER 192)

1.12.1

  • Fixes a problem with non-ASCII #include filenames (VER 224)

1.13.0

  • Builds with isabelle-2013 (VER 247)
  • Implements the C99 _Bool type (VER 254)

1.13.1

  • Builds with isabelle-2013-{1,2} (VER 331)

  • Handles filenames including spaces (VER 307)

  • Allows the const keyword in more places (and completely ignores it) (VER 315)

  • Fixes the undefinedness guards on shift operations (VER 332)

  • Handles Windows-style newlines in C files (VER 336)

  • Allows identifiers with leading underscores if the allow_underscore_idents configuration option is set. This latter can be done with a line like

    declare [[allow_underscore_idents=true]]
    
  • Fixes guards for some nested pointer-dereferences (VER 345)

1.14

  • Builds with Isabelle2017
  • avoid complex call lvals
  • add x64 definitions and support for multiple architectures
  • improved performance of automatic modifies-proofs
  • improved tracing

1.15

  • Builds with Isabelle2018
  • update documentation
  • always attach GCC attributes to vars in the AST

1.16

  • Builds with Isabelle2019
  • added syntax for displaying pointer types (PTR and PTR_COERCE)
  • always emit long (type-wrangled) variable names, provide short names as abbreviation

1.16.1

  • Correct license for shorten_names.ML. No code changes.

1.17

  • Builds with Isabelle2020
  • Faster automation for proving packed_type class instances
  • Remove unused assumptions from field_lookup rules
  • Use python3 in scripts
  • Use SPDX identifiers for licensing information

1.18

  • Builds with Isabelle2021
  • improve inline assembly support in modifies proofs
  • always use fresh names for generated temporary variables. This fixes a problem that could make some function call expressions unprovable. (VER-1389)
  • improve compile time performance for functional record update definitions