@@ -42,8 +42,9 @@ following meanings:
4242 Note that undefined behavior may technically cause the method to violate any other effect
4343 assertions (such as `:consistent` or `:effect_free`) as well, but we do not model this,
4444 and they assume the absence of undefined behavior.
45- - `nonoverlayed::Bool`: indicates that any methods that may be called within this method
46- are not defined in an [overlayed method table](@ref OverlayMethodTable).
45+ - `native_executable::Bool`: indicates whether this method can be executed using Julia's
46+ native compiler and runtime. Note that in particular this is generally not the case when
47+ any methods defined in an [OverlayMethodTable](OverlayMethodTable) can be called.
4748- `noinbounds::Bool`: If set, indicates that this method does not read the parent's `:inbounds`
4849 state. In particular, it does not have any reached `:boundscheck` exprs, not propagates inbounds
4950 to any children that do.
@@ -91,7 +92,8 @@ The output represents the state of different effect properties in the following
9192 - `+i` (green): `true`
9293 - `-i` (red): `false`
9394
94- Additionally, if the `nonoverlayed` property is false, a red prime symbol (′) is displayed after the tuple.
95+ Additionally, if the `native_executable` property is `false`,
96+ a red prime symbol (′) is displayed after the tuple.
9597"""
9698struct Effects
9799 consistent:: UInt8
@@ -101,7 +103,7 @@ struct Effects
101103 notaskstate:: Bool
102104 inaccessiblememonly:: UInt8
103105 noub:: Bool
104- nonoverlayed :: Bool
106+ native_executable :: Bool
105107 noinbounds:: Bool
106108 function Effects (
107109 consistent:: UInt8 ,
@@ -111,7 +113,7 @@ struct Effects
111113 notaskstate:: Bool ,
112114 inaccessiblememonly:: UInt8 ,
113115 noub:: Bool ,
114- nonoverlayed :: Bool ,
116+ native_executable :: Bool ,
115117 noinbounds:: Bool )
116118 return new (
117119 consistent,
@@ -121,7 +123,7 @@ struct Effects
121123 notaskstate,
122124 inaccessiblememonly,
123125 noub,
124- nonoverlayed ,
126+ native_executable ,
125127 noinbounds)
126128 end
127129end
@@ -152,7 +154,7 @@ function Effects(effects::Effects = _EFFECTS_UNKNOWN;
152154 notaskstate:: Bool = effects. notaskstate,
153155 inaccessiblememonly:: UInt8 = effects. inaccessiblememonly,
154156 noub:: Bool = effects. noub,
155- nonoverlayed :: Bool = effects. nonoverlayed ,
157+ native_executable :: Bool = effects. native_executable ,
156158 noinbounds:: Bool = effects. noinbounds)
157159 return Effects (
158160 consistent,
@@ -162,7 +164,7 @@ function Effects(effects::Effects = _EFFECTS_UNKNOWN;
162164 notaskstate,
163165 inaccessiblememonly,
164166 noub,
165- nonoverlayed ,
167+ native_executable ,
166168 noinbounds)
167169end
168170
@@ -175,7 +177,7 @@ function merge_effects(old::Effects, new::Effects)
175177 merge_effectbits (old. notaskstate, new. notaskstate),
176178 merge_effectbits (old. inaccessiblememonly, new. inaccessiblememonly),
177179 merge_effectbits (old. noub, new. noub),
178- merge_effectbits (old. nonoverlayed , new. nonoverlayed ),
180+ merge_effectbits (old. native_executable , new. native_executable ),
179181 merge_effectbits (old. noinbounds, new. noinbounds))
180182end
181183
@@ -194,7 +196,7 @@ is_terminates(effects::Effects) = effects.terminates
194196is_notaskstate (effects:: Effects ) = effects. notaskstate
195197is_inaccessiblememonly (effects:: Effects ) = effects. inaccessiblememonly === ALWAYS_TRUE
196198is_noub (effects:: Effects ) = effects. noub
197- is_nonoverlayed (effects:: Effects ) = effects. nonoverlayed
199+ is_native_executable (effects:: Effects ) = effects. native_executable
198200
199201# implies `is_notaskstate` & `is_inaccessiblememonly`, but not explicitly checked here
200202is_foldable (effects:: Effects ) =
@@ -232,7 +234,7 @@ function encode_effects(e::Effects)
232234 ((e. notaskstate % UInt32) << 7 ) |
233235 ((e. inaccessiblememonly % UInt32) << 8 ) |
234236 ((e. noub % UInt32) << 10 ) |
235- ((e. nonoverlayed % UInt32) << 11 ) |
237+ ((e. native_executable % UInt32) << 11 ) |
236238 ((e. noinbounds % UInt32) << 12 )
237239end
238240
@@ -258,7 +260,7 @@ struct EffectsOverride
258260 notaskstate:: Bool
259261 inaccessiblememonly:: Bool
260262 noub:: Bool
261- nonoverlayed :: Bool
263+ native_executable :: Bool
262264end
263265
264266function encode_effects_override (eo:: EffectsOverride )
@@ -271,7 +273,7 @@ function encode_effects_override(eo::EffectsOverride)
271273 eo. notaskstate && (e |= (1 << 5 ) % UInt32)
272274 eo. inaccessiblememonly && (e |= (1 << 6 ) % UInt32)
273275 eo. noub && (e |= (1 << 7 ) % UInt32)
274- eo. nonoverlayed && (e |= (1 << 8 ) % UInt32)
276+ eo. native_executable && (e |= (1 << 8 ) % UInt32)
275277 return e
276278end
277279
0 commit comments