Leonardo de Moura
6be47dfb97
feat(library/init/data/string/basic): use extern attribute
2019-02-11 17:54:24 -08:00
Leonardo de Moura
9675b7c952
fix(frontends/lean/elaborator): ignore mdata when processing field notation
2019-02-11 17:29:38 -08:00
Leonardo de Moura
73d590f1fb
feat(library/init/io): use extern attribute
2019-02-11 16:56:54 -08:00
Leonardo de Moura
58783a2d3b
fix(library/compiler/extern_attribute): bug at get_given_arity
2019-02-11 16:51:23 -08:00
Leonardo de Moura
5a5e949578
feat(library/init/lean/name): use extern attribute
2019-02-11 16:12:25 -08:00
Leonardo de Moura
7b0227572f
fix(library/init/core): missing borrowed annotation
2019-02-11 16:01:56 -08:00
Leonardo de Moura
07ed77e724
fix(library/compiler/util): decidable A missing at mk_runtime_type
2019-02-11 15:51:09 -08:00
Leonardo de Moura
ccc4fe1468
fix(library/compiler/extract_closed): add new auxiliary declarations before
2019-02-11 15:40:22 -08:00
Leonardo de Moura
c27167f445
fix(library/compiler/ll_infer_type): use extern_attribute
2019-02-11 15:35:03 -08:00
Leonardo de Moura
9c3675f58f
feat(library/init/data): use extern when declaring uint and usize primitives
2019-02-11 15:15:57 -08:00
Leonardo de Moura
03ecc363a0
fix(library/compiler/util): missing case
2019-02-11 15:14:02 -08:00
Leonardo de Moura
6bc23bcc65
feat(library/compiler/extern_attribute): infer ll_type, arity and borrowed flags from type
2019-02-11 14:57:13 -08:00
Leonardo de Moura
8acb2d4ed8
chore(library/compiler): minor modifications before builtin ==> extern refactor
2019-02-11 13:29:39 -08:00
Leonardo de Moura
bc4e06666b
chore(*): avoid 0-ary extern declarations
2019-02-11 13:21:17 -08:00
Leonardo de Moura
57411ed039
refactor(library/compiler/extern_attribute): new interface
2019-02-11 12:48:37 -08:00
Leonardo de Moura
96d63ccc0d
chore(library/compiler/builtin): remove "m_used_args"
2019-02-11 12:24:30 -08:00
Leonardo de Moura
befa53ec70
feat(library/compiler/emit_cpp): use new extern_attribute module
2019-02-11 11:03:56 -08:00
Leonardo de Moura
6c90b1a2ff
chore(library/compiler/builtin): style
2019-02-11 10:30:06 -08:00
Leonardo de Moura
348ccf533c
feat(library/compiler): borrowed annotations
2019-02-11 10:08:47 -08:00
Leonardo de Moura
7e8f9e6f66
feat(library/compiler): add [extern] attribute
2019-02-09 18:53:44 -08:00
Leonardo de Moura
04ddd55b32
fix(library/derive_attribute): , is also an attribute terminator
2019-02-09 18:06:02 -08:00
Leonardo de Moura
d8c9740902
chore(library/compiler/builtin): fix compiler warning
2019-02-09 18:03:53 -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
Leonardo de Moura
bf15ee48fd
refactor(library/compiler): export_name ==> export_attribute
2019-02-09 17:59:46 -08:00
Leonardo de Moura
9aed74a5e0
refactor(library/compiler): move extension for storing LLNF code
2019-02-09 17:59:46 -08:00
Leonardo de Moura
a4f305a443
fix(library/compiler/export_name): allow constructors to be exported with a different name
2019-02-08 16:36:08 -08:00
Leonardo de Moura
b09be6d0a5
fix(library/compiler/emit_cpp): missing { }
2019-02-08 11:06:29 -08:00
Leonardo de Moura
4339afc802
chore(library/compiler): [extname] ==> [export]
2019-02-08 10:25:21 -08:00
Max Wagner
3164801a83
fix(library/vm): unary op dummies copy-paste error
2019-02-08 09:56:20 -08:00
Max Wagner
e663f75fb2
chore(library/compiler): move builtins into the environment
2019-02-08 09:56:03 -08:00
Leonardo de Moura
ba449aa9f4
chore(library/compiler/llnf): fix compilation warning
2019-02-07 15:02:26 -08:00
Sebastian Ullrich
25ffbdda57
chore(src/*): fix style
2019-02-07 15:41:12 +01:00
Leonardo de Moura
14dd0d4907
feat(library/compiler): treat a function named main as the main function
2019-02-06 17:20:23 -08:00
Leonardo de Moura
16c0e62fa1
feat(library/compiler/emit_cpp): emit main
2019-02-06 14:34:52 -08:00
Leonardo de Moura
b85f4aac88
feat(library/compiler/extname): add validation
2019-02-06 13:24:42 -08:00
Leonardo de Moura
a8e2e535a2
feat(library/compiler): preserve the arity of entry points
2019-02-06 12:58:18 -08:00
Leonardo de Moura
b4a7bb4f4c
refactor(library/compiler): [cppname] ==> [extname]
...
We will use this atttribute for all backends.
2019-02-06 12:53:12 -08:00
Leonardo de Moura
f38de694b0
feat(frontends/lean/definition_cmds): compile code after attributes have been applied
...
@kha do you see any problem with this change?
2019-02-06 12:14:53 -08:00
Leonardo de Moura
d103ff70fe
feat(library/compiler): avoid cnstr_set_scalar when possible
2019-02-06 10:49:58 -08:00
Sebastian Ullrich
57b2607463
fix(library/compiler/specialize): declare specialized functions before caller
2019-02-06 09:36:36 -08:00
Sebastian Ullrich
58830be91f
chore(library/compiler/emit_cpp): ignore warnings under GCC
2019-02-06 09:35:51 -08:00
Sebastian Ullrich
34110945f2
refactor(library/compiler/llnf): replace is_runtime_builtin_cnstr with just is_builtin_constant
2019-02-06 09:35:16 -08:00
Sebastian Ullrich
11860a65eb
fix(library/compiler/emit_cpp): replace constructor tag on reuse
2019-02-06 09:34:14 -08:00
Sebastian Ullrich
eb85081a03
fix(library/compiler/emit_cpp): let y = f x; let z = ...; y is not a tail call
2019-02-06 09:33:38 -08:00
Leonardo de Moura
a35a951374
chore(library/compiler/emit_cpp): add uint* aliases
2019-02-05 17:01:10 -08:00
Leonardo de Moura
914b023920
feat(library/compiler): treat decidable as an enumeration type
...
Before this commit, `decidable` was not being treated as an
enumeration type, and this was very inconvenient because `bool` and
`decidable` were using a different representation at runtime.
This commit does not complete the modification. We still have to
regenerate `boot`, and then fix the builtin declarations at `runtime`.
cc @kha
2019-02-05 16:08:23 -08:00
Leonardo de Moura
2058d33d07
feat(runtime,library/compiler): add name.dec_eq builtin
2019-02-05 14:36:02 -08:00
Leonardo de Moura
3444a295e7
feat(library/compiler,runtime): builtin support for lean.name
2019-02-05 12:57:46 -08:00
Leonardo de Moura
c5b0258e49
feat(library/compiler/util): do not box unit
2019-02-04 16:19:48 -08:00
Leonardo de Moura
e57401232c
fix(library/compiler/emit_cpp): bug at emit 0-ary constructor of non enum type (e.g., list.nil)
2019-02-04 16:07:31 -08:00