lean4-htt/library/init/data
Leonardo de Moura 224fdc7a78 refactor(library/init/lean/ir): platform dependent IR
Motivation: in 64-bit machines, we can store boxed uint32 values as a
tagged pointer. In 32-bit machines, we need to allocated an object (like
Haskell) to store the uint32 value. So, the generated bytecode is quite
different in each platform.

This change also allow us to simplify the IR. Example: we don't need the
type `sizet` anymore.

Impact: To be able to bootstrap in both platforms,
we will have to store two versions of the generated code: 32 and 64
versions. In principle, we only need to store the 64-bit version,
and use cross-compilation to build the 32-bit version.
2018-05-10 13:15:02 -07:00
..
array perf(library/init/data): mark usize, uint16, uint32 and uint64 as [irreducible] 2018-05-07 18:07:04 -07:00
bool chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
char chore(library/init): move logic.lean => core.lean 2018-04-30 09:25:25 -07:00
fin feat(library/init/data/hashmap): hash function produces an uint32 instead of nat 2018-05-03 17:56:10 -07:00
hashmap perf(library/init/data): mark usize, uint16, uint32 and uint64 as [irreducible] 2018-05-07 18:07:04 -07:00
int chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
list chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
nat chore(library/init/data/nat/basic): cleanup 2018-05-04 11:30:06 -07:00
option chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
ordering chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
rbmap feat(library/init/data/rbmap,library/init/data/rbtree): add mfold and mfor for rbtree/rbmap 2018-05-09 15:38:57 -07:00
rbtree feat(library/init/data/rbmap,library/init/data/rbtree): add mfold and mfor for rbtree/rbmap 2018-05-09 15:38:57 -07:00
string chore(*): remove end after each match-expression 2018-05-04 11:30:06 -07:00
basic.lean chore(library/init): remove sum micro module 2018-04-30 09:25:26 -07:00
default.lean chore(library/init): merge sigma/lex.lean with wf.lean 2018-04-30 10:04:03 -07:00
dlist.lean chore(library/init/data/dlist): add @[inline] 2018-05-07 18:07:04 -07:00
hashable.lean feat(library/init/data/hashable): add hashable nat instance 2018-05-06 07:53:29 -07:00
repr.lean perf(library/init/data): mark usize, uint16, uint32 and uint64 as [irreducible] 2018-05-07 18:07:04 -07:00
set.lean refactor(init): init/category ==> init.control 2018-04-27 08:33:08 -07:00
to_string.lean refactor(library/init/lean/ir): platform dependent IR 2018-05-10 13:15:02 -07:00
uint.lean perf(library/init/data): mark usize, uint16, uint32 and uint64 as [irreducible] 2018-05-07 18:07:04 -07:00
usize.lean perf(library/init/data): mark usize, uint16, uint32 and uint64 as [irreducible] 2018-05-07 18:07:04 -07:00