Commit Graph

1841 Commits

Author SHA1 Message Date
Iavor Diatchki
72009435c2 Fix script, to deal with multiple versions of Cryptol 2018-08-15 20:26:56 +03:00
Iavor Diatchki
b7b1baa25b Fix test, to account for changes to eval context checking 2018-08-15 20:26:25 +03:00
Iavor Diatchki
5a9a3b4ff1 Change the check for valid evaluation context, and add missing checks.
Parameterized modules are not part of the evaluation context at all,
so now we check that we don't depend on *any* values from them.

Also, now we check both expressions and the schema, and also do
the check when proving not just evaluating.

Hopefully this fixes issue #545
2018-08-15 19:53:23 +03:00
Iavor Diatchki
3b6b183999 Make it more obvious when we've loaded a parameterized module. 2018-08-15 18:16:14 +03:00
Brian Huffman
77db0bd32f Add documentation and comments for Subst module. 2018-08-10 11:54:19 -07:00
Brian Huffman
c047273565 Reimplement type substitutions using IntMap instead of Map.
This speeds up the test suite by about 10%, and makes the example
file from issue #544 typecheck about 7x faster.
2018-08-08 10:54:54 -07:00
Brian Huffman
f2c1946633 Factor out new function tCon in SimpType module. 2018-08-08 10:10:14 -07:00
Brian Huffman
607a55c76a Fix warnings about unused import and declarations. 2018-08-02 17:31:52 -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
cfeef862e1 Disable warnings about fixity of &&, ||
Fixes #241.
2018-08-01 14:38:44 -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
9b97c74b48 Polishing of :help output.
:help with primitive types now uses vertical whitespace to match
the :help output for other types.

Help text for REPL commands can now contain linebreaks.

For quoted Cryptol syntax in docstrings, consistently use singlequotes
(') instead of backquotes (`). Backquotes are sometimes used within
the quoted code, so it's probably best to avoid using them for quotes.

Consistently capitalize and put a period at the end of docstrings.
2018-07-31 11:33:50 -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
ba140fb70a Update Programming in Cryptol PDF 2018-07-30 16:36:04 -07:00
Aaron Tomb
4ab7399ef9 Bump frozen SBV versions to 7.10 2018-07-30 16:26:25 -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
Aaron Tomb
b111e78a30 Minor fixes to Programming in Cryptol 2018-07-27 16:09:50 -07:00
Brian Huffman
9e7ae9f9ce Reintroduce demote as a copy of number for backward compatibility. 2018-07-27 14:01:18 -07:00
Brian Huffman
f609b36225 Rename primitive demote to the more self-explanatory name number.
The name "demote" is only meaningful to those who already know what
the Cryptol primitive does. Also, due to recent changes in the error
and warning messages, the name "demote" is showing up much more often
in REPL output. For example:

    Defaulting type argument 'rep' of 'demote' to [2]

    Showing a specific instance of polymorphic result:
      * Using 'Integer' for type argument 'rep' of 'Cryptol::demote'

These messages will hopefully be made less confusing to non-experts
if the name "demote" is replaced with "number".
2018-07-27 13:52:57 -07:00
Brian Huffman
78fa2d58aa Fix typo in comment. 2018-07-27 13:44:31 -07:00
Brian Huffman
34e6a18efe Fix Cryptol output in exercise solution in the book. 2018-07-27 13:18:03 -07:00
Brian Huffman
35ccec83ce Fix some typos in comments/docs. 2018-07-27 13:17:45 -07:00
Aaron Tomb
1bd0b813e0 Add a table of type-level operators to the book 2018-07-27 10:23:55 -07:00
Aaron Tomb
afd9df342b Better wording for multi-way conditional appendix 2018-07-27 10:23:29 -07:00
Iavor Diatchki
30b281dbff Fix build on older GHCs 2018-07-27 09:09:45 +03:00
Iavor Diatchki
4a9de75e8c Merge branch 'master' of github.com:GaloisInc/cryptol 2018-07-26 22:06:47 +03:00
Iavor Diatchki
027037d6ee Fix test 2018-07-26 22:06:31 +03:00
Iavor Diatchki
6d789a1d64 Preserve prefix - and ~ until the renamer.
This allows to print back expressions in a form that looks more like what
the user typed.  Fixes #541
2018-07-26 22:04:45 +03:00
Aaron Tomb
7027b599a7 Update some copyright notices 2018-07-26 09:08:32 -07:00
Iavor Diatchki
fb4080a22e Merge branch 'master' of github.com:GaloisInc/cryptol 2018-07-26 09:28:06 +03:00
Iavor Diatchki
96539178d4 Display help for built-in types in REPL.
Fixes #504
2018-07-26 09:27:11 +03:00
Iavor Diatchki
19c71fa4aa Move all built-in types to the same place; add precedence and documentaiton 2018-07-26 09:06:37 +03:00
Brian Huffman
4d84989b60 Edits to AES chapter of the book. 2018-07-25 15:12:13 -07:00
Brian Huffman
2f53f364b5 Add stderrLogger to go with stdoutLogger. 2018-07-25 10:10:52 -07:00
Iavor Diatchki
f4e7100e59 Merge branch 'master' of github.com:GaloisInc/cryptol 2018-07-25 13:27:14 +03:00
Iavor Diatchki
5a720e6695 Use proveModuleTopLevel instead simplifyAllConstraints.
The difference is that the one does defaulting as well.  Fixes #540
2018-07-25 13:27:01 +03:00
Brian Huffman
165674710b Fix typo in comment. 2018-07-24 15:42:16 -07:00
Brian Huffman
1af977873e Make :browse <interactive> work with tab-completion, no warnings. 2018-07-24 15:29:58 -07:00
Brian Huffman
951eacc8ff Fix some index entry names in the book. 2018-07-24 13:03:32 -07:00
Iavor Diatchki
e55436eaa7 Keep track of user vs. system names.
This makes it possible to hide system names from the users,
as they are not really meaningful.  Fixes #535
2018-07-24 18:19:17 +03:00
Iavor Diatchki
125a2a4d32 After defaulting, nub the resulting fin constraints.
Fixes #531
2018-07-24 16:52:15 +03:00
Iavor Diatchki
d1b5439b4c Remove defSu, this is already part of totSu, as we've extended it 2018-07-24 16:51:28 +03:00
Iavor Diatchki
83ece9e3fb Fixes #532 2018-07-24 16:00:55 +03:00
Iavor Diatchki
9f94dd0eba Merge branch 'master' of github.com:GaloisInc/cryptol 2018-07-24 15:29:27 +03:00
Iavor Diatchki
b6d6ead7f1 Fixes related to generalization in recursive groups, where some bindings are monomorphic.
This is tricky stuff, hopefully this better.  Fixes #534
2018-07-24 15:29:06 +03:00
Brian Huffman
3cee1b037e Memoize wordValLogicOp on BitsVal arguments.
This fixes the exponential runtime for the example in #537.
2018-07-23 14:44:48 -07:00
Aaron Tomb
35452a6a9e Add example of using the === operator 2018-07-23 13:19:13 -07:00
Iavor Diatchki
9a9e9c977c A bit of refactoring.
This should help us hide top-level generated names that are
not of interest to the user.
2018-07-23 03:34:04 -07:00
Iavor Diatchki
bd0d3ccf35 Remove unused code, add explicit exports 2018-07-23 03:32:31 -07:00