Leonardo de Moura
b722885137
feat(library/init/io): add unsafe_io and timeit
2019-02-13 16:59:24 -08:00
Leonardo de Moura
9cb2005e8e
feat(library/init/lean): add hash functions and dbg_to_string
2019-02-13 16:19:25 -08:00
Leonardo de Moura
b89eb64cf1
refactor(library/init/lean/expr): use native constructors
2019-02-13 15:07:49 -08:00
Leonardo de Moura
e10240fe5c
refactor(runtime/io): use extern "C" for io primitives
2019-02-13 11:21:29 -08:00
Leonardo de Moura
71f5290567
feat(kernel): expose level primitives
2019-02-13 10:37:13 -08:00
Leonardo de Moura
4627929a83
refactor(boot,runtime,util): move name runtime implementation to util/name, and use "extern C" ABI
2019-02-13 08:27:23 -08:00
Leonardo de Moura
b3f0ce5355
fix(kernel/runtime): use extern "C"
2019-02-13 08:04:47 -08:00
Leonardo de Moura
008ac698d7
chore(boot): update
2019-02-12 18:18:18 -08:00
Leonardo de Moura
532a51b152
chore(boot): update
2019-02-12 17:58:52 -08:00
Leonardo de Moura
64a2742859
chore(boot): update
2019-02-12 16:11:49 -08:00
Leonardo de Moura
52db59eb87
fix(library/init/data/int/basic): nasty bug at int.repr
2019-02-12 15:58:59 -08:00
Leonardo de Moura
0e98f6bd66
chore(boot): update
2019-02-12 15:48:44 -08:00
Leonardo de Moura
4df56faf6a
chore(boot): update
2019-02-12 14:11:36 -08:00
Leonardo de Moura
88de217cb7
chore(library/init): remove version.lean.in
...
We are currently not using this file. In the future, we should
reintroduce it, but its functions should be implemented as builtins.
Thus, every `chore(boot): update` commit will not have to update it.
2019-02-12 11:57:09 -08:00
Leonardo de Moura
c8e8fbf840
chore(boot): update after rebase
2019-02-12 11:49:49 -08:00
Leonardo de Moura
425a4b70d1
feat(library/init/data/int/basic): use extern attribute, and fix div/mod mess
...
Now, int.div and int.mod behave like C++ `/` and `%` for int,
moreover, they satisfy
(a/b)*b + (a%b) = a
2019-02-12 11:41:46 -08:00
Leonardo de Moura
f20c132ced
feat(library/init/lean/elaborator): use extern attribute
2019-02-12 11:40:21 -08:00
Sebastian Ullrich
8e7faeeb5d
chore(boot): update
2019-02-12 13:35:50 +01:00
Leonardo de Moura
6be47dfb97
feat(library/init/data/string/basic): use extern attribute
2019-02-11 17:54:24 -08:00
Leonardo de Moura
e920faf76d
chore(boot): update
2019-02-11 17:01:46 -08:00
Leonardo de Moura
d877bdf546
chore(boot): update
2019-02-11 16:19:30 -08:00
Leonardo de Moura
c105da0d86
chore(boot): update
2019-02-11 15:57:05 -08:00
Leonardo de Moura
bc4e06666b
chore(*): avoid 0-ary extern declarations
2019-02-11 13:21:17 -08:00
Leonardo de Moura
57ed6fea3a
chore(boot): update
2019-02-11 12:54:41 -08:00
Leonardo de Moura
6bdc60d380
chore(boot): update
2019-02-11 11:42:27 -08:00
Leonardo de Moura
7e8f9e6f66
feat(library/compiler): add [extern] attribute
2019-02-09 18:53:44 -08:00
Leonardo de Moura
e8758a1707
chore(library/compiler/export_attribute): exporting constructors is messy
...
It is much simpler and only slightly more verbose to export an
auxiliary function that just invokes the constructor.
2019-02-09 18:00:27 -08:00
Sebastian Ullrich
b579358b25
chore(boot): update
2019-02-09 19:57:24 +01:00
Leonardo de Moura
613980fb30
fix(library/Makefile.in): add .olean as .cpp dependency
2019-02-08 17:09:53 -08:00
Leonardo de Moura
b50f9de3b8
feat(library/init/lean/extern): declare extern_attr_data and helper functions
2019-02-08 16:55:44 -08:00
Leonardo de Moura
efe64cb2d3
feat(library/init/data/list/basic): tail recursive length
2019-02-08 16:51:44 -08:00
Leonardo de Moura
2d55c3f73c
chore(boot): update
2019-02-08 16:44:17 -08:00
Leonardo de Moura
4ce415cbde
chore(boot): update
2019-02-08 11:12:13 -08:00
Sebastian Ullrich
e08df252d3
chore(boot): update
2019-02-07 14:28:26 +01:00
Sebastian Ullrich
f2a864c91e
chore(boot): update
2019-02-07 14:16:07 +01:00
Leonardo de Moura
722b7663a4
chore(boot): update
...
@kha note that the previous commit produced a small code bloat here.
The code bloat seems reasonable and affects definitions such as:
```
@[inline] protected def max : rbmap α β lt → option (α × β)
| ⟨t, _⟩ :=
match t.max with
| some ⟨k, v⟩ := some (k, v)
| none := none
```
Before previous commit, while compiling `max` we would not know it is
marked as `[inline]`. Thus, we would not inline `max._main` into
`max`. Now, we do.
I believe this is not a big deal since functions marked as `[inline]`
are supposed to be small.
2019-02-06 12:37:47 -08:00
Leonardo de Moura
9dd1ba6671
chore(boot): update
2019-02-06 10:58:03 -08:00
Leonardo de Moura
fbc6c47094
chore(boot): update
2019-02-06 09:59:22 -08:00
Leonardo de Moura
2b67c38718
chore(boot): update
2019-02-05 17:07:22 -08:00
Leonardo de Moura
c4e8770342
feat(runtime,boot): second part of the previous commit
2019-02-05 16:28:18 -08:00
Leonardo de Moura
cfa21d6875
chore(boot): update
2019-02-05 14:41:42 -08:00
Leonardo de Moura
103a616f57
chore(boot): update
2019-02-05 13:42:02 -08:00
Leonardo de Moura
60c8b1870e
chore(boot): update
2019-02-05 13:08:59 -08:00
Leonardo de Moura
fe3be7a80d
chore(boot): update
2019-02-04 16:23:38 -08:00
Leonardo de Moura
a6645645e3
chore(boot): update
2019-02-04 16:07:31 -08:00
Leonardo de Moura
16f6da6a62
chore(boot): update
2019-02-04 15:28:15 -08:00
Leonardo de Moura
fc4505884b
chore(boot): update
2019-02-04 12:56:11 -08:00
Leonardo de Moura
4696f603e2
chore(boot): update
2019-02-04 10:36:02 -08:00
Leonardo de Moura
b4a78a0280
chore(src/boot): update
2019-02-03 19:22:01 -08:00
Leonardo de Moura
628c377673
chore(src/boot): update
2019-02-03 10:45:48 -08:00