<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/intf, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>[api] Relocate `intf` modules according to dependency-order.</title>
<updated>2018-04-23T14:23:49+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2017-12-27T23:16:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=7dfac786626f8f6775dadc0df85360759584c976'/>
<id>7dfac786626f8f6775dadc0df85360759584c976</id>
<content type='text'>
In a component-based source code organization of Coq `intf` doesn't
fit very well, as it sits in bit of "limbo" between different
components, and indeed, encourages developers to place types in
sometimes random places wrt the hierarchy. For example, lower parts of
the system reference `Vernacexpr`, which morally lives in a pretty
higher part of the system.

We move all the files in `intf` to the lowest place their dependencies
can accommodate:

- `Misctypes`: is used by Declaremod, thus it has to go in `library`
  or below. Ideally, this file would disappear.
- `Evar_kinds`: it is used by files in `engine`, so that seems its
  proper placement.
- `Decl_kinds`: used in `library`, seems like the right place. [could
  also be merged.
- `Glob_term`: belongs to pretyping, where it is placed.
- `Locus`: ditto.
- `Pattern`: ditto.
- `Genredexpr`: depended by a few modules in `pretyping`, seems like
  the righ place.
- `Constrexpr`: used in `pretyping`, the use is a bit unfortunate and
  could be fixed, as this module should be declared in `interp` which
  is the one eliminating it.
- `Vernacexpr`: same problem than `Constrexpr`; this one can be fixed
  as it contains stuff it shouldn't. The right place should be `parsing`.
- `Extend`: Is placed in `pretyping` due to being used by `Vernacexpr`.
- `Notation_term`: First place used is `interp`, seems like the right place.

Additionally, for some files it could be worth to merge files of the
form `Foo` with `Foo_ops` in the medium term, as to create proper ADT
modules as done in the kernel with `Name`, etc...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a component-based source code organization of Coq `intf` doesn't
fit very well, as it sits in bit of "limbo" between different
components, and indeed, encourages developers to place types in
sometimes random places wrt the hierarchy. For example, lower parts of
the system reference `Vernacexpr`, which morally lives in a pretty
higher part of the system.

We move all the files in `intf` to the lowest place their dependencies
can accommodate:

- `Misctypes`: is used by Declaremod, thus it has to go in `library`
  or below. Ideally, this file would disappear.
- `Evar_kinds`: it is used by files in `engine`, so that seems its
  proper placement.
- `Decl_kinds`: used in `library`, seems like the right place. [could
  also be merged.
- `Glob_term`: belongs to pretyping, where it is placed.
- `Locus`: ditto.
- `Pattern`: ditto.
- `Genredexpr`: depended by a few modules in `pretyping`, seems like
  the righ place.
- `Constrexpr`: used in `pretyping`, the use is a bit unfortunate and
  could be fixed, as this module should be declared in `interp` which
  is the one eliminating it.
- `Vernacexpr`: same problem than `Constrexpr`; this one can be fixed
  as it contains stuff it shouldn't. The right place should be `parsing`.
- `Extend`: Is placed in `pretyping` due to being used by `Vernacexpr`.
- `Notation_term`: First place used is `interp`, seems like the right place.

Additionally, for some files it could be worth to merge files of the
form `Foo` with `Foo_ops` in the medium term, as to create proper ADT
modules as done in the kernel with `Name`, etc...
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #7152: [api] Remove dependency of library on Vernacexpr.</title>
<updated>2018-04-23T14:19:43+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2018-04-23T14:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=5c34cfa54ec1959758baa3dd283e2e30853380db'/>
<id>5c34cfa54ec1959758baa3dd283e2e30853380db</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #6960: [api] Move some types to their proper module.</title>
<updated>2018-04-06T15:49:36+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2018-04-06T15:49:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=49b30563c4c2d5e967912c96d2e34d9e81a1e675'/>
<id>49b30563c4c2d5e967912c96d2e34d9e81a1e675</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[api] Remove dependency of library on Vernacexpr.</title>
<updated>2018-04-06T00:59:34+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2018-04-02T02:26:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=79ff2bc044aa86a5ce30f0c24647db8c8e2544fa'/>
<id>79ff2bc044aa86a5ce30f0c24647db8c8e2544fa</id>
<content type='text'>
Morally, `library` should not depend on the vernacular
definition. This will also create problems when trying to modularize
the codebase due to the cycle [vernacs depend for example on
constrexprs].

The fix is fortunately easy.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Morally, `library` should not depend on the vernacular
definition. This will also create problems when trying to modularize
the codebase due to the cycle [vernacs depend for example on
constrexprs].

The fix is fortunately easy.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #7016: Make parsing independent of the cumulativity flag.</title>
<updated>2018-04-05T08:04:07+00:00</updated>
<author>
<name>Enrico Tassi</name>
</author>
<published>2018-04-05T08:04:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=4c3564ac7e2ea231a6dde84f2af6bfddbc0834c6'/>
<id>4c3564ac7e2ea231a6dde84f2af6bfddbc0834c6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #7139: [stm] More cleanup of "classification is not an interpreter"</title>
<updated>2018-04-05T07:48:36+00:00</updated>
<author>
<name>Enrico Tassi</name>
</author>
<published>2018-04-05T07:48:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=f97498a6c104da9b7b31f84505db76194a566f9b'/>
<id>f97498a6c104da9b7b31f84505db76194a566f9b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #7138: [stm] Move VernacBacktrack to the toplevel.</title>
<updated>2018-04-04T08:09:29+00:00</updated>
<author>
<name>Enrico Tassi</name>
</author>
<published>2018-04-04T08:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=630cdb53a6ba180f4d67cb1e848978239a0d09ea'/>
<id>630cdb53a6ba180f4d67cb1e848978239a0d09ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[api] Move some types to their proper module.</title>
<updated>2018-04-02T04:54:30+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2018-03-10T22:41:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=b0fcd54d69c2f404a17f7bbcd0426c0bac0080f7'/>
<id>b0fcd54d69c2f404a17f7bbcd0426c0bac0080f7</id>
<content type='text'>
We solve some modularity and type duplication problems by moving types
to a better place. In particular:

- We move tactics types from `Misctypes` to `Tactics` as this is their
  proper module an single user [with LTAC].

- We deprecate aliases in `Tacexpr` to such tactic types.

cc: #6512
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We solve some modularity and type duplication problems by moving types
to a better place. In particular:

- We move tactics types from `Misctypes` to `Tactics` as this is their
  proper module an single user [with LTAC].

- We deprecate aliases in `Tacexpr` to such tactic types.

cc: #6512
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #7106: Supporting fix and cofix in Ltac pattern-matching (wish #7092)</title>
<updated>2018-04-01T15:17:20+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2018-04-01T15:17:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=91e8dfcd7192065f21273d02374dce299241616f'/>
<id>91e8dfcd7192065f21273d02374dce299241616f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[stm] More cleanup of "classification is not an interpreter"</title>
<updated>2018-03-31T23:35:06+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2018-03-31T23:35:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=ce7c528298b045b7363d530a8db034aeb622cd42'/>
<id>ce7c528298b045b7363d530a8db034aeb622cd42</id>
<content type='text'>
We remove meta-information from the query classification and we don't
process `Stm.query` as a transaction anymore, as the right API is
available to it to execute the command directly.

This simplifies pure commands and removes some impossible cases.

Depends on #7138.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We remove meta-information from the query classification and we don't
process `Stm.query` as a transaction anymore, as the right API is
available to it to execute the command directly.

This simplifies pure commands and removes some impossible cases.

Depends on #7138.
</pre>
</div>
</content>
</entry>
</feed>
