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.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!attcan!uunet!lll-winken!ames!mailrus!uflorida!gatech!hubcap!billwolf From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,) Newsgroups: comp.lang.ada Subject: Re: Garbage Collection Message-ID: <4073@hubcap.UUCP> Date: 12 Jan 89 02:43:28 GMT References: <35340@think.UUCP> Sender: news@hubcap.UUCP Reply-To: wtwolfe@hubcap.clemson.edu List-Id: >From article <35340@think.UUCP>, by barmar@think.COM (Barry Margolin): > 3 million people aren't editing and > compiling the same file, but one user is, and he may tell the command > processor to delete the compiler warnings before he's finished > scanning through them in the editor (because he doesn't want them > cluttering up the database if he asks for other compiler warnings to > be displayed). Why doesn't the editor do the deletion of warnings? If the editor is already providing a "search for next warning" function, it should provide the "delete warning" function as well. Then we wouldn't have to deal with shared variables at all, although your later comments do make the whole question moot. > Real-time GC mechanisms are defined to do a bounded amount of work PER > ALLOCATION. [....] And generational and ephemeral GC mechanisms > concentrate their efforts on memory most likely to contain garbage. Could you send me a detailed explanation of these mechanisms? > Decent GC mechanisms can be told to ignore manually managed space. If this means that I can specify that my allocation requests carry the condition that the GC mechanism will stay away from the space I receive, then I'll be happy to change my position on garbage collection. (Erland, you may have spoken too soon!) HOWEVER. There are still things that need changing. There still needs to be implicit destruction of local environments via calls to DESTROY routines. Parameter passing is still ambiguous with respect to storage utilization. In general, I can live with GC being required IFF I can also exert total control over when, how, and for how long every piece of space is occupied, and I can determine exactly how much space is being used implicitly and for how long. If what you say is true, then nothing prevents me from designing an entire system in which GC is completely absent and for which I can make firm statements regarding the system's time and space characteristics; even though the compiler is required to provide GC for those who wish to use it, the programmer can require the compiler to provide a local environment in which GC is prohibited. This I can live with. Bill Wolfe wtwolfe@hubcap.clemson.edu