diff options
-rw-r--r-- | Changelog | 46 | ||||
-rw-r--r-- | doc/index.html | 6 |
2 files changed, 49 insertions, 3 deletions
@@ -1,3 +1,49 @@ +Release 2.7, 2016-06-29 +======================= + +Major improvement: +- The proof of semantic preservation now accounts for separate compilation + and linking, following the approach of Kang, Kim, Hur, Dreyer and + Vafeiadis, "Lightweight verification of separate compilation", POPL 2016. + Namely, the proof considers a set of C compilation units, separately + compiled to assembly then linked, and shows that the resulting + assembly program preserves the semantics of the C program that would + be obtained by syntactic linking of the source C compilation units. + +Language features: +- Parse the _Noreturn function attribute from ISO C11. +- New standard includes files: <iso646.h> and <stdnoreturn.h> from ISO C11. +- New built-in functions: __builtin_clzl, __builtin_clzll + (count leading zeros, 32 and 64 bits) for ARM, IA32 and PowerPC; + __builtin_ctz, __builtin_ctzl, __builtin_ctzll + (count trailing zeros, 32 and 64 bits) for IA32. + +Formal C semantics: +- The semantics of conversions from pointer types to _Bool + is fully defined (again). + +Coq development: +- Revised the Stacking pass and its proof to make it more extensible + later to e.g. 64-bit integer registers. +- Use register pairs in function calling conventions to control more + precisely the splitting of 64-bit integer arguments and results + into pairs of 32-bit quantities +- Revised the way register conventions are described in Machregs + and Conventions. +- Simulation diagrams now live in Prop instead of Type. + +OCaml development: +- Code cleanup to remove warnings, support "safe strings" mode, + and be fully compatible with OCaml 4.02 and 4.03. +- Cminor parser: support for single-precision FP numbers and operators. + +Bug fixing: +- Some declarations within C expressions were incorrectly ignored + (e.g. "sizeof(enum e {A})"). +- ARM in Thumb mode: incorrect "movs" instructions involving the stack + pointer register were generated. + + Release 2.6, 2015-12-21 ======================= diff --git a/doc/index.html b/doc/index.html index ae6e8382..023267d0 100644 --- a/doc/index.html +++ b/doc/index.html @@ -24,7 +24,7 @@ a:active {color : Red; text-decoration : underline; } <H1 align="center">The CompCert verified compiler</H1> <H2 align="center">Commented Coq development</H2> -<H3 align="center">Version 2.6, 2015-12-21</H3> +<H3 align="center">Version 2.7, 2016-06-29</H3> <H2>Introduction</H2> @@ -63,8 +63,7 @@ written.</P> <A HREF="http://compcert.inria.fr/">the CompCert Web site</A>.</P> <P>This document and the CompCert sources are -copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 -Institut +copyright 2005-2016 Institut National de Recherche en Informatique et en Automatique (INRIA) and distributed under the terms of the following <A HREF="LICENSE">license</A>. @@ -96,6 +95,7 @@ inequations by fixpoint iteration. <LI> <A HREF="html/Errors.html">Errors</A>: the Error monad. <LI> <A HREF="html/AST.html">AST</A>: identifiers, whole programs and other common elements of abstract syntaxes. +<LI> <A HREF="html/Linking.html">Linking</A>: generic framework to define syntactic linking over the CompCert languages. <LI> <A HREF="html/Values.html">Values</A>: run-time values. <LI> <A HREF="html/Events.html">Events</A>: observable events and traces. <LI> <A HREF="html/Memtype.html">Memtype</A>: memory model (interface). <BR> |