1. routine_id() correct me. (Rob Craig)

Hello EuComm:  (short of Euphoria Community)

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.

Just a thought but.  When you are renaming all those routines from.
this()  ---> Aa()
that() ---> Ab()
something_else() ---> Ac()

You have to keep a little table, list, lookup.  so you know what gets
renamed
to what.  RIGHT?  Then.  When you are done renaming you just toss it out.
Like old useless garbage.  RIGHT?

I mean.  we couldn't possibly use those old names for anything.  Oops,
I think my meaning should be coming across by now.

Would it be hard for bind.ex to store that table into the resulting output
program?  And for the Euphoria interpreter to use that table when needed.
You know.  Just for routine_id() and it's neighboring calls occur.

See Also: call_proc, call_func, call_back, define_c_func, define_c_proc


        Lucius L. Hilley III

new topic     » topic index » view message » categorize

2. Re: routine_id() correct me. (Rob Craig)

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

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu