summaryrefslogtreecommitdiff
path: root/Source/Core/Util.cs
Commit message (Collapse)AuthorAge
* Merging complete. Everything looks good *crosses fingers*Gravatar Checkmate502016-06-06
|
* Protect the Args field of NAryExpr when it is immutable.Gravatar Dan Liew2015-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Made changing the reference throw an exception if the NAryExpr was constructed as immutable * Changed the type of NAryExpr.Args to be IList<Expr> rather than List<Expr> so that when the NAryExpr is immutable I can return ``_Args.AsReadOnly()`` (instead of ``_Args``) which returns a read only wrapper around the List<Expr> so that clients cannot change the list. I came across two problems * Making this change required changing types all over the place (from List<Expr> to IList<Expr>). I feel that changes are extensive enough that there's a good chance that out of tree clients using Boogie's libraries might break. I've waited for a code review but this didn't happen so I'm committing anyway. * I came across something that looks like bad design of the IAppliable interface which potentially breaks immutability enforcement. I've left this as a "FIXME" in this. Here's the problematic method. ``` Type Typecheck(ref List<Expr>/*!*/ args, out TypeParamInstantiation/*!*/ tpInstantiation, TypecheckingContext/*!*/ tc); ``` It potentially allows the instance of the args to be changed which seems very suspect.
* Fixed minor issue.Gravatar wuestholz2015-01-26
|
* Minor changeGravatar wuestholz2015-01-26
|
* Made invariant of class 'IfThenElse' robust by changing the designGravatar 0biha2015-01-01
| | | | (replaced public field by private field + getter/setter)
* Made invariant of class 'Absy' robust by changing the design (added ↵Gravatar 0biha2014-12-09
| | | | getter/setter instead of public field).
* Fix issue in computation of checksums for indented statements.Gravatar wuestholz2014-10-15
|
* Helper proceduresGravatar akashlal2014-07-28
|
* Fix nasty bug introduced by commit 61a94f409975.Gravatar Dan Liew2014-07-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were many calls in the code to ``` new TokenTextWriter("<buffer>", buffer, false) ``` Prior to 61a94f409975 this was a call to the following constructor ``` TokenTextWriter(string filename, TextWriter writer, bool setTokens) ``` After that commit these then became calls to ``` TokenTextWriter(string filename, TextWriter writer, bool pretty) ``` An example of where this would cause issues was if ToString() was called on an AbsyCmd then the its token would be modified because the setTokens parameter was effectively set to True when the original intention was for it to be set to false! To fix this I've * Removed the default parameter value for pretty and fixed all uses so that we pass false where it was implicitly being set before * Where the intention was to set setTokens to false this has been fixed so it is actually set to false! Unfortunately I couldn't find a way of observing this bug from the Boogie executable so I couldn't create a test case. I could only observe it when I was using Boogie's APIs.
* Did some refactoring, fixed minor issues, and made it apply the more ↵Gravatar wuestholz2014-07-06
| | | | advanced verification result caching even for implementations with errors.
* Add some pretty-printing, on by default. Turn off with the flag "/pretty:0"Gravatar Dan Rosén2014-06-24
| | | | | | When running boogie form the command line, this should be on by default. On the other hand, the TokenTextWriter constructors and PrintBplFile now have an argument for this, but by default it is off.
* ExprSeq: farewellGravatar Ally Donaldson2013-07-22
|
* More refactoring towards replacing PureCollections.Sequence with ListGravatar Ally Donaldson2013-07-22
|
* Removed old comments about "BASEMOVE" and other constructor calls, where the ↵Gravatar Unknown2013-01-07
| | | | conversion from Spec# into C# moved a constructor call
* Boogie: added type 'real' with overloaded arithmetic operations plus real ↵Gravatar boehmes2012-09-27
| | | | | | | | | division '/' and (uninterpreted) real exponentiation '**', real literals and coercion functions 'int' and 'real'; Integer operations 'div' and 'mod' are now mapped to corresponding SMT-LIB operations instead of treating them uninterpreted; Made unary minus valid Boogie syntax again (the expression '- e' used to be rewritten by the parser to '0 - e', now this is done when generating VCs); Extended the BigDec class with additional functionality; Added test cases for SMT-LIB prover backend (the Z3 API interface has been adapted accordingly, but is untested)
* Boogie: new syntax for integer division and modulus: use div and mod instead ↵Gravatar boehmes2012-09-27
| | | | of / and %
* GPUVerify: implement is-a-constant analysisGravatar Peter Collingbourne2012-06-15
| | | | | | | | | | | | | This analysis is used to generate race checking invariants for arbitrary (thread-level) constant offsets, in place of invariant generators for four specific constants (thread-id, global-id, 2D thread-id and 2D global-id) which are subsumed by the new analysis. The main motivation is to be able to recognise offsets used by word level accesses into byte arrays, which are formed from linear combinations of thread IDs and constants. This change allows us to remove the 2D and global size analyses, resulting in a 536-line net reduction in total code size.
* Use DateTime.UtcNow instead of DateTime.NowGravatar stobies2012-01-11
| | | | see http://blogs.msdn.com/b/kirillosenkov/archive/2012/01/10/datetime-utcnow-is-generally-preferable-to-datetime-now.aspx
* Fixed the Boogie build.Gravatar wuestholz2011-12-16
|
* Dafny: Made sure that error locations refer to the Dafny program, even if ↵Gravatar wuestholz2011-12-15
| | | | the /print option is used.
* Add IEnumerable.Concat1 method.Gravatar MichalMoskal2011-02-23
|
* Add IEnumerable.IterGravatar MichalMoskal2011-02-17
|
* Add some extension methods to IEnumberable<T>Gravatar MichalMoskal2011-02-15
|
* Get rid of some warnings.Gravatar MichalMoskal2011-02-11
|
* Boogie: Committing changed source filesGravatar tabarbe2010-08-20
|
* Boogie: Renaming core sources in preparation for port commitGravatar tabarbe2010-08-20