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,5d3a1501d97dab65 X-Google-Attributes: gid103376,public From: geert@fozzie.sun3.iaf.nl (Geert Bosch) Subject: Re: C to Ada : a piece of code Date: 1996/09/10 Message-ID: <514lpk$i0m@fozzie.sun3.iaf.nl>#1/1 X-Deja-AN: 179894925 references: <3231732C.2781@virgoa4.in2p3.fr> <01bb9d61$537fe5e0$2b8371a5@dhoossr.iquest.com> <01bb9e40$d0312d80$348371a5@dhoossr.iquest.com> organization: La Calandre Infortunee newsgroups: comp.lang.ada Date: 1996-09-10T00:00:00+00:00 List-Id: Robert Dewar (dewar@cs.nyu.edu) wrote: `` In most cases, this extra subtraction ends up being essentially free since it is always pulled out of loops. In any case, it is perfectly possible to have implementations that avoid this subtraction all the time by using virtual origins. '' Please, don't do this! It is possible, but certainly not perfect! If applications are long-lived and they dynamically allocate memory at a certain rate, garbage collection is necessary for keeping the language safe. Since Ada-compilers do not provide garbage collection (sad, but still true), users depend on being able to add a conservative garbage collector. Conservative garbage collectors depend on pointers to objects be stored in a fixed format. Having virtual origins breaks all conservative garbage collectors and makes it almost impossible for a third party to add garbage collection to the compiler. Not being able to write safe applications using dynamically allocated memory ('global memory objects' might be a better term) is a very high price to pay for such a tiny performance improvement. Of course I'm not biased by the fact that I do have an experimental garbage collector for GNAT at home ;-) Regards, Geert -- E-Mail: geert@sun3.iaf.nl ``I think there is a world market for maybe five computers.'' Thomas Watson, chairman of IBM, 1943