Fw: A few more shrouding niggles
- Posted by Derek Parnell <ddparnell at bigpond.com> Oct 15, 2003
- 421 views
(resent - ISP was down) ----- Original Message ----- From: "Derek Parnell" <ddparnell at bigpond.com> To: <EUforum at topica.com> Subject: Re: A few more shrouding niggles ----- Original Message ----- From: "Robert Craig" <rds at RapidEuphoria.com> To: "EUforum" <EUforum at topica.com> Subject: Re: A few more shrouding niggles > > > Pete Lomax wrote: > > I had a few local variable names clashing with the global routines > > value(), upper(), lower(), and string() [last one is in win32lib]. > > > > The offending routines are bits_to_int() in machine.e (value), > > reverse() (upper and lower), value() and wildcard_match() (string). > > > > It only causes a problem if routine_id is used with a variable > > parameter in the program being shrouded. > > > > I've renamed the local variables/parameters in my local copies of > > machine.e, get.e, and wildcard.e, to get round this. > > > > Of course I'd prefer to see the shrouder "forget" local variable names > > at the end of each routine. > > Thanks for reporting this. > > In almost all cases, people hard-code the name > of a particular routine into their routine_id() call. > In the rare case where a variable or expression is passed > to routine_id(), the shrouder must mark all routines that > are visible at that point in the code, so that none of them > can be renamed, just in case they are targetted by that routine id call. > This tends to put naming pressure on the shrouder and > this dynamic routine id case hasn't been tested as well. > I intend to go through all of this very carefully > before the next release. And the next version of win32lib is a heavy user of expressions in routine_id.