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.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!husc6!bloom-beacon!tut.cis.ohio-state.edu!mailrus!ncar!ames!pasteur!ucbvax!BGUVM.BITNET!GDAU100 From: GDAU100@BGUVM.BITNET ("Jonathan B. Owen") Newsgroups: comp.lang.ada Subject: Code generation for generic packages - Question Message-ID: <8811161812.AA18571@ajpo.sei.cmu.edu> Date: 16 Nov 88 18:27:44 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet X-Unparsable-Date: Wed, 16 Nov 88 19:51:34 IST List-Id: I use generic packages quite extensivly. This does not mean I understand what code is generated out of the sources I write. This can be a problem when trying to consider code efficiency... What is performed in run-time each time the following is invoked: procedure GENERIC_QUESTION( name : string ) is subtype this_string_type is String(name'RANGE); package THIS_CRUNCH is new STRING_CRUNCH( this_string_type ); begin THIS_CRUNCH.STEP_ON_STRING( name ); end GENERIC_QUESTION; When is the code produced? My immediate guess, is that the package THIS_CRUNCH is creates ONCE for type "string" and not each time the procedure is invoked with a different string. Am I right? I came up with the above code while writing it, so don't try to make sense out of it. Also, I have not thought out if the above is necessary for creating a generic package for each subtype of type "string". What I do know, is that I have encountered the need to declare a subtype as a function of an unconstrained formal parameter. And then, with this subtype, declare an instantiation of a generic package. Thanks for any clarification, JB ______________________________________________________________________________ (--) /--) /-(\ Email: gdau100@bguvm (bitnet) \ / /--K | \|/\ /\/) /|-\ Snail: 55 Hovevei Zion _/_/o /L__)_/o \/\__/ \X/ \_/ | |_/ Tel-Aviv, 63346 ISRAEL (/ Jonathan B. Owen Voice: (03) 281-422 Point of view: A chicken is the means by which an egg reproduces an egg. ______________________________________________________________________________