1. 02 Sep, 2014 1 commit
  2. 08 Aug, 2014 1 commit
  3. 14 Mar, 2014 1 commit
  4. 08 Nov, 2013 1 commit
  5. 01 Nov, 2013 1 commit
    • Andrei Paskevich's avatar
      Trans: do not memoize transformations of goals · 3cdc073f
      Andrei Paskevich authored
      the goal declarations are not shared and thus memoizing transformations
      on them is only interesting if we apply the same transformation on the
      same goal (which may happen when we launch several provers of the same
      family on the same goal). On the other hand, goal declarations are big
      (think WP) and numerous (think goal_split), and keeping them in memory
      is a bad idea.
      
      The same example from BWare can now be treated with 1/4 of memory:
      
      why3-replayer : full memoization
      106.81user 7.86system 1:59.32elapsed 96%CPU (0avgtext+0avgdata 1656908maxresident)k
      
      why3-replayer : no memoization on goals (this commit)
      74.14user 4.24system 1:24.93elapsed 92%CPU (0avgtext+0avgdata 429376maxresident)k
      
      why3-replayer : no memoization at all
      217.78user 6.25system 3:43.56elapsed 100%CPU (0avgtext+0avgdata 615204maxresident)k
      
      One side effect of this commit is that polymorphism encoding
      transformations are likely to be memoized only for a short time.
      The transformations that select the type instances to discriminate
      and the types to preserve in encoding are full-task-dependent and
      therefore are not memoized anymore. Thus, as soon the the task that
      contains all the selection metas is GCed, the rest of the chain
      will go, too, and Why3 will have to re-monomorphize the same decls.
      We'll see if this is a problem in practice.
      3cdc073f
  6. 28 Sep, 2013 1 commit
  7. 03 Aug, 2013 1 commit
  8. 06 Mar, 2013 1 commit
  9. 05 Feb, 2013 1 commit
  10. 29 Jan, 2013 1 commit
  11. 24 Dec, 2012 1 commit
  12. 21 Oct, 2012 2 commits
  13. 20 Oct, 2012 2 commits
  14. 11 Sep, 2012 1 commit
  15. 27 Aug, 2012 1 commit
  16. 16 Aug, 2012 1 commit
  17. 20 Jul, 2012 1 commit
  18. 01 Jun, 2012 1 commit
  19. 07 May, 2012 1 commit
  20. 13 Apr, 2012 1 commit
  21. 09 Apr, 2012 1 commit
  22. 22 Feb, 2012 1 commit
    • Andrei Paskevich's avatar
      make api of maps/sets more consistent · 33bb423f
      Andrei Paskevich authored
      - change takes function as the first argument
      - add_new takes exception as the first argument
      - find_default is renamed to find_def and takes the default value
        as the first argument
      - find_option is renamed to find_opt (to align with find_exn and find_def)
      - default_option is renamed def_option
      33bb423f
  23. 19 Feb, 2012 1 commit
  24. 15 Dec, 2011 1 commit
  25. 11 Nov, 2011 1 commit
  26. 30 Sep, 2011 1 commit
    • Andrei Paskevich's avatar
      add the option --realize to Main · 9ab0704b
      Andrei Paskevich authored
      How to use it:
      
          why3 --realize -D drivers/coq-realize.drv -T real.Real -o .
      
              produces Real.v in the current directory
      
          why3 --realize -D drivers/coq-realize.drv -T real.Real
      
              produces real/Real.v in the loadpath near real.why
              (the directory "real" must exist)
      
      If a realization file is already there, it is passed to
      the printer in order to preserve the proofs.
      
      Instead of -D <driver_file>, you can use -P <prover>,
      if that prover uses a corresponding driver. However,
      the prover itself is not used.
      
      You can only realize theories from the loadpath.
      
      At the moment, coq-realize.drv is the only driver
      capable to realize theories in some sensible way.
      For any other driver, the results may be funny.
      
      Realization of WhyML modules is not possible so far.
      
      Realization may break if you directories and filenames
      contain non-alphanumeric symbols.
      
      The whole thing is in very preliminary stage.
      Use with caution.
      9ab0704b
  27. 29 Sep, 2011 4 commits
  28. 18 Sep, 2011 1 commit
  29. 17 Sep, 2011 1 commit
  30. 02 Jul, 2011 2 commits
  31. 01 Jul, 2011 1 commit
  32. 29 Jun, 2011 1 commit
  33. 11 Jun, 2011 1 commit
    • Andrei Paskevich's avatar
      a little refactoring in Env · b8dcebfc
      Andrei Paskevich authored
      - create_env_of_loadpath is now provided in Env instead of Lexer
      - find_channel functions now depend on format to determine the
        suitable extensions
      b8dcebfc
  34. 24 May, 2011 1 commit