Commit Graph

3756 Commits

Author SHA1 Message Date
Iavor Diatchki
bde2ecc550 Use the location of the parameters as it is more accurate. 2022-10-25 09:40:26 -07:00
Iavor Diatchki
dc4b34411c Have a go at allowing type synonyms in interfaces.
Not at all tested.
2022-10-24 18:08:53 -07:00
Iavor Diatchki
c5e86624c8 Rename Signature to Iface + comments 2022-10-21 14:56:27 -07:00
Iavor Diatchki
20f8a368eb Add/improve haddocks 2022-10-21 10:18:56 -07:00
Iavor Diatchki
9701b373c5 Check that when evaluating things we do not use either value or type paramxs.
Fixes #1458
2022-10-20 12:42:25 -07:00
Iavor Diatchki
8922877236 Allow loading interfaces.
When loaded an interface is treated like an empty functor.
Adding this capability would also be useful if we generalize
interfaces to allow for definitions, as discussed in #1457

This also fixes #1456
2022-10-14 16:35:04 +03:00
Iavor Diatchki
8de5a7921f Add pretty printing instances for parameters.
This is mostly for debugging.
2022-10-14 15:38:43 +03:00
Iavor Diatchki
b66d990343 Rename "signature" to "interface" to follow standard naming 2022-10-14 11:33:26 +03:00
Iavor Diatchki
b0ccbb7f2e Preserve number of predicates in schema when applying a substitution
Fixes #1450
2022-10-14 11:17:33 +03:00
Iavor Diatchki
ab0d1c8000 Merge remote-tracking branch 'origin/T1451' into functors-merge
# Conflicts:
#	src/Cryptol/TypeCheck/Sanity.hs
2022-10-13 17:57:34 +03:00
Iavor Diatchki
f35648cb2a Filter out really trivial goals, so we can see the actual interesting goals 2022-10-13 17:55:46 +03:00
Iavor Diatchki
0cefb92ba9 Don't use syntactic equality for numeric types, collect constraints instead
Fixes #1451
2022-10-13 17:55:46 +03:00
Iavor Diatchki
fa3cc2059b Pretty printing for Core Lint errors 2022-10-13 17:55:46 +03:00
Ryan Scott
efc3fe7b42 Include one Ubuntu 20.04 configuration (#1447)
PR #1403 accidentally removed our build coverage for an older Ubuntu LTS
configuration. This patch adds in back and ensures that we don't accidentally
run the tests on this configuration.
2022-10-13 17:55:46 +03:00
Iavor Diatchki
1aa1d2e0ec Merge branch 'T1452' into T1451 2022-10-13 17:55:20 +03:00
Iavor Diatchki
080b40ba35 Fix typo 2022-10-13 17:54:58 +03:00
Iavor Diatchki
d62f95fdae Fix test 2022-10-13 16:55:33 +03:00
Iavor Diatchki
e72977e495 Filter out really trivial goals, so we can see the actual interesting goals 2022-10-13 12:56:06 +03:00
Iavor Diatchki
860b3466cd Don't use syntactic equality for numeric types, collect constraints instead
Fixes #1451
2022-10-13 12:41:10 +03:00
Iavor Diatchki
5c9b102c15 Pretty printing for Core Lint errors 2022-10-13 11:57:03 +03:00
Iavor Diatchki
91dbed48df Add a function that can split up a module name in Text, rather than string 2022-10-11 11:57:24 +03:00
Iavor Diatchki
043bd695e4 Add a function to support translation to SAW core 2022-10-11 11:49:42 +03:00
Iavor Diatchki
3dc316a428 Remove unused function 2022-10-11 11:18:45 +03:00
Ryan Scott
7e2613afa1
Include one Ubuntu 20.04 configuration (#1447)
PR #1403 accidentally removed our build coverage for an older Ubuntu LTS
configuration. This patch adds in back and ensures that we don't accidentally
run the tests on this configuration.
2022-10-06 13:08:35 -04:00
Iavor Diatchki
e1e3fe6e77 Squash yet another fake name issue
See #1440
2022-09-29 11:54:35 +03:00
Iavor Diatchki
39c6026ca5 Handle some more cases where fake names caused problems.
See #1440
2022-09-29 10:53:25 +03:00
Iavor Diatchki
12967c47c3 Fix tests for Mac and Windows 2022-09-28 16:54:05 +03:00
Iavor Diatchki
29e71d1600 Merge branch 'master' into functors-merge 2022-09-28 15:18:05 +03:00
Iavor Diatchki
58a351c765 Update evaluator to account for TError of kind prop.
At the moment this kind of representes "False" so we need
to handle it.   In the future, we probaly should:
  * add an explicit `TFalse` to distinguish between malformed and False
  * Eliminate obviously false guards when instantiating a funcotr
2022-09-28 15:17:39 +03:00
Iavor Diatchki
4f8bc653e0 Disallow foreign with the same name and in functors
Fixes #1442
2022-09-28 11:23:18 +03:00
Iavor S. Diatchki
94283f2531
Merge pull request #1443 from GaloisInc/T1441
Add support for literat Cryptol with RST
2022-09-28 11:03:41 +03:00
Iavor Diatchki
bed32f8081 TraverseNames for EPropGuards 2022-09-28 10:28:00 +03:00
Iavor Diatchki
e6acf4ecb7 Add info to the CHANGES files 2022-09-28 09:37:12 +03:00
Iavor Diatchki
38ee399ccd Fixes and improvements based on code review 2022-09-27 23:34:45 +03:00
Iavor Diatchki
42b56f6e8b Add support for literat Cryptol with RST 2022-09-27 22:41:13 +03:00
Iavor Diatchki
6fea305ada Fix test 2022-09-27 12:32:34 +03:00
Iavor Diatchki
489ded4313 Fix tests 2022-09-27 11:46:08 +03:00
Iavor Diatchki
441e163856 Merge branch 'master' into functors-merge
# Conflicts:
#	docs/RefMan/_build/doctrees/BasicSyntax.doctree
#	docs/RefMan/_build/doctrees/BasicTypes.doctree
#	docs/RefMan/_build/doctrees/Expressions.doctree
#	docs/RefMan/_build/doctrees/FFI.doctree
#	docs/RefMan/_build/doctrees/Modules.doctree
#	docs/RefMan/_build/doctrees/OverloadedOperations.doctree
#	docs/RefMan/_build/doctrees/RefMan.doctree
#	docs/RefMan/_build/doctrees/TypeDeclarations.doctree
#	docs/RefMan/_build/doctrees/environment.pickle
#	docs/RefMan/_build/html/.buildinfo
#	docs/RefMan/_build/html/BasicSyntax.html
#	docs/RefMan/_build/html/BasicTypes.html
#	docs/RefMan/_build/html/Expressions.html
#	docs/RefMan/_build/html/FFI.html
#	docs/RefMan/_build/html/Modules.html
#	docs/RefMan/_build/html/OverloadedOperations.html
#	docs/RefMan/_build/html/RefMan.html
#	docs/RefMan/_build/html/TypeDeclarations.html
#	docs/RefMan/_build/html/_static/doctools.js
#	docs/RefMan/_build/html/_static/fonts/Lato-Bold.ttf
#	docs/RefMan/_build/html/_static/fonts/Lato-Regular.ttf
#	docs/RefMan/_build/html/_static/js/modernizr.min.js
#	docs/RefMan/_build/html/_static/searchtools.js
#	docs/RefMan/_build/html/searchindex.js
#	src/Cryptol/ModuleSystem.hs
#	src/Cryptol/ModuleSystem/Base.hs
#	src/Cryptol/ModuleSystem/InstantiateModule.hs
#	src/Cryptol/Parser/AST.hs
#	src/Cryptol/Parser/ParserUtils.hs
#	src/Cryptol/REPL/Command.hs
#	src/Cryptol/Transform/AddModParams.hs
#	src/Cryptol/Transform/Specialize.hs
#	src/Cryptol/TypeCheck/Infer.hs
#	src/Cryptol/TypeCheck/InferTypes.hs
#	src/Cryptol/Utils/Ident.hs
2022-09-27 11:43:16 +03:00
Ryan Scott
e9d581a707
Merge pull request #1438 from GaloisInc/T1394
Support FFI on Windows
2022-09-24 13:12:14 -04:00
Ryan Scott
045a0c6d34 CI: Update cabal.GHC-*.config files
We need to use `hgmp-0.1.2.1` as the minimum, as it includes a critical bugfix
for Windows. Let's put this in the `cabal.GHC-*.config` files to guarantee that
that happens.
2022-09-24 11:56:00 -04:00
Ryan Scott
84b29a3721 CI: Install diff, gcc, gmp, make on Windows before running tests
These are required to run some of the FFI tests.
2022-09-24 11:21:08 -04:00
Ryan Scott
27ac8d9717 Support FFI on Windows
This patch:

* Adds the appropriate conditional logic to use the `Win32` library to
  dynamically load shared libraries on Windows.
* Tweaks some FFI-related test cases to make them work portably on Windows. I
  have left comments describing each of the non-obvious tweaks that I had to
  make.
* Updates the reference manual accordingly.

Fixes #1394.
2022-09-24 11:21:03 -04:00
Iavor Diatchki
b72a5d97bd Don't try to get information for undefined names.
When we find an undefined name we record an error,
but we also generate a fake name, so that we can continue
processing and report other errors.  It is important
that we don't try to use this fake name.

This commit corrects this behavior where we'd try to get
information about an undefined intrface submodule.

Fixes #1440
2022-09-24 15:37:35 +03:00
Iavor Diatchki
09b68e2ae1 Fix typos in comments 2022-09-24 15:34:35 +03:00
Iavor S. Diatchki
146934b9d3
Merge pull request #1432 from GaloisInc/ffi-integer
Support `Integer`, `Z`, and `Rational` in FFI
2022-09-23 18:44:07 +03:00
Iavor Diatchki
96fb52dc9c Fix Mac OS test 2022-09-23 17:47:50 +03:00
Iavor Diatchki
c3f6181204 Add a couple of tests with Z 2022-09-23 17:13:14 +03:00
Iavor Diatchki
741959f918 Add gmp as en explicit dependency 2022-09-22 19:10:12 +03:00
Iavor Diatchki
e7a3f87858 Update FFI Section of Reference Manual to describe Integer/Rational/Z 2022-09-22 18:30:03 +03:00
Iavor Diatchki
4e75c38330 Modify generate-header to support Integer/Rational/Z
Add some tests
2022-09-22 17:15:04 +03:00