From: daveb@geac.UUCP (David Collier-Brown)
Subject: Re: Writing upgradable data structures
Date: 10 Mar 88 14:03:07 GMT [thread overview]
Date: Thu Mar 10 09:03:07 1988
Message-ID: <2431@geac.UUCP> (raw)
In-Reply-To: 2417@geac.UUCP
In article <2417@geac.UUCP> Barry Margolin <rutgers!think!barmar>
writes:
> While I was in the Multics group at Honeywell we did some
> investigation of implementing a Multics followon in Ada. I thought
> the same thing regarding versioned structures, but I was convinced by
> some more experienced Ada people that we could do this using variant
> records. When you upgrade the structure you add a new variant. This
> does require recompiling users of the structure, but it doesn't force
> old, stable programs to be recoded unless they want to take advantage
> of the new structure's features.
The thing that is hard in Ada[tm] was dealing with a structure
which was *later* than the one you expected. Normal Ada
scope/recompilation rules keep versioned structures in a linked
executable from getting out of date with respect to themselves (with
due care, of course), but don't deal well with a structure which is
sent to it from something external.
Since this technique came from the ARPAnaut world, you might
guess that the data structures can be packets...
My work-around is to make sure I pass pointers to things, and not
depend on the `size attribute (which is not exactly what I'd call
good practice... I wonder if its even ethical?).
--dave c-b
--
David Collier-Brown. {mnetor yunexus utgpu}!geac!daveb
Geac Computers International Inc., | Computer Science loses its
350 Steelcase Road,Markham, Ontario, | memory (if not its mind)
CANADA, L3R 1B3 (416) 475-0525 x3279 | every 6 months.
prev parent reply other threads:[~1988-03-10 14:03 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2307@geac.UUCP>
[not found] ` <2767@enea.se>
1988-03-08 13:39 ` Writing upgradable data structures David Collier-Brown
1988-03-10 14:03 ` David Collier-Brown [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox