Commit Graph

51 Commits

Author SHA1 Message Date
Johannes Kanig
a2c2126caf Use scripts from shared repo for pre-commit checks
Remove now unused scripts from spark2014 repo
2024-05-22 09:15:43 +00:00
Johannes Kanig
eed9eab7d2 File script to query gitlab issue stats 2024-03-27 08:54:52 +00:00
Johannes Kanig
64783e7097 cleanup script and support different copyright format 2024-01-16 09:00:55 +00:00
Johannes Kanig
3961734b0a file copyright script 2024-01-16 09:00:55 +00:00
Johannes Kanig
7e3c9139b8 Update copyright notices 2024-01-12 10:27:56 +00:00
Yannick Moy
151277c22f Remove support for manual proof through Why3 in SPARK
The SPARK plugin for GS offered two options to perform proof
at the VC level: one going through Coq, and one going through Why3
tactics. Only the first one remains. The second one is removed
because it is too complex to use.

Remove generated menu file for the GS plugin, as well as code to
generate this file.
Update the UG and develguide docs to reflect that change.
Update the why3 commit after removal of code for manual proof.
2023-10-12 07:25:21 +00:00
Johannes Kanig
eb54f61eff Adapt testsuite to absence of cvc4
* configuration.adb
(Set_Provers): remove check for cvc4 (obsolence message)
* gnatprove.conf: remove cvc4 configuration
* P804-001__driver: the test configuration now uses a modified version
    of cvc5 instead of a modified version of cvc4
* remove cvc4 from various plans
* update why3menus.py for manual proof menus
2023-10-09 23:39:39 +00:00
Johannes Kanig
47f3c838c3 fix all pre-commit violations in spark2014 repo 2023-09-20 09:36:25 +00:00
Yannick Moy
bf7e4e6879 Generate and use data representation for size/alignment attributes
GNATprove now generates data representation in JSON format by calling
the appropriate compiler for the target on sources of the project,
passing switches -gnatc to only perform semantic analysis and -gnatR2js
to generate a JSON file for every source input file, containing entries
for all source types and objects.

This generation takes place in a preliminary step of GNATprove, prior
to generating ALI files with global variable information. In the
translation phase to Why3, the JSON files for all sources in the closure
of the current main are read to populate a global table with data
representation information on types and objects, represented by their
location string.

Whenever translation hits a size or alignment attribute, it checks if
the corresponding value is not present in the global data representation
information, and retrieves it if present.

A new unit GNAT2Why.Data_Decomposition is defined to group the new variable
and subprogram for data decomposition.

Issue: eng/spark/spark2014#158
Issue: eng/spark/spark2014#168
2023-07-21 14:10:02 +00:00
Johannes Kanig
48f50e6ef1 W222-009 precommit check for testsuite markers
Add a precommit check to avoid committing testsuite markers such as
"SOUNDNESS BUG" in test output.

* check-empty-file.py: add comment
* check-testsuite-markers.py: new script to check for the testsuite
  markers
* .pre-commit-config.yaml: add a hook for the new script for .out files.
2023-02-23 09:04:48 +00:00
Johannes Kanig
8e838ba567 W125-001 add opam install script for SPARK
* Makefile:
  disable Coq libs explicitly
2023-02-04 11:13:28 +00:00
Johannes Kanig
5cb01f8443 W116-007 add option for Why3 logging
Add a new switch to Gnatprove to enable more logging by why3.

* configuration.adb
(Parse_Switches): add switch --why3-logging
(Compute_Why3_Args): pass switch to Why3 if enabled
2023-01-25 08:42:40 +00:00
Piotr Trojanek
222bba840e Add GDB pretty-printer for Entity_Name
no-tn-check

Change-Id: I07dca25e494c112f1f285a424eef59e9b88a1ab7
2023-01-13 08:12:44 +00:00
Piotr Trojanek
96dba1940c (no-tn-check) copyright update (cont.)
Change-Id: I9bd7fbd9f5955a2e5506d0dcfe6056b50d80de5e
2023-01-05 09:16:38 +00:00
Johannes Kanig
d022f23de0 (no-tn-check) Update copyright notices
Change-Id: I10991d89306d5dc0cbd356a35390465d3975b026
2022-01-03 08:39:39 +00:00
Johannes Kanig
b647075956 UA26-010 enforce python styles via flake8 and black
- Config mostly taken from anod repository
- Make all python files compliant
- Remove some obviously unused python files (still in python2
  syntax)

Change-Id: Ie90715f9e6e0a4831613faf0e9472706e210a7af
2021-12-16 10:26:01 +09:00
Johannes Kanig
0ba58d7595 UA26-010 check for empty test.out/test.opt files
Change-Id: I2a7ac762df1ac80b9afa1154ebc6f749401001dd
2021-12-15 18:26:15 +09:00
Johannes Kanig
84a19bbbc7 UA26-010 add check for submodules
Change-Id: I6d36375174772cf2eda73887c3d47861884a95a4
2021-12-15 12:12:47 +09:00
Carlin Bingham
d4e90c111d Fix misspelling of developer 2021-11-07 04:42:41 +13:00
Johannes Kanig
72ee74465a (no-tn-check) improvement for building on windows
Fix newlines to "\n" so that on windows, the script does not write
"\r\n", which would lead to style errors.

Change-Id: I0e61ae24dd9f898594859a76769b30ccb9366f36
2021-03-15 09:23:42 +01:00
Piotr Trojanek
cdd569b659 Precompute a regular expression pattern in why3 keywords script
Tiny performance improvement for a regexp pattern that was computed for each
line of the input file.

* scripts/why3keywords.py
(regexp): Now a precomputed pattern.

no-tn-check

Change-Id: Icf91e1142680166954bec3a9b0e8a8b80f7696cc
2021-01-05 00:12:13 +01:00
Piotr Trojanek
b103dab069 Fix style complaint for the why3 keywords script
Address a complaint from pre-commit-check style checker:

  E741 ambiguous variable name 'l'

whose full description and advise are respectively:

  "Variables named I, O, and l can be very hard to read. This is because the
  letter I and the letter l are easily confused, and the letter O and the
  number 0 can be easily confused.

  Change the names of these variables to something more descriptive."

* scripts/why3keywords.py
(find_keywords): Rename "l" to "line".

no-tn-check

Change-Id: Iabcc003677fdc1e52292814e81e56efd102a656a
2021-01-05 00:12:12 +01:00
Piotr Trojanek
10eb782cfa Update copyright notices
no-tn-check

Change-Id: I663dde57320ada3e31bd10a30fe7ef09d4110e1b
2021-01-05 00:12:11 +01:00
Johannes Kanig
89a28294b3 T605-001 fix python3 errors
Change-Id: If7bae95538e03569bea946004475faebd1acee1c
2020-06-12 16:53:50 +09:00
Johannes Kanig
d747279dc9 (no-tn-check) minor improve bisect script
Change-Id: Ia50a9eb340495e1f5e654809ed5532ea17444db0
2020-03-27 01:37:21 +01:00