summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Boogie: Added stratified inlining. It is enabled using the flag ↵Gravatar akashlal2010-07-07
| | | | /stratifiedInline:1.
* Dafny: keep counters for loops, temporary variables across two ↵Gravatar kyessenov2010-07-07
| | | | implementations in the refinement VC
* [Aste] Success: Committing summary due to changes.Gravatar codeplexbot2010-07-06
|
* Dafny:Gravatar rustanleino2010-07-06
| | | | | * changed rule about scoping of out-parameters * added "refines", "replaces", and "by" as keywords in emacs, vim, and latex style files
* [Aste] Added summary.logGravatar codeplexbot2010-07-06
|
* Added a comment noting that this test fails with Z3 2.4.Gravatar mschwerhoff2010-07-06
|
* Boogie: Added an additional parameter 'defines' to the method ↵Gravatar wuestholz2010-07-06
| | | | 'BoogiePL.Parser.Parse'.
* General hygiene: introduced (fixed) a helper method that creates Boogie ↵Gravatar mikebarnett2010-07-05
| | | | tokens. Made it an extension method that takes any object implementing IObjectWithLocations. Much easier to use within the translator.
* Cleaned up the sink: removed the OutVars, which was state the sink needed ↵Gravatar mikebarnett2010-07-05
| | | | only for assigning the local copy of a method's parameter to the out parameter of the Boogie procedure. But now that is simplified: instead of three versions of each parameter (in, local, and out), there are only two: in and out. For a parameter that is *not* by reference and is *not* an out parameter (i.e., just a plain pass-by-value parameter), the "out" version is a local variable. Otherwise it is an out parameter of the Boogie procedure.
* Forgotten file: Sink.csGravatar mikebarnett2010-07-05
| | | | Added an override of ToString so MethodParameters show up nicer in the debugger.
* Chalice: Changed definition of waitlevel to take into account rdlock. ↵Gravatar mueller2010-07-03
| | | | Adapted definition of IsGoodInhaleState and an axiom.
* Dafny: added assertions in the refinement obligation necessitating that the ↵Gravatar kyessenov2010-07-03
| | | | return values of concrete and abstract executions are equal. Refactored a test to simulate "static" function call.
* Dafny: Support class type parameters in refinements. Added another ↵Gravatar kyessenov2010-07-02
| | | | regression test -- a sequence refined by a singly linked list.
* Introduction of the Sink: a global object that is threaded through all of ↵Gravatar mikebarnett2010-07-02
| | | | the traversers and which contains the information that they need to share with each other.
* Dafny: added Carrol Morgan's calculator regression test.Gravatar kyessenov2010-07-02
|
* Dafny: support input/output parameters in refined methods.Gravatar kyessenov2010-07-02
|
* Dafny: added a regression test for the refinement extension.Gravatar kyessenov2010-07-02
|
* Added a simple refinement extension to Dafny. The new keywords are "refines" ↵Gravatar kyessenov2010-07-02
| | | | (for classes and methods) and "replaces .. by" (for coupling invariants.) Extended grammar, printer, resolver, and translator to support this extension. Compiler does not support the extension yet.
* Boogie: Fixed the build.Gravatar wuestholz2010-07-02
|
* These 2 files are remnants of attempting the earlier planned method of ↵Gravatar tabarbe2010-07-01
| | | | | | renaming the .ssc files to .cs. They are being deleted because my porting work will be done completely on my local disc, until such time that I want to merge ported code into the project. With regards to the renaming problem, Stephan Tobies has found that the logs are kept on the CodePlex server, and are just not provided to the SVN client. He has created a Codeplex work item at http://codeplex.codeplex.com/workitem/25490. If it gets voted up sufficiently, it may get CodePlex to provide that log information, and thus help with future work regarding the Boogie depot.
* As it turns out, the C# Intellisense compiler takes precedence over the ↵Gravatar tabarbe2010-07-01
| | | | Spec# Intellisense compiler during editing of a .cs file. So, in order to allow continued editing of Boogie, during my porting project I will not be renaming the .ssc files to .cs, but rather creating copies of, for example, the BoogieDriver project's files, naming them as .cs versions, and porting them the rest of the way into C#. I will build these projects and run the regression tests on them, and once (and only once) the reg tests are passed, I will commit the compiled C# output as the replacement for the Spec# component.
* I am working to port Boogie from Spec# to C#. As part of this process, I ↵Gravatar tabarbe2010-06-30
| | | | | | need to rename the .ssc files to .cs. Unfortunately, using the Tortoise SVN Source Control software, the changelog of the files I rename is lost. (I welcome anyone's ideas on how to do a more efficient/useful rename.) I will then port using VS 2010, creating a duplicate project on my harddisk, and translating it to pure C#. When I have my code successfully compiling, I will replace the Spec# version with my C# porting, run regressions, and if successful, commit my changes. Editing Boogie in Spec# should still function with the .ssc files renamed to .cs files.
* (no commit message)Gravatar tabarbe2010-06-30
|
* Forgotten file.Gravatar mikebarnett2010-06-30
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* (no commit message)Gravatar tabarbe2010-06-29
|
* Testing whether history of an old file remains after rename and commit.Gravatar tabarbe2010-06-29
|
* Simplified the translator by merging the ToplevelTraverser, ClassTraverser, ↵Gravatar mikebarnett2010-06-28
| | | | and MethodTraverser into one traverser: MetadataTraverser. It will have to do a little more work to keep its state consistent (like saving any type-related state before traversing a nested type definition), but it seems worth it.
* Chalice:Gravatar rustanleino2010-06-25
| | | | | * renamed keyword "maxlock" to "waitlevel" * added -vs switch, for I/O suitable for VS integration
* Chalice: Applied patch #6192Gravatar mueller2010-06-25
| | | | Patches the translation of "assert" statements, so that the meaning of "old" is preserved when the temporary copy of the heap is made for the exhale.
* Unified the .frame files so that both Boogie and Dafny use exactly the same ↵Gravatar mikebarnett2010-06-25
| | | | ones.
* slightly improved syntax fileGravatar kyessenov2010-06-24
|
* Dafny:Gravatar rustanleino2010-06-24
| | | | | * re-introduced the feature where an input filename of "stdin.dfy" says to read the program from standard input * supplied missing case (NotInSet) in Compiler.ssc
* Dafny:Gravatar rustanleino2010-06-24
| | | | | * For every loop decreases clause N, generate a free loop invariant N <= N0, where N0 is the value of N just before the loop. * Added Test/dafny1/KatzManna.dfy, which contains the 3 programs (and their termination annotations) from the Katz and Manna 1975 paper "A closer look at termination" (which benefits from the feature above).
* Updated the frame files to work with the latest Coco/R. This entails *not* ↵Gravatar mikebarnett2010-06-22
| | | | | | having them in this repository because of license issues. Instead, they must be downloaded from http://boogiepartners.codeplex.com/ and then copied into the appropriate directories. Lots of code changes to compensate for the new frame files.
* Boogie:Gravatar rustanleino2010-06-22
| | | | | | | | | * Set Z3's QI_COST as the sum of "weight" and "generation", not their product. This worked better when setting the :weight of a quantifier (see below). Dafny: * Improved axiomatization of sequences; in particular, use an axiom to generate terms that say what the two pieces of a concatenation are * Two of the (previous) sequence axioms could cause a matching loop, in cases where Z3's arithmetic reasoning does not infer all rational arithmetic equalities during instantiation. The effect of this was apparently not noticed before, perhaps the concatenation/drop properties previously had to be supplied in manual assert statements. But now, with the improved sequence axiomatization (see previous bullet), this effect became remarkably noticeable. To reduce the bad effect of this apparent matching loop, Michal and I added a :weight annotation on two of the axioms, which, along with the Boogie change above, seems to give acceptable results. * Removed several assert lemmas that are no longer needed in Test programs (the test programs now contain only about a handful of such lemmas)
* VIM syntax file for BPL. I just had it laying around.Gravatar MichalMoskal2010-06-21
|
* A simple highlighting syntax file for Vim.Gravatar kyessenov2010-06-21
|
* Dafny:Gravatar rustanleino2010-06-19
| | | | | | * Improved design and implementation of SplitExpr * Fixed some tests in dafny0/Use.dfy * Added test case (in dafny0/Termination.dfy) to test the recent strengthening of set axioms
* Dafny:Gravatar rustanleino2010-06-18
| | | | | | * Added some more set axioms that go "inside out" for union and set differences (UnionOne already had such an axiom) * Fixed bug to, once again, allow multiple .dfy files on the command line (with the effect of them being merged into one program) * Fixed bug in translation of reads/modifies clauses that mention sequences
* Added the factory pattern so that all traversers are created through factory ↵Gravatar mikebarnett2010-06-16
| | | | | | | methods. This is the beginning of allowing plugins to perform methodology-specific translations. Added a CLR traverser that is meant to encode the CLR semantics. For now it just does one thing: add the assertion that a divisor should not be zero. Added an MS Test project so that we can use that for regression testing.