Re: Win32LIb/Llama Status
- Posted by Robert Craig <rds at ATTCANADA.NET> Jun 25, 1999
- 430 views
David Cuny writes: > Llama won't bind correctly, even with -clear_routines. > I suspect the problem is that I have a bunch of include > files with the same local function names - for example, "set". Yes, that is likely the problem. All programs that do not use routine_id() can be bound. Most programs (e.g. win32lib.ew) that use routine_id() can also be bound, using the existing bind program and the -clear_routines option. However, the bind program was designed long before routine_id() was introduced, and there are some cases that can't be handled. After the Linux port, my top priority is to improve the namespace situation, and part of that effort will involve changes to the bind program, perhaps a major redesign. That should allow binding to work for 100% of programs. How the binder currently works: The binder takes a multi-file program, consisting of a main file and all necessary include files, and it converts it into a single large file. In general, this shouldn't be possible if there are local symbols in 2 different files that have the same name. However, the binder changes all names to short, meaningless names of it's own choosing. fred() in x.e might be changed to aa(), while fred() in y.e might be changed to bb(), so there's no conflict. Now, suppose the programmer has routine_id("fred") in his program. fred() has been changed to aa(), so this routine_id() call is now wrong. The binder will issue a warning, and you must rebind with -clear_routines. This will force the binder to leave fred() in x.e and fred() in y.e unchanged. But now when the second instance of fred is encountered, the binder will issue a warning, and change the 2nd fred anyway, in the hope that you aren't calling routine_id for the second fred(). If you ignore the warning, you can run, but things will likely fail. In the redesign, I hope to get away from the concept of creating "one" file. The source file boundaries would be retained somehow, solving this routine_id situation and making other features available, such as the option to bind clear, unshrouded source, and get proper ex.err dumps etc. Regards, Rob Craig Rapid Deployment Software http://members.aol.com/FilesEu/