Commit Graph

1301 Commits

Author SHA1 Message Date
Matthew Brecknell 28c0c2ed1e merge master into c-parser multi_arch_refactor 2016-09-02 23:40:44 +10:00
Matthew Brecknell 034232a704 trivial: remove debug tracing code 2016-09-02 23:38:40 +10:00
Matthew Brecknell 945ee811c3 CParser multi_arch_refactor: build standalone parser in dir named after arch
Architecture names follow L4V_ARCH-style naming conventions ('ARM', 'FAKE64').
However, the standalone parser does not make use of the L4V_ARCH environment
variable.

The standalone-parser Makefile builds all architectures at once, producing
binaries at 'ARM/c-parser', 'FAKE64/c-parser', and similarly for the tokenizer.

There are also wrapper scripts 'c-parser' and 'tokenizer' in the
standalone-parser directory, which take an architecture on the command line.

The make_munge.sh script calls the appropriate binary parser directly.
2016-09-02 23:38:40 +10:00
Thomas Sewell 2515f8c2e0 Allow use of previous enum values in enums.
This is apparently valid C:
enum {
  One,
  Two = One + 1,
};

It's easy to support this by using the partially modified enum
environment in evaluation of the following right hand sides.
2016-09-02 13:58:57 +10:00
Matthew Brecknell 886fe0ef12 CParser multi_arch_refactor: fix tokenizer build 2016-09-01 12:35:33 +10:00
Matthew Brecknell 5f501b09a9 CParser multi_arch_refactor: add license headers to new files 2016-08-31 16:25:46 +10:00
Matthew Brecknell 86e8cd4a33 CParser multi_arch_refactor: fix broken factorial test
Another case requiring simplification with ucast_id.
2016-08-31 16:24:28 +10:00
Alejandro Gomez-Londono 0c29567bb2 Regression: re-applying [094fb48623] to fix run_tests.py
The changes on [094fb48623] where (for some weird reason) removed from
run_tests.py in the last update, this commit merely re-apply those
changes.
2016-08-29 17:08:34 +10:00
Thomas Sewell 8b2818299a Read extra_tests as relative to dir it is in. 2016-08-26 16:59:27 +10:00
Thomas Sewell 37efb6326a Have run_tests see an extra_tests special file.
The run_tests.py script already searches the directory for all
test.xml files. It will now also note any files named extra_tests,
and also search any directories which appear as lines of those
files.

(Following symlinks would been more obvious but create other issues.)
2016-08-26 16:59:27 +10:00
Thomas Sewell 1449102cc7 Merge pull request #101 in SEL4/l4v from ~TSEWELL/l4v:crunch-refac to master
* commit '9a1ec71a2d53656f4c7eb9c3abb69c323bb38fb3':
  Refactor of crunch.
2016-08-25 07:09:56 +00:00
Thomas Sewell 4c23410f6c Haskell translator: can keep type constructors.
A skeleton line of the form
\#INCLUDE_SETTINGS keep_constructor=asidpool
now ensures that the asidpool type constructor is actually created in
subsequent #INCLUDE_HASKELL declarations. It turns out this feature was already
available, and already used for asidpools, this change just makes it externally
adjustable.
2016-08-25 15:33:19 +10:00
Thomas Sewell 9a1ec71a2d Refactor of crunch.
Substantial adjustments to crunch. Main user changes are:
  - 'lift' and 'unfold' mechanisms replaced by more general 'rule'.
  - some more 'ignores' standardised.
  - crunch has a more principled overall design:
    + discover crunch rule
      * provided or by definition extraction
    + recurse according to rule
    + prove goal based on rule, recursive discoveries, standard tactic
      * wp/simp adjustments tweak tactic
2016-08-24 15:53:53 +10:00
Alejandro Gomez-Londono ef99749ee1 Regression: Added RUN_TESTS_DEFAULT for overwriting the default test set
It is sometimes desirable to overwrite the default set of tests that are
being run in a per execution basis (ex: to allow wrapper scripts to have
a custom default) RUN_TESTS_DEFAULT is an space separated list of tests
that will be run if no specific tests are given.

  tags: [NO_PROOF]
2016-08-24 13:23:33 +10:00
Alejandro Gomez-Londono e110f421d1 Munge test: updates test_munge.sh to support sorted output from c-parser
tags: [VER-624][NO_PROOF]
2016-08-17 13:59:28 +10:00
Michael Norrish 4062decf79 Merge branch 'sort-munge-output' into multi_arch_refactor 2016-08-17 10:42:38 +10:00
Michael Norrish af1c77243b c-parser: fix list sorting to use Isabelle code
This makes the licensing situation clearer than with the code coming
from Moscow ML (which might conceivably be GPL).
2016-08-17 10:38:21 +10:00
Michael Norrish 936caa2e4f c-parser: multi_arch_refactor: merge with master
factorial regression test does not succeed.
2016-08-15 11:30:24 +10:00
Michael Norrish 7da160d23b Create standalone parser per architecture
Also include a wrapper that calls any of them in a completely
straightforward way.
2016-08-13 17:24:49 +10:00
Michael Norrish e321cae1b3 c-parser: sort munge output 2016-08-12 09:41:16 +10:00
Matthew Brecknell c17fffd526 arch_split invariants: TcbAcc_AI
Somehow we missed this on our previous pass.
2016-08-10 18:50:56 +10:00
Alejandro Gomez-Londono fb9122f2ed Munge Test: Adding sorted munge output
tags: [VER-624][NO_PROOF]
2016-08-10 15:30:00 +10:00
Thomas Sewell 7236874353 Support some more signed word cases in asmrefine. 2016-08-09 13:31:29 +10:00
Matthew Brecknell 1013e959c1 arch_split: give some vspace concepts more generic names
In particular rename "pd" to "vspace", when the pd represents
an address space.
2016-08-03 14:46:48 +10:00
Matthew Brecknell d7a49c7bbd x64 invariants: reorder imports so that Include_AI comes before BCorres_AI
This makes forM_x and "crunch ignore" rules available to an arch-specific
crunch in BCorres_AI.
2016-08-03 14:46:48 +10:00
Matthew Brecknell 6b6b8786e8 arch_split: move kernel_base and idle_thread_ptr to arch-specific theories 2016-08-03 14:46:48 +10:00
Matthew Brecknell f9f160ed14 arch_split: replace some fixed word sizes with type aliases
Changed some instances of word32 to machine_word, and "10 word" to irq.
Also introduce a type_synonym for "machine_word_len".
2016-08-03 14:46:23 +10:00
Matthew Brecknell c2fa704d9b add workaround for building documents with TeX Live 2016 [VER-622]
Isabelle LaTeX style files use old font commands \bf, \rm, \tt, etc.
However, newer versions of some LaTeX document classes (e.g. scrbook)
have removed support for these commands. This brings back those
commands for documents built with isabelle.sty.
2016-07-22 07:48:08 +10:00
Matthew Brecknell 0c6effafd4 license-tool: .licenseignore update [VER-551] 2016-07-22 07:48:08 +10:00
Rafal Kolanski 58153f923c rerun haskell translator, fix design spec 2016-07-22 01:10:29 +10:00
Corey Richardson dd73a2c819
run haskell translator 2016-07-21 15:54:49 +10:00
Corey Richardson 91f4d4ebb3
tools: haskell-translator: use only basename in generated-file notice
This was breaking spec-check because the paths sometimes had ..'s
in them and sometimes not, depending on where the translator was run.
2016-07-21 15:54:34 +10:00
Corey Richardson e2c55aa544
run haskell translator 2016-07-20 18:16:23 +10:00
Corey Richardson b791b79f22
tools: haskell-translator: add warning to not edit generated files 2016-07-20 18:16:21 +10:00
Alejandro Gomez-Londono 6f2e2d750e Make CParseTools depend on CParser
CParseTools was triggering a race condition by removing a mistakenly
added license header on CSpec.grm.sig while (potentially) the CParser
session was still being build by Isabelle, thus causing all sessions
depending on CParser to rebuild (At the same time!).
2016-07-20 18:02:13 +10:00
Alejandro Gomez-Londono 7c13256d89 license-tool: .licenseignore update + some fixes [VER-551] 2016-07-20 18:01:35 +10:00
Matthew Brecknell 3e3baf7b49 arch_split: invariants: split DetSchedAux_AI [VER-602] 2016-07-17 15:20:02 +10:00
Matthew Brecknell 0448444776 arch_split: invariants: split Deterministic_AI [VER-600] 2016-07-16 23:02:14 +10:00
Alejandro Gomez-Londono 7724dff916 test_munge.sh updated to print diff of symbols and kernel [VER-584] 2016-07-14 16:34:55 +10:00
Alejandro Gomez-Londono 93adccc141 license-tool: missing license headers + .licenseignore [VER-551] 2016-07-14 16:34:31 +10:00
Matthew Brecknell 138344f90a arch_split: invariants: split Syscall_AI [VER-571] 2016-07-12 16:50:32 +10:00
Matthew Brecknell ed2f1e1ca3 arch_split: split PDPTEntries_AI, rename as VSpaceEntries_AI [VER-580] 2016-07-12 16:50:32 +10:00
Matthew Brecknell 9b342f5ccf arch_split: invariants: split KernelInit_AI [VER-620] 2016-07-12 16:50:32 +10:00
Matthew Brecknell 6b93e4bc81 arch_split: invariants: split BCorres2_AI [VER-577] 2016-07-12 16:50:32 +10:00
Alejandro Gomez-Londono 6991fab7e8 c-parser: allow_underscore_idents flag added + examples [VER-619][NO_PROOF] 2016-07-12 12:07:53 +10:00
Matthew Brecknell ae3644affc arch_split: invariants: split EmptyFail_AI [VER-576] 2016-07-10 11:33:02 +10:00
Matthew Brecknell 6ef4c2d60f arch_split: invariants: split InterruptAcc_AI [VER-606] 2016-07-09 11:04:22 +10:00
Matthew Brecknell 27c5ae792e arch_split: invariants: split CSpaceInv_AI [VER-604], CSpace_AI [VER-605] 2016-07-09 11:04:22 +10:00
Alejandro Gomez-Londono dced98a45d arch_split: AInvs.thy [VER-581] 2016-07-07 14:13:40 +10:00
Miki Tanaka eb7f7b1564 arch-split: Tcb_AI.thy done 2016-07-07 13:57:16 +10:00