From: Dmitry A. Kazakov <mailbox@dmitry-kazakov.de>
Subject: Re: Ada 0Y plans for garbage collection?
Date: Fri, 12 Sep 2003 10:43:50 +0200
Date: 2003-09-12T10:43:50+02:00 [thread overview]
Message-ID: <l213mvgattffdctsato5fpsh7g0uq00cfd@4ax.com> (raw)
In-Reply-To: 3F60E747.40805@attbi.com
On Thu, 11 Sep 2003 21:21:21 GMT, "Robert I. Eachus"
<rieachus@attbi.com> wrote:
>>>I still think the way it was done in Modula-3 gives you the best of
>>>both worlds. If you want garbage collection, you allocate from a
>>>different pool. If you don't want it you don't use it, and there is no
>>>overhead.
>>
>> Well, you can have this allready at least with GNAT. See
>> http://www.ada.krischik.com for details.
>
>Exactly. And if you read the documentation there, you eventually
>conclude that a garbage collected pool for Ada implementations may seem
>like a good thing, but it creates more issues than it solves. It can be
>done, and it has been done. But in practice building reference counts
>into types which need garbage collection gives you much better control
>over finalization.
Absolutely!
(I saw no single real-life example, where automatic GC were a solution
of choice)
>And yes, I know that there are general graph structures where reference
>counts don't work. I also know that in practice most such general
>graphs can be constructed with structural pointers and general pointers
>so that the structural pointers define a tree and nodes not in the tree
>should be reclaimed. You could say that doing that is a lot of extra work.
Actually, it is not so much work. I did it many times.
---------
But reference counting could be made much more easy and attractive if
smart pointers have more light-weighted implementation than controlled
types in generic packages. There are too many problems with that:
1. Controlled types are slow.
2. They have by-reference semantics, which is a source of nasty
pitfalls.
3. They are not transparent as true access types are. So you have to
define a plethora of proxy methods and take a great care to maintain
them when the pointed type gets changed. It is awful and unsafe.
4. Derived types are not supported. That is, there is no way to make a
smart pointer to a derived type class a member of the class of smart
pointers pointing to the base type class. One need to support two
parallel type hierarchies which is absolutely impossible with
generics.
---
Regards,
Dmitry Kazakov
www.dmitry-kazakov.de
next prev parent reply other threads:[~2003-09-12 8:43 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-09 13:35 Ada 0Y plans for garbage collection? Jano
2003-09-09 16:24 ` Martin Krischik
2003-09-09 18:30 ` Jeffrey Carter
2003-09-10 6:55 ` olehjalmar kristensen - Sun Microsystems - Trondheim Norway
2003-09-11 15:09 ` Martin Krischik
2003-09-11 21:21 ` Robert I. Eachus
2003-09-12 8:43 ` Dmitry A. Kazakov [this message]
2003-09-12 15:38 ` Martin Krischik
2003-09-15 13:33 ` Dmitry A. Kazakov
2003-09-16 18:04 ` Martin Krischik
2003-09-12 15:49 ` Martin Krischik
2003-09-14 19:26 ` Matthew Heaney
2003-09-14 21:46 ` Berend de Boer
2003-09-14 21:58 ` Ludovic Brenta
2003-09-15 1:43 ` Robert I. Eachus
2003-09-16 16:48 ` Jon S. Anthony
2003-09-16 21:45 ` Berend de Boer
2003-09-17 1:39 ` Jeffrey Creem
2003-09-17 3:38 ` Larry Kilgallen
2003-09-17 14:14 ` Jon S. Anthony
2003-09-17 17:23 ` Gautier Write-only
2003-09-18 0:39 ` Berend de Boer
2003-09-18 16:52 ` chris
2003-09-22 15:51 ` Robert I. Eachus
2003-09-22 16:29 ` Warren W. Gay VE3WWG
2003-09-22 16:30 ` chris
2003-09-23 9:26 ` Dmitry A. Kazakov
2003-09-24 1:46 ` Nick Roberts
2003-09-24 14:28 ` Maxim S. Shatskih
2003-09-24 16:01 ` Preben Randhol
2003-09-24 16:52 ` Stephane Richard
2003-09-24 17:19 ` chris
2003-09-25 17:49 ` OT " Pascal Obry
2003-09-25 19:30 ` Pascal Obry
2003-09-25 20:32 ` tmoran
2003-09-26 18:57 ` Pascal Obry
2003-09-27 0:40 ` Stephane Richard
2003-09-27 8:05 ` Preben Randhol
2003-09-27 10:01 ` chris
2003-09-24 16:33 ` Time Taken to Boot Nick Roberts
2003-09-24 20:11 ` Mark A. Biggar
2003-09-25 15:14 ` Maxim S. Shatskih
2003-09-25 17:29 ` Warren W. Gay VE3WWG
2003-09-25 15:00 ` Ada 0Y plans for garbage collection? Robert C. Leif
2003-09-12 17:20 ` Robert I. Eachus
2003-09-13 9:54 ` Martin Krischik
2003-09-13 20:37 ` Robert I. Eachus
2003-09-15 13:33 ` Dmitry A. Kazakov
2003-09-15 21:17 ` Alexander Kopilovitch
2003-09-14 19:10 ` Matthew Heaney
2003-09-15 6:48 ` Martin Krischik
2003-09-14 13:19 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox