<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coq/kernel, branch master</title>
<subtitle>The formal proof system</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/'/>
<entry>
<title>Check for existence before using `Global.lookup_constant` instead of catching `Not_found`</title>
<updated>2021-04-19T10:46:13+00:00</updated>
<author>
<name>Lasse Blaauwbroek</name>
</author>
<published>2021-04-19T09:08:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=e50a6195097c0d15c839c5403c1d02511afd54e4'/>
<id>e50a6195097c0d15c839c5403c1d02511afd54e4</id>
<content type='text'>
`Global.lookup_constant` fails with an assertion instead of `Not_found`. Some
code relied upon `Not_found`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Global.lookup_constant` fails with an assertion instead of `Not_found`. Some
code relied upon `Not_found`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Put async worker id in universe names</title>
<updated>2021-04-14T10:54:05+00:00</updated>
<author>
<name>Gaëtan Gilbert</name>
</author>
<published>2021-04-01T17:35:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=004bf5770bdcdd1b35dd27f683c733505823e741'/>
<id>004bf5770bdcdd1b35dd27f683c733505823e741</id>
<content type='text'>
This removes the need for the remote counter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the need for the remote counter.
</pre>
</div>
</content>
</entry>
<entry>
<title>[dune] Rename byterun to coqrun</title>
<updated>2021-03-31T17:05:49+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2021-03-31T17:02:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=3bd703714dff733fbfcdfcae591b85bdac6f4b2a'/>
<id>3bd703714dff733fbfcdfcae591b85bdac6f4b2a</id>
<content type='text'>
This seems the official name, the byterun name is just an artifact
from the very preliminary dune build.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This seems the official name, the byterun name is just an artifact
from the very preliminary dune build.
</pre>
</div>
</content>
</entry>
<entry>
<title>[flags] [profile] Remove bit-rotten CProfile code.</title>
<updated>2021-03-30T13:37:00+00:00</updated>
<author>
<name>Emilio Jesus Gallego Arias</name>
</author>
<published>2020-03-10T05:06:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=5d3c0a0326af68e85f1f1cfc6bfa2214b0052de8'/>
<id>5d3c0a0326af68e85f1f1cfc6bfa2214b0052de8</id>
<content type='text'>
As of today Coq has the `CProfile` infrastructure disabled by default,
untested, and not easily accessible.

It was decided that `CProfile` should remain not user-accessible, and
only available thus by manual editing of Coq code to switch the flag
and manually instrument functions.

We thus remove all bitrotten dead code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of today Coq has the `CProfile` infrastructure disabled by default,
untested, and not easily accessible.

It was decided that `CProfile` should remain not user-accessible, and
only available thus by manual editing of Coq code to switch the flag
and manually instrument functions.

We thus remove all bitrotten dead code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge PR #14005: Support OCaml primitives with an actual arity larger than 4.</title>
<updated>2021-03-30T12:05:08+00:00</updated>
<author>
<name>Pierre-Marie Pédrot</name>
</author>
<published>2021-03-30T12:05:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=666a3aa8dd7df6dd29ea7944482510048a8a7ba7'/>
<id>666a3aa8dd7df6dd29ea7944482510048a8a7ba7</id>
<content type='text'>
Reviewed-by: ppedrot
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed-by: ppedrot
</pre>
</div>
</content>
</entry>
<entry>
<title>[recordops] complete API rewrite; the module is now called [structures]</title>
<updated>2021-03-26T14:19:19+00:00</updated>
<author>
<name>Enrico Tassi</name>
</author>
<published>2021-03-18T18:15:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=34ece1ae3e6696bdc9556e5019c3b8ec3fd23f8a'/>
<id>34ece1ae3e6696bdc9556e5019c3b8ec3fd23f8a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve dump of primitive OCaml operations.</title>
<updated>2021-03-26T14:18:28+00:00</updated>
<author>
<name>Guillaume Melquiond</name>
</author>
<published>2021-03-25T13:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=682a3f473d318e549ed8cf61f3690573e32c00be'/>
<id>682a3f473d318e549ed8cf61f3690573e32c00be</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support OCaml primitives with an actual arity larger than 4.</title>
<updated>2021-03-26T14:18:28+00:00</updated>
<author>
<name>Guillaume Melquiond</name>
</author>
<published>2021-03-25T13:32:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=6a6e58ea763d3bacda86056b6e7f404bf95ad45d'/>
<id>6a6e58ea763d3bacda86056b6e7f404bf95ad45d</id>
<content type='text'>
PArray.set has arity 4, but due to the polymorphic universe, its actual
arity is 5. As a consequence, Kshort_apply cannot be used to invoke it
(or rather its accumulating version).

Using Kapply does not quite work here, because Kpush_retaddr would have to
be invoked before the arguments, that is, before we even know whether the
arguments are accumulators. So, to use Kapply, one would need to push the
return address, push duplicates of the already computed arguments, call
the accumulator, and then pop the original arguments.

This commit follows a simpler approach, but more restrictive, as it is
still limited to arity 4, but this time independently from universes. To
do so, the call is performed in two steps. First, a closure containing the
universes is created. Second, the actual application to the original
arguments is performed, for which Kshort_apply is sufficient.

So, this is inefficient, because a closure is created just so that it can
be immediately fully applied. But since this is the accumulator slow path,
this does not matter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PArray.set has arity 4, but due to the polymorphic universe, its actual
arity is 5. As a consequence, Kshort_apply cannot be used to invoke it
(or rather its accumulating version).

Using Kapply does not quite work here, because Kpush_retaddr would have to
be invoked before the arguments, that is, before we even know whether the
arguments are accumulators. So, to use Kapply, one would need to push the
return address, push duplicates of the already computed arguments, call
the accumulator, and then pop the original arguments.

This commit follows a simpler approach, but more restrictive, as it is
still limited to arity 4, but this time independently from universes. To
do so, the call is performed in two steps. First, a closure containing the
universes is created. Second, the actual application to the original
arguments is performed, for which Kshort_apply is sufficient.

So, this is inefficient, because a closure is created just so that it can
be immediately fully applied. But since this is the accumulator slow path,
this does not matter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make it more obvious when the calling convention of APPLY changes.</title>
<updated>2021-03-26T14:18:28+00:00</updated>
<author>
<name>Guillaume Melquiond</name>
</author>
<published>2021-03-25T11:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=ae819deb38c3a962e3badf020705c3d0c6c84e67'/>
<id>ae819deb38c3a962e3badf020705c3d0c6c84e67</id>
<content type='text'>
Despite their names, APPLY1 to APPLY4 are completely different from
APPLY(n) with n = 1 to 4. Indeed, the latter assumes that the return
address was already pushed on the stack, before the arguments were. On the
other hand, APPLY1 to APPLY4 insert the return address in the middle of
the already pushed arguments.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Despite their names, APPLY1 to APPLY4 are completely different from
APPLY(n) with n = 1 to 4. Indeed, the latter assumes that the return
address was already pushed on the stack, before the arguments were. On the
other hand, APPLY1 to APPLY4 insert the return address in the middle of
the already pushed arguments.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix assertion that checks that APPLY can only be passed 4 arguments.</title>
<updated>2021-03-26T14:18:28+00:00</updated>
<author>
<name>Guillaume Melquiond</name>
</author>
<published>2021-03-25T10:28:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/coq/commit/?id=6d7fdaf8484da81993958d339e411d8e3b1a38c1'/>
<id>6d7fdaf8484da81993958d339e411d8e3b1a38c1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
