diff options
Diffstat (limited to 'cil/doc/changes.html')
-rw-r--r-- | cil/doc/changes.html | 486 |
1 files changed, 0 insertions, 486 deletions
diff --git a/cil/doc/changes.html b/cil/doc/changes.html deleted file mode 100644 index 17ffdf7..0000000 --- a/cil/doc/changes.html +++ /dev/null @@ -1,486 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" - "http://www.w3.org/TR/REC-html40/loose.dtd"> -<HTML> -<HEAD> - - - -<META http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"> -<META name="GENERATOR" content="hevea 1.08"> - -<base target="main"> -<script language="JavaScript"> -<!-- Begin -function loadTop(url) { - parent.location.href= url; -} -// --> -</script> -<LINK rel="stylesheet" type="text/css" href="cil.css"> -<TITLE> -Changes -</TITLE> -</HEAD> -<BODY > -<A HREF="cil019.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A> -<A HREF="ciltoc.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A> -<HR> - -<H2 CLASS="section"><A NAME="htoc49">20</A> Changes</H2><A NAME="sec-changes"></A> -<UL CLASS="itemize"><LI CLASS="li-itemize"> -<B>May 20, 2006</B>: <B>Released version 1.3.5</B> -<LI CLASS="li-itemize"><B>May 19, 2006</B>: <TT>Makefile.cil.in</TT>/<TT>Makefile.cil</TT> have - been renamed <TT>Makefile.in</TT>/<TT>Makefile</TT>. And <TT>maincil.ml</TT> has - been renamed <TT>main.ml</TT>. -<LI CLASS="li-itemize"><B>May 18, 2006</B>: Added a new module <A HREF="api/Cfg.html">Cfg</A> to compute the - control-flow graph. Unlike the older <A HREF="api/Cil.html#VALcomputeCFGInfo">Cil.computeCFGInfo</A>, - the new version does not modify the code. -<LI CLASS="li-itemize"><B>May 18, 2006</B>: Added several new analyses: reaching - definitions, available expressions, liveness analysis, and dead code - elimination. See Section <A HREF="ext.html#sec-Extension">8</A>. -<LI CLASS="li-itemize"><B>May 2, 2006</B>: Added a flag <TT>--noInsertImplicitCasts</TT>. - When this flag is used, CIL code will only include casts inserted by - the programmer. Implicit coercions are not changed to explicit casts. -<LI CLASS="li-itemize"><B>April 16, 2006</B>: Minor improvements to the <TT>--stats</TT> - flag (Section <A HREF="cil007.html#sec-cilly-asm-options">7.2</A>). We now use Pentium performance - counters by default, if your processor supports them. -<LI CLASS="li-itemize"><B>April 10, 2006</B>: Extended <TT>machdep.c</TT> to support - microcontroller compilers where the struct alignment of integer - types does not match the size of the type. Thanks to Nathan - Cooprider for the patch. -<LI CLASS="li-itemize"><B>April 6, 2006</B>: Fix for global initializers of unions when - the union field being initialized is not the first one, and for - missing initializers of unions when the first field is not the - largest field. -<LI CLASS="li-itemize"><B>April 6, 2006</B>: Fix for bitfields in the SFI module. -<LI CLASS="li-itemize"><B>April 6, 2006</B>: Various fixes for gcc attributes. - <TT>packed</TT>, <TT>section</TT>, and <TT>always_inline</TT> attributes are now - parsed correctly. Also fixed printing of attributes on enum types. -<LI CLASS="li-itemize"><B>March 30, 2006</B>: Fix for <TT>rmtemps.ml</TT>, which deletes - unused inline functions. When in <TT>gcc</TT> mode CIL now leaves all - inline functions in place, since <TT>gcc</TT> treats these as externally - visible. -<LI CLASS="li-itemize"><B>March 15, 2006</B>: Fix for <TT>typeof(<I>e</I>)</TT> when <I>e</I> has type - <TT>void</TT>. -<LI CLASS="li-itemize"><B>March 3, 2006</B>: Assume inline assembly instructions can - fall through for the purposes of adding return statements. Thanks to - Nathan Cooprider for the patch. -<LI CLASS="li-itemize"><B>February 27, 2006</B>: Fix for extern inline functions when - the output of CIL is fed back into CIL. -<LI CLASS="li-itemize"><B>January 30, 2006</B>: Fix parsing of <TT>switch</TT> without braces. -<LI CLASS="li-itemize"><B>January 30, 2006</B>: Allow `$' to appear in identifiers. -<LI CLASS="li-itemize"><B>January 13, 2006</B>: Added support for gcc's alias attribute - on functions. See Section <A HREF="cil016.html#sec-ugly-gcc">16.2</A>, item 8. -<LI CLASS="li-itemize"><B>December 9, 2005</B>: Christoph Spiel fixed the Golf and - Olf modules so that Golf can be used with the points-to analysis. - He also added performance fixes and cleaned up the documentation. -<LI CLASS="li-itemize"><B>December 1, 2005</B>: Major rewrite of the ext/callgraph module. -<LI CLASS="li-itemize"><B>December 1, 2005</B>: Preserve enumeration constants in CIL. Default -is the old behavior to replace them with integers. -<LI CLASS="li-itemize"><B>November 30, 2005</B>: Added support for many GCC <TT>__builtin</TT> - functions. -<LI CLASS="li-itemize"><B>November 30, 2005</B>: Added the EXTRAFEATURES configure - option, making it easier to add Features to the build process. -<LI CLASS="li-itemize"><B>November 23, 2005</B>: In MSVC mode do not remove any locals whose name - appears as a substring in an inline assembly. -<LI CLASS="li-itemize"><B>November 23, 2005</B>: Do not add a return to functions that have the - noreturn attribute. -<LI CLASS="li-itemize"><B>November 22, 2005</B>: <B>Released version 1.3.4</B> -<LI CLASS="li-itemize"><B>November 21, 2005</B>: Performance and correctness fixes for - the Points-to Analysis module. Thanks to Christoph Spiel for the - patches. -<LI CLASS="li-itemize"><B>October 5, 2005</B>: CIL now builds on SPARC/Solaris. Thanks - to Nick Petroni and Remco van Engelen for the patches. -<LI CLASS="li-itemize"><B>September 26, 2005</B>: CIL no longer uses the `<TT>-I-</TT>' flag - by default when preprocessing with gcc. -<LI CLASS="li-itemize"><B>August 24, 2005</B>: Added a command-line option - “--forceRLArgEval” that forces function arguments to be evaluated - right-to-left. This is the default behavior in unoptimized gcc and - MSVC, but the order of evaluation is undefined when using - optimizations, unless you apply this CIL transformation. This flag - does not affect the order of evaluation of e.g. binary operators, - which remains undefined. Thanks to Nathan Cooprider for the patch. -<LI CLASS="li-itemize"><B>August 9, 2005</B>: Fixed merging when there are more than 20 - input files. -<LI CLASS="li-itemize"><B>August 3, 2005</B>: When merging, it is now an error to - declare the same global variable twice with different initializers. -<LI CLASS="li-itemize"><B>July 27, 2005</B>: Fixed bug in transparent unions. -<LI CLASS="li-itemize"><B>July 27, 2005</B>: Fixed bug in collectInitializer. Thanks to - Benjamin Monate for the patch. -<LI CLASS="li-itemize"><B>July 26, 2005</B>: Better support for extended inline assembly - in gcc. -<LI CLASS="li-itemize"><B>July 26, 2005</B>: Added many more gcc __builtin* functions - to CIL. Most are treated as Call instructions, but a few are - translated into expressions so that they can be used in global - initializers. For example, “<TT>__builtin_offsetof(t, field)</TT>” is - rewritten as “<TT>&((t*)0)->field</TT>”, the traditional way of calculating - an offset. -<LI CLASS="li-itemize"><B>July 18, 2005</B>: Fixed bug in the constant folding of shifts - when the second argument was negative or too large. -<LI CLASS="li-itemize"><B>July 18, 2005</B>: Fixed bug where casts were not always - inserted in function calls. -<LI CLASS="li-itemize"><B>June 10, 2005</B>: Fixed bug in the code that makes implicit - returns explicit. We weren't handling switch blocks correctly. -<LI CLASS="li-itemize"><B>June 1, 2005</B>: <B>Released version 1.3.3</B> -<LI CLASS="li-itemize"><B>May 31, 2005</B>: Fixed handling of noreturn attribute for function - pointers. -<LI CLASS="li-itemize"><B>May 30, 2005</B>: Fixed bugs in the handling of constructors in gcc. -<LI CLASS="li-itemize"><B>May 30, 2005</B>: Fixed bugs in the generation of global variable IDs. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Reimplemented the translation of function calls so - that we can intercept some builtins. This is important for the uses of - __builtin_constant_p in constants. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Export the plainCilPrinter, for debugging. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Fixed bug with printing of const attribute for - arrays. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Fixed bug in generation of type signatures. Now they - should not contain expressions anymore, so you can use structural equality. - This used to lead to Out_of_Memory exceptions. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Fixed bug in type comparisons using - TBuiltin_va_list. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Improved the constant folding in array lengths and - case expressions. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Added the <TT>__builtin_frame_address</TT> to the set - of gcc builtins. -<LI CLASS="li-itemize"><B>May 27, 2005</B>: Added the CIL project to SourceForge. -<LI CLASS="li-itemize"><B>April 23, 2005</B>: The cattr field was not visited. -<LI CLASS="li-itemize"><B>March 6, 2005</B>: Debian packaging support -<LI CLASS="li-itemize"><B>February 16, 2005</B>: Merger fixes. -<LI CLASS="li-itemize"><B>February 11, 2005</B>: Fixed a bug in <TT>--dopartial</TT>. Thanks to -Nathan Cooprider for this fix. -<LI CLASS="li-itemize"><B>January 31, 2005</B>: Make sure the input file is closed even if a - parsing error is encountered. -<LI CLASS="li-itemize"><B>January 11, 2005</B>: <B>Released version 1.3.2</B> -<LI CLASS="li-itemize"><B>January 11, 2005</B>: Fixed printing of integer constants whose - integer kind is shorter than an int. -<LI CLASS="li-itemize"><B>January 11, 2005</B>: Added checks for negative size arrays and arrays - too big. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Added support for GCC attribute “volatile” for - tunctions (as a synonim for noreturn). -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Improved the comparison of array sizes when - comparing array types. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Fixed handling of shell metacharacters in the - cilly command lione. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Fixed dropping of cast in initialization of - local variable with the result of a function call. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Fixed some structural comparisons that were - broken in the Ocaml 3.08. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Fixed the <TT>unrollType</TT> function to not forget - attributes. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Better keeping track of locations of function - prototypes and definitions. -<LI CLASS="li-itemize"><B>January 10, 2005</B>: Fixed bug with the expansion of enumeration - constants in attributes. -<LI CLASS="li-itemize"><B>October 18, 2004</B>: Fixed a bug in cabsvisit.ml. CIl would wrap a - BLOCK around a single atom unnecessarily. -<LI CLASS="li-itemize"><B>August 7, 2004</B>: <B>Released version 1.3.1</B> -<LI CLASS="li-itemize"><B>August 4, 2004</B>: Fixed a bug in splitting of structs using - <TT>--dosimplify</TT> -<LI CLASS="li-itemize"><B>July 29, 2004</B>: Minor changes to the type typeSig (type signatures) - to ensure that they do not contain types, so that you can do structural - comparison without danger of nontermination. -<LI CLASS="li-itemize"><B>July 28, 2004</B>: Ocaml version 3.08 is required. Numerous small - changes while porting to Ocaml 3.08. -<LI CLASS="li-itemize"><B>July 7, 2004</B>: <B>Released version 1.2.6</B> -<LI CLASS="li-itemize"><B>July 2, 2004</B>: Character constants such as <TT>'c'</TT> should - have type <TT>int</TT>, not <TT>char</TT>. Added a utility function - <TT>Cil.charConstToInt</TT> that sign-extends chars greater than 128, if needed. -<LI CLASS="li-itemize"><B>July 2, 2004</B>: Fixed a bug that was casting values to int - before applying the logical negation operator !. This caused - problems for floats, and for integer types bigger than <TT>int</TT>. -<LI CLASS="li-itemize"><B>June 13, 2004</B>: Added the field <TT>sallstmts</TT> to a function - description, to hold all statements in the function. -<LI CLASS="li-itemize"><B>June 13, 2004</B>: Added new extensions for data flow analyses, and - for computing dominators. -<LI CLASS="li-itemize"><B>June 10, 2004</B>: Force initialization of CIL at the start of -Cabs2cil. -<LI CLASS="li-itemize"><B>June 9, 2004</B>: Added support for GCC <TT>__attribute_used__</TT> -<LI CLASS="li-itemize"><B>April 7, 2004</B>: <B>Released version 1.2.5</B> -<LI CLASS="li-itemize"><B>April 7, 2004</B>: Allow now to run ./configure CC=cl and set the MSVC -compiler to be the default. The MSVC driver will now select the default name -of the .exe file like the CL compiler. -<LI CLASS="li-itemize"><B>April 7, 2004</B>: Fixed a bug in the driver. The temporary files are -deleted by the Perl script before the CL compiler gets to them? -<LI CLASS="li-itemize"><B>April 7, 2004</B>: Added the - form of arguments to the MSVC driver. -<LI CLASS="li-itemize"><B>April 7, 2004</B>: Added a few more GCC-specific string escapes, (, [, -{, %, E. -<LI CLASS="li-itemize"><B>April 7, 2004</B>: Fixed bug with continuation lines in MSVC. -<LI CLASS="li-itemize"><B>April 6, 2004</B>: Fixed embarassing bug in the parser: the precedence - of casts and unary operators was switched. -<LI CLASS="li-itemize"><B>April 5, 2004</B>: Fixed a bug involving statements mixed between -declarations containing initializers. Now we make sure that the initializers -are run in the proper order with respect to the statements. -<LI CLASS="li-itemize"><B>April 5, 2004</B>: Fixed a bug in the merger. The merger was keeping -separate alpha renaming talbes (namespaces) for variables and types. This -means that it might end up with a type and a variable named the same way, if -they come from different files, which breaks an important CIL invariant. -<LI CLASS="li-itemize"><B>March 11, 2004</B> : Fixed a bug in the Cil.copyFunction function. The -new local variables were not getting fresh IDs. -<LI CLASS="li-itemize"><B>March 5, 2004</B>: Fixed a bug in the handling of static function - prototypes in a block scope. They used to be renamed. Now we just consider - them global. -<LI CLASS="li-itemize"><B>February 20, 2004</B>: <B>Released version 1.2.4</B> -<LI CLASS="li-itemize"><B>February 15, 2004</B>: Changed the parser to allow extra semicolons - after field declarations. -<LI CLASS="li-itemize"><B>February 14, 2004</B>: Changed the Errormsg functions: error, unimp, -bug to not raise an exception. Instead they just set Errormsg.hadErrors. -<LI CLASS="li-itemize"><B>February 13, 2004</B>: Change the parsing of attributes to recognize - enumeration constants. -<LI CLASS="li-itemize"><B>February 10, 2004</B>: In some versions of <TT>gcc</TT> the identifier - _{thread is an identifier and in others it is a keyword. Added code - during configuration to detect which is the case. -<LI CLASS="li-itemize"><B>January 7, 2004</B>: <B>Released version 1.2.3</B> -<LI CLASS="li-itemize"><B>January 7, 2004</B>: Changed the alpha renamer to be less -conservative. It will remember all versions of a name that were seen and will -only create a new name if we have not seen one. -<LI CLASS="li-itemize"><B>December 30, 2003</B> : Extended the <TT>cilly</TT> command to understand - better linker command options <TT>-lfoo</TT>. -<LI CLASS="li-itemize"><B>December 5, 2003</B>: Added markup commands to the pretty-printer -module. Also, changed the “@<” left-flush command into “@''. -<LI CLASS="li-itemize"><B>December 4, 2003</B>: Wide string literals are now handled -directly by Cil (rather than being exploded into arrays). This is -apparently handy for Microsoft Device Driver APIs that use intrinsic -functions that require literal constant wide-string arguments. -<LI CLASS="li-itemize"><B>December 3, 2003</B>: Added support for structured exception handling - extensions for the Microsoft compilers. -<LI CLASS="li-itemize"><B>December 1, 2003</B>: Fixed a Makefile bug in the generation of the -Cil library (e.g., <TT>cil.cma</TT>) that was causing it to be unusable. Thanks -to KEvin Millikin for pointing out this bug. -<LI CLASS="li-itemize"><B>November 26, 2003</B>: Added support for linkage specifications - (extern “C”). -<LI CLASS="li-itemize"><B>November 26, 2003</B>: Added the ocamlutil directory to contain some -utilities shared with other projects. -<LI CLASS="li-itemize"><B>November 25, 2003</B>: <B>Released version 1.2.2</B> -<LI CLASS="li-itemize"><B>November 24, 2003</B>: Fixed a bug that allowed a static local to - conflict with a global with the same name that is declared later in the - file. -<LI CLASS="li-itemize"><B>November 24, 2003</B>: Removed the <TT>--keep</TT> option of the <TT>cilly</TT> - driver and replaced it with <TT>--save-temps</TT>. -<LI CLASS="li-itemize"><B>November 24, 2003</B>: Added printing of what CIL features are being - run. -<LI CLASS="li-itemize"><B>November 24, 2003</B>: Fixed a bug that resulted in attributes being - dropped for integer types. -<LI CLASS="li-itemize"><B>November 11, 2003</B>: Fixed a bug in the visitor for enumeration - definitions. -<LI CLASS="li-itemize"><B>October 24, 2003</B>: Fixed a problem in the configuration script. It - was not recognizing the Ocaml version number for beta versions. -<LI CLASS="li-itemize"><B>October 15, 2003</B>: Fixed a problem in version 1.2.1 that was - preventing compilation on OCaml 3.04. -<LI CLASS="li-itemize"><B>September 17, 2003: Released version 1.2.1.</B> -<LI CLASS="li-itemize"><B>September 7, 2003</B>: Redesigned the interface for choosing - <TT>#line</TT> directive printing styles. Cil.printLn and - Cil.printLnComment have been merged into Cil.lineDirectiveStyle. -<LI CLASS="li-itemize"><B>August 8, 2003</B>: Do not silently pad out functions calls with -arguments to match the prototype. -<LI CLASS="li-itemize"><B>August 1, 2003</B>: A variety of fixes suggested by Steve Chamberlain: -initializers for externs, prohibit float literals in enum, initializers for -unsized arrays were not working always, an overflow problem in Ocaml, changed -the processing of attributes before struct specifiers<BR> -<BR> -<LI CLASS="li-itemize"><B>July 14, 2003</B>: Add basic support for GCC's "__thread" storage -qualifier. If given, it will appear as a "thread" attribute at the top of the -type of the declared object. Treatment is very similar to "__declspec(...)" -in MSVC<BR> -<BR> -<LI CLASS="li-itemize"><B>July 8, 2003</B>: Fixed some of the __alignof computations. Fixed - bug in the designated initializers for arrays (Array.get error). -<LI CLASS="li-itemize"><B>July 8, 2003</B>: Fixed infinite loop bug (Stack Overflow) in the - visitor for __alignof. -<LI CLASS="li-itemize"><B>July 8, 2003</B>: Fixed bug in the conversion to CIL. A function or - array argument of - the GCC __typeof() was being converted to pointer type. Instead, it should - be left alone, just like for sizeof. -<LI CLASS="li-itemize"><B>July 7, 2003</B>: New Escape module provides utility functions - for escaping characters and strings in accordance with C lexical - rules.<BR> -<BR> -<LI CLASS="li-itemize"><B>July 2, 2003</B>: Relax CIL's rules for when two enumeration types are -considered compatible. Previously CIL considered two enums to be compatible if -they were the same enum. Now we follow the C99 standard.<BR> -<BR> -<LI CLASS="li-itemize"><B>June 28, 2003</B>: In the Formatparse module, Eric Haugh found and - fixed a bug in the handling of lvalues of the form “lv->field.more”.<BR> -<BR> -<LI CLASS="li-itemize"><B>June 28, 2003</B>: Extended the handling of gcc command lines -arguments in the Perl scripts. <BR> -<BR> -<LI CLASS="li-itemize"><B>June 23, 2003</B>: In Rmtmps module, simplified the API for - customizing the root set. Clients may supply a predicate that - returns true for each root global. Modifying various - “<TT>referenced</TT>” fields directly is no longer supported.<BR> -<BR> -<LI CLASS="li-itemize"><B>June 17, 2003</B>: Reimplement internal utility routine - <TT>Cil.escape_char</TT>. Faster and better. <BR> -<BR> -<LI CLASS="li-itemize"><B>June 14, 2003</B>: Implemented support for <TT>__attribute__s</TT> -appearing between "struct" and the struct tag name (also for unions and -enums), since gcc supports this as documented in section 4.30 of the gcc -(2.95.3) manual<BR> -<BR> -<LI CLASS="li-itemize"><B>May 30, 2003</B>: Released the regression tests. -<LI CLASS="li-itemize"><B>May 28, 2003</B>: <B>Released version 1.1.2</B> -<LI CLASS="li-itemize"><B>May 26, 2003</B>: Add the <TT>simplify</TT> module that compiles CIL -expressions into simpler expressions, similar to those that appear in a -3-address intermediate language. -<LI CLASS="li-itemize"><B>May 26, 2003</B>: Various fixes and improvements to the pointer -analysis modules. -<LI CLASS="li-itemize"><B>May 26, 2003</B>: Added optional consistency checking for -transformations. -<LI CLASS="li-itemize"><B>May 25, 2003</B>: Added configuration support for big endian machines. -Now <A HREF="api/Cil.html#VALlittle_endian">Cil.little_endian</A> can be used to test whether the machine is -little endian or not. -<LI CLASS="li-itemize"><B>May 22, 2003</B>: Fixed a bug in the handling of inline functions. The -CIL merger used to turn these functions into “static”, which is incorrect. -<LI CLASS="li-itemize"><B>May 22, 2003</B>: Expanded the CIL consistency checker to verify -undesired sharing relationships between data structures. -<LI CLASS="li-itemize"><B>May 22, 2003</B>: Fixed bug in the <TT>oneret</TT> CIL module: it was -mishandling certain labeled return statements. -<LI CLASS="li-itemize"><B>May 5, 2003</B>: <B>Released version 1.0.11</B> -<LI CLASS="li-itemize"><B>May 5, 2003</B>: OS X (powerpc/darwin) support for CIL. Special -thanks to Jeff Foster, Andy Begel and Tim Leek. -<LI CLASS="li-itemize"><B>April 30, 2003</B>: Better description of how to use CIL for your -analysis. -<LI CLASS="li-itemize"><B>April 28, 2003</B>: Fixed a bug with <TT>--dooneRet</TT> and -<TT>--doheapify</TT>. Thanks, Manos Renieris. -<LI CLASS="li-itemize"><B>April 16, 2003</B>: Reworked management of - temporary/intermediate output files in Perl driver scripts. Default - behavior is now to remove all such files. To keep intermediate - files, use one of the following existing flags: - <UL CLASS="itemize"><LI CLASS="li-itemize"> - <TT>--keepmerged</TT> for the single-file merge of all sources - <LI CLASS="li-itemize"><TT>--keep=<<I>dir</I></TT><TT>></TT> for various other CIL and - CCured output files - <LI CLASS="li-itemize"><TT>--save-temps</TT> for various gcc intermediate files; MSVC - has no equivalent option - </UL> - As part of this change, some intermediate files have changed their - names slightly so that new suffixes are always preceded by a - period. For example, CCured output that used to appear in - “<TT>foocured.c</TT>” now appears in “<TT>foo.cured.c</TT>”. -<LI CLASS="li-itemize"><B>April 7, 2003</B>: Changed the representation of the <A HREF="api/Cil.html#VALGVar">Cil.GVar</A> -global constructor. Now it is possible to update the initializer without -reconstructing the global (which in turn it would require reconstructing the -list of globals that make up a program). We did this because it is often -tempting to use <A HREF="api/Cil.html#VALvisitCilFileSameGlobals">Cil.visitCilFileSameGlobals</A> and the <A HREF="api/Cil.html#VALGVar">Cil.GVar</A> -was the only global that could not be updated in place. -<LI CLASS="li-itemize"><B>April 6, 2003</B>: Reimplemented parts of the cilly.pl script to make -it more robust in the presence of complex compiler arguments. -<LI CLASS="li-itemize"><B>March 10, 2003</B>: <B>Released version 1.0.9</B> -<LI CLASS="li-itemize"><B>March 10, 2003</B>: Unified and documented a large number of CIL -Library Modules: oneret, simplemem, makecfg, heapify, stackguard, partial. -Also documented the main client interface for the pointer analysis. -<LI CLASS="li-itemize"><B>February 18, 2003</B>: Fixed a bug in logwrites that was causing it -to produce invalid C code on writes to bitfields. Thanks, David Park. -<LI CLASS="li-itemize"><B>February 15, 2003</B>: <B>Released version 1.0.8</B> -<LI CLASS="li-itemize"><B>February 15, 2003</B>: PDF versions of the manual and API are -available for those who would like to print them out. -<LI CLASS="li-itemize"><B>February 14, 2003</B>: CIL now comes bundled with alias analyses. -<LI CLASS="li-itemize"><B>February 11, 2003</B>: Added support for adding/removing options from - <TT>./configure</TT>. -<LI CLASS="li-itemize"><B>February 3, 2003</B>: <B>Released version 1.0.7</B> -<LI CLASS="li-itemize"><B>February 1, 2003</B>: Some bug fixes in the handling of variable -argument functions in new versions of <TT>gcc</TT> And <TT>glibc</TT>. -<LI CLASS="li-itemize"><B>January 29, 2003</B>: Added the logical AND and OR operators. -Exapanded the translation to CIL to handle more complicated initializers -(including those that contain logical operators). -<LI CLASS="li-itemize"><B>January 28, 2003</B>: <B>Released version 1.0.6</B> -<LI CLASS="li-itemize"><B>January 28, 2003</B>: Added support for the new handling of -variable-argument functions in new versions of <TT>glibc</TT>. -<LI CLASS="li-itemize"><B>January 19, 2003</B>: Added support for declarations in interpreted - constructors. Relaxed the semantics of the patterns for variables. -<LI CLASS="li-itemize"><B>January 17, 2003</B>: Added built-in prototypes for the gcc built-in - functions. Changed the <TT>pGlobal</TT> method in the printers to print the - carriage return as well. -<LI CLASS="li-itemize"><B>January 9, 2003</B>: Reworked lexer and parser's strategy for - tracking source file names and line numbers to more closely match - typical native compiler behavior. The visible CIL interface is - unchanged. -<LI CLASS="li-itemize"><B>January 9, 2003</B>: Changed the interface to the alpha convertor. Now -you can pass a list where it will record undo information that you can use to -revert the changes that it makes to the scope tables. -<LI CLASS="li-itemize"><B>January 6, 2003</B>: <B>Released version 1.0.5</B> -<LI CLASS="li-itemize"><B>January 4, 2003</B>: Changed the interface for the Formatcil module. - Now the placeholders in the pattern have names. Also expanded the - documentation of the Formatcil module. - Now the placeholders in the pattern have names. -<LI CLASS="li-itemize"><B>January 3, 2003</B>: Extended the <TT>rmtmps</TT> module to also remove - unused labels that are generated in the conversion to CIL. This reduces the - number of warnings that you get from <TT>cgcc</TT> afterwards. -<LI CLASS="li-itemize"><B>December 17, 2002</B>: Fixed a few bugs in CIL related to the - representation of string literals. The standard says that a string literal - is an array. In CIL, a string literal has type pointer to character. This is - Ok, except as an argument of sizeof. To support this exception, we have - added to CIL the expression constructor SizeOfStr. This allowed us to fix - bugs with computing <TT>sizeof("foo bar")</TT> and <TT>sizeof((char*)"foo bar")</TT> - (the former is 8 and the latter is 4).<BR> -<BR> -<LI CLASS="li-itemize"><B>December 8, 2002</B>: Fixed a few bugs in the lexer and parser - relating to hex and octal escapes in string literals. Also fixed - the dependencies between the lexer and parser. -<LI CLASS="li-itemize"><B>December 5, 2002</B>: Fixed visitor bugs that were causing - some attributes not to be visited and some queued instructions to be - dropped. -<LI CLASS="li-itemize"><B>December 3, 2002</B>: Added a transformation to catch stack - overflows. Fixed the heapify transformation. -<LI CLASS="li-itemize"><B>October 14, 2002</B>: CIL is now available under the BSD license -(see the License section or the file LICENSE). <B>Released version 1.0.4</B> -<LI CLASS="li-itemize"><B>October 9, 2002</B>: More FreeBSD configuration changes, support -for the GCC-ims <TT>__signed</TT> and <TT>__volatile</TT>. Thanks to Axel -Simon for pointing out these problems. <B>Released version 1.0.3</B> -<LI CLASS="li-itemize"><B>October 8, 2002</B>: FreeBSD configuration and porting fixes. -Thanks to Axel Simon for pointing out these problems. -<LI CLASS="li-itemize"><B>September 10, 2002</B>: Fixed bug in conversion to CIL. Now we drop -all “const” qualifiers from the types of locals, even from the fields of -local structures or elements of arrays. -<LI CLASS="li-itemize"><B>September 7, 2002</B>: Extended visitor interface to distinguish visitng - offsets inside lvalues from offsets inside initializer lists. -<LI CLASS="li-itemize"><B>September 7, 2002</B>: <B>Released version 1.0.1</B> -<LI CLASS="li-itemize"><B>September 6, 2002</B>: Extended the patcher with the <TT>ateof</TT> flag. -<LI CLASS="li-itemize"><B>September 4, 2002</B>: Fixed bug in the elaboration to CIL. In some -cases constant folding of <TT>||</TT> and <TT>&&</TT> was computed wrong. -<LI CLASS="li-itemize"><B>September 3, 2002</B>: Fixed the merger documentation. -<LI CLASS="li-itemize"><B>August 29, 2002</B>: <B>Released version 1.0.0.</B> -<LI CLASS="li-itemize"><B>August 29, 2002</B>: Started numbering versions with a major nubmer, -minor and revisions. Released version 1.0.0. -<LI CLASS="li-itemize"><B>August 25, 2002</B>: Fixed the implementation of the unique -identifiers for global variables and composites. Now those identifiers are -globally unique. -<LI CLASS="li-itemize"><B>August 24, 2002</B>: Added to the machine-dependent configuration the -<TT>sizeofvoid</TT>. It is 1 on gcc and 0 on MSVC. Extended the implementation of -<TT>Cil.bitsSizeOf</TT> to handle this (it was previously returning an error when -trying to compute the size of <TT>void</TT>). -<LI CLASS="li-itemize"><B>August 24, 2002</B>: Changed the representation of structure and -unions to distinguish between undefined structures and those that are defined -to be empty (allowed on gcc). The sizeof operator is undefined for the former -and returns 0 for the latter. -<LI CLASS="li-itemize"><B>August 22, 2002</B>: Apply a patch from Richard H. Y. to support -FreeBSD installations. Thanks, Richard! -<LI CLASS="li-itemize"><B>August 12, 2002</B>: Fixed a bug in the translation of wide-character -strings. Now this translation matches that of the underlying compiler. Changed -the implementation of the compiler dependencies. -<LI CLASS="li-itemize"><B>May 25, 2002</B>: Added interpreted constructors and destructors. -<LI CLASS="li-itemize"><B>May 17, 2002</B>: Changed the representation of functions to move the -“inline” information to the varinfo. This way we can print the “inline” -even in declarations which is what gcc does. -<LI CLASS="li-itemize"><B>May 15, 2002</B>: Changed the visitor for initializers to make two -tail-recursive passes (the second is a <TT>List.rev</TT> and only done if one of -the initializers change). This prevents <TT>Stack_Overflow</TT> for large -initializers. Also improved the processing of initializers when converting to -CIL. -<LI CLASS="li-itemize"><B>May 15, 2002</B>: Changed the front-end to allow the use of <TT>MSVC</TT> -mode even on machines that do not have MSVC. The machine-dependent parameters -for GCC will be used in that case. -<LI CLASS="li-itemize"><B>May 11, 2002</B>: Changed the representation of formals in function -types. Now the function type is purely functional. -<LI CLASS="li-itemize"><B>May 4, 2002</B>: Added the function -<A HREF="api/Cil.html#VALvisitCilFileSameGlobals">Cil.visitCilFileSameGlobals</A> and changed <A HREF="api/Cil.html#VALvisitCilFile">Cil.visitCilFile</A> to be -tail recursive. This prevents stack overflow on huge files. -<LI CLASS="li-itemize"><B>February 28, 2002</B>: Changed the significance of the -<TT>CompoundInit</TT> in <A HREF="api/Cil.html#TYPEinit">Cil.init</A> to allow for missing initializers at the -end of an array initializer. Added the API function -<A HREF="api/Cil.html#VALfoldLeftCompoundAll">Cil.foldLeftCompoundAll</A>. -</UL> -<HR> -<A HREF="cil019.html"><IMG SRC ="previous_motif.gif" ALT="Previous"></A> -<A HREF="ciltoc.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A> -</BODY> -</HTML> |