1.1 --- a/optimiser.py Wed Oct 19 22:16:27 2016 +0200
1.2 +++ b/optimiser.py Wed Oct 19 23:40:41 2016 +0200
1.3 @@ -381,8 +381,8 @@
1.4 # Prevent re-evaluation of any dynamic expression by storing it.
1.5
1.6 if original_accessor == "<expr>":
1.7 - emit(("set_accessor", original_accessor))
1.8 - accessor = context_var = ("accessor",)
1.9 + emit(("__set_accessor", original_accessor))
1.10 + accessor = context_var = ("<accessor>",)
1.11 else:
1.12 accessor = context_var = (original_accessor,)
1.13
1.14 @@ -393,25 +393,25 @@
1.15 # Prevent re-evaluation of any dynamic expression by storing it.
1.16
1.17 if original_accessor == "<expr>":
1.18 - emit(("set_accessor", original_accessor))
1.19 - accessor = ("accessor",)
1.20 + emit(("__set_accessor", original_accessor))
1.21 + accessor = ("<accessor>",)
1.22 else:
1.23 accessor = (original_accessor,)
1.24
1.25 # Apply any test.
1.26
1.27 if test == "specific-type":
1.28 - accessor = ("test_specific_type", accessor, test_type)
1.29 + accessor = ("__test_specific_type", accessor, test_type)
1.30 elif test == "specific-instance":
1.31 - accessor = ("test_specific_instance", accessor, test_type)
1.32 + accessor = ("__test_specific_instance", accessor, test_type)
1.33 elif test == "specific-object":
1.34 - accessor = ("test_specific_object", accessor, test_type)
1.35 + accessor = ("__test_specific_object", accessor, test_type)
1.36 elif test == "common-type":
1.37 - accessor = ("test_common_type", accessor, test_type)
1.38 + accessor = ("__test_common_type", accessor, test_type)
1.39 elif test == "common-instance":
1.40 - accessor = ("test_common_instance", accessor, test_type)
1.41 + accessor = ("__test_common_instance", accessor, test_type)
1.42 elif test == "common-object":
1.43 - accessor = ("test_common_object", accessor, test_type)
1.44 + accessor = ("__test_common_object", accessor, test_type)
1.45
1.46 # Perform the first or final access.
1.47 # The access only needs performing if the resulting accessor is used.
1.48 @@ -422,39 +422,39 @@
1.49
1.50 if first_method == "relative-class":
1.51 if assigning:
1.52 - emit(("store_via_class", accessor, attrname, "<assexpr>"))
1.53 + emit(("__store_via_class", accessor, attrname, "<assexpr>"))
1.54 else:
1.55 - accessor = ("load_via_class", accessor, attrname)
1.56 + accessor = ("__load_via_class", accessor, attrname)
1.57
1.58 elif first_method == "relative-object":
1.59 if assigning:
1.60 - emit(("store_via_object", accessor, attrname, "<assexpr>"))
1.61 + emit(("__store_via_object", accessor, attrname, "<assexpr>"))
1.62 else:
1.63 - accessor = ("load_via_object", accessor, attrname)
1.64 + accessor = ("__load_via_object", accessor, attrname)
1.65
1.66 elif first_method == "relative-object-class":
1.67 if assigning:
1.68 - emit(("get_class_and_store", accessor, attrname, "<assexpr>"))
1.69 + emit(("__get_class_and_store", accessor, attrname, "<assexpr>"))
1.70 else:
1.71 - accessor = ("get_class_and_load", accessor, attrname)
1.72 + accessor = ("__get_class_and_load", accessor, attrname)
1.73
1.74 elif first_method == "check-class":
1.75 if assigning:
1.76 - emit(("check_and_store_via_class", accessor, attrname, "<assexpr>"))
1.77 + emit(("__check_and_store_via_class", accessor, attrname, "<assexpr>"))
1.78 else:
1.79 - accessor = ("check_and_load_via_class", accessor, attrname)
1.80 + accessor = ("__check_and_load_via_class", accessor, attrname)
1.81
1.82 elif first_method == "check-object":
1.83 if assigning:
1.84 - emit(("check_and_store_via_object", accessor, attrname, "<assexpr>"))
1.85 + emit(("__check_and_store_via_object", accessor, attrname, "<assexpr>"))
1.86 else:
1.87 - accessor = ("check_and_load_via_object", accessor, attrname)
1.88 + accessor = ("__check_and_load_via_object", accessor, attrname)
1.89
1.90 elif first_method == "check-object-class":
1.91 if assigning:
1.92 - emit(("check_and_store_via_any", accessor, attrname, "<assexpr>"))
1.93 + emit(("__check_and_store_via_any", accessor, attrname, "<assexpr>"))
1.94 else:
1.95 - accessor = ("check_and_load_via_any", accessor, attrname)
1.96 + accessor = ("__check_and_load_via_any", accessor, attrname)
1.97
1.98 # Traverse attributes using the accessor.
1.99
1.100 @@ -465,8 +465,8 @@
1.101 # Set the context, if appropriate.
1.102
1.103 if remaining == 1 and final_method != "assign" and context == "final-accessor":
1.104 - emit(("set_context", accessor))
1.105 - accessor = context_var = "context"
1.106 + emit(("__set_context", accessor))
1.107 + accessor = context_var = "<context>"
1.108
1.109 # Perform the access only if not achieved directly.
1.110
1.111 @@ -474,14 +474,14 @@
1.112
1.113 if traversal_mode == "class":
1.114 if assigning:
1.115 - emit(("store_via_class", accessor, attrname, "<assexpr>"))
1.116 + emit(("__store_via_class", accessor, attrname, "<assexpr>"))
1.117 else:
1.118 - accessor = ("load_via_class", accessor, attrname)
1.119 + accessor = ("__load_via_class", accessor, attrname)
1.120 else:
1.121 if assigning:
1.122 - emit(("store_via_object", accessor, attrname, "<assexpr>"))
1.123 + emit(("__store_via_object", accessor, attrname, "<assexpr>"))
1.124 else:
1.125 - accessor = ("load_via_object", accessor, attrname)
1.126 + accessor = ("__load_via_object", accessor, attrname)
1.127
1.128 remaining -= 1
1.129
1.130 @@ -492,29 +492,29 @@
1.131 # Set the context, if appropriate.
1.132
1.133 if remaining == 1 and final_method != "assign" and context == "final-accessor":
1.134 - emit(("set_context", accessor))
1.135 - accessor = context_var = "context"
1.136 + emit(("__set_context", accessor))
1.137 + accessor = context_var = "<context>"
1.138
1.139 # Perform the access only if not achieved directly.
1.140
1.141 if remaining > 1 or final_method in ("access", "assign"):
1.142
1.143 if assigning:
1.144 - emit(("check_and_store_via_any", accessor, attrname, "<assexpr>"))
1.145 + emit(("__check_and_store_via_any", accessor, attrname, "<assexpr>"))
1.146 else:
1.147 - accessor = ("check_and_load_via_any", accessor, attrname)
1.148 + accessor = ("__check_and_load_via_any", accessor, attrname)
1.149
1.150 remaining -= 1
1.151
1.152 if final_method == "static-assign":
1.153 - emit(("store_member", origin, "<assexpr>"))
1.154 + emit(("__store_member", origin, "<assexpr>"))
1.155 elif final_method == "static":
1.156 - accessor = ("load_static", origin)
1.157 + accessor = ("__load_static", origin)
1.158
1.159 if context_test == "test":
1.160 - emit(("test_context", context_var, accessor))
1.161 + emit(("__test_context", context_var, accessor))
1.162 elif context_test == "replace":
1.163 - emit(("replace_context", context_var, accessor))
1.164 + emit(("__replace_context", context_var, accessor))
1.165 elif final_method not in ("assign", "static-assign"):
1.166 emit(accessor)
1.167