Examines spark programs and generates verification conditions
spark \kx [OPTIONS] [ FILE_LIST or @METAFILE ]
The Examiner for SPARK, spark, analyses the given source files for errors and violations of the SPARK subset and (optionally) generates verification conditions and dead path conjectures necessary for proof of absence of run-time exceptions and partial correctness.
This manual page only summarises the spark command-line flags, please refer to the full Examiner manual for further information.
These options do not quite follow the usual GNU command line syntax. All options start with a single dash instead of the usual two and they can also be abbreviated, as long as the abbreviation is unique. For example \*(T<-help\*(T> can be abbreviated to \*(T<-he\*(T> but not \*(T<-h\*(T> as this clashes with \*(T<-html\*(T>.
\*(T<-source_extension=\*(T>file_type
Specifies source file extension (Default 'ada')
\*(T<-noindex_file\*(T>, \*(T<-index_file=\*(T>file_spec
Specifies the index file. By default no index file is used.
\*(T<-nowarning_file\*(T>, \*(T<-warning_file=\*(T>file_spec
Specifies the warning control file. By default no warning control file is used.
\*(T<-noconfig_file\*(T>, \*(T<-config_file=\*(T>file_spec
Specifies the Examiner configuration file. By default no configuration file is used.
\*(T<-noswitch\*(T>
Ignore the \*(T<spark.sw\*(T> file, if it exists.
\*(T<-nolistings\*(T>, \*(T<-listing_extension=\*(T>file_type
By default all listing files have the 'lst' extension. These options can be used to disable listing file generation or to change the default extension.
\*(T<-noreport_file\*(T>, \*(T<-report_file=\*(T>file_spec
By default the report will be named 'SPARK.REP'. These options can be used to change the default name or to disable report generation.
\*(T<-html\*(T>, \*(T<-html=\*(T>dir_spec
Generate HTML listings and report file.
\*(T<-output_directory=\*(T>dir_spec
Generate report, listing and proof files in the specified directory.
\*(T<-plain_output\*(T>
No dates, line or error numbers will appear in the output files.
\*(T<-language=\*(T>L
This can be one of 83, 95 (the default) or 2005.
\*(T<-profile=\*(T>P
Choose between the sequential (the default) or ravenscar language profile.
\*(T<-noduration\*(T>
Do not predefine \*(T<Standard.Duration\*(T>.
\*(T<-syntax_check\*(T>
Perform syntax check only. No semantic checks.
\*(T<-flow_analysis=\*(T>TYPE
Choose between \*(T<information\*(T> or \*(T<data\*(T>.
\*(T<-policy=\*(T>TYPE
Select \*(T<security\*(T> or \*(T<safety\*(T> policy for flow analysis.
\*(T<-vcg\*(T>
Generate VCs.
\*(T<-dpc\*(T>
Generate DPCs.
\*(T<-rules=\*(T>CHOICE
Select policy for generation of composite constant proof rules. Can be one of none (the default), lazy, keen or all.
\*(T<-annotation_character=\*(T>CHAR
Select alternative annotation character. The default is '#'.
\*(T<-noecho\*(T>
Suppress screen output.
\*(T<-nosli\*(T>
Don't generate SLI files.
\*(T<-sparklib\*(T>
Use the standard SPARK library.
\*(T<-nostatistics\*(T>, \*(T<-statistics\*(T>
Append Examiner table usage statistics to the report file. By default we don't do this.
\*(T<-fdl_identifiers=\*(T>OPTION
Control treatment of FDL identifiers when found in SPARK source. Can be one of 'reject' (the default) or 'accept' or <string>.
\*(T<-version\*(T>
Print Examiner banner and statistics and then exit.
\*(T<-help\*(T>
Print command line summary and options.
\*(T<-original_flow_errors\*(T>
Print information flow errors in original, less compact, format.
\*(T<-error_explanations=\*(T>SETTING
Print explanations after error messages. Settings can be off (the default), first_occurrence or every_occurrence.
\*(T<-justification_option=\*(T>TYPE
Select policy for justification of errors. Values can be full (the default), brief or ignore.
\*(T<-casing\*(T>, \*(T<-casing=\*(T>CHOICE
Check casing for identifier references and check casing of package \*(T<Standard\*(T> identifiers. It is also possible to specify i or s to check for only one of these.
This manual page was written by Florian Schanda <\*(T<[email protected]\*(T>> for the Debian GNU/Linux system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.