From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,18f6de557e6897b2 X-Google-Attributes: gid103376,public From: "John G. Volan" Subject: Re: circular unit dependency Date: 1997/05/26 Message-ID: <33898C78.27D3@sprintmail.com>#1/1 X-Deja-AN: 244000946 References: <3386d96f.171920@noticias.ibernet.es> Organization: Sprint Internet Passport Reply-To: johnvolan@sprintmail.com Newsgroups: comp.lang.ada Date: 1997-05-26T00:00:00+00:00 List-Id: Jon S Anthony wrote: > > In article <3386d96f.171920@noticias.ibernet.es> jdlopez@caminos.recol.es writes: > > > I am making a program with 2 classes that each one depends on the > > other: ... > Uh-Oh. The recursive types across package boundaries issue again! > Run for it!! :-) > > This is an old issue that (rightly, I suppose) keeps coming up now and > again. John Volan has a kind of generally agreed upon idiom for > getting around this issue using generics. Maybe he will post his old > notes on the reasons he got where he did. Well, this time instead of posting the whole darn FAQ on comp.lang.ada, I thought I'd take a couple of days, polish it up, turn it into HTML, and publish it as a website, something I've been meaning to do for a long time...it looks real spiffy in my browser now...but...I have just discovered that my ISP doesn't provide personal web space!! (Huh?? I'm sure I asked about that when I signed up! Arggh!) Oh well, I know someone who might set me up with a quickie website cheap...will let everyone know shortly... > Or maybe it should be put out on www.adahome.com?? I'd love it if it were on adahome or someplace comparable. Ages ago I did mail my whole FAQ to Magnus Kempe in hopes he would install it into adahome somewhere, or maybe the Ada Programmer's FAQ...but he refused. He said it was because I stuck the LGPL on the generic Identity package. (By the way, I've dropped the whole "object class identity" discussion as being too abstruse, so I've changed the name of my generic package to "Forward", signifying "forward declarations.") Magnus is apparently allergic to the LGPL (or maybe he's just allergic to my little generic gizmo, I dunno... :-) ). At the risk of resurrecting another monster thread, anyone have any advice on what license verbiage I should use instead? I don't want to place any restrictions on the use of my Forward package (i.e., I want to let proprietary commercial stuff incorporate it without catching the free software virus). But on the other hand, I want to keep copyright control over it to prevent anyone from turning it proprietary and keeping others from using it. I thought the LGPL was good enough for that but now it seems I'm wrong... > Or you can read it in the Ada=>IDL mapping > document (where we used it to get around the problem of mapping > recursive IDL specs...) Yeah, you might be able to puzzle out the generic forward declaration pattern by looking at the CORBA.Forward package (since it directly incorporated my idea). But unless you're actually doing distributed programming with CORBA tools, you're not going to be able to use that directly. Better to look at my FAQ...as soon as I can put it somewhere... :-) > BTW, whatever happened to Tucker's plan for the fix for this? The > "with P.T" solution? I thought that was going to be an ACE thing or > some such, but haven't heard anything about it since. Yeah, whatever did happen to Tucker's "with type" proposal? I remember he said this was something that really did need to be addressed "sooner rather than later" -- i.e., before AdaOY. (By the way, I've added a description of Tucker's "with type" notion into my FAQ.) ----------------------------------------------------------------------- Internet.Usenet.Put_Signature (Name => "John G. Volan", Home_Email => "johnvolan@sprintmail.com", Slogan => "Ada95: The World's *FIRST* International-Standard OOPL", Disclaimer => "These opinions were never defined, so using them " & "would be erroneous...or is that just nondeterministic now? :-) "); ------------------------------------------------------------------------