On 27 Jan 2011, at 16:07, Norman Dunbar wrote:

>> 
>> Of course. but why at runtime?
> Code reuse and/or share-ability. If you have 10 applications running and
> each one needs the same library code, isn't it much better to have one
> copy used by all, rather than running the system with 10 copies of the
> same code? That way, the space hogged by the 9 duplicates can be used to
> run another application?
> 

It would normally seem better to have just one copy of a routine rather than 
several. I think I misunderstood what was meant by "at runtime". Both QLIB and 
TURBO allow extensions to be included in a program. This can be useful when the 
program is to be run on many machines some of which will not have the required 
extensions loaded. This gives easier use of the program at the expense of 
duplication.

Compilation by TURBO allows solution of another problem which how to use 
another routine if the one you want is not loaded on your machine.

>> It seems dangerous to me to rely on a routine which might have changed 
>> since the last time you looked at it. How can you know that the
>> next time your program runs it won't produce different or faulty
>> results because the DLL now contains something different?
> 
> Works fine for Linux, HP-UX, Windows etc!
> 
> The usual (Unix) case is that when version 6 of a library comes out, a
> link to the new *.so file is created, and you get an *.so.6 created.
> This is what your program is looking for.
> 
> Other programs may be looking for *.so.5 = so they find that their link,
> created when release 5 went in, is still pointing at the *.so file, even
> though it is now the *.so from release 6.
> 
> The versions are backwards compatible in that features in .5 are still
> there in .6.


The same is true, of course, if an extension used by a program is updated. This 
should be OK if backward compatibility holds.

George
_______________________________________________
QL-Users Mailing List
http://www.q-v-d.demon.co.uk/smsqe.htm

Reply via email to