Commit Graph

202 Commits

Author SHA1 Message Date
Kevin Quick
393451681b
Updates for haskeline 0.8 and use of exceptions package. 2020-05-06 14:16:53 -07:00
Rob Dockins
922350ff7a Put together enough of the framework required to run :sat and :prove
queries via What4.  We still need to support configuring the solver to use,
multisat queries, and portfolio solving.
2020-04-27 14:19:44 -07:00
Rob Dockins
44a2b8e236 Very basic scaffolding for using what4 as a symbolic backend 2020-04-27 14:19:44 -07:00
Rob Dockins
1e1f7af812 Fix the haskeline package upper bound 2020-04-23 17:37:53 -07:00
robdockins
87ad864185
Merge pull request #684 from GaloisInc/eval-refactor
Evaluator refactor
2020-04-02 09:42:04 -07:00
Rob Dockins
bdfd4e6bc0 Add INLINE and SPECIALIZE pragmas to generate better code for the
concrete evaluator.
2020-03-30 13:01:06 -07:00
Rob Dockins
058847f138 Break the symbolic query description datatypes into a separate
module, moving SBV specific code into `Cryptol.Symbolic.SBV`
2020-03-26 09:23:00 -07:00
Rob Dockins
71b2f8ce70 Rename the BitWord class into Backend, and split into a separate
module.  Push primitive type if/then/else operations into the `Backend`
class, and promote `iteValue` and `mergeValue` to operations
on generic values.
2020-03-13 12:04:27 -07:00
Rob Dockins
be45b4ea29 Move definitions specific to the concrete evaluator in to separate
modules.  The module structure needs to be a bit more cut up than
I would like to avoid module import cycles.
2020-03-11 10:26:22 -07:00
Rob Dockins
bdb8f49143 Refactor Cryptol.Symbolic.Prims and Cryptol.Symbolic.Value into
a single new module `Crypol.Eval.SBV`.
2020-03-09 14:32:07 -07:00
Rob Dockins
0341fd0480 Split out the primitive definitions used by multiple evalautors
into a `Generic` module.  Refactor the `EvalPrims` class away,
pusing the `iteValue` operation into `BitWord` and demoting
the `evalPrim` operation into an ordinary (non-typeclass)
operation.
2020-03-09 14:09:19 -07:00
Rob Dockins
fbbaed8c83 Rename module Cryptol.Prims.Eval into Cryptol.Eval.Concrete.
This fits better into the current module structure, and is a lot
less confusing.
2020-03-09 11:29:08 -07:00
Kevin Quick
fcff91714b
Bump base-compat upper bound. 2020-02-29 22:12:39 -08:00
Rob Dockins
918040f682 Add cabal bounds to the haskeline package. Apparently
version 0.8 contains some breaking changes.
2020-01-06 11:34:47 -08:00
Brian Huffman
330d4dd2d9 Refactor Fixity module so Cryptol.Utils.PP can import it.
Also make some other parts of the code less dependent on the
internal representation of the Fixity datatype.
2019-12-16 18:05:30 -08:00
Aaron Tomb
ce0365fb80 Bump master Cryptol version to 2.8.1 2019-09-17 10:08:42 -07:00
Iavor Diatchki
72068cb961 Move type-level primitives to the Prelude.
For the time being, there is still some information about them that
is duplicated in Cryptol.TypeCheck.TCon, but we at least the parsed syntax
does not depend on the typechecked syntax.
2019-07-02 17:34:36 -07:00
Aaron Tomb
2ce982ab49 Update copyright dates 2019-04-30 09:13:37 -07:00
Aaron Tomb
6276cc6afb Add CHANGES.md file 2019-04-30 09:13:37 -07:00
Aaron Tomb
4db158eafb Bump Cryptol version to 2.7.1 (next release) 2019-04-26 09:14:54 -07:00
Levent Erkok
cbdf7c696a Make cryptol compile with SBV 8.1 2019-03-09 13:26:41 -08:00
Eric Mertens
5786fcf190 Track file content fingerprints alongside loaded modules 2019-02-28 09:40:21 -08:00
Levent Erkok
8d09c79198 Make Cryptol compile with SBV 8.0
SBV 8.0 is now on hackage, with several backwards compatibility breaking changes. You'll need this patch to compile cryptol against it.
2019-01-14 16:49:19 -08:00
Kevin Quick
0616c72017
Raise base-compat upper constraint to < 0.11. 2018-08-24 16:45:28 -07:00
Aaron Tomb
45ee929b2d Bump Cabal version to 2.6.1 now that 2.6.0 is out 2018-08-01 14:39:56 -07:00
Aaron Tomb
6b926b1b3c Update Cabal file copyright 2018-08-01 09:05:39 -07:00
Aaron Tomb
70fa2033d5 Update Cabal file for Hackage acceptance 2018-08-01 09:01:30 -07:00
Brian Huffman
2e1dbad005 Improve tab completion for :set command. Fixes #154.
Tab now completes option names after `:help :set`.

Tab also completes `:help` with names of primitive types
and type classes (cf. #504).
2018-07-30 18:11:14 -07:00
Aaron Tomb
e42500e706 Update version to 2.6.0 in preparation for release
After the release, let's update the version to 2.6.1 immediately.
2018-07-30 13:24:33 -07:00
Brian Huffman
d5c9a030da Split new modules Fixity and Selector from Cryptol.Parser.AST. 2018-06-11 14:28:49 -07:00
Aaron Tomb
99f3fdbf37 Merge Cryptol/Extras.cry with Cryptol.cry
Closes #427.
2018-05-23 15:55:05 -07:00
Iavor Diatchki
a0c15874e2 Factor out panic code into its own little package. 2018-05-22 14:27:03 -07:00
Brian Huffman
62dfa1d58f Use sbv version 7.7. Fixes #486.
Also add regression test for #486.
2018-04-30 09:54:26 -07:00
Aaron Tomb
126c384ff6 Avoid most recent version of base-compat
The latest version causes build failures. Ultimately, we should be able
to fix the code to work with newer base-compat versions on various GHC
verions, but this gets builds to work for now.
2018-04-18 10:07:08 -07:00
Brian Huffman
2e4fa35209 Remove unused package dependencies. 2018-03-21 11:15:46 -07:00
Aaron Tomb
7f27ed592d Remove unnecessary dependency on old-time 2018-03-12 12:53:27 -07:00
Max Orhai
1c2996610d Use blaze for HTML generation 2018-03-05 17:07:19 -08:00
Iavor Diatchki
989e5734ef Move defaulting code to a separate module. 2017-12-22 16:01:19 -08:00
Iavor Diatchki
9c06f07223 Move errors to their own module. 2017-12-21 13:59:53 -08:00
Iavor Diatchki
2d3e146766 Allow evaluation in parameterized module, as long as parameters are not used. 2017-10-27 14:59:32 -07:00
Iavor Diatchki
5c51d32a4e Fix up html syntax highlighting. 2017-10-25 11:12:37 -07:00
Iavor Diatchki
07c5e1fcb8 Bump language standard to 2010. We're beyond '98 anyway... 2017-10-24 11:59:34 -07:00
Iavor S. Diatchki
095a7718d9 Add a pass to rewrite a param. module, into a non-param module
All definitions are parameterized by all parameters.
2017-10-19 13:45:40 -07:00
Iavor S. Diatchki
7dc7be45bb Merge remote-tracking branch 'origin/master' into abstract-types
# Conflicts:
#	src/Cryptol/REPL/Monad.hs
2017-10-13 10:45:35 -07:00
Iavor S. Diatchki
933e2cd2ee Merge branch 'abstract-types' of github.com:GaloisInc/cryptol into abstract-types
# Conflicts:
#	src/Cryptol/ModuleSystem/InstantiateModule.hs
2017-10-05 12:45:11 -07:00
Brian Huffman
a9de74ed5d Implement module-name completion and validation for :browse.
Fixes #396.
2017-10-04 19:17:42 -07:00
Iavor Diatchki
5208739653 Don't print directly to stdout. Fixes #166 2017-10-04 15:50:31 -07:00
Iavor Diatchki
2ef0a67d9b Merge branch 'master' into abstract-types 2017-10-03 13:35:57 -07:00
Rob Dockins
f02a3c783b Bump simple-smt version bounds to pull in a bug fix.
Fixes #457
2017-10-03 10:20:15 -07:00
Iavor Diatchki
498b99cda3 Split out exports specs; add some parsing for functor instances. 2017-10-02 15:01:45 -07:00