feat(util/list): add map_reuse template

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(build): typo

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(build): include incorrect output in the logs

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util/list): avoid recursion at for_each template

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
perf(util/list): avoid recursion in map and destructor

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
perf(util/list): use buffer of cells instead of buffer of T

T may be a big object. We minimize the ammount of copying using buffer of (pointers to) cells.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util/sexpr): avoid recursion when destructing sexpr's

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/for_each): avoid recursion at for_each template

It saves a lot of stack space.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel/expr): avoid recursion when deleting expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
doc(lua): add sections on Lua tables and splay maps

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
doc(lua): add link to wikipedia splay tree page

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(memcheck): suppress memory leak at awk

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel): add (optional) field m_type to expr_const, this field is useful for implementing the tactic framework

This field should not be visible in the external API.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
chore(kernel/for_each): use consistent naming convetions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel): add find_fn, replace for_each_fn with find_fn when appropriate, remove unnecessary function has_cached_type

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(doc/lua): extra lines in the automatically generated .md.lua

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
doc(lua): add mpz and mpq Lua API documentation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
refactor(kernel/metavar): remove unnecessary variable

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(extra): add extension that demonstrates how to parse 'templates'

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(util/list): add emplace_front

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>