Commit Graph

3672 Commits

Author SHA1 Message Date
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 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
Iavor Diatchki
12f2bb086e Merge branch 'master' into ffi-integer 2022-09-22 16:18:36 +03:00
Iavor Diatchki
cb43685abc Just cosmeic tweaks 2022-09-22 16:17:22 +03:00
Iavor S. Diatchki
6ab24582e1
Merge pull request #1429 from GaloisInc/ffi-generate-headers
Generate C header files from `foreign` declarations
2022-09-19 09:51:29 +03:00
Ryan Scott
4367eee0d1
Make fromTo and friends return VWord when appropriate (#1436)
Previous, `fromTo` and related functions would always return a `VSeq`. If the
type happened to be a `Bit`, this would violate the internal invariant that
sequences of `Bit`s are always represented with `VWord`s, leading to the panics
observed in #1435. This patch fixes the issue by using the `mkSeq` smart
constructor, which chooses between `VWord` and `VSeq` depending on the sequence
type.

Fixes #1435.
2022-09-17 10:48:15 -04:00
Iavor Diatchki
d241e4945b Restrict the names allowed in foreign declarations.
For now we allow alpha numeric characters and '_' which
should be fairly portable.
2022-09-14 18:37:34 +03:00
Iavor Diatchki
85c3f43840 Escape weird names (mostly quotes) in type parameters and record fields. 2022-09-14 18:21:26 +03:00
Iavor Diatchki
5a4a3967fc Merge remote-tracking branch 'origin/master' into ffi-generate-headers
# Conflicts:
#	docs/RefMan/_build/doctrees/FFI.doctree
#	docs/RefMan/_build/doctrees/environment.pickle
#	docs/RefMan/_build/html/FFI.html
#	docs/RefMan/_build/html/searchindex.js
2022-09-14 17:18:30 +03:00
Iavor S. Diatchki
6fd1a115e3
Merge pull request #1416 from GaloisInc/ffi-aes-ni
AES-NI version of SuiteB module using FFI
2022-09-14 16:58:51 +03:00
Iavor S. Diatchki
51b765efd8
Merge pull request #1431 from GaloisInc/ffi-slides
Add FFI presentation slides
2022-09-14 16:40:17 +03:00
Iavor S. Diatchki
f8b5543946
Merge pull request #1380 from GaloisInc/conditional-constraints
Numeric Constraint Guards
2022-09-14 16:38:08 +03:00
Iavor Diatchki
2be867e19d Report an error if we find unsupported constraints 2022-09-13 13:53:46 +03:00
Iavor Diatchki
61ad2527ed Fix pretty printer for propguards 2022-09-13 13:44:22 +03:00
Iavor Diatchki
69719529d2 Merge branch 'master' into conditional-constraints 2022-09-13 13:16:44 +03:00
Iavor Diatchki
44685f09b0 Fix test 2022-09-12 18:42:10 +03:00
Iavor Diatchki
4ef8000c0e Another test 2022-09-12 14:58:18 +03:00
Iavor Diatchki
3dc6c014f9 Clean up translation, and support for nested modules 2022-09-12 14:57:44 +03:00
Iavor Diatchki
16e7d4f751 Fixes to exhaustivness checking 2022-09-12 14:28:16 +03:00
Iavor Diatchki
4f82466a7f Simplify type checking of constraint guards 2022-09-12 11:35:34 +03:00
Bretton
adfb760cad FFI: Update ffi-type-errors test output 2022-09-10 13:09:27 -07:00
Bretton
8732bbee79 FFI: Add comments 2022-09-10 13:05:16 -07:00
Bretton
c5a8b234b6 FFI: Update error message with new types 2022-09-10 03:16:30 -07:00
Bretton
a372df22f9 FFI: Remove now supported types from error test 2022-09-10 03:12:00 -07:00
Bretton
f32a099dc9 FFI: Support Rational 2022-09-10 03:08:37 -07:00
Bretton
4c86ac633b FFI: Support Z 2022-09-10 02:35:07 -07:00
Bretton
daba20a03e FFI: Support Integer 2022-09-10 01:19:57 -07:00
Bretton
387a15e14c Add FFI presentation slides 2022-09-08 18:28:30 -07:00
Bretton
75bc5e1711 gen header: Reorganize code 2022-09-08 18:17:47 -07:00
Bretton
71b6813fb8 gen header: Fix name collision renaming 2022-09-08 18:08:41 -07:00
Bretton
986ec22ac7 gen header: Update refman 2022-09-08 17:39:18 -07:00
Bretton
2dfc6aa553 gen header: Add comments 2022-09-08 16:43:47 -07:00
Bretton
d45e9b9efd Merge branch 'master' into ffi-generate-headers 2022-09-08 16:13:54 -07:00
Bretton
e64603a7be gen header: Add test 2022-09-08 16:12:33 -07:00
Ryan Scott
3d4492a058
CI: Work around GHC installation issues on Windows (#1430)
This should avoid nasty linker errors as observed in
https://gitlab.haskell.org/ghc/ghc/-/issues/21111 until the upstream tools can
be fixed.
2022-09-08 15:57:13 -04:00
Bretton
44c7a98451 gen header: Print write location 2022-09-08 12:54:00 -07:00
Bretton
de4445623c gen header: Add description for command 2022-09-08 12:45:15 -07:00
Bretton
c22404ad6a Add :generate-foreign-header command 2022-09-07 20:54:48 -07:00
Iavor Diatchki
d211e521db Remove "currently" from error message 2022-09-06 19:27:08 +03:00
Iavor Diatchki
fb3935f41b * Introduce a separate type for a property guarded alternative
* Annotate each property with a location
* Disallow property guards with index declarations
  (maybe this could be made to work, but be conservative for now)
* Require signatures on all members of a recursive group with prop guards
2022-09-06 18:56:20 +03:00
Iavor Diatchki
66420237f8 Remove commented out imports 2022-09-05 13:45:55 +03:00
Iavor Diatchki
9d6319078f Update the CHANGES files 2022-09-03 12:05:08 +03:00
Iavor Diatchki
b86825b7c4 Update text in the "Numeric Constraint Guards" section 2022-09-03 11:56:57 +03:00
Iavor Diatchki
4a2ac67bf6 Merge remote-tracking branch 'origin/master' into conditional-constraints 2022-09-03 10:35:24 +03:00