Commit graph

425 commits

Author SHA1 Message Date
Lean stage0 autoupdater
d68de2e018 chore: update stage0 2026-01-12 23:25:51 +00:00
Lean stage0 autoupdater
e766839345 chore: update stage0 2026-01-09 09:33:31 +00:00
Lean stage0 autoupdater
11e4e44be0 chore: update stage0 2026-01-06 21:42:26 +00:00
Lean stage0 autoupdater
4f7ba5eb09 chore: update stage0 2025-12-27 03:18:33 +00:00
Leonardo de Moura
dc53fac626
chore: use extensible grind attribute framework to implement [grind] itself (#11769)
This PR uses the new support for user-defined `grind` attributes to
implement the default `[grind]` attribute.

A manual update-stage0 is required because it affects the .olean files.
2025-12-22 10:07:30 -08:00
Lean stage0 autoupdater
13c88f960f chore: update stage0 2025-12-22 03:42:18 +00:00
Lean stage0 autoupdater
aa9f7ab14b chore: update stage0 2025-12-17 23:51:56 +00:00
Lean stage0 autoupdater
f63c2363ee chore: update stage0 2025-12-17 11:51:52 +00:00
Lean stage0 autoupdater
3fdde57e7b chore: update stage0 2025-12-15 08:59:34 +00:00
Lean stage0 autoupdater
902226642f chore: update stage0 2025-12-13 03:28:09 +00:00
Lean stage0 autoupdater
9df8a80c7d chore: update stage0 2025-12-12 16:00:39 +00:00
Lean stage0 autoupdater
864acddb4a chore: update stage0 2025-12-11 15:53:31 +00:00
Lean stage0 autoupdater
acb7bc5f22 chore: update stage0 2025-12-10 19:42:56 +00:00
Joachim Breitner
a7ecae5189 chore: update stage0 2025-12-10 17:28:06 +01:00
Lean stage0 autoupdater
2fff4c6522 chore: update stage0 2025-12-09 15:32:10 +00:00
Lean stage0 autoupdater
c9b8508f6b chore: update stage0 2025-12-08 11:24:45 +00:00
Lean stage0 autoupdater
03a6e58cec chore: update stage0 2025-12-06 03:40:18 +00:00
Lean stage0 autoupdater
8afaa1bc11 chore: update stage0 2025-12-05 05:03:48 +00:00
Lean stage0 autoupdater
5f561bfee2 chore: update stage0 2025-12-04 15:52:42 +00:00
Lean stage0 autoupdater
cac2c47376 chore: update stage0 2025-12-02 20:03:50 +00:00
Lean stage0 autoupdater
c0d5b9b52c chore: update stage0 2025-12-01 21:07:38 +00:00
Lean stage0 autoupdater
35a36ae343 chore: update stage0 2025-12-01 13:35:51 +00:00
Lean stage0 autoupdater
8ff3adaa01 chore: update stage0 2025-11-28 11:52:39 +00:00
Lean stage0 autoupdater
fc36b1b796 chore: update stage0 2025-11-28 05:17:56 +00:00
Lean stage0 autoupdater
130d3cbb57 chore: update stage0 2025-11-27 03:22:23 +00:00
Lean stage0 autoupdater
ae5db72cbe chore: update stage0 2025-11-27 02:33:54 +00:00
Lean stage0 autoupdater
9b204f7a07 chore: update stage0 2025-11-25 09:53:33 +00:00
Lean stage0 autoupdater
5bf6229626 chore: update stage0 2025-11-25 02:50:17 +00:00
Lean stage0 autoupdater
2308e3a0a5 chore: update stage0 2025-11-24 18:43:44 +00:00
Kim Morrison
1aecd85e0c chore: update stage0 2025-11-21 19:35:21 +11:00
Lean stage0 autoupdater
126fca1ec8 chore: update stage0 2025-11-19 19:40:23 +00:00
Lean stage0 autoupdater
1b6fba49c2 chore: update stage0 2025-11-19 15:57:48 +00:00
Lean stage0 autoupdater
75342961fc chore: update stage0 2025-11-19 13:58:11 +00:00
Lean stage0 autoupdater
9fc90488ce chore: update stage0 2025-11-19 08:40:32 +00:00
Lean stage0 autoupdater
4296f8deee chore: update stage0 2025-11-18 11:23:27 +00:00
Lean stage0 autoupdater
1f807969b7 chore: update stage0 2025-11-18 09:08:13 +00:00
Lean stage0 autoupdater
1c82929c34 chore: update stage0 2025-11-17 19:02:56 +00:00
Lean stage0 autoupdater
be6457284a chore: update stage0 2025-11-17 17:15:47 +00:00
Lean stage0 autoupdater
65a41c38a0 chore: update stage0 2025-11-16 10:13:26 +00:00
Leonardo de Moura
d963d33985
feat: add grind_pattern constraints (#11187)
This PR adds syntax for specifying `grind_pattern` constraints and
extends the `EMatchTheorem` object.

--- 
Note: We need a manual stage0 update because it affects the .olean
files.
2025-11-14 18:27:17 -08:00
Lean stage0 autoupdater
a00c78beea chore: update stage0 2025-11-13 02:05:09 +00:00
Lean stage0 autoupdater
7f7a4d3eaf chore: update stage0 2025-11-12 15:54:53 +00:00
Kim Morrison
ec775907e4 chore: update stage0 2025-11-03 23:26:40 +11:00
Lean stage0 autoupdater
e05b0e097c chore: update stage0 2025-11-03 02:54:49 +00:00
Lean stage0 autoupdater
33e92677ba chore: update stage0 2025-10-30 07:41:23 +00:00
Lean stage0 autoupdater
8ff5b8ec2c chore: update stage0 2025-10-28 13:47:28 +00:00
Lean stage0 autoupdater
be2c2bcf9b chore: update stage0 2025-10-25 11:32:01 +00:00
Lean stage0 autoupdater
fb3e2c15fd chore: update stage0 2025-10-23 08:03:18 +00:00
Henrik Böving
52b1b342ab
feat: zero cost BaseIO (#10625)
This PR implements zero cost `BaseIO` by erasing the `IO.RealWorld`
parameter from argument lists and structures. This is a **major breaking
change for FFI**.

Concretely:
- `BaseIO` is defined in terms of `ST IO.RealWorld`
- `EIO` (and thus `IO`) is defined in terms of `EST IO.RealWorld`
- The opaque `Void` type is introduced and the trivial structure
optimization updated to account for it. Furthermore, arguments of type
`Void s` are removed from the argument lists of the C functions.
- `ST` is redefined as `Void s -> ST.Out s a` where `ST.Out` is a pair
of `Void s` and `a`

This together has the following major effects on our generated code:
- Functions that return `BaseIO`/`ST`/`EIO`/`IO`/`EST` now do not take
the dummy world parameter anymore. To account for this FFI code needs to
delete the dummy world parameter from the argument lists.
- Functions that return `BaseIO`/`ST` now return their wrapped value
directly. In particular `BaseIO UInt32` now returns a `uint32_t` instead
of a `lean_object*`. To account for this FFI code might have to change
the return type and does not need to call `lean_io_result_mk_ok` anymore
but can instead just `return` values right away (same with extracting
values from `BaseIO` computations.
- Functions that return `EIO`/`IO`/`EST` now only return the equivalent
of an `Except` node which reduces the allocation size. The
`lean_io_result_mk_ok`/`lean_io_result_mk_error` functions were updated
to account for this already so no change is required.

Besides improving performance by dropping allocation (sizes) we can now
also do fun new things such as:
```lean
@[extern "malloc"]
opaque malloc (size : USize) : BaseIO USize
```
2025-10-22 10:55:12 +02:00
Lean stage0 autoupdater
28dd72d514 chore: update stage0 2025-10-19 23:45:51 +00:00