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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6a9844368dd0a842 X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: seperate keyword and seperate compilation with Gnat? Date: 1996/07/10 Message-ID: #1/1 X-Deja-AN: 167758433 references: <4s0b1t$m1o@newsbf02.news.aol.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-07-10T00:00:00+00:00 List-Id: " Even when there might be tasking, perhaps there could be a compiler option for traditional handling of subunits, in cases where rapid development is more important than code efficiency. I realize that's asking for a lot, especially from a free compiler!!!" Well what is and is not done for GNAT is not particularly dependent on the fact that it is free software, since the development is funded by supported users anyway, so it is much like any other software product, what gets done depends on the needs of users. As I have noted, doing type 2 (in-package) subunits with true separate compilation is really quite easy. It will probably be in before the end of the year. On the other hand, type 1 (in-procedure) subunits are out of the question, by which I mean that the benefit-to-effort ratio would be far too small. >From the communications I have had since I asked the question, it seems that most big programs using subunits extensively use type 2 rather than type 1 subunits, so the benefit is small, and the effort wqould be large since it would involve major changes to the gcc backend, which has to be taught how to separately compile nested procedures -- not at all easy! As far as tasking restrictions making subunits easier, sure, but that was only one of MANY reasons why it is less eficient to compile subuits separately (for example, size of stack frames in the type 1 case is no longer known at compile time, which means you don't know if you can use short or long offsets accessing the stack).