Giter VIP home page Giter VIP logo

native-coq's Introduction

               	         THE COQ V8 SYSTEM
            	         =================

INSTALLATION.
=============

   See the file INSTALL for installation procedure.


DOCUMENTATION.
==============

   The documentation is part of the archive in directory doc. The
   documentation of the last released version is available on the Coq
   web site at http://coq.inria.fr/doc.


CHANGES.
========

   There is a file named CHANGES that explains the differences and the
   incompatibilities since last versions. If you upgrade Coq, please read
   it carefully.


AVAILABILITY.
=============

   Coq is available at http://coq.inria.fr, or, for older versions at
   ftp://ftp.inria.fr/INRIA/LogiCal/coq.


THE COQ CLUB.
=============

   The Coq Club moderated mailing list is meant to be a standard way to
   discuss questions about the Coq system and related topics. The submission
   address is:

	[email protected]

   The topics to be discussed in the club should include:

     * technical problems;

     * questions about proof developments;

     * suggestions and questions about the implementation;

     * announcements of proofs;

     * theoretical questions about typed lambda-calculi which are
       closely related to Coq.

   To be added to, or removed from, the mailing list, please write to:

	[email protected]

   Please use also this address for any questions/suggestions about the
   Coq Club. It might sometimes take a few days before your messages get
   forwarded.


BUGS REPORT.
============

   Send your bug reports by filling a form at

        http://coq.inria.fr/bugs

   To be effective, bug reports should mention the Caml version used
   to compile and run Coq, the Coq version (coqtop -v), the configuration
   used, and include a complete source example leading to the bug.

native-coq's People

Contributors

aspiwack avatar bgregoir avatar erikmd avatar gares avatar maximedenes avatar mboes avatar pirbo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

native-coq's Issues

Unicode identifiers

Coq supports a larger subset of Unicode inidentifiers than OCaml, so we're sometimes producing incorrect OCaml code. Extraction would probably provide us the appropriate machinery.

Lazy evaluation of values

Values defined at toplevel should be evaluated in a lazy fashion:

Definition n := fact 100.
Eval native_compute in true.

Should answer instantly "true".

Useless module imports in generated code

For now each call to native_compute adds a module import in subsequent calls.

An import is actually needed only if part of the environment was on the compilation stack before the call.

Write / Restore State incompatible with native compilation

Definition b := true.
Write State "foo_state".
Restore State "foo_state".
cannot find file /home/mdenes/native-coq/kernel/foo_state.coq.cmxs in search path

Eval native_compute in b.
Compilation...
File "/tmp/Coq_native6784ac.ml", line 6, characters 2-14:
Error: Unbound value const_NTop_b
Anomaly: Compilation failure. Please report.

Incorrect code generated for files with interactive tests

Definition foo := true.
Definition bar := foo.

Eval native_compute in bar.

is compiled to:

let const_Ntest_interactive_foo =
(Obj.magic (NCoq_Init_Datatypes.Construct_NCoq_Init_Datatypes_bool_0_0) : Nativevalues.t)

let const_Ntest_interactive_bar =
Coq_native1cf0e1.const_Ntest_interactive_foo

Issues with native extraction

When extracting to ocaml, native ints are extracted to Uint63.t.
However, file native-coq/theories/Array/ExtractNative.v still extracts constants using implementation native-coq/theories/Array/extrNative.ml instead of native-coq/kernel/uint63.ml.
In order to update ExtractNative.v, we need to implement a few missing bits in uint63.ml, like foldi_cont, foldi_down_cont, print_uint and probably a few others.

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.