GithubHelp home page GithubHelp logo

nextech-oss / spark2014 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adacore/spark2014

0.0 0.0 0.0 307.71 MB

SPARK 2014 is the new version of SPARK, a software development technology specifically designed for engineering high-reliability applications.

License: GNU General Public License v3.0

Shell 0.01% Python 0.90% C 0.26% Emacs Lisp 0.01% Assembly 0.01% Ada 98.45% Coq 0.29% Makefile 0.06% Roff 0.01%

spark2014's Introduction

CII Best Practices

1. Introduction

This repository contains the source code for the SPARK project. SPARK is a software development technology specifically designed for engineering high-reliability applications. It consists of a programming language, a verification toolset and a design method which, taken together, ensure that ultra-low defect software can be deployed in application domains where high-reliability must be assured and where safety and security are key requirements.

This repository provides visibility on the development process. The main line of development is in line with the development version of GNAT, which is not directly visible to the public (although patches are regularly transferred to the FSF repository at svn://gcc.gnu.org/svn/gcc/trunk/gcc/ada), and it will probably be impossible to build the master branch of the software with any other compiler. However, buildable branches are provided corresponding to public compiler releases or the head of the FSF repository, see the section on Building SPARK below.

2. Commercial support

SPARK is commercially supported by AdaCore and Capgemini, you can visit the AdaCore website for more information.

3. Community version

3.1 Manual install

You can download a "gnatprove" package from this github project. Extracting the package and adding the bin directory to your PATH is enough. You can get the GNAT compiler from the same link, and there is a different project for GNATStudio, the IDE.

3.2 Install using alire

You can obtain SPARK via Alire. To do this, follow the installation instructions of Alire, then you can add the gnatprove dependency to an alire project using

    alr with gnatprove

Alire will download gnatprove if necessary.

3.3 The older GNAT Community version

There is an older community version of the tools, packaged with GNAT and GNATStudio. You can download it from AdaCore's website.

4. Governance

SPARK is led by AdaCore and co-developed by AdaCore, Capgemini and Inria. The SPARK team at AdaCore is responsible for the technology roadmap, taking into account the needs of all stakeholders: sales and marketing, customers, other development teams, community.

The team is organized around a set of roles for QA, integration, certification, language evolution, etc. with two roles managing interactions:

The Team Coordinator:

  • Defines the technology roadmap with all stakeholders.
  • Coordinates and organizes the work in the team.
  • Adjusts efforts and priorities based on the technology roadmap.

The Team Technical Authority:

  • Provides and maintains deep knowledge of the technology.
  • Is the main reference point for knowledge on the technology.
  • Is the software architect on the technology.

Currently these roles are exercised by Claire Dross (Team Coordinator) and Johannes Kanig (Team Technical Authority).

5. Community

News about SPARK project are shared primarily on AdaCore's blog. Discussions about SPARK occur on a public mailing-list.

6. Documentation

You can find the definition of the SPARK language in the SPARK Reference Manual, and instructions on how to use the tool, together with a tutorial, in the SPARK User's Guide.

7. Building SPARK

In order to build SPARK, you need to first install the following dependencies (and we recommend using the OPAM package manager for these):

  • ocaml compiler
  • ocamlgraph library
  • menhir parser
  • zarith library
  • camlzip library
  • ocplib-simplex library

SPARK sources are tied to the sources of GNAT compiler frontend. For this reason, you should use a compiler built from sources with a date matching the sources of SPARK. There are two options.

7.1 Building SPARK with GNAT Community

To build SPARK with GNAT Community compiler, you need to use the corresponding branch of this repository. For example, to build with GNAT Community 2020, use the branch gpl-2020, as follows:

git checkout gpl-2020

SPARK repository uses submodules to keep in sync with corresponding versions of Why3, Alt-Ergo, CVC4 and Z3, which generally track the main repositories for these tools with minor modifications for the integration with SPARK. To retrieve the corresponding branch of these submodules, do:

git submodule init
git submodule update

Then follow the instructions in the Makefile.

7.2 Building SPARK with GNAT FSF

To build SPARK with GNAT version from FSF, you need to use the corresponding branch of this repository which follows the latest changes pushed at FSF, as follows:

git checkout fsf

To retrieve the most recent version of the submodules for Why3, Alt-Ergo, CVC4 and Z3, which matches the latest changes for SPARK pushed at FSF, do:

git submodule init
git submodule update

Then follow the instructions in the Makefile.

spark2014's People

Contributors

kanigsson avatar yannickmoy avatar clairedross avatar ptroja avatar jeromeguittonadacore avatar joffreyhuguet avatar elisabarboni avatar arnaudcharlet avatar martinclochardpro avatar swbaird avatar benozol avatar dhauzar avatar john-hatcliff avatar hainque avatar zhangzhi-ksu avatar spanners avatar manmatteo avatar robby-phd avatar solene-moreau avatar julienbortolussiada avatar angelawallenburg avatar mercementre avatar sttaft avatar florianschanda avatar pmderodat avatar nikokrock avatar setton avatar pat-rogers avatar hanhmchau avatar glacambre avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.