From: billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,)
Subject: Re: Garbage Collection
Date: 10 Jan 89 02:50:24 GMT [thread overview]
Message-ID: <4054@hubcap.UUCP> (raw)
In-Reply-To: 35300@think.UUCP
From article <35300@think.UUCP>, by barmar@think.COM (Barry Margolin):
> There are several programs running in a common address space. Call
> them COMMAND_PROCESSOR, COMPILER, and EDITOR. There is a global data
> structure, COMPILER_WARNINGS; the operations on this database include
> adding warnings, selecting warnings based on various criteria, and
> deleting selected warnings from the database. COMPILER adds warnings,
> as one would expect. EDITOR has operations that make use of the data
> in COMPILER_WARNINGS; for instance, you can display the warnings for
> the current file and have the editor position you to the appropriate
> source line. And COMMAND_PROCESSOR has a command to clear out
> COMPILER_WARNINGS (which selects all warnings and then deletes them).
>
% The natural way to implement the COMPILER_WARNINGS database is as an
% array or list of pointers to warning structures. The ADD operation
% copies the pointer it's given, and is documented so that the caller
% knows not to try to deallocate the object it added. SELECT simply
% returns newly allocated pointers to the selected warnings. DELETE
% objviously should deallocate the pointer and remove it from
% COMPILER_WARNINGS, but what about pointer.all?
%
% If someone has called SELECT and it has returned a pointer to a
% particular warning, DELETE should not deallocate pointer.all, because
% there is another handle to it. EDITOR should be permitted to continue
% to display and manipulate selected warnings even if they've since been
% deleted from the global database. [...]
%
% Can this be solved with only documentation? Or is this an ugly
% example that only a Lisp afficionado would think is clean?
It's in severe need of a cleanup.
If I understand the problem correctly, we have a command processor,
a compiler, an editor, and some set of files upon which the compiler
and editor are to operate. When a file is sent through the compiler,
the compiler generates a warning structure with respect to that file.
The editor then makes use of these warning structures during debugging.
Furthermore, a command exists whereby the warning structures for given
files are destroyed, and this command must not interfere with editor
processes which are still alive.
Let's assume the existence of a suitably implemented warning container,
which has been appropriately hardened for use as a shared variable.
Our compiler proceeds by read-locking the file and write-locking the
warning structure; having acquired the locks, the warning structure
for that particular file is updated, and the locks are then released.
Our editor proceeds by write-locking the file and read-locking the
warning structure, updating the file, and then releasing all locks.
Our warning destroyer proceeds by write-locking and then destroying
the specified warning structure(s).
That was almost too easy. Did I misunderstand the problem?
Bill Wolfe
wtwolfe@hubcap.clemson.edu
next prev parent reply other threads:[~1989-01-10 2:50 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
1989-01-06 22:17 Garbage Collection Erland Sommarskog
1989-01-08 18:40 ` William Thomas Wolfe,2847,
1989-01-09 3:56 ` Barry Margolin
1989-01-09 16:22 ` William Thomas Wolfe,2847,
1989-01-09 19:00 ` Barry Margolin
1989-01-10 2:50 ` William Thomas Wolfe,2847, [this message]
1989-01-11 9:22 ` Barry Margolin
1989-01-11 16:01 ` William Thomas Wolfe,2847,
1989-01-11 18:21 ` Barry Margolin
1989-01-12 2:43 ` William Thomas Wolfe,2847,
1989-01-15 7:14 ` Barry Margolin
-- strict thread matches above, loose matches on Subject: below --
1999-08-18 0:00 garbage collection Ronald Ayoub
1999-08-18 0:00 ` tmoran
1999-08-18 0:00 ` Keith Thompson
1999-08-19 0:00 ` Tucker Taft
1999-08-19 0:00 ` Robert Dewar
1999-08-19 0:00 ` Robert Dewar
1999-08-20 0:00 ` tmoran
1999-08-20 0:00 ` Keith Thompson
1999-08-20 0:00 ` Matthew Heaney
1999-08-20 0:00 ` Keith Thompson
1999-08-21 0:00 ` Robert Dewar
1999-08-21 0:00 ` Matthew Heaney
1999-08-21 0:00 ` Matthew Heaney
1999-08-21 0:00 ` Robert Dewar
1999-08-21 0:00 ` Brian Rogoff
1999-08-21 0:00 ` Robert Dewar
1999-08-18 0:00 ` Pascal MALAISE
1999-08-20 0:00 ` David Botton
1999-08-18 0:00 ` Gisle S�lensminde
1999-08-18 0:00 ` Robert I. Eachus
1999-08-19 0:00 ` Gautier
1999-08-19 0:00 ` Robert I. Eachus
1999-08-20 0:00 ` Keith Thompson
1999-08-20 0:00 ` Robert Dewar
1996-10-24 0:00 Garbage Collection H Brett Bolen
1989-01-10 19:16 Erland Sommarskog
1989-01-11 16:10 ` William Thomas Wolfe,2847,
1989-01-05 23:26 Erland Sommarskog
1988-12-31 0:04 Erland Sommarskog
1989-01-05 8:13 ` William Thomas Wolfe,2847,
1988-12-28 19:20 Erland Sommarskog
1988-12-30 0:52 ` Bill Wolfe
1988-12-26 23:37 Erland Sommarskog
1988-12-27 21:24 ` William Thomas Wolfe,2847,
1988-12-28 16:09 ` Snorri Agnarsson
1988-12-30 0:46 ` Bill Wolfe
1988-12-27 22:24 ` Bob Hathaway
1988-12-18 20:12 Erland Sommarskog
1988-12-20 19:04 ` Bill Wolfe
1988-12-13 20:07 Erland Sommarskog
1988-12-15 19:13 ` William Thomas Wolfe,2847,
1988-12-07 15:22 Collective response to := messa ron
1988-12-11 19:11 ` Garbage Collection William Thomas Wolfe,2847,
1988-12-12 5:29 ` John Gateley
1988-12-12 18:19 ` William Thomas Wolfe,2847,
1988-12-13 1:02 ` Alexander Klaiber
1988-12-13 18:37 ` William Thomas Wolfe,2847,
1988-12-13 23:36 ` Alexander Klaiber
1988-12-14 3:26 ` William Thomas Wolfe,2847,
1988-12-14 17:16 ` Stephe Leake
1988-12-15 14:43 ` Thomas P. Morris
1988-12-14 23:30 ` John Gateley
1988-12-15 19:25 ` William Thomas Wolfe,2847,
1988-12-19 16:12 ` John Gateley
1988-12-20 19:34 ` Bill Wolfe
1988-12-13 20:22 ` William Thomas Wolfe,2847,
1988-12-14 6:40 ` Richard A. O'Keefe
1988-12-14 17:43 ` William Thomas Wolfe,2847,
1989-01-02 17:51 ` ryer
1989-01-05 8:31 ` William Thomas Wolfe,2847,
1989-01-06 16:58 ` ryer
1989-01-08 19:24 ` William Thomas Wolfe,2847,
[not found] <145@krafla.rhi.hi.is>
[not found] ` <272@fang.ATT.COM>
1988-03-29 13:47 ` From Modula to Oberon Denis Fortin
1988-03-30 15:32 ` Lawrence Crowl
1988-03-30 22:41 ` Hans Boehm
1988-03-31 6:27 ` Garbage Collection Richard Harter
1988-03-31 19:49 ` Hans Boehm
1988-04-01 5:43 ` Richard Harter
1988-04-01 18:43 ` Hans Boehm
1988-04-04 23:14 ` 00704a-Liber
1986-03-16 22:24 Garbage collection "Alexander L. Wolf"
[not found] <1979@mit-eddi.UUCP>
[not found] ` <2144@mit-eddie.UUCP>
1984-06-18 19:28 ` Abstraction In Ada Jon Mauney
1984-06-22 7:47 ` Doug Alan
1984-06-25 2:15 ` brad
1984-07-17 10:34 ` garbage collection Eric Smith
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox