[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