Mirror of https://github.com/leanprover/lean2 in case it ever disappears
Find a file
Leonardo de Moura f97c260b0b refactor(kernel/environment): add ro_environment
The environment object is a "smart-pointer".
Before this commit, the use of "const &" for environment objects was broken.
For example, suppose we have a function f that should not modify the input environment.
Before this commit, its signature would be
       void f(environment const & env)
This is broken, f's implementation can easilty convert it to a read-write pointer by using
the copy constructor.
       environment rw_env(env);
Now, f can use rw_env to update env.

To fix this issue, we now have ro_environment. It is a shared *const* pointer.
We can convert an environment into a ro_environment, but not the other way around.

ro_environment can also be seen as a form of documentation.
For example, now it is clear that type_inferer is not updating the environment, since its constructor takes a ro_environment.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2013-12-12 16:48:34 -08:00
doc fix(doc/make/split-stack): typo 2013-12-09 22:45:13 -08:00
examples/lean doc(examples/lean): new tactic example 2013-12-06 16:34:59 -08:00
script fix(script/demangle_cpptype): process line-by-line, instead of waiting for EOF 2013-09-29 18:36:01 -07:00
src refactor(kernel/environment): add ro_environment 2013-12-12 16:48:34 -08:00
tests feat(frontends/lean): implement relaxed operator compatibility in the parser 2013-12-10 15:42:43 -08:00
.gitignore chore(.gitignore): update .gitignore 2013-12-01 00:48:44 -05:00
.travis.osx.yml chore(travis): fix .travis.osx.yml 2013-11-12 23:15:03 -05:00
.travis.windows.yml chore(travis): use gcc-4.8.3 (20131205) version for windows build 2013-12-12 16:29:14 -05:00
.travis.yml chore(travis): restore multiple builds 2013-11-17 03:04:37 -05:00
LICENSE Add LICENSE file 2013-07-15 18:55:48 -07:00
README.md doc(README.md): Boost support 2013-12-09 17:45:31 -08:00

UbuntuOS XWindowsCoverageBuilds / UnitTests / Dynamic Analyses
http://build.leanprover.net

About

Requirements

Installing required packages at

Build Instructions

Miscellaneous