home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky vmsnet.internals:1401 comp.os.vms:16179
- Path: sparky!uunet!ogicse!decwrl!pa.dec.com!e2big.mko.dec.com!quark.enet.dec.com!lionel
- From: lionel@quark.enet.dec.com (Steve Lionel)
- Newsgroups: vmsnet.internals,comp.os.vms
- Subject: Re: VMS shareable images, what's wrong with them?
- Keywords: LIB$FIS
- Message-ID: <1992Oct7.160141.11374@e2big.mko.dec.com>
- Date: 7 Oct 92 16:01:41 GMT
- Article-I.D.: e2big.1992Oct7.160141.11374
- References: <Bvo7FC.M01@ithaca.com> <3025@mitech.com> <1992Oct6.201520.24059@e2big.mko.dec.com> <1at59bINNcc7@network.ucsd.edu>
- Sender: guest@e2big.mko.dec.com (Guest (DECnet))
- Reply-To: lionel@quark.enet.dec.com (Steve Lionel)
- Organization: Digital Equipment Corporation, Nashua NH
- Lines: 44
-
-
- In article <1at59bINNcc7@network.ucsd.edu>, gkn@ucsd.edu (Gerard K. Newman)
- writes:
- |>In article <1992Oct6.201520.24059@e2big.mko.dec.com> lionel@quark.enet.dec.com (Steve Lionel) writes:
- |>
- |>>[...] Dynamic linking has been
- |>>available for some years on VAX/VMS through LIB$FIND_IMAGE_SYMBOL.
- |>
- |>One of my favorite toys. Thanks, if you had anything to do with it.
- |>
-
- While it may seem to some readers of this newsgroup that I've had my fingers in
- just about everything, this is one I can't claim. But I agree that this is
- a wonderful routine and it is widely used in our own products.
-
- There have been some side-discussions about global section ident matching and
- why this feature is "bad", with some other comments appearing to recommend
- dynamic linking as the only way it should be done. The VMS method is a
- compromise in some ways; it makes you work a bit harder at building proper
- transfer vectors and not moving universal data cells around, but it has the
- advantage of faster image activation as one is not doing all that name lookup
- every time the image is run. The issue of GSMATCH idents can be helped
- somewhat by building in "dummy" transfer entries which, when called, signal a
- "not implemented" error. If you pad a transfer vector with these dummy
- entries, and then take them over when adding new entry points, you don't have
- to change the GSMATCH ident until you run out of dummy entries. As long as
- the newly linked image doesn't call the new routines, it can run on older
- systems which don't have the new entries. This method is now used in a number
- of the VMS RTL shareable images. (Someone even cleverly figured out how to
- code the dummy entries so that they work whether CALLed or JSBed.)
-
- Shareable images were an unusual idea in 1977 when they showed up in VMS V1,
- albeit in a form that would seem harshly restrictive today. But the
- technology evolved into something that is astonishingly flexible and efficient.
- We've also learned how to use them better along the way (the dummy entries
- trick, for instance.)
-
- --
-
- Steve Lionel lionel@quark.enet.dec.com
- SDT Languages Group
- Digital Equipment Corporation
- 110 Spit Brook Road
- Nashua, NH 03062
-