Re: routine_id() correct me. (Rob Craig)
- Posted by Robert Craig <rds at RapidEuphoria.com> Jun 06, 2002
- 369 views
Lucius L. Hilley III writes: > When routine_id() is used you can't allow bind.ex to > rename any of your routines. This would prevent routine_id() > from being able to find the routine. The fancy new 2-pass binder for 2.3 does not have the same problems with routine_id() that the old binder had. In fact, the user option to not rename routines isn't even there anymore. In general, the new binder shortens routine names and then it also shortens the name inside any routine_id() calls. e.g. foobar() --> aa() and routine_id("foobar") --> routine_id("aa") This works well, because 99% of the time people use a hard-coded routine name as the argument to routine_id(). The use of a general expression, e.g. routine_id(x & y) or even routine_id(x) is very rare. If this case does arise, the binder will preserve the original name of any routine that might be the target of the general routine_id() call, i.e. any routine that is visible at that point. > Would it be hard for bind.ex to store that table into the > resulting output program? I'd rather just output the symbol table as a separate file. I'll consider it, but it won't be quite as helpful as you think, since you might have numerous original names all mapped to the same short (private) name. > And for the Euphoria interpreter to use that table when needed. > You know. Just for routine_id() and it's neighboring calls occur. I'm not sure what you are getting at here. Keep in mind that the -clear option of the new binder will bind (or shroud) your program as clear source without any renaming, so if an error occurs you can easily understand the ex.err dump. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com