[m-rev.] trivial diff: use state variable field updates in more places

Julien Fischer juliensf at csse.unimelb.edu.au
Thu May 5 17:11:14 AEST 2011


Branches: main

Use state variable field update syntax in more places.

browser/*.m:
compiler/*.m:
deep_profiler/*.m:
 	As above.

Julien.

Index: browser/declarative_analyser.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/browser/declarative_analyser.m,v
retrieving revision 1.39
diff -u -r1.39 declarative_analyser.m
--- browser/declarative_analyser.m	23 Nov 2007 07:34:50 -0000	1.39
+++ browser/declarative_analyser.m	5 May 2011 06:50:03 -0000
@@ -349,15 +349,15 @@
      !:Analyser = analyser(empty_search_space, no, FallBack, FallBack, no, no).

  set_fallback_search_mode(Store, FallBackSearchMode, !Analyser) :-
-    !:Analyser = !.Analyser ^ fallback_search_mode := FallBackSearchMode,
-    !:Analyser = !.Analyser ^ search_mode := FallBackSearchMode,
-    !:Analyser = !.Analyser ^ last_search_question := no,
+    !Analyser ^ fallback_search_mode := FallBackSearchMode,
+    !Analyser ^ search_mode := FallBackSearchMode,
+    !Analyser ^ last_search_question := no,
      (
          FallBackSearchMode = analyser_divide_and_query(Weighting),
          SearchSpace0 = !.Analyser ^ search_space,
          update_weighting_heuristic(Store, Weighting, SearchSpace0,
              SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          FallBackSearchMode = analyser_follow_subterm_end(_, _, _, _, _)
      ;
@@ -384,8 +384,8 @@
                  incorporate_explicit_subtree(SuspectId, Node,
                      SearchSpace0, SearchSpace)
              ),
-            !:Analyser = !.Analyser ^ search_space := SearchSpace,
-            !:Analyser = !.Analyser ^ require_explicit := no,
+            !Analyser ^ search_space := SearchSpace,
+            !Analyser ^ require_explicit := no,
              decide_analyser_response(Store, Oracle, Response, !Analyser)
          ;
              MaybeRequireExplicit = no,
@@ -397,9 +397,9 @@
              MaybeWeighting = get_maybe_weighting_from_search_mode(
                  !.Analyser ^ search_mode),
              initialise_search_space(Store, MaybeWeighting, Node, SearchSpace),
-            !:Analyser = !.Analyser ^ search_space := SearchSpace,
+            !Analyser ^ search_space := SearchSpace,
              topmost_det(SearchSpace, TopMostId),
-            !:Analyser = !.Analyser ^ last_search_question :=
+            !Analyser ^ last_search_question :=
                  yes(suspect_and_reason(TopMostId, ques_reason_start)),
              edt_question(Store, Node, Question),
              Response = analyser_response_revise(Question)
@@ -462,7 +462,7 @@
                  yes(suspect_and_reason(SuspectId, _)),
              setup_binary_search(!.Analyser ^ search_space, SuspectId,
                  SearchMode),
-            !:Analyser = !.Analyser ^ search_mode := SearchMode
+            !Analyser ^ search_mode := SearchMode
          ;
              !.Analyser ^ last_search_question = no,
              throw(internal_error("change_search_mode",
@@ -478,27 +478,27 @@
      (
          Answer = skip(_),
          skip_suspect(SuspectId, !.Analyser ^ search_space, SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          Answer = ignore(_),
          ignore_suspect(Store, SuspectId, !.Analyser ^ search_space,
              SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          Answer = truth_value(_, truth_correct),
          assert_suspect_is_correct(SuspectId, !.Analyser ^ search_space,
              SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          Answer = truth_value(_, truth_inadmissible),
          assert_suspect_is_inadmissible(SuspectId, !.Analyser ^ search_space,
              SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          Answer = truth_value(_, truth_erroneous),
          assert_suspect_is_erroneous(SuspectId, !.Analyser ^ search_space,
              SearchSpace),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace
+        !Analyser ^ search_space := SearchSpace
      ;
          Answer = suspicious_subterm(Node, ArgPos, TermPath, HowTrack,
              ShouldAssertInvalid),
@@ -509,7 +509,7 @@
          % edt_dependency becomes stable enough.

          edt_dependency(Store, Node, ArgPos, TermPath, _, DebugOrigin),
-        !:Analyser = !.Analyser ^ debug_origin := yes(DebugOrigin),
+        !Analyser ^ debug_origin := yes(DebugOrigin),
          (
              ShouldAssertInvalid = assert_invalid,
              edt_subterm_mode(Store, Node, ArgPos, TermPath, Mode),
@@ -522,11 +522,11 @@
                  assert_suspect_is_erroneous(SuspectId,
                      !.Analyser ^ search_space, SearchSpace)
              ),
-            !:Analyser = !.Analyser ^ search_space := SearchSpace
+            !Analyser ^ search_space := SearchSpace
          ;
              ShouldAssertInvalid = no_assert_invalid
          ),
-        !:Analyser = !.Analyser ^ search_mode :=
+        !Analyser ^ search_mode :=
              analyser_follow_subterm_end(SuspectId, ArgPos, TermPath, no,
                  HowTrack)
      ).
@@ -538,10 +538,10 @@
          edt_question(Store, Node, Question),
          Response = analyser_response_revise(Question),
          revise_root(Store, SearchSpace, SearchSpace1),
-        !:Analyser = !.Analyser ^ search_space := SearchSpace1,
-        !:Analyser = !.Analyser ^ last_search_question :=
+        !Analyser ^ search_space := SearchSpace1,
+        !Analyser ^ last_search_question :=
              yes(suspect_and_reason(RootId, ques_reason_revise)),
-        !:Analyser = !.Analyser ^ search_mode :=
+        !Analyser ^ search_mode :=
              !.Analyser ^ fallback_search_mode
      ;
          % There must be a root, since a bug was found (and is now
@@ -561,8 +561,8 @@
          search_for_question(Store, Oracle, !SearchSpace,
              !.Analyser ^ search_mode, !.Analyser ^ fallback_search_mode,
              NewMode, SearchResponse),
-        !:Analyser = !.Analyser ^ search_space := !.SearchSpace,
-        !:Analyser = !.Analyser ^ search_mode := NewMode,
+        !Analyser ^ search_space := !.SearchSpace,
+        !Analyser ^ search_mode := NewMode,
          handle_search_response(Store, SearchResponse, !Analyser, Response)
      ),
      maybe_check_search_space_consistency(Store, !.Analyser ^ search_space,
@@ -601,17 +601,17 @@
              % incorrectly before.
              AnalyserResponse = analyser_response_revise(OracleQuestion)
          ),
-        !:Analyser = !.Analyser ^ last_search_question :=
+        !Analyser ^ last_search_question :=
              yes(suspect_and_reason(SuspectId, Reason))
      ;
          SearchResponse = search_response_require_explicit_subtree(SuspectId),
-        !:Analyser = !.Analyser ^ require_explicit := yes(explicit_subtree(
+        !Analyser ^ require_explicit := yes(explicit_subtree(
              SuspectId)),
          Node = get_edt_node(!.Analyser ^ search_space, SuspectId),
          AnalyserResponse = analyser_response_require_explicit_subtree(Node)
      ;
          SearchResponse = search_response_require_explicit_supertree,
-        !:Analyser = !.Analyser ^ require_explicit := yes(explicit_supertree),
+        !Analyser ^ require_explicit := yes(explicit_supertree),
          SearchSpace = !.Analyser ^ search_space,
          topmost_det(SearchSpace, TopMostId),
          TopMost = get_edt_node(SearchSpace, TopMostId),
Index: browser/declarative_debugger.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/browser/declarative_debugger.m,v
retrieving revision 1.77
diff -u -r1.77 declarative_debugger.m
--- browser/declarative_debugger.m	5 Feb 2010 04:16:14 -0000	1.77
+++ browser/declarative_debugger.m	5 May 2011 06:48:26 -0000
@@ -368,7 +368,7 @@
  :- pred push_diagnoser(diagnoser_state(R)::in, diagnoser_state(R)::out) is det.

  push_diagnoser(!Diagnoser) :-
-    !:Diagnoser = !.Diagnoser ^ previous_diagnoser := yes(!.Diagnoser).
+    !Diagnoser ^ previous_diagnoser := yes(!.Diagnoser).

  :- pred pop_diagnoser(diagnoser_state(R)::in, diagnoser_state(R)::out)
      is semidet.
@@ -378,12 +378,12 @@
      !.Diagnoser ^ previous_diagnoser = yes(!:Diagnoser),
      LastPushedOracle = !.Diagnoser ^ oracle_state,
      update_revised_knowledge_base(LastPushedOracle, LatestOracle, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

  diagnosis(Store, AnalysisType, Response, !Diagnoser, !Browser, !IO) :-
      mdb.declarative_oracle.set_browser_state(!.Browser, !.Diagnoser ^
          oracle_state, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle,
+    !Diagnoser ^ oracle_state := Oracle,
      try_io(diagnosis_2(Store, AnalysisType, !.Diagnoser), Result, !IO),
      (
          Result = succeeded({Response, !:Diagnoser})
@@ -455,7 +455,7 @@
          ;
              FromUser = no
          ),
-        !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle,
+        !Diagnoser ^ oracle_state := Oracle,
          handle_oracle_response(Store, OracleResponse, DiagnoserResponse,
              !Diagnoser, !IO)
      ;
@@ -492,7 +492,7 @@
          AnalyserResponse = analyser_response_revise(Question),
          Oracle0 = !.Diagnoser ^ oracle_state,
          revise_oracle(Question, Oracle0, Oracle),
-        !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle,
+        !Diagnoser ^ oracle_state := Oracle,
          handle_analyser_response(Store,
              analyser_response_oracle_question(Question), no, DiagnoserResponse,
              !Diagnoser, !IO)
@@ -537,7 +537,7 @@
          Analyser0 = !.Diagnoser ^ analyser_state,
          continue_analysis(wrap(Store), !.Diagnoser ^ oracle_state, Answer,
              AnalyserResponse, Analyser0, Analyser),
-        !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser,
+        !Diagnoser ^ analyser_state := Analyser,
          debug_analyser_state(Analyser, MaybeOrigin),
          handle_analyser_response(Store, AnalyserResponse, MaybeOrigin,
              DiagnoserResponse, !Diagnoser, !IO)
@@ -560,7 +560,7 @@
          Oracle = !.Diagnoser ^ oracle_state,
          change_search_mode(wrap(Store), Oracle, Mode, Analyser0, Analyser,
              AnalyserResponse),
-        !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser,
+        !Diagnoser ^ analyser_state := Analyser,
          debug_analyser_state(Analyser, MaybeOrigin),
          handle_analyser_response(Store, AnalyserResponse, MaybeOrigin,
              DiagnoserResponse, !Diagnoser, !IO)
@@ -603,7 +603,7 @@
  confirm_bug(Store, Bug, Evidence, Response, !Diagnoser, !IO) :-
      Oracle0 = !.Diagnoser ^ oracle_state,
      oracle_confirm_bug(Bug, Evidence, Confirmation, Oracle0, Oracle, !IO),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle,
+    !Diagnoser ^ oracle_state := Oracle,
      (
          Confirmation = confirm_bug,
          decl_bug_get_event_number(Bug, Event),
@@ -668,7 +668,7 @@
  set_diagnoser_testing_flag(Testing, !Diagnoser) :-
      Oracle0 = !.Diagnoser ^ oracle_state,
      set_oracle_testing_flag(Testing, Oracle0, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

  :- pred set_fallback_search_mode(trace_node_store::in,
      mdb.declarative_analyser.search_mode::in,
@@ -683,7 +683,7 @@
      Analyser0 = !.Diagnoser ^ analyser_state,
      mdb.declarative_analyser.set_fallback_search_mode(wrap(Store),
          SearchMode, Analyser0, Analyser),
-    !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser.
+    !Diagnoser ^ analyser_state := Analyser.

  :- pred reset_knowledge_base(
      diagnoser_state(trace_node_id)::in,
@@ -696,7 +696,7 @@
  reset_knowledge_base(!Diagnoser) :-
      Oracle0 = !.Diagnoser ^ oracle_state,
      reset_oracle_knowledge_base(Oracle0, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

  :- func top_down_search_mode = mdb.declarative_analyser.search_mode.

@@ -832,7 +832,7 @@

  add_trusted_pred_or_func(ProcLayout, !Diagnoser) :-
      add_trusted_pred_or_func(ProcLayout, !.Diagnoser ^ oracle_state, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

  :- pred trust_standard_library(diagnoser_state(trace_node_id)::in,
      diagnoser_state(trace_node_id)::out) is det.
@@ -844,7 +844,7 @@
  trust_standard_library(!Diagnoser) :-
      declarative_oracle.trust_standard_library(!.Diagnoser ^ oracle_state,
          Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

  :- pred remove_trusted(int::in, diagnoser_state(trace_node_id)::in,
      diagnoser_state(trace_node_id)::out) is semidet.
@@ -855,7 +855,7 @@

  remove_trusted(N, !Diagnoser) :-
      remove_trusted(N, !.Diagnoser ^ oracle_state, Oracle),
-    !:Diagnoser = !.Diagnoser ^ oracle_state := Oracle.
+    !Diagnoser ^ oracle_state := Oracle.

      % get_trusted_list(Diagnoser, MDBCommandFormat, String).
      % Return a string listing the trusted objects for Diagnoser.
@@ -888,7 +888,7 @@
          "Please report bugs to mercury-bugs at cs.mu.oz.au.\n", !IO),
      % Reset the analyser, in case it was left in an inconsistent state.
      reset_analyser(!.Diagnoser ^ analyser_state, Analyser),
-    !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser,
+    !Diagnoser ^ analyser_state := Analyser,
      Response = no_bug_found.

  handle_diagnoser_exception(io_error(Loc, Msg), Response, !Diagnoser, !IO) :-
@@ -897,7 +897,7 @@
          "Diagnosis will be aborted.\n", !IO),
      % Reset the analyser, in case it was left in an inconsistent state.
      reset_analyser(!.Diagnoser ^ analyser_state, Analyser),
-    !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser,
+    !Diagnoser ^ analyser_state := Analyser,
      Response = no_bug_found.

  handle_diagnoser_exception(unimplemented_feature(Feature), Response,
@@ -909,7 +909,7 @@
          "supported in the\ncurrent version.\n", !IO),
      % Reset the analyser, in case it was left in an inconsistent state.
      reset_analyser(!.Diagnoser ^ analyser_state, Analyser),
-    !:Diagnoser = !.Diagnoser ^ analyser_state := Analyser,
+    !Diagnoser ^ analyser_state := Analyser,
      Response = no_bug_found.

  %-----------------------------------------------------------------------------%
Index: browser/declarative_edt.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/browser/declarative_edt.m,v
retrieving revision 1.24
diff -u -r1.24 declarative_edt.m
--- browser/declarative_edt.m	3 May 2011 14:52:44 -0000	1.24
+++ browser/declarative_edt.m	5 May 2011 07:08:14 -0000
@@ -1610,7 +1610,7 @@
          !.Parent ^ children = yes(Children),
          list.append(Children, [ChildId], NewChildren)
      ),
-    !:Parent = !.Parent ^ children := yes(NewChildren).
+    !Parent ^ children := yes(NewChildren).

  :- pred adjust_suspect_status_from_oracle(S::in,
      oracle_state::in, suspect_id::in, search_space(T)::in,
Index: browser/declarative_oracle.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/browser/declarative_oracle.m,v
retrieving revision 1.62
diff -u -r1.62 declarative_oracle.m
--- browser/declarative_oracle.m	3 May 2011 04:34:52 -0000	1.62
+++ browser/declarative_oracle.m	5 May 2011 06:50:23 -0000
@@ -222,8 +222,8 @@
          Revised0 = !.Oracle ^ kb_revised,
          retract_oracle_kb(Question, Revised0, Revised),
          assert_oracle_kb(Question, Answer, Current0, Current),
-        !:Oracle = !.Oracle ^ kb_current := Current,
-        !:Oracle = !.Oracle ^ kb_revised := Revised
+        !Oracle ^ kb_current := Current,
+        !Oracle ^ kb_revised := Revised
      ;
          UserResponse = user_response_trust_predicate(Question),
          Atom = get_decl_question_atom(Question),
@@ -254,7 +254,7 @@
          UserResponse = user_response_undo,
          OracleResponse = oracle_response_undo
      ),
-    !:Oracle = !.Oracle ^ user_state := User.
+    !Oracle ^ user_state := User.

  oracle_confirm_bug(Bug, Evidence, Confirmation, Oracle0, Oracle, !IO) :-
      User0 = Oracle0 ^ user_state,
@@ -276,8 +276,8 @@
          retract_oracle_kb(Question, Current0, Current),
          Revised0 = !.Oracle ^ kb_revised,
          assert_oracle_kb(Question, Answer, Revised0, Revised),
-        !:Oracle = !.Oracle ^ kb_revised := Revised,
-        !:Oracle = !.Oracle ^ kb_current := Current
+        !Oracle ^ kb_revised := Revised,
+        !Oracle ^ kb_current := Current
      ;
          true
      ).
@@ -394,7 +394,7 @@
  remove_trusted(Id, !Oracle) :-
      bimap.search(!.Oracle ^ trusted, _, Id),
      bimap.delete_value(Id, !.Oracle ^ trusted, Trusted),
-    !:Oracle = !.Oracle ^ trusted := Trusted. 
+    !Oracle ^ trusted := Trusted.

  get_trusted_list(Oracle, yes, CommandsStr) :-
      TrustedObjects = bimap.ordinates(Oracle ^ trusted),
@@ -663,7 +663,7 @@
      % delete all modes of the predicate/function
      foldl(remove_atom_from_ground_map(Atom),
          get_all_modes_for_layout(Atom ^ final_atom ^ proc_layout), Map0, Map),
-    !:KB = !.KB ^ kb_ground_map := Map.
+    !KB ^ kb_ground_map := Map.

  retract_oracle_kb(missing_answer(_, InitAtom, _), !KB) :-
      CompleteMap0 = !.KB ^ kb_complete_map,
@@ -712,7 +712,7 @@

  set_browser_state(Browser, !Oracle) :-
      declarative_user.set_browser_state(Browser, !.Oracle ^ user_state, User),
-    !:Oracle = !.Oracle ^ user_state := User.
+    !Oracle ^ user_state := User.

  get_user_output_stream(Oracle) =
      declarative_user.get_user_output_stream(Oracle ^ user_state).
@@ -723,14 +723,14 @@
  set_oracle_testing_flag(Testing, !Oracle) :-
      User0 = !.Oracle ^ user_state,
      set_user_testing_flag(Testing, User0, User),
-    !:Oracle = !.Oracle ^ user_state := User.
+    !Oracle ^ user_state := User.

  %-----------------------------------------------------------------------------%

  reset_oracle_knowledge_base(!Oracle) :-
      oracle_kb_init(EmptyKB),
-    !:Oracle = !.Oracle ^ kb_revised := !.Oracle ^ kb_current,
-    !:Oracle = !.Oracle ^ kb_current := EmptyKB.
+    !Oracle ^ kb_revised := !.Oracle ^ kb_current,
+    !Oracle ^ kb_current := EmptyKB.

  %-----------------------------------------------------------------------------%

Index: compiler/add_pragma.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/add_pragma.m,v
retrieving revision 1.114
diff -u -r1.114 add_pragma.m
--- compiler/add_pragma.m	5 May 2011 06:39:34 -0000	1.114
+++ compiler/add_pragma.m	5 May 2011 06:52:23 -0000
@@ -1863,12 +1863,11 @@
                  some [!TermInfo] (
                      proc_info_get_termination2_info(ProcInfo0, !:TermInfo),

-                    !:TermInfo = !.TermInfo ^ import_success :=
+                    !TermInfo ^ import_success :=
                          MaybePragmaSuccessArgSizeInfo,
-                    !:TermInfo = !.TermInfo ^ import_failure :=
+                    !TermInfo ^ import_failure :=
                          MaybePragmaFailureArgSizeInfo,
-                    !:TermInfo = !.TermInfo ^ term_status :=
-                        MaybeTerminationInfo,
+                    !TermInfo ^ term_status := MaybeTerminationInfo,

                      proc_info_set_termination2_info(!.TermInfo,
                          ProcInfo0, ProcInfo)
Index: compiler/bytecode_gen.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/bytecode_gen.m,v
retrieving revision 1.125
diff -u -r1.125 bytecode_gen.m
--- compiler/bytecode_gen.m	3 May 2011 04:34:53 -0000	1.125
+++ compiler/bytecode_gen.m	5 May 2011 06:53:29 -0000
@@ -890,7 +890,7 @@
  get_next_label(Label, !ByteInfo) :-
      LabelCounter0 = !.ByteInfo ^ byteinfo_label_counter,
      counter.allocate(Label, LabelCounter0, LabelCounter),
-    !:ByteInfo = !.ByteInfo ^ byteinfo_label_counter := LabelCounter.
+    !ByteInfo ^ byteinfo_label_counter := LabelCounter.

  :- pred get_next_temp(int::out, byte_info::in, byte_info::out)
      is det.
@@ -898,7 +898,7 @@
  get_next_temp(Temp, !ByteInfo) :-
      TempCounter0 = !.ByteInfo ^ byteinfo_temp_counter,
      counter.allocate(Temp, TempCounter0, TempCounter),
-    !:ByteInfo = !.ByteInfo ^ byteinfo_temp_counter := TempCounter.
+    !ByteInfo ^ byteinfo_temp_counter := TempCounter.

  :- pred get_counts(byte_info::in, int::out, int::out) is det.

Index: compiler/check_typeclass.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/check_typeclass.m,v
retrieving revision 1.132
diff -u -r1.132 check_typeclass.m
--- compiler/check_typeclass.m	3 May 2011 04:34:53 -0000	1.132
+++ compiler/check_typeclass.m	5 May 2011 07:01:23 -0000
@@ -334,10 +334,9 @@
          % as the methods in the class definition. intermod.m relies on this.
          OrderedInstanceMethods = list.reverse(RevInstanceMethods),

-        !:InstanceDefn = !.InstanceDefn ^ instance_hlds_interface
-            := MaybePredProcs,
-        !:InstanceDefn = !.InstanceDefn ^ instance_body
-            := instance_body_concrete(OrderedInstanceMethods),
+        !InstanceDefn ^ instance_hlds_interface := MaybePredProcs,
+        !InstanceDefn ^ instance_body :=
+            instance_body_concrete(OrderedInstanceMethods),

          % Check if there are any instance methods left over, which did not
          % match any of the methods from the class interface.
Index: compiler/common.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/common.m,v
retrieving revision 1.113
diff -u -r1.113 common.m
--- compiler/common.m	5 May 2011 06:39:34 -0000	1.113
+++ compiler/common.m	5 May 2011 07:06:18 -0000
@@ -231,7 +231,7 @@
      CommonInfo = common_info(VarEqv0, StructMap0, StructMap0, SeenCalls0).

  common_info_clear_structs(!Info) :-
-    !:Info = !.Info ^ since_call_structs := map.init.
+    !Info ^ since_call_structs := map.init.

  %---------------------------------------------------------------------------%

Index: compiler/constraint.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/constraint.m,v
retrieving revision 1.99
diff -u -r1.99 constraint.m
--- compiler/constraint.m	5 May 2011 03:58:53 -0000	1.99
+++ compiler/constraint.m	5 May 2011 06:53:02 -0000
@@ -155,7 +155,7 @@
          propagate_goal(Cond0, [], Cond, !Info),
          constraint_info_update_goal(Cond, !Info),
          propagate_goal(Then0, Constraints, Then, !Info),
-        !:Info = !.Info ^ constr_instmap := InstMap0,
+        !Info ^ constr_instmap := InstMap0,
          propagate_goal(Else0, Constraints, Else, !Info),
          FinalGoals =
              [hlds_goal(if_then_else(Vars, Cond, Then, Else), GoalInfo)]
@@ -240,7 +240,7 @@
          !Info) :-
      InstMap0 = !.Info ^ constr_instmap,
      propagate_goal(Goal0, Constraints, Goal, !Info),
-    !:Info = !.Info ^ constr_instmap := InstMap0,
+    !Info ^ constr_instmap := InstMap0,
      propagate_in_independent_goals(Goals0, Constraints, Goals, !Info).

  %-----------------------------------------------------------------------------%
@@ -255,7 +255,7 @@
      InstMap0 = !.Info ^ constr_instmap,
      constraint_info_bind_var_to_functors(Var, MainConsId, OtherConsIds, !Info),
      propagate_goal(Goal0, Constraints, Goal, !Info),
-    !:Info = !.Info ^ constr_instmap := InstMap0,
+    !Info ^ constr_instmap := InstMap0,
      Case = case(MainConsId, OtherConsIds, Goal),
      propagate_cases(Var, Constraints, Cases0, Cases, !Info).

@@ -424,7 +424,7 @@
      CI_ModuleInfo0 = !.Info ^ constr_module_info,
      goal_can_loop_or_throw(Goal, GoalCanLoopOrThrow,
          CI_ModuleInfo0, CI_ModuleInfo),
-    !:Info = !.Info ^ constr_module_info := CI_ModuleInfo,
+    !Info ^ constr_module_info := CI_ModuleInfo,
      (
          % Propagate goals that can fail and have no output variables.
          % Propagating cc_nondet goals would be tricky, because we would
@@ -470,7 +470,7 @@

          % If the constraint was the only use of the constant, the old goal
          % can be removed. We need to rerun quantification to work that out.
-        !:Info = !.Info ^ constr_changed := yes
+        !Info ^ constr_changed := yes
      ;
          % Prune away the constraints after a goal that cannot succeed
          % -- they can never be executed.
@@ -762,7 +762,7 @@
      InstMap0 = !.Info ^ constr_instmap,
      InstMapDelta = goal_info_get_instmap_delta(GoalInfo),
      instmap.apply_instmap_delta(InstMap0, InstMapDelta, InstMap),
-    !:Info = !.Info ^ constr_instmap := InstMap.
+    !Info ^ constr_instmap := InstMap.

  :- pred constraint_info_bind_var_to_functors(prog_var::in, cons_id::in,
      list(cons_id)::in, constraint_info::in, constraint_info::out) is det.
@@ -774,8 +774,8 @@
      map.lookup(VarTypes, Var, Type),
      bind_var_to_functors(Var, Type, MainConsId, OtherConsIds,
          InstMap0, InstMap, ModuleInfo0, ModuleInfo),
-    !:Info = !.Info ^ constr_instmap := InstMap,
-    !:Info = !.Info ^ constr_module_info := ModuleInfo.
+    !Info ^ constr_instmap := InstMap,
+    !Info ^ constr_module_info := ModuleInfo.

      % If a non-empty list of constraints is pushed into a sub-goal,
      % quantification, instmap_deltas and determinism need to be
@@ -789,7 +789,7 @@
          Constraints = []
      ;
          Constraints = [_ | _],
-        !:Info = !.Info ^ constr_changed := yes
+        !Info ^ constr_changed := yes
      ).

  %-----------------------------------------------------------------------------%
Index: compiler/exception_analysis.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/exception_analysis.m,v
retrieving revision 1.55
diff -u -r1.55 exception_analysis.m
--- compiler/exception_analysis.m	15 Dec 2010 06:29:34 -0000	1.55
+++ compiler/exception_analysis.m	5 May 2011 06:58:13 -0000
@@ -361,7 +361,7 @@
  check_goal_for_exceptions(SCC, VarTypes, hlds_goal(GoalExpr, GoalInfo),
          !Result, !ModuleInfo) :-
      ( goal_info_get_determinism(GoalInfo) = detism_erroneous ->
-        !:Result = !.Result ^ status := may_throw(user_exception)
+        !Result ^ status := may_throw(user_exception)
      ;
          check_goal_for_exceptions_2(SCC, VarTypes, GoalExpr, GoalInfo,
              !Result, !ModuleInfo)
@@ -463,7 +463,7 @@
          Types = list.map((func(Var) = VarTypes ^ det_elem(Var)), CallArgs),
          TypeStatus = check_types(!.ModuleInfo, Types),
          combine_type_status(TypeStatus, !.Result ^ rec_calls, NewTypeStatus),
-        !:Result = !.Result ^ rec_calls := NewTypeStatus
+        !Result ^ rec_calls := NewTypeStatus
      ;
          pred_info_is_builtin(CallPredInfo)
      ->
@@ -562,7 +562,7 @@
      ;
          % XXX We could do better with class methods.
          Details = class_method(_, _, _, _),
-        !:Result = !.Result ^ status := may_throw(user_exception)
+        !Result ^ status := may_throw(user_exception)
      ;
          Details = event_call(_)
      ;
@@ -682,8 +682,8 @@
      NewStatus = combine_exception_status(CurrentStatus, OldStatus),
      combine_maybe_analysis_status(CurrentAnalysisStatus, OldAnalysisStatus,
          NewAnalysisStatus),
-    !:Result = !.Result ^ status := NewStatus,
-    !:Result = !.Result ^ maybe_analysis_status := NewAnalysisStatus.
+    !Result ^ status := NewStatus,
+    !Result ^ maybe_analysis_status := NewAnalysisStatus.

  :- func combine_exception_status(exception_status, exception_status)
      = exception_status.
Index: compiler/higher_order.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/higher_order.m,v
retrieving revision 1.191
diff -u -r1.191 higher_order.m
--- compiler/higher_order.m	5 May 2011 06:39:34 -0000	1.191
+++ compiler/higher_order.m	5 May 2011 07:00:48 -0000
@@ -445,7 +445,7 @@
          goal_size(Goal, GoalSize),
          GoalSizes1 = !.GlobalInfo ^ hogi_goal_sizes,
          map.set(PredId, GoalSize, GoalSizes1, GoalSizes),
-        !:GlobalInfo = !.GlobalInfo ^ hogi_goal_sizes := GoalSizes
+        !GlobalInfo ^ hogi_goal_sizes := GoalSizes
      ).

      % This is called when the first procedure of a predicate was changed.
@@ -466,7 +466,7 @@
      ModuleInfo0 = !.GlobalInfo ^ hogi_module_info,
      module_info_set_pred_proc_info(PredId, ProcId, PredInfo, ProcInfo,
          ModuleInfo0, ModuleInfo),
-    !:GlobalInfo = !.GlobalInfo ^ hogi_module_info := ModuleInfo.
+    !GlobalInfo ^ hogi_module_info := ModuleInfo.

  %-----------------------------------------------------------------------------%
  %
@@ -3316,9 +3316,9 @@
      list.map(substitute_rtti_var_info(Subn), CurriedRttiTypes0,
          CurriedRttiTypes),
      list.map(substitute_higher_order_arg(Subn), CurriedHOArgs0, CurriedHOArgs),
-    !:HOArg = !.HOArg ^ hoa_curry_type_in_caller := CurriedArgTypes,
-    !:HOArg = !.HOArg ^ hoa_curry_rtti_type := CurriedRttiTypes,
-    !:HOArg = !.HOArg ^ hoa_known_curry_args := CurriedHOArgs.
+    !HOArg ^ hoa_curry_type_in_caller := CurriedArgTypes,
+    !HOArg ^ hoa_curry_rtti_type := CurriedRttiTypes,
+    !HOArg ^ hoa_known_curry_args := CurriedHOArgs.

  :- pred substitute_rtti_var_info(tsubst::in, rtti_var_info::in,
      rtti_var_info::out) is det.
Index: compiler/hlds_rtti.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/hlds_rtti.m,v
retrieving revision 1.23
diff -u -r1.23 hlds_rtti.m
--- compiler/hlds_rtti.m	3 May 2011 04:34:55 -0000	1.23
+++ compiler/hlds_rtti.m	5 May 2011 07:00:07 -0000
@@ -594,7 +594,7 @@
  rtti_set_type_info_locn(TVar, Locn, !RttiVarMaps) :-
      Map0 = !.RttiVarMaps ^ rv_ti_varmap,
      map.set(TVar, Locn, Map0, Map),
-    !:RttiVarMaps = !.RttiVarMaps ^ rv_ti_varmap := Map,
+    !RttiVarMaps ^ rv_ti_varmap := Map,
      maybe_check_type_info_var(Locn, TVar, !RttiVarMaps).

  :- pred maybe_check_type_info_var(type_info_locn::in, tvar::in,
Index: compiler/lp_rational.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/lp_rational.m,v
retrieving revision 1.16
diff -u -r1.16 lp_rational.m
--- compiler/lp_rational.m	5 May 2011 03:58:54 -0000	1.16
+++ compiler/lp_rational.m	5 May 2011 06:59:53 -0000
@@ -1329,7 +1329,7 @@

  remove_row(Row, !Tableau) :-
      SR = !.Tableau ^ shunned_rows,
-    !:Tableau = !.Tableau ^ shunned_rows := [Row | SR].
+    !Tableau ^ shunned_rows := [Row | SR].

  :- pred remove_col(int::in, tableau::in, tableau::out) is det.

Index: compiler/make.program_target.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/make.program_target.m,v
retrieving revision 1.111
diff -u -r1.111 make.program_target.m
--- compiler/make.program_target.m	3 May 2011 04:34:55 -0000	1.111
+++ compiler/make.program_target.m	5 May 2011 07:03:20 -0000
@@ -1145,7 +1145,7 @@
      ; list.is_not_empty(SuboptimalModules) ->
          list.foldl(reset_analysis_registry_dependency_status,
              SuboptimalModules, !Info),
-        !:Info = !.Info ^ reanalysis_passes := ReanalysisPasses - 1,
+        !Info ^ reanalysis_passes := ReanalysisPasses - 1,
          maybe_reanalyse_modules_message(Globals, !IO),
          build_analysis_files_2(Globals, MainModuleName, TargetModules,
              LocalModulesOpts, Succeeded0, Succeeded, !Info, !IO)
Index: compiler/ml_accurate_gc.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/ml_accurate_gc.m,v
retrieving revision 1.3
diff -u -r1.3 ml_accurate_gc.m
--- compiler/ml_accurate_gc.m	5 Oct 2009 04:07:42 -0000	1.3
+++ compiler/ml_accurate_gc.m	5 May 2011 07:03:38 -0000
@@ -446,7 +446,7 @@

  fixup_newobj_in_statement(Statement0, Statement, !Info) :-
      Statement0 = statement(Stmt0, Context),
-    !:Info = !.Info ^ fnoi_context := Context,
+    !Info ^ fnoi_context := Context,
      fixup_newobj_in_stmt(Stmt0, Stmt, !Info),
      Statement = statement(Stmt, Context).

Index: compiler/ml_optimize.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/ml_optimize.m,v
retrieving revision 1.68
diff -u -r1.68 ml_optimize.m
--- compiler/ml_optimize.m	2 Jan 2011 14:37:55 -0000	1.68
+++ compiler/ml_optimize.m	5 May 2011 07:06:28 -0000
@@ -1012,7 +1012,7 @@
              % for the number of occurrences that we have replaced.
              Rval = !.VarElimInfo ^ var_value,
              Count0 = !.VarElimInfo ^ replace_count,
-            !:VarElimInfo = !.VarElimInfo ^ replace_count := Count0 + 1
+            !VarElimInfo ^ replace_count := Count0 + 1
          ;
              eliminate_var_in_lval(Lval0, Lval, !VarElimInfo),
              Rval = ml_lval(Lval)
Index: compiler/mlds_to_il.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mlds_to_il.m,v
retrieving revision 1.221
diff -u -r1.221 mlds_to_il.m
--- compiler/mlds_to_il.m	3 May 2011 04:34:56 -0000	1.221
+++ compiler/mlds_to_il.m	5 May 2011 06:57:28 -0000
@@ -1144,7 +1144,7 @@
          % XXX The external reference must currently reside in the
          % C# file associated with this file.  This is very hackish.
          ForeignLangs = !.Info ^ file_foreign_langs,
-        !:Info = !.Info ^ file_foreign_langs :=
+        !Info ^ file_foreign_langs :=
              set.insert(ForeignLangs, lang_csharp),

          mangle_dataname_module(no, ModuleName, NewModuleName),
@@ -1185,7 +1185,7 @@
              model_det, no)
      ->
          EntryPoint = [entrypoint],
-        !:Info = !.Info ^ has_main := has_main,
+        !Info ^ has_main := has_main,

          il_info_get_next_block_id(InnerTryBlockId, !Info),
          il_info_get_next_block_id(OuterTryBlockId, !Info),
@@ -1936,8 +1936,8 @@
      (
          !.Info ^ method_foreign_lang = no,
          Info0 = !.Info,
-        !:Info = !.Info ^ method_foreign_lang := yes(Lang),
-        !:Info = !.Info ^ file_foreign_langs :=
+        !Info ^ method_foreign_lang := yes(Lang),
+        !Info ^ file_foreign_langs :=
              set.insert(Info0 ^ file_foreign_langs, Lang),
          mangle_foreign_code_module(Lang, ModuleName, OutlineLangModuleName),
          ClassName = mlds_module_name_to_class_name(OutlineLangModuleName),
@@ -4618,13 +4618,13 @@

  il_info_get_next_block_id(N, !Info) :-
      counter.allocate(N, !.Info ^ block_counter, NewCounter),
-    !:Info = !.Info ^ block_counter := NewCounter.
+    !Info ^ block_counter := NewCounter.

  :- pred il_info_get_next_label_num(int::out, il_info::in, il_info::out) is det.

  il_info_get_next_label_num(N, !Info) :-
      counter.allocate(N, !.Info ^ label_counter, NewCounter),
-    !:Info = !.Info ^ label_counter := NewCounter.
+    !Info ^ label_counter := NewCounter.

  :- pred il_info_make_next_label(ilds.label::out, il_info::in, il_info::out)
      is det.
Index: compiler/mode_util.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/mode_util.m,v
retrieving revision 1.216
diff -u -r1.216 mode_util.m
--- compiler/mode_util.m	15 Dec 2010 06:29:51 -0000	1.216
+++ compiler/mode_util.m	5 May 2011 06:54:27 -0000
@@ -1123,7 +1123,7 @@
  update_module_info(P, R, !RI) :-
      ModuleInfo0 = !.RI ^ ri_module_info,
      P(R, ModuleInfo0, ModuleInfo),
-    !:RI = !.RI ^ ri_module_info := ModuleInfo.
+    !RI ^ ri_module_info := ModuleInfo.

  :- pred recompute_instmap_delta_2(recompute_atomic_instmap_deltas::in,
      hlds_goal_expr::in, hlds_goal_expr::out, hlds_goal_info::in,
Index: compiler/polymorphism.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/polymorphism.m,v
retrieving revision 1.360
diff -u -r1.360 polymorphism.m
--- compiler/polymorphism.m	5 May 2011 06:39:35 -0000	1.360
+++ compiler/polymorphism.m	5 May 2011 07:04:56 -0000
@@ -624,7 +624,7 @@

          pred_info_get_exist_quant_tvars(PredInfo0, ExistQVars),
          fixup_quantification(NewHeadVars, ExistQVars, Goal2, Goal, !Info),
-        !:Clause = !.Clause ^ clause_body := Goal
+        !Clause ^ clause_body := Goal
      ).

  :- pred polymorphism_process_proc_in_table(pred_info::in, clauses_info::in,
Index: compiler/prog_io_pragma.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_io_pragma.m,v
retrieving revision 1.145
diff -u -r1.145 prog_io_pragma.m
--- compiler/prog_io_pragma.m	8 Apr 2011 07:25:46 -0000	1.145
+++ compiler/prog_io_pragma.m	5 May 2011 06:54:48 -0000
@@ -2392,7 +2392,7 @@
      (
          SingleAttr = attr_strictness(Strictness),
          ( !.Attributes ^ table_attr_strictness = all_strict ->
-            !:Attributes = !.Attributes ^ table_attr_strictness := Strictness,
+            !Attributes ^ table_attr_strictness := Strictness,
              update_tabling_attributes(TermSingleAttrs, !.Attributes,
                  MaybeAttributes)
          ;
@@ -2406,7 +2406,7 @@
      ;
          SingleAttr = attr_size_limit(Limit),
          ( !.Attributes ^ table_attr_size_limit = no ->
-            !:Attributes = !.Attributes ^ table_attr_size_limit := yes(Limit),
+            !Attributes ^ table_attr_size_limit := yes(Limit),
              update_tabling_attributes(TermSingleAttrs, !.Attributes,
                  MaybeAttributes)
          ;
@@ -2421,7 +2421,7 @@
          (
              !.Attributes ^ table_attr_statistics = table_dont_gather_statistics
          ->
-            !:Attributes = !.Attributes ^ table_attr_statistics
+            !Attributes ^ table_attr_statistics
                  := table_gather_statistics,
              update_tabling_attributes(TermSingleAttrs, !.Attributes,
                  MaybeAttributes)
@@ -2435,7 +2435,7 @@
      ;
          SingleAttr = attr_allow_reset,
          ( !.Attributes ^ table_attr_allow_reset = table_dont_allow_reset ->
-            !:Attributes = !.Attributes ^ table_attr_allow_reset
+            !Attributes ^ table_attr_allow_reset
                  := table_allow_reset,
              update_tabling_attributes(TermSingleAttrs, !.Attributes,
                  MaybeAttributes)
Index: compiler/prog_item.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/prog_item.m,v
retrieving revision 1.43
diff -u -r1.43 prog_item.m
--- compiler/prog_item.m	8 Apr 2011 07:25:46 -0000	1.43
+++ compiler/prog_item.m	5 May 2011 06:55:26 -0000
@@ -1038,7 +1038,7 @@
  mutable_var_thread_local(MVarAttrs) = MVarAttrs ^ mutable_thread_local.

  set_mutable_var_trailed(Trailed, !Attributes) :-
-    !:Attributes = !.Attributes ^ mutable_trailed := Trailed.
+    !Attributes ^ mutable_trailed := Trailed.
  set_mutable_add_foreign_name(ForeignName, !Attributes) :-
      MaybeForeignNames0 = !.Attributes ^ mutable_foreign_names,
      (
@@ -1049,14 +1049,13 @@
          ForeignNames = [ ForeignName | ForeignNames0],
          MaybeForeignNames   = yes(ForeignNames)
      ),
-    !:Attributes = !.Attributes ^ mutable_foreign_names := MaybeForeignNames.
+    !Attributes ^ mutable_foreign_names := MaybeForeignNames.
  set_mutable_var_attach_to_io_state(AttachToIOState, !Attributes) :-
-    !:Attributes = !.Attributes ^ mutable_attach_to_io_state
-        := AttachToIOState.
+    !Attributes ^ mutable_attach_to_io_state := AttachToIOState.
  set_mutable_var_constant(Constant, !Attributes) :-
-    !:Attributes = !.Attributes ^ mutable_constant := Constant.
+    !Attributes ^ mutable_constant := Constant.
  set_mutable_var_thread_local(ThreadLocal, !Attributes) :-
-    !:Attributes = !.Attributes ^ mutable_thread_local := ThreadLocal.
+    !Attributes ^ mutable_thread_local := ThreadLocal.

  %-----------------------------------------------------------------------------%

@@ -1092,15 +1091,15 @@
          % XXX mutables are currently only implemented for the C backends
          % but we should handle the Java/IL backends here as well.
          % (See do_get_item_foreign_code for details/5).
-        !:Info = !.Info ^ used_foreign_languages :=
+        !Info ^ used_foreign_languages :=
              set.insert(!.Info ^ used_foreign_languages, lang_c)
      ; ( Item = item_initialise(_) ; Item = item_finalise(_) ) ->
          % Intialise/finalise declarations introduce export pragmas, but
          % again they won't have been expanded by the time we get here.
          % XXX we don't currently support these on non-C backends.
-        !:Info = !.Info ^ used_foreign_languages :=
+        !Info ^ used_foreign_languages :=
              set.insert(!.Info ^ used_foreign_languages, lang_c),
-        !:Info = !.Info ^ module_has_foreign_export := contains_foreign_export
+        !Info ^ module_has_foreign_export := contains_foreign_export
      ;
          true
      ).
Index: compiler/qual_info.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/qual_info.m,v
retrieving revision 1.27
diff -u -r1.27 qual_info.m
--- compiler/qual_info.m	3 May 2011 04:34:57 -0000	1.27
+++ compiler/qual_info.m	5 May 2011 07:04:08 -0000
@@ -171,7 +171,7 @@
          MaybeRecompInfo0 = yes(RecompInfo0),
          Pred(RecompInfo0, RecompInfo),
          mq_info_set_recompilation_info(yes(RecompInfo), MQInfo0, MQInfo),
-        !:QualInfo = !.QualInfo ^ qual_mq_info := MQInfo
+        !QualInfo ^ qual_mq_info := MQInfo
      ;
          MaybeRecompInfo0 = no
      ).
Index: compiler/recompilation.usage.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/recompilation.usage.m,v
retrieving revision 1.55
diff -u -r1.55 recompilation.usage.m
--- compiler/recompilation.usage.m	3 May 2011 05:12:03 -0000	1.55
+++ compiler/recompilation.usage.m	5 May 2011 07:04:36 -0000
@@ -622,7 +622,7 @@

  process_imported_item_queue(!Info) :-
      Queue0 = !.Info ^ item_queue,
-    !:Info = !.Info ^ item_queue := queue.init,
+    !Info ^ item_queue := queue.init,
      process_imported_item_queue_2(Queue0, !Info),
      Queue = !.Info ^ item_queue,
      ( queue.is_empty(Queue) ->
Index: compiler/stack_opt.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/stack_opt.m,v
retrieving revision 1.50
diff -u -r1.50 stack_opt.m
--- compiler/stack_opt.m	5 May 2011 06:39:36 -0000	1.50
+++ compiler/stack_opt.m	5 May 2011 07:04:23 -0000
@@ -686,8 +686,8 @@
          CurSegment = set.union(Vars, CurSegment0),
          OccurringIntervals0 = !.Path ^ occurring_intervals,
          svset.insert(IntervalId, OccurringIntervals0, OccurringIntervals),
-        !:Path = !.Path ^ current_segment := CurSegment,
-        !:Path = !.Path ^ occurring_intervals := OccurringIntervals
+        !Path ^ current_segment := CurSegment,
+        !Path ^ occurring_intervals := OccurringIntervals
      ).

  :- func add_anchor_to_path(anchor, path) = path.
@@ -695,7 +695,7 @@
  add_anchor_to_path(Anchor, !.Path) = !:Path :-
      Anchors0 = !.Path ^ flush_anchors,
      svset.insert(Anchor, Anchors0, Anchors),
-    !:Path = !.Path ^ flush_anchors := Anchors.
+    !Path ^ flush_anchors := Anchors.

  :- func anchor_requires_close(interval_info, anchor) = bool.

@@ -817,7 +817,7 @@
              MaybeSearchAnchor0 = yes(SearchAnchor0),
              End = SearchAnchor0
          ->
-            !:AllPaths = !.AllPaths ^ used_after_scope := set.init
+            !AllPaths ^ used_after_scope := set.init
          ;
              End = anchor_branch_end(_, EndGoalId),
              map.lookup(IntervalInfo ^ ii_branch_end_map, EndGoalId,
@@ -829,7 +829,7 @@
              RelevantAfter = set.intersect(RelevantVars, NeededAfterBranch),
              set.non_empty(RelevantAfter)
          ->
-            !:AllPaths = !.AllPaths ^ used_after_scope := RelevantAfter
+            !AllPaths ^ used_after_scope := RelevantAfter
          ;
              find_all_branches_from(End, RelevantVars,
                  MaybeSearchAnchor0, IntervalInfo, StackOptInfo,
@@ -848,7 +848,7 @@
          AnchorRequiresClose = yes,
          Paths0 = !.AllPaths ^ paths_so_far,
          Paths1 = set.map(close_path, Paths0),
-        !:AllPaths = !.AllPaths ^ paths_so_far := Paths1
+        !AllPaths ^ paths_so_far := Paths1
      ;
          AnchorRequiresClose = no
      ),
Index: compiler/stm_expand.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/stm_expand.m,v
retrieving revision 1.18
diff -u -r1.18 stm_expand.m
--- compiler/stm_expand.m	5 May 2011 06:39:36 -0000	1.18
+++ compiler/stm_expand.m	5 May 2011 06:55:50 -0000
@@ -494,7 +494,7 @@
          unexpected(this_file,
              "stm_create_actual_goal: Unknown atomic goal type")
      ),
-    !:StmInfo = !.StmInfo ^ stm_info_requalify := yes.
+    !StmInfo ^ stm_info_requalify := yes.

  %-----------------------------------------------------------------------------%
  %
@@ -2469,8 +2469,8 @@
      CallGoal = hlds_goal(CallExpr, GoalInfo),

      ExpansionCnt = ExpansionCnt0 + 1,
-    !:StmInfo = !.StmInfo ^ stm_info_expand_id := ExpansionCnt,
-    !:StmInfo = !.StmInfo ^ stm_info_module_info := ModuleInfo,
+    !StmInfo ^ stm_info_expand_id := ExpansionCnt,
+    !StmInfo ^ stm_info_module_info := ModuleInfo,
      NewStmPredInfo = stm_new_pred_info(ModuleInfo, NewPredId, NewProcId,
         NewPredInfo, NewProcInfo, CallContext, 0).

Index: compiler/structure_reuse.direct.choose_reuse.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/structure_reuse.direct.choose_reuse.m,v
retrieving revision 1.26
diff -u -r1.26 structure_reuse.direct.choose_reuse.m
--- compiler/structure_reuse.direct.choose_reuse.m	3 May 2011 04:34:58 -0000	1.26
+++ compiler/structure_reuse.direct.choose_reuse.m	5 May 2011 06:56:02 -0000
@@ -779,7 +779,7 @@
      list.map(find_match_in_goal(Background, Match0), Goals, ExclusiveMatches),
      Degree = count_candidates(ExclusiveMatches),
      highest_match_in_list(ExclusiveMatches, !Match),
-    !:Match = !.Match ^ match_degree := Degree.
+    !Match ^ match_degree := Degree.

      % Compute the matches for a dead cell in the context of a disjunction. For
      % each branch, a different match may be found.  At the end, these matches
Index: compiler/transform_llds.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/transform_llds.m,v
retrieving revision 1.36
diff -u -r1.36 transform_llds.m
--- compiler/transform_llds.m	30 Dec 2010 11:17:59 -0000	1.36
+++ compiler/transform_llds.m	5 May 2011 06:59:31 -0000
@@ -152,8 +152,8 @@
      Instrs0 = !.Proc ^ cproc_code,
      C0 = !.Proc ^ cproc_label_nums,
      transform_instructions(Instrs0, Instrs, C0, C, ProcLabel, MaxSize),
-    !:Proc = !.Proc ^ cproc_code := Instrs,
-    !:Proc = !.Proc ^ cproc_label_nums := C.
+    !Proc ^ cproc_code := Instrs,
+    !Proc ^ cproc_label_nums := C.

  :- pred transform_instructions(list(instruction)::in, list(instruction)::out,
      counter::in, counter::out, proc_label::in, int::in) is det.
Index: compiler/typecheck.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/typecheck.m,v
retrieving revision 1.456
diff -u -r1.456 typecheck.m
--- compiler/typecheck.m	5 May 2011 03:58:57 -0000	1.456
+++ compiler/typecheck.m	5 May 2011 06:58:37 -0000
@@ -1084,7 +1084,7 @@
  typecheck_clause(HeadVars, ArgTypes, !Clause, !Info) :-
      Body0 = !.Clause ^ clause_body,
      Context = !.Clause ^clause_context,
-    !:Info = !.Info ^ tc_info_context := Context,
+    !Info ^ tc_info_context := Context,

      % Typecheck the clause - first the head unification, and then the body.
      typecheck_var_has_type_list(HeadVars, ArgTypes, 1, !Info),
@@ -1193,7 +1193,7 @@
          goal_info_set_context(EnclosingContext, GoalInfo0, GoalInfo)
      ;
          GoalInfo = GoalInfo0,
-        !:Info = !.Info ^ tc_info_context := Context
+        !Info ^ tc_info_context := Context
      ),

      TypeAssignSet = !.Info ^ tc_info_type_assign_set,
@@ -1344,8 +1344,8 @@
          trace [compiletime(flag("type_checkpoint")), io(!IO)] (
              type_checkpoint("unify", !.Info, !IO)
          ),
-        !:Info = !.Info ^ tc_info_arg_num := 0,
-        !:Info = !.Info ^ tc_info_unify_context := UnifyContext,
+        !Info ^ tc_info_arg_num := 0,
+        !Info ^ tc_info_unify_context := UnifyContext,
          GoalId = goal_info_get_goal_id(GoalInfo),
          typecheck_unification(LHS, RHS0, RHS, GoalId, !Info),
          GoalExpr = unify(LHS, RHS, UnifyMode, Unification, UnifyContext)
@@ -1764,11 +1764,11 @@
  typecheck_var_has_arg_type_list([], _, ArgTypeAssignSet, !Info) :-
      TypeAssignSet =
          convert_args_type_assign_set_check_empty_args(ArgTypeAssignSet),
-    !:Info = !.Info ^ tc_info_type_assign_set := TypeAssignSet.
+    !Info ^ tc_info_type_assign_set := TypeAssignSet.

  typecheck_var_has_arg_type_list([Var | Vars], ArgNum, ArgTypeAssignSet0,
          !Info) :-
-    !:Info = !.Info ^ tc_info_arg_num := ArgNum,
+    !Info ^ tc_info_arg_num := ArgNum,
      typecheck_var_has_arg_type(Var, ArgTypeAssignSet0, ArgTypeAssignSet1,
          !Info),
      typecheck_var_has_arg_type_list(Vars, ArgNum + 1, ArgTypeAssignSet1,
@@ -1890,7 +1890,7 @@
      unexpected(this_file, "typecheck_var_has_type_list: length mismatch").
  typecheck_var_has_type_list([], [], _, !Info).
  typecheck_var_has_type_list([Var | Vars], [Type | Types], ArgNum, !Info) :-
-    !:Info = !.Info ^ tc_info_arg_num := ArgNum,
+    !Info ^ tc_info_arg_num := ArgNum,
      typecheck_var_has_type(Var, Type, !Info),
      typecheck_var_has_type_list(Vars, Types, ArgNum + 1, !Info).

@@ -1907,7 +1907,7 @@
          Spec = report_error_var(!.Info, Var, Type, TypeAssignSet0),
          typecheck_info_add_error(Spec, !Info)
      ;
-        !:Info = !.Info ^ tc_info_type_assign_set := TypeAssignSet
+        !Info ^ tc_info_type_assign_set := TypeAssignSet
      ).

  :- pred typecheck_var_has_type_2(type_assign_set::in, prog_var::in,
@@ -2015,7 +2015,7 @@
          Spec = report_error_unif_var_var(!.Info, X, Y, TypeAssignSet0),
          typecheck_info_add_error(Spec, !Info)
      ;
-        !:Info = !.Info ^ tc_info_type_assign_set := TypeAssignSet
+        !Info ^ tc_info_type_assign_set := TypeAssignSet
      ).

  :- pred cons_id_must_be_builtin_type(cons_id::in, mer_type::out, string::out)
@@ -2456,7 +2456,7 @@
              Var, ArgVars, TypeAssignSet0),
          typecheck_info_add_error(Spec, !Info)
      ;
-        !:Info = !.Info ^ tc_info_type_assign_set := TypeAssignSet
+        !Info ^ tc_info_type_assign_set := TypeAssignSet
      ).

  :- pred typecheck_lambda_var_has_type_2(type_assign_set::in, purity::in,
Index: compiler/typeclasses.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/compiler/typeclasses.m,v
retrieving revision 1.28
diff -u -r1.28 typeclasses.m
--- compiler/typeclasses.m	3 May 2011 04:34:59 -0000	1.28
+++ compiler/typeclasses.m	5 May 2011 06:59:20 -0000
@@ -132,7 +132,7 @@
      ;
          TypeAssignSet = TypeAssignSet1
      ),
-    !:Info = !.Info ^ tc_info_type_assign_set := TypeAssignSet.
+    !Info ^ tc_info_type_assign_set := TypeAssignSet.

  :- pred reduce_type_assign_context(class_table::in, instance_table::in,
      type_assign::in, list(type_assign)::in, list(type_assign)::out,
@@ -225,7 +225,7 @@
      Unproven0 = !.Constraints ^ unproven,
      list.sort(compare_hlds_constraints, Unproven0, Unproven1),
      merge_adjacent_constraints(Unproven1, Unproven),
-    !:Constraints = !.Constraints ^ unproven := Unproven.
+    !Constraints ^ unproven := Unproven.

  :- pred merge_adjacent_constraints(list(hlds_constraint)::in,
      list(hlds_constraint)::out) is det.
@@ -664,7 +664,7 @@
      !.Constraints = constraints(Unproven0, _, _, Ancestors),
      apply_class_rules_2(Ancestors, !Proofs, !ConstraintMap,
          Unproven0, Unproven, Changed),
-    !:Constraints = !.Constraints ^ unproven := Unproven.
+    !Constraints ^ unproven := Unproven.

  :- pred apply_class_rules_2(ancestor_constraints::in,
      constraint_proof_map::in, constraint_proof_map::out,
Index: deep_profiler/canonical.m
===================================================================
RCS file: /home/mercury/mercury1/repository/mercury/deep_profiler/canonical.m,v
retrieving revision 1.22
diff -u -r1.22 canonical.m
--- deep_profiler/canonical.m	3 May 2011 04:35:00 -0000	1.22
+++ deep_profiler/canonical.m	5 May 2011 07:07:55 -0000
@@ -253,7 +253,7 @@
          ProcDynamics1 = !.InitDeep ^ init_proc_dynamics,
          update_proc_dynamics(PrimePDPtr, PrimePD, u(ProcDynamics1),
              ProcDynamics),
-        !:InitDeep = !.InitDeep ^ init_proc_dynamics := ProcDynamics,
+        !InitDeep ^ init_proc_dynamics := ProcDynamics,
          ChosenPDPtr = PrimePDPtr
      ;
          ValidPDPtrs = [],
@@ -385,7 +385,7 @@
          FirstCSD = FirstCSD0 ^ csd_caller := ParentPDPtr,
          update_call_site_dynamics(FirstCSDPtr, FirstCSD,
              u(CallSiteDynamics0), CallSiteDynamics),
-        !:InitDeep = !.InitDeep ^ init_call_site_dynamics := CallSiteDynamics,
+        !InitDeep ^ init_call_site_dynamics := CallSiteDynamics,
          (
              LaterCSDPtrs = []
          ;
@@ -546,7 +546,7 @@
      ;
          unexpected($module, $pred, "already redirected")
      ),
-    !:Redirect = !.Redirect ^ pd_redirect := ProcRedirect,
+    !Redirect ^ pd_redirect := ProcRedirect,
      record_pd_redirect_2(RestPDPtrs, PrimePDPtr, !Redirect).

  :- pred record_csd_redirect(list(call_site_dynamic_ptr)::in,
@@ -581,7 +581,7 @@
      ;
          unexpected($module, $pred, "already redirected")
      ),
-    !:Redirect = !.Redirect ^ csd_redirect := CallSiteRedirect,
+    !Redirect ^ csd_redirect := CallSiteRedirect,
      record_csd_redirect_2(RestCSDPtrs, PrimeCSDPtr, !Redirect).

  :- pred two_or_more(list(proc_dynamic_ptr)::in) is semidet.

--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list