[Omake] SVN Commit: OMake Build System [0.9.8.x] (Rev. 11850)
Aleksey Nogin
anogin at hrl.com
Mon Aug 6 15:29:38 PDT 2007
On 06.08.2007 14:14, Jason J. Hickey wrote:
> The hoisting Aleksey added in revs 11448-11849 was not right--
> the following expression doesn't make sense:
>
> venv_export_venv venv_orig venv_src
>
> This is because the two environments have different this.
> venv_orig has the caller's "this", venv_src has the callee's "this".
> The two objects are different, so the export makes no sense.
I agree that your new implementation is more efficient, but the "does
not make sense" statement is wrong - the full code was doing, essentially,
{ venv_export_venv venv_orig venv_src with venv_this = venv_orig.venv_this }
(followed by hoisting). Just because "venv_export_venv venv_orig
venv_src" does not give you the correct "this" right away, does not
necessarily mean it's a wrong thing to do (although efficiency-wise you
are right - this code is a remnant of my experimentation with other
semantics).
> NOTE: disabled the path check, going back to the original policy
> that hoisting overrides export. This is matter of policy, so I
> think it is better to keep the code simple, and discuss it.
Well, I still believe that the path check is the right thing to do. For
me, it makes perfect sense that if you both shadow a field in an object
and an object itself, then the shadowing of a field gets "hidden".
Without the path check, you end up explicitly throwing away something
that the user have requested.
Aleksey
--
Aleksey Nogin, Research Scientist
Advanced Technologies Department, Information & System Sciences Lab
HRL Laboratories, LLC, Malibu, CA
More information about the OMake-Devel
mailing list