aboutsummaryrefslogtreecommitdiff
path: root/src/boot/driver
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-11-02 15:24:46 -0700
committerGraydon Hoare <[email protected]>2010-11-02 15:24:46 -0700
commit7db115834f24eb9d9ccbd2468c9145fdf86be514 (patch)
tree5e5e1463ba1201524c6d10690c0982f4b168ba9f /src/boot/driver
parentFirst pass on splitting stratum and opacity off of effects. WIP. (diff)
downloadrust-7db115834f24eb9d9ccbd2468c9145fdf86be514.tar.xz
rust-7db115834f24eb9d9ccbd2468c9145fdf86be514.zip
Split out stratum-checking pass, implement more-strict (overly aggressive) impure-effect checking.
Diffstat (limited to 'src/boot/driver')
-rw-r--r--src/boot/driver/llvm/glue.ml1
-rw-r--r--src/boot/driver/main.ml4
-rw-r--r--src/boot/driver/session.ml1
3 files changed, 6 insertions, 0 deletions
diff --git a/src/boot/driver/llvm/glue.ml b/src/boot/driver/llvm/glue.ml
index 03baf04d..da5e5b9d 100644
--- a/src/boot/driver/llvm/glue.ml
+++ b/src/boot/driver/llvm/glue.ml
@@ -18,6 +18,7 @@ let alt_pipeline sess sem_cx crate =
Simplify.process_crate;
Type.process_crate;
Typestate.process_crate;
+ Stratum.process_crate;
Effect.process_crate;
Loop.process_crate;
Alias.process_crate;
diff --git a/src/boot/driver/main.ml b/src/boot/driver/main.ml
index b37f5d93..30310b10 100644
--- a/src/boot/driver/main.ml
+++ b/src/boot/driver/main.ml
@@ -37,6 +37,7 @@ let (sess:Session.sess) =
Session.sess_log_resolve = false;
Session.sess_log_type = false;
Session.sess_log_simplify = false;
+ Session.sess_log_stratum = false;
Session.sess_log_effect = false;
Session.sess_log_typestate = false;
Session.sess_log_loop = false;
@@ -175,6 +176,8 @@ let argspecs =
"-ltype" "log type checking");
(flag (fun _ -> sess.Session.sess_log_simplify <- true)
"-lsimplify" "log simplification");
+ (flag (fun _ -> sess.Session.sess_log_stratum <- true)
+ "-lstratum" "log stratum checking");
(flag (fun _ -> sess.Session.sess_log_effect <- true)
"-leffect" "log effect checking");
(flag (fun _ -> sess.Session.sess_log_typestate <- true)
@@ -378,6 +381,7 @@ let main_pipeline _ =
Simplify.process_crate;
Type.process_crate;
Typestate.process_crate;
+ Stratum.process_crate;
Effect.process_crate;
Loop.process_crate;
Alias.process_crate;
diff --git a/src/boot/driver/session.ml b/src/boot/driver/session.ml
index 39848982..49242ac6 100644
--- a/src/boot/driver/session.ml
+++ b/src/boot/driver/session.ml
@@ -23,6 +23,7 @@ type sess =
mutable sess_log_resolve: bool;
mutable sess_log_type: bool;
mutable sess_log_simplify: bool;
+ mutable sess_log_stratum: bool;
mutable sess_log_effect: bool;
mutable sess_log_typestate: bool;
mutable sess_log_dead: bool;