Commit Graph

2678 Commits

Author SHA1 Message Date
Thomas Sewell b0f2217af4 lib/wp: Remove old wp combinator rules.
These combinator rules do something like what wp_pre does now.

They were helpful in the ancient past, but now that wp_pre exists it is
much better to just use automation.
2018-03-16 14:51:31 +11:00
Thomas Sewell 5fb1fcdf80 run_tests: dry run mode.
The run_tests script already has a -l/--list option to list all tests.
This adds a -L/--dry-run option to list the requested tests, which makes it
easier to figure out what tests -r/-x etc would select.

Also clarify in --help that -v adds more info to -l.
2018-03-15 14:31:45 +11:00
Japheth Lim bea2e09c04 crefine: further update for C-parser change to avoid complex call lvals (JIRA VER-881) 2018-03-14 17:58:43 +11:00
Japheth Lim 26b45dc466 c-parser: automated testing for JIRA VER-881 2018-03-14 17:56:53 +11:00
Thomas Sewell 97a4e3753e Revert designs, fix with more processing.
Abandon post-processing. There's some fragility somewhere that requires
process_stmt to see exactly the statements that go out, so it needs to run
last.

To handle initialiser elements, re-run process_stmt over the initialiser
statements that are created by process_decl. That's repeating some steps,
but it seems to work.

Waiting on input from Michael N about how crazy this is, but for now we're
pushing it to testing.
2018-03-14 17:56:53 +11:00
Thomas Sewell 4b2c812323 c-parser: VER-881: process more function calls.
Two kinds of function calls were escaping the analysis. The first is simple,
the ReturnFnCall statement type, which was a silly omission from before.

Function calls inside initialiser statements are a more difficult problem.
The simplest solution was to move the VER-881 calculation into a
post-processing phase once those function calls have been moved to statement
positions.
2018-03-14 17:56:53 +11:00
Gerwin Klein 44bd2788cd arm-hyp crefine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 53996e94d9 arm-hyp refine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 830f407d7f arm-hyp ainvs: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 3f7d6e1ce9 ARM infoflow: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 84633ccb7f ARM access: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 51190d18d1 ARM bisim: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein b0cac3ec77 ARM drefine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 4eb4ddf53f ARM crefine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 2d9de5b9a6 ARM refine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 8601dce656 ARM ainvs: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 21bbc51d9b x64 crefine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein 72c4123d10 x64 refine: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein b29e9c9fd3 x64 ainvs: proof update for user_context refactor 2018-03-08 18:41:28 +11:00
Gerwin Klein d9c08fc73f aspec/haskell/machine: refactor user_context interface
- remove separate abstract set_/get_register implementation, directly use machine op
 - make interface aware that user_context does not always need to equal
   (register => machine_word)
 - introduce FPU state on x64
2018-03-08 18:41:28 +11:00
Gerwin Klein ba97e55d1f docs: Isabelle2016-1 -> Isabelle2017 2018-03-08 08:33:18 +11:00
Gerwin Klein 79cea8452f retire out-of-date effort calculation 2018-03-08 08:32:42 +11:00
Japheth Lim 055e8984b7 c-parser: fix release script 2018-03-02 15:04:52 +11:00
Japheth Lim d22a054262 c-parser: update install instructions 2018-03-02 13:08:16 +11:00
Japheth Lim 7144e380a8 autocorres: fixes for quickstart doc formatting; update bib entries 2018-03-02 13:07:49 +11:00
Japheth Lim 7c818daaea autocorres: fix C source formatting in quickstart doc 2018-03-02 11:34:54 +11:00
Japheth Lim 35eae1f0c1 autocorres: update for version 1.4 release 2018-03-02 11:13:21 +11:00
Gerwin Klein ebfc7ec171 README.md: zenodo png -> svg; move DOI tag up 2018-03-01 16:59:39 +11:00
Gerwin Klein 561be5e196 autocorres: NICTA URLs -> D61 URLs 2018-03-01 16:54:05 +11:00
Japheth Lim d7ec3eb986 crefine: update for C-parser change to avoid complex call lvals (JIRA VER-881) 2018-02-28 11:22:53 +11:00
Thomas Sewell f35caa8dca JIRA VER-881: avoid complex call lvals.
This scans for statement-level function calls which will have complex
lvalue translations, either because their lvalues are compound
expressions or because their function return type will be promoted to
be stored. It treats them like expression-level function calls, with
an additional call statement added (saving to a ret_ variable) and
the complex lvalue step treated like an assignment.
2018-02-28 11:22:46 +11:00
Michael Sproul f0795805d1 SELFOUR-1016: fix confused deputy problem when setting priorities 2018-02-26 11:19:43 +11:00
Rafal Kolanski b749a23b87 lib: add find_names command to find other names of a theorem
When given a theorem, find_names finds other names the theorem appears
under, via matching on the whole proposition. It will not identify
unnamed theorems.
2018-02-25 21:47:35 +11:00
Joel Beeren 4601f2a1ab Genericise deletion actions that occur after empty_slot
This patch adds a generic "post_cap_deletion" step that is called by
finalise_slot. Previous to this, the only caps which had actions
required at this stage were IRQHandlerCaps -- it was required that the
IRQ bitmap be updated after the cap itself was removed (as the
invariants state that for any existing IRQHandlerCap, the corresponding
bit in the IRQ bitmap must be set).

By genericising this, we add the capacity for new, arch-specific post
cap deletion actions to occur in the future.
2018-02-23 09:12:55 +11:00
Matthew Brecknell 3abbdd74a3 aspec: reintroduce spec document version information
Including version information in the spec document is tricky, because
Isabelle will rebuild the session whenever it sees that session inputs
(including document sources) have changed. Since ASpec is close to the
root of our session hierarchy, frequently changing version information
causes excessive rebuilds during development.

This commit avoids excessive rebuilding by building the document (with
version information) in a separate ASpecDoc session. The ASpecDoc
session is identical to the previous version of the ASpec session, but
is not the parent of any other sessions. The ASpec session is used as
the basis for other sessions, but has document-only inputs removed, and
also has document builds disabled.
2018-02-20 10:46:50 +11:00
Matthew Brecknell 6e74fa1ae3 arm/arm-hyp crefine: update proofs for new ccorres_rewrite 2018-02-18 13:05:41 +11:00
Matthew Brecknell 6ee106571a lib ccorres_rewrite: discard everything sequenced after a Throw
Also introduce simple conditional rewriting.
2018-02-18 12:39:16 +11:00
Matthew Brecknell 0b2cb85b8d aspec: remove ARCH and git-id from specification document
This partially reverts a recent change which adds these.

Unfortunately, including the ARCH and git-id files in the ROOT file
causes frequent rebuilds during development. For example, adding a
commit that changes only CRefine would cause a change in the git-id
file, which would in turn trigger a rebuild of ASpec and everything that
depends on it. Because the git-id file also noted uncommitted changes,
these would also trigger an ASpec rebuild. Similarly, switching to a
different L4V_ARCH would cause the ARCH file to change, also triggering
an ASpec rebuild.

Since Isabelle makes it difficult to include this information in the
document without adding these files to the ROOT file, this commit is
removing this information until we find a better way.
2018-02-17 10:44:36 +11:00
Joel Beeren 3d225cde69 VER-910: add msgLabelBits to haskell
message_info structs have 20 bit labels. On 32-bit systems, the label
does not need to be masked as there are no extra padding bits in the
struct, but this is not true for 64-bit systems. As a result, the
haskell needs to mask msgLabelBits (=20) when extracting the label in
messageInfoFromWord.
2018-02-07 10:36:59 +11:00
Thomas Sewell d2f38a0a80 lib: Add multi-crunch command 'crunches'.
It's just a parser tweak for crunch, and runs multiple crunch commands
with the same sections (wps, ignores, etc).

Also update the comments a little, and move them closer to the anchor of
command clicks (the @{command_keyword} antiquotation).
2018-02-02 10:26:15 +11:00
Thomas Sewell 5152952abb lib: Cleanup in crunch-cmd.ML
Mostly syntactic. Ensure less debug messages are generated
unconditionally.
2018-02-02 10:26:09 +11:00
Miki Tanaka 9fb7c5cf4d arm_hyp ainvs: fix a typo 2018-01-30 12:00:25 +11:00
Miki Tanaka 4efe5392f7 arm ainvs: fix a typo 2018-01-30 12:00:21 +11:00
Matthew Fernandez d675e253ba fix broken README links 2018-01-29 13:24:35 +11:00
Gerwin Klein d04547b124 link to all-version DOI in README.md 2018-01-29 09:58:43 +11:00
Gerwin Klein 07f4c60171 abstract pdf: indicate additional/dirty files in hash 2018-01-26 14:30:52 +11:00
Gerwin Klein 840e77edeb abstract pdf: update old NICTA URL to TS 2018-01-26 14:30:48 +11:00
Gerwin Klein 9f6d2c8d57 abstract pdf: update copyright 2018-01-26 14:30:44 +11:00
Gerwin Klein f310195e56 abstract pdf: update authors list 2018-01-26 14:30:38 +11:00
Gerwin Klein e6c65356a0 abstract pdf: generate VERSION, ARCH, git-id information for PDF 2018-01-26 14:30:38 +11:00