* Ada 0Y plans for garbage collection? @ 2003-09-09 13:35 Jano 2003-09-09 16:24 ` Martin Krischik ` (2 more replies) 0 siblings, 3 replies; 52+ messages in thread From: Jano @ 2003-09-09 13:35 UTC (permalink / raw) Hello, I'm very happy using Ada but when one needs to use heap-allocated objects and unchecked deallocation it becomes tiresome rapidly, and that leaving aside memory leaks. After some time using Java/.NET or other managed languages this becomes rapidly a great pain if you are in the less real time constrained environments. I was wondering if there are plans to add a standard garbage collection mechanism to the next revision of Ada. Seeing where are going things this seems almost a necessity if Ada has to keep current with times. I've seen past discussions about Ada and GC, but mostly focus on technical difficulties or social (fictitious?) "cultural" opposition to it being implemented, or lack of demand, or whatever, but nothing about definite plans for the next revision. Can someone comment on this? Are there plans to mandate it in 0Y? As a side note, is out there any public implementation of GC for Ada 95? TIA, -- ------------------------- Jano 402450.at.cepsz.unizar.es ------------------------- ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-14 13:19 ` Matthew Heaney 2 siblings, 0 replies; 52+ messages in thread From: Martin Krischik @ 2003-09-09 16:24 UTC (permalink / raw) Jano wrote: > Hello, > > I'm very happy using Ada but when one needs to use heap-allocated > objects and unchecked deallocation it becomes tiresome rapidly, and that > leaving aside memory leaks. I feel the same. > After some time using Java/.NET or other managed languages this becomes > rapidly a great pain if you are in the less real time constrained > environments. I was wondering if there are plans to add a standard > garbage collection mechanism to the next revision of Ada. Seeing where > are going things this seems almost a necessity if Ada has to keep > current with times. Right. > Can someone comment on this? Are there plans to mandate it in 0Y? I heard rumors but never found any hard facts. Also take a look at s-parame.ads file which came with your GNAT: ---------------------------------------------- -- Behavior of Pragma Finalize_Storage_Only -- ---------------------------------------------- -- Garbage_Collected is a Boolean constant whose value indicates the -- effect of the pragma Finalize_Storage_Entry on a controlled type. -- Garbage_Collected = False -- The system releases all storage on program termination only, -- but not other garbage collection occurs, so finalization calls -- are ommitted only for outer level onjects can be omitted if -- pragma Finalize_Storage_Only is used. -- Garbage_Collected = True -- The system provides full garbage collection, so it is never -- necessary to release storage for controlled objects for which -- a pragma Finalize_Storage_Only is used. Garbage_Collected : constant Boolean := False; -- The storage mode for this system (release on program exit) I take it there are plans. Just not finished yet. So don't give up. > As a > side note, is out there any public implementation of GC for Ada 95? Yes there is: http://adacl.sourceforge.net Also read: http://adacl.sourceforge.net/gc.html With Regards Martin -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-14 13:19 ` Matthew Heaney 2 siblings, 1 reply; 52+ messages in thread From: Jeffrey Carter @ 2003-09-09 18:30 UTC (permalink / raw) Jano wrote: > > I'm very happy using Ada but when one needs to use heap-allocated > objects and unchecked deallocation it becomes tiresome rapidly, and that > leaving aside memory leaks. > > After some time using Java/.NET or other managed languages this becomes > rapidly a great pain if you are in the less real time constrained > environments. I was wondering if there are plans to add a standard > garbage collection mechanism to the next revision of Ada. Seeing where > are going things this seems almost a necessity if Ada has to keep > current with times. > > Can someone comment on this? Are there plans to mandate it in 0Y? As a > side note, is out there any public implementation of GC for Ada 95? Ada was designed for mission-critical real-time embedded systems. It is the only widely used language designed for real-time embedded systems. That's why it has features such as fixed-point types. In other languages, such things have to be simulated manually, with the inherent increase in errors that entails. Languages with mandatory GC are generally not used in such systems, and are unlikely to be used in such systems in the near future. Therefore, the standard will not mandate GC. The standard could allow GC, so compilers for real-time systems can not provide it, but compilers for other systems can. In fact, the standard already does allow GC. That you cannot obtain a compiler with GC indicates the importance paying customers put on this feature. For an example of the "Ada way" of addressing memory management, see the unbounded, unprotected data-structure components of the PragmAda Reusable Components: http://home.earthlink.net/~jrcarter010/pragmarc.htm The implementations of these perform manual allocation and deallocation, but the client need never concern himself with it. A person, such as you, developing systems where memory management is acceptable, can use such components and pretend that the language has GC; those developing real-time software can avoid such components. If you need to move your software to another compiler, you need not limit your compiler selection to those that provide GC. The need for explicit heap allocation is much rarer in Ada than in lesser languages. If you are using heap allocation for anything other than dynamic data structures, the odds are very good that you can do the same thing without heap allocation. So, if you are a software engineer, memory management is isolated in a few well defined places in your software, and the bulk of your development effort can ignore memory management issues. If there are problems with the memory management, they are easy to find and correct. If, on the other hand, you are a coder and sprinkle allocations and deallocations throughout your system, then you get what you deserve. The best thing you could do if you want to demonstrate the importance of GC in Ada is to modify GNAT to include GC. If there is really an incipient demand for GC, then your version would become widely used, and your changes would be incorporated into the mainstream versions of GNAT. If not, you would still have a version with GC for your personal efforts. -- Jeff Carter "Nobody expects the Spanish Inquisition!" Monty Python's Flying Circus 22 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-14 19:10 ` Matthew Heaney 0 siblings, 2 replies; 52+ messages in thread From: olehjalmar kristensen - Sun Microsystems - Trondheim Norway @ 2003-09-10 6:55 UTC (permalink / raw) 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. >>>>> "JC" == Jeffrey Carter <spam@spam.com> writes: <snip> JC> http://home.earthlink.net/~jrcarter010/pragmarc.htm JC> The implementations of these perform manual allocation and JC> deallocation, but the client need never concern himself with it. A JC> person, such as you, developing systems where memory management is JC> acceptable, can use such components and pretend that the language has JC> GC; those developing real-time software can avoid such components. If JC> you need to move your software to another compiler, you need not limit JC> your compiler selection to those that provide GC. JC> The need for explicit heap allocation is much rarer in Ada than in JC> lesser languages. If you are using heap allocation for anything other JC> than dynamic data structures, the odds are very good that you can do JC> the same thing without heap allocation. JC> So, if you are a software engineer, memory management is isolated in a JC> few well defined places in your software, and the bulk of your JC> development effort can ignore memory management issues. If there are JC> problems with the memory management, they are easy to find and JC> correct. If, on the other hand, you are a coder and sprinkle JC> allocations and deallocations throughout your system, then you get JC> what you deserve. JC> The best thing you could do if you want to demonstrate the importance JC> of GC in Ada is to modify GNAT to include GC. If there is really an JC> incipient demand for GC, then your version would become widely used, JC> and your changes would be incorporated into the mainstream versions of JC> GNAT. If not, you would still have a version with GC for your personal JC> efforts. JC> -- JC> Jeff Carter JC> "Nobody expects the Spanish Inquisition!" JC> Monty Python's Flying Circus JC> 22 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-14 19:10 ` Matthew Heaney 1 sibling, 1 reply; 52+ messages in thread From: Martin Krischik @ 2003-09-11 15:09 UTC (permalink / raw) olehjalmar kristensen - Sun Microsystems - Trondheim Norway 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. With Regards Martin -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-11 15:09 ` Martin Krischik @ 2003-09-11 21:21 ` Robert I. Eachus 2003-09-12 8:43 ` Dmitry A. Kazakov 0 siblings, 1 reply; 52+ messages in thread From: Robert I. Eachus @ 2003-09-11 21:21 UTC (permalink / raw) Martin Krischik 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. 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. It is a lot of work. But in the cases where I have run into this issue, the graph partitioning was part of a proof of correctness that I really needed to be able to do anyway. (Note that this is a proof of correctness of the algorithm to be implemented, before I ever got to writing code.) -- Robert I. Eachus "As far as I'm concerned, war always means failure." -- Jacques Chirac, President of France "As far as France is concerned, you're right." -- Rush Limbaugh ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-11 21:21 ` Robert I. Eachus @ 2003-09-12 8:43 ` Dmitry A. Kazakov 2003-09-12 15:38 ` Martin Krischik ` (2 more replies) 0 siblings, 3 replies; 52+ messages in thread From: Dmitry A. Kazakov @ 2003-09-12 8:43 UTC (permalink / raw) 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 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 8:43 ` Dmitry A. Kazakov @ 2003-09-12 15:38 ` Martin Krischik 2003-09-15 13:33 ` Dmitry A. Kazakov 2003-09-12 15:49 ` Martin Krischik 2003-09-12 17:20 ` Robert I. Eachus 2 siblings, 1 reply; 52+ messages in thread From: Martin Krischik @ 2003-09-12 15:38 UTC (permalink / raw) Dmitry A. Kazakov wrote: > On Thu, 11 Sep 2003 21:21:21 GMT, "Robert I. Eachus" > <rieachus@attbi.com> wrote: > (I saw no single real-life example, where automatic GC were a solution > of choice) Java. All of it. I fact all new Languages. I would like to invite you to read my "containers and garbage collections." article as well. With Regards. -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 15:38 ` Martin Krischik @ 2003-09-15 13:33 ` Dmitry A. Kazakov 2003-09-16 18:04 ` Martin Krischik 0 siblings, 1 reply; 52+ messages in thread From: Dmitry A. Kazakov @ 2003-09-15 13:33 UTC (permalink / raw) On Fri, 12 Sep 2003 17:38:14 +0200, Martin Krischik <krischik@users.sourceforge.net> wrote: >Dmitry A. Kazakov wrote: > >> On Thu, 11 Sep 2003 21:21:21 GMT, "Robert I. Eachus" >> <rieachus@attbi.com> wrote: > >> (I saw no single real-life example, where automatic GC were a solution >> of choice) > >Java. All of it. I fact all new Languages. GC is a big hype now. >I would like to invite you to read my "containers and garbage collections." >article as well. It would be very interesting. Do you have a link? --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-15 13:33 ` Dmitry A. Kazakov @ 2003-09-16 18:04 ` Martin Krischik 0 siblings, 0 replies; 52+ messages in thread From: Martin Krischik @ 2003-09-16 18:04 UTC (permalink / raw) Dmitry A. Kazakov wrote: > On Fri, 12 Sep 2003 17:38:14 +0200, Martin Krischik > <krischik@users.sourceforge.net> wrote: >>I would like to invite you to read my "containers and garbage >>collections." article as well. > It would be very interesting. Do you have a link? I think you found it allready ;-) Martin -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 8:43 ` Dmitry A. Kazakov 2003-09-12 15:38 ` 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-12 17:20 ` Robert I. Eachus 2 siblings, 2 replies; 52+ messages in thread From: Martin Krischik @ 2003-09-12 15:49 UTC (permalink / raw) Dmitry A. Kazakov wrote: > 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: I agree with you on that one. A reference counting access type would be as good a real garbage collector. With Regards -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 15:49 ` Martin Krischik @ 2003-09-14 19:26 ` Matthew Heaney 2003-09-14 21:46 ` Berend de Boer 1 sibling, 0 replies; 52+ messages in thread From: Matthew Heaney @ 2003-09-14 19:26 UTC (permalink / raw) Martin Krischik <krischik@users.sourceforge.net> writes: > I agree with you on that one. A reference counting access type would be as > good a real garbage collector. If you need a reference-counted pointer, then just build one. Something like: package P is type T (<>) is limited private; type T_Access is access all T; type Handle_Type is private; function New_T return Handle_Type; function "+" (Handle : Handle_Type) return T_Access; procedure Op (O : access T); ... end P; Now you can do this: declare O : Handle_Type := New_T; begin Op (+O); end; --automatically deallocates object The only problem with this schema is that it's still possible for a client to use "+" to get the internal access type, and then hold on to it. I pitched the idea to have an access types with a partial view, like this: package P is type T (<>) is limited private; type T_Access (<>) is limited access all T with private; Now this limits what you can do with the value returned by "+"; for example, you wouldn't be able to make a copy of it. However, there didn't seem to be much enthusiasm for such a language change. Actually, if you don't need dispatching, then you could do this already: package P is type T (<>) is limited private; type T_Access (<>) is limited private; procedure Op (O : T_Access); ... private type T_Access is access all T; end P; ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 1 sibling, 1 reply; 52+ messages in thread From: Berend de Boer @ 2003-09-14 21:46 UTC (permalink / raw) >>>>> "Martin" == Martin Krischik <krischik@users.sourceforge.net> writes: Martin> I agree with you on that one. A reference counting access Martin> type would be as good a real garbage collector. Only it adds a lot of overhead. A real garbage collector might take lots less cycles than all that reference counting. -- Regards, Berend. (-: ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 21:45 ` Berend de Boer 0 siblings, 2 replies; 52+ messages in thread From: Ludovic Brenta @ 2003-09-14 21:58 UTC (permalink / raw) Berend de Boer <berend@xsol.com> writes: > >>>>> "Martin" == Martin Krischik <krischik@users.sourceforge.net> writes: > > Martin> I agree with you on that one. A reference counting access > Martin> type would be as good a real garbage collector. > > Only it adds a lot of overhead. A real garbage collector might take > lots less cycles than all that reference counting. Linus Torvalds differs quite strongly on this: http://gcc.gnu.org/ml/gcc/2002-08/msg00571.html -- Ludovic Brenta. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 1 sibling, 1 reply; 52+ messages in thread From: Robert I. Eachus @ 2003-09-15 1:43 UTC (permalink / raw) Ludovic Brenta wrote: > Linus Torvalds differs quite strongly on this: > > http://gcc.gnu.org/ml/gcc/2002-08/msg00571.html Couldn't have said it better myself. On one project I wanted to compare using garbage collection to Controlled types and managing the allocation and deallocation of objects myself. First I wrote a version that just did heap allocation, with NO garbage collection. Of course it was possible to run out of storage with this version, but I wanted to see how much overhead GC would add. As long as I had a test case that did not result in paging, this was the ultimate best case for the GC version. Then I changed the implementation to use a Controlled type, with explicit immediate frees as soon as an object was no longer used. I added less than a page of code to implement all this. Remember now the code is explicitly freeing everything. The version with the Controlled type was three times as fast as the version with no deallocation. You can imagine how motivated I was to find out how much overhead GC would add. ;-) Worse, I then changed things a bit more. Since all the nodes I was allocating were the same size, I grabbed a chunk of memory and used it as a reference counted heap where every object was the same size. (I then twiddled a bit more so objects were exactly one cache line long, and my allocater returned blocks that were cache line aligned.) Net result, this version was almost ten times as fast as the na�ve version that would quickly start paging to virtual memory if I let it. -- Robert I. Eachus "As far as I'm concerned, war always means failure." -- Jacques Chirac, President of France "As far as France is concerned, you're right." -- Rush Limbaugh ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-15 1:43 ` Robert I. Eachus @ 2003-09-16 16:48 ` Jon S. Anthony 0 siblings, 0 replies; 52+ messages in thread From: Jon S. Anthony @ 2003-09-16 16:48 UTC (permalink / raw) "Robert I. Eachus" <rieachus@attbi.com> writes: > Ludovic Brenta wrote: > > > Linus Torvalds differs quite strongly on this: > > http://gcc.gnu.org/ml/gcc/2002-08/msg00571.html Modern GCs do in fact take locality and temporal aspects into account. So, this may not be particularly relevant in the general case. > Couldn't have said it better myself. On one project I wanted to > compare using garbage collection to Controlled types and managing the > allocation and deallocation of objects myself. Having used manual new/free, controlled types style, "smart pointers"; and modern generational GCs with, my experience strongly indicates that you cannot beat a GC in the general case. Moreover, in a "typical" application, you can't beat a GC with any combination of the former techniques wrt overall throughput. YMMV, but unless you use true state of the art versions, the sort of example you give here is pretty irrelevant. /Jon ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-14 21:58 ` Ludovic Brenta 2003-09-15 1:43 ` Robert I. Eachus @ 2003-09-16 21:45 ` Berend de Boer 2003-09-17 1:39 ` Jeffrey Creem 1 sibling, 1 reply; 52+ messages in thread From: Berend de Boer @ 2003-09-16 21:45 UTC (permalink / raw) >>>>> "Ludovic" == Ludovic Brenta <ludovic.brenta@insalien.org> writes: Martin> I agree with you on that one. A reference counting access Martin> type would be as good a real garbage collector. >> Only it adds a lot of overhead. A real garbage collector might >> take lots less cycles than all that reference counting. Ludovic> Linus Torvalds differs quite strongly on this: But really has no idea what current gc's can do. He says that compacting gc's solve the spatial locality. Performance is not a problem he says, so let's dismiss the extra overhead he mentions here, but had dismissed before. Temporal locality is solved by generational gc's. Start reading here: http://www.hpl.hp.com/personal/Hans_Boehm/pubs.html In a hurry? Read just this: ftp://ftp.cs.utexas.edu/pub/garbage/gcsurvey.ps And Linux was talking about a specific case: max speed. Perhaps he was correct. That doesn't imply gc is bad for every other app for which speed isn't that all important. -- Regards, Berend. (-: ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-16 21:45 ` Berend de Boer @ 2003-09-17 1:39 ` Jeffrey Creem 2003-09-17 3:38 ` Larry Kilgallen ` (4 more replies) 0 siblings, 5 replies; 52+ messages in thread From: Jeffrey Creem @ 2003-09-17 1:39 UTC (permalink / raw) "Berend de Boer" <berend@xsol.com> wrote in message news:ur82gs8zd.fsf@xsol.com... >> > And Linux was talking about a specific case: max speed. Perhaps he was > correct. That doesn't imply gc is bad for every other app for which > speed isn't that all important. > You know..some day this might be true. I have been hearing the "computers are so fast it does not matter anymore" story for at least 10 years now... But until I can Boot my OS in less than 3 seconds. Launch any application at random in the sub 100msec range Ecode and burn a 2 hour MPEG DVD in 3-4 seconds. Perform complicated embedded DSP algorithms in 10% of a CPU running on 100 Mwatts I am not going to believe it. Everything (and yes I mean everything) still runs slower than I'd like. And with the next generation of kids growing up feeling that instant gratitification takes too long, I suspect we still have a few years before anything other than a "guess want number" game runs fast enough. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-17 1:39 ` Jeffrey Creem @ 2003-09-17 3:38 ` Larry Kilgallen 2003-09-17 14:14 ` Jon S. Anthony ` (3 subsequent siblings) 4 siblings, 0 replies; 52+ messages in thread From: Larry Kilgallen @ 2003-09-17 3:38 UTC (permalink / raw) In article <dXO9b.481787$uu5.83124@sccrnsc04>, "Jeffrey Creem" <jeff@thecreems.com> writes: > > "Berend de Boer" <berend@xsol.com> wrote in message > news:ur82gs8zd.fsf@xsol.com... >>> >> And Linux was talking about a specific case: max speed. Perhaps he was >> correct. That doesn't imply gc is bad for every other app for which >> speed isn't that all important. >> > > You know..some day this might be true. I have been hearing the "computers > are so fast it does not matter anymore" story for at least 10 years now... > > But until I can > > Boot my OS in less than 3 seconds. Ideally, you should never have to "boot" your computer. Replacement of software and hardware components should be possible while operations are underway. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 ` (2 subsequent siblings) 4 siblings, 0 replies; 52+ messages in thread From: Jon S. Anthony @ 2003-09-17 14:14 UTC (permalink / raw) "Jeffrey Creem" <jeff@thecreems.com> writes: > "Berend de Boer" <berend@xsol.com> wrote in message > news:ur82gs8zd.fsf@xsol.com... > >> > > And Linux was talking about a specific case: max speed. Perhaps he was > > correct. That doesn't imply gc is bad for every other app for which > > speed isn't that all important. > > > > You know..some day this might be true. I have been hearing the "computers > are so fast it does not matter anymore" story for at least 10 years now... Actually, wrt to dynamic languages (aside: Java is still a static language despite the GC) this _has_ been true for at least 8 years now. People still stuck on static languages for the sort of reasons you mention are the exact current analogue of assembly programmers to then "hll" advocates. In general they were wrong and proven to be so. Similarly, in general dynamic languages can and should be used for most applications today - for very similar reasons: 1) They are far more expressive and thus far more productive. 2) Because they are more expressive, they can be closer to the domain semantics of an application and thus will generally be more maintainable. 3) They are as fast and often faster than the static alternatives. People who talk about how GC "can't" be as fast as programmers hacking new/free style allocation are just like assembly hackers saying optimizing compilers will never produce code as fast as hand crafted assembly. This is just plain wrong - in both cases. Sure, there are examples where both claims hold, but in general the exact opposite is true - the optimizing compiler will beat the assembly hack and the modern generational GC will blow away the new/free/controlled_type hack. > I am not going to believe it. Actually you will never believe it, because > Everything (and yes I mean everything) still runs slower than I'd > like. The software that is running slower is doing vastly more than before. Sometimes it even does something more useful, though it often seems that it is just more poorly rendered. And as long as SW (function/bloat/creeping featurism) holds sway things will continue to appear "slower than wanted". /Jon ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 4 siblings, 0 replies; 52+ messages in thread From: Gautier Write-only @ 2003-09-17 17:23 UTC (permalink / raw) Jeffrey Creem: # But until I can # Boot my OS in less than 3 seconds. # Launch any application at random in the sub 100msec range # Ecode and burn a 2 hour MPEG DVD in 3-4 seconds. # Perform complicated embedded DSP algorithms in 10% of a CPU running on 100 # Mwatts # I am not going to believe it. # Everything (and yes I mean everything) still runs slower # than I'd like. It's Parkinson's law applied to computers: "Work expands so as to fill the time available for its completion" becomes something like "Software effort expands so as to fill the CPU cycles available for its completion, in a given time". In other words, there is an apparent competition between progress in hardware and bloat in software resulting to about the same time for equivalent jobs. Maybe it's just that slower software helps selling faster hardware... ________________________________________________________ Gautier -- http://www.mysunrise.ch/users/gdm/gsoft.htm NB: For a direct answer, e-mail address on the Web site! ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-17 1:39 ` Jeffrey Creem ` (2 preceding siblings ...) 2003-09-17 17:23 ` Gautier Write-only @ 2003-09-18 0:39 ` Berend de Boer 2003-09-18 16:52 ` chris 4 siblings, 0 replies; 52+ messages in thread From: Berend de Boer @ 2003-09-18 0:39 UTC (permalink / raw) >>>>> "Jeffrey" == Jeffrey Creem <jeff@thecreems.com> writes: Jeffrey> Boot my OS in less than 3 seconds. Try BeOS. Or try booting win 3.11 on your current hardware. -- Regards, Berend. (-: ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-17 1:39 ` Jeffrey Creem ` (3 preceding siblings ...) 2003-09-18 0:39 ` Berend de Boer @ 2003-09-18 16:52 ` chris 2003-09-22 15:51 ` Robert I. Eachus 4 siblings, 1 reply; 52+ messages in thread From: chris @ 2003-09-18 16:52 UTC (permalink / raw) Jeffrey Creem wrote: > But until I can > > Boot my OS in less than 3 seconds. Intel are taking care of it... and not for the first time ;) http://www.theregister.co.uk/content/3/32881.html ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-18 16:52 ` chris @ 2003-09-22 15:51 ` Robert I. Eachus 2003-09-22 16:29 ` Warren W. Gay VE3WWG ` (2 more replies) 0 siblings, 3 replies; 52+ messages in thread From: Robert I. Eachus @ 2003-09-22 15:51 UTC (permalink / raw) chris wrote: > Intel are taking care of it... and not for the first time ;) > > http://www.theregister.co.uk/content/3/32881.html Actually, this is going to happen--as far as the hardware is concerned. There are several types of memory that may replace DRAM in the next few years, polymer memory and MRAM seem the leading candidates right now. But the common property of all these new memory types is that they are persistant, just like flash memory. So assuming that the OS allows it, cycling power (or a power failure) won't require a reboot. The OS will already be in memory and initialized. Of course, the gotcha in that phrase is "if the OS allows" and if Windows doesn't and Linux does for some period of years, that could be the end of Windows. (But I don't expect that. Windows currently supports sleep states in laptops that should be fairly similar in implementation.) -- Robert I. Eachus Ryan gunned down the last of his third white wine and told himself it would all be over in a few minutes. One thing he'd learned from Operation Beatrix: This field work wasn't for him. --from Red Rabbit by Tom Clancy. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 2 siblings, 0 replies; 52+ messages in thread From: Warren W. Gay VE3WWG @ 2003-09-22 16:29 UTC (permalink / raw) Robert I. Eachus wrote: > chris wrote: > >> Intel are taking care of it... and not for the first time ;) >> http://www.theregister.co.uk/content/3/32881.html > > Actually, this is going to happen--as far as the hardware is concerned. > There are several types of memory that may replace DRAM in the next few > years, polymer memory and MRAM seem the leading candidates right now. > > But the common property of all these new memory types is that they are > persistant, just like flash memory. So assuming that the OS allows it, > cycling power (or a power failure) won't require a reboot. The OS will > already be in memory and initialized. Of course, the gotcha in that > phrase is "if the OS allows" and if Windows doesn't and Linux does for > some period of years, that could be the end of Windows. (But I don't > expect that. Windows currently supports sleep states in laptops that > should be fairly similar in implementation.) Microsoft will still need to work on eliminating the need to reboot after every software install, or after most "Windows Updates" have completed. Not to mention the need to reboot after ref counters for COM/DCOM objects get messed up due to abnormal process termination events and such. -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 2 siblings, 0 replies; 52+ messages in thread From: chris @ 2003-09-22 16:30 UTC (permalink / raw) Robert I. Eachus wrote: > But the common property of all these new memory types is that they are > persistant, just like flash memory. So assuming that the OS allows it, > cycling power (or a power failure) won't require a reboot. The OS will > already be in memory and initialized. Of course, the gotcha in that > phrase is "if the OS allows" and if Windows doesn't and Linux does for > some period of years, that could be the end of Windows. (But I don't > expect that. Windows currently supports sleep states in laptops that > should be fairly similar in implementation.) Yep, and I'm looking forward to it. Persistance and Orthogonal Persistance are the way things should be and in my experience it's what users expect from a pc the first time the use one. People have to be trained to think in terms of saving (usually with painful first lesson). Chris ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 2 siblings, 1 reply; 52+ messages in thread From: Dmitry A. Kazakov @ 2003-09-23 9:26 UTC (permalink / raw) On Mon, 22 Sep 2003 15:51:37 GMT, "Robert I. Eachus" <rieachus@attbi.com> wrote: >Actually, this is going to happen--as far as the hardware is concerned. > There are several types of memory that may replace DRAM in the next >few years, polymer memory and MRAM seem the leading candidates right now. > >But the common property of all these new memory types is that they are >persistant, just like flash memory. So assuming that the OS allows it, >cycling power (or a power failure) won't require a reboot. The OS will >already be in memory and initialized. Of course, the gotcha in that >phrase is "if the OS allows" and if Windows doesn't and Linux does for >some period of years, that could be the end of Windows. (But I don't >expect that. Windows currently supports sleep states in laptops that >should be fairly similar in implementation.) Yep. Especially interesting it becomes with plug'n'play devices. You have, say a USB or PCMCIA device attached, before your Windoze hibernates. While it peacefully sleeps, you archly eject the hardware and then wake it up! The effect might be amazing, though predictable ... Of course in a truly memory-mapped OS, the present concept of hardware drives is out of place. One more reason for Ada OS? --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-25 15:00 ` Ada 0Y plans for garbage collection? Robert C. Leif 0 siblings, 2 replies; 52+ messages in thread From: Nick Roberts @ 2003-09-24 1:46 UTC (permalink / raw) "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message news:2q30nv4fain641rin9dia3onjr7ut01our@4ax.com... [re booting and sleeping] > Yep. Especially interesting it becomes with plug'n'play devices. You > have, say a USB or PCMCIA device attached, before your Windoze > hibernates. While it peacefully sleeps, you archly eject the hardware > and then wake it up! The effect might be amazing, though predictable > ... > Of course in a truly memory-mapped OS, the present concept of > hardware drives is out of place. One more reason for Ada OS? I think the broad scheme I would like to adopt for AdaOS would be as follows. Each device driver, having at least once gone through a complete hardware configuration procedure, would record the hardware configuration upon shutdown. Upon the next reboot, the device driver would reinstate this configuration, and would perform a quick check that the configuration still accords with the detectable hardware (if this check failed, the full configuration procedure would be activated). With a bit of care, this technique should make it possible to fully shutdown and then reboot very rapidly, but it would still be safe in the case of intervening hardware changes (which would automatically cause reconfiguration). I intend to design the user application software for AdaOS so that it (normally) remembers its important state in between the user logging off and back on again. This is primarily to encourage users to log off whenever they leave the workstation, but it also means that a user can log off, shutdown, reboot, and log on, and all (or most) of their work (open windows) will be reinstated as it was when the user logged off. I don't know why operating systems (Windows, SunOS, and Linux in my direct experience) are so slow at booting up, but I suspect it has a lot to do with device drivers intialising themselves and their hardware. If this initialisation can be either avoided (by the above tactics) or deferred (to be done in the background after the boot procedure has got the system to a usable stage), the user will perceive a fast boot process. If the user can shutdown and reboot quickly (within a few seconds, I suppose), and does not have to go through the rigmarole of closing a lot of programs (windows) and then restarting them, I suspect the demand for a 'sleep mode' would be largely obviated. If any OS is to be really secure, it must be basically reliable. I think Dmitry has neatly illustrated the dangers of such fundamental complications as sleep modes and other forms of partial shutdown. If a machine supports a sleep mode, I think that's okay (especially as part of an overall power management regime), but a full shutdown is better. However, I'm open to debate! -- Nick Roberts Jabber: debater@charente.de [ICQ: 159718630] [CROSS POSTED! Please ensure replies go only to alt.os.development - thanks.] ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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:33 ` Time Taken to Boot Nick Roberts 2003-09-25 15:00 ` Ada 0Y plans for garbage collection? Robert C. Leif 1 sibling, 2 replies; 52+ messages in thread From: Maxim S. Shatskih @ 2003-09-24 14:28 UTC (permalink / raw) > Each device driver, having at least once gone through a complete hardware > configuration procedure, would record the hardware configuration upon > shutdown. Upon the next reboot, the device driver would reinstate this > configuration, and would perform a quick check that the configuration still > accords with the detectable hardware (if this check failed, the full > configuration procedure would be activated). Windows does nearly the same for non-PnP obsolete devices, though without the last step. PnP devices do not need this. > I don't know why operating systems (Windows, SunOS, and Linux in my direct > experience) are so slow at booting up, XP is rather fast. The main time spent is to start the service/daemon executables. >but I suspect it has a lot to do with > device drivers intialising themselves and their hardware. Only a minority need the complex init paths - IDE, for instance, due to compatibility with some obsolete CD drives. > If the user can shutdown and reboot quickly (within a few seconds, I > suppose), and does not have to go through the rigmarole of closing a lot of > programs (windows) and then restarting them, I suspect the demand for a > 'sleep mode' would be largely obviated. This is how hibernate works. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim@storagecraft.com http://www.storagecraft.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-24 14:28 ` Maxim S. Shatskih @ 2003-09-24 16:01 ` Preben Randhol 2003-09-24 16:52 ` Stephane Richard 2003-09-25 17:49 ` OT " Pascal Obry 2003-09-24 16:33 ` Time Taken to Boot Nick Roberts 1 sibling, 2 replies; 52+ messages in thread From: Preben Randhol @ 2003-09-24 16:01 UTC (permalink / raw) On 2003-09-24, Maxim S. Shatskih <maxim@storagecraft.com> wrote: > XP is rather fast. The main time spent is to start the service/daemon > executables. Well it take ages when you login because then it starts up antivirus, firewall different applications etc... > This is how hibernate works. If it works. Preben ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 1 sibling, 1 reply; 52+ messages in thread From: Stephane Richard @ 2003-09-24 16:52 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 589 bytes --] "Preben Randhol" <randhol+abuse@pvv.org> wrote in message news:slrnbn3fv8.5u0.randhol+abuse@kiuk0152.chembio.ntnu.no... > On 2003-09-24, Maxim S. Shatskih <maxim@storagecraft.com> wrote: > > XP is rather fast. The main time spent is to start the service/daemon > > executables. > > Well it take ages when you login because then it starts up antivirus, > firewall different applications etc... > > > This is how hibernate works. > > If it works. > > Preben I see we have another victim of "Plug N Pray" hehehehe -- St�phane Richard "Ada World" Webmaster http://www.adaworld.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-24 16:52 ` Stephane Richard @ 2003-09-24 17:19 ` chris 0 siblings, 0 replies; 52+ messages in thread From: chris @ 2003-09-24 17:19 UTC (permalink / raw) Stephane Richard wrote: > > I see we have another victim of "Plug N Pray" hehehehe Why do people dislike Plug'N'Play? I have never had any bother with it, so I'm genuinely interested in other problems. To me all Desktop OS should support runtime configuration of hw that doesn't require rebooting (not necessarily plug'n'play). Rebootings taking the easy way out. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 2003-09-24 16:01 ` Preben Randhol 2003-09-24 16:52 ` Stephane Richard @ 2003-09-25 17:49 ` Pascal Obry 2003-09-25 19:30 ` Pascal Obry 2003-09-25 20:32 ` tmoran 1 sibling, 2 replies; 52+ messages in thread From: Pascal Obry @ 2003-09-25 17:49 UTC (permalink / raw) Preben Randhol <randhol+abuse@pvv.org> writes: > Well it take ages when you login because then it starts up antivirus, > firewall different applications etc... > > > This is how hibernate works. > > If it works. I can tell you it works quite on my Laptop with Windows XP. I haven't rebooted since at least 2 monthes. Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| "The best way to travel is by means of imagination" --| --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 2003-09-25 17:49 ` OT " Pascal Obry @ 2003-09-25 19:30 ` Pascal Obry 2003-09-25 20:32 ` tmoran 1 sibling, 0 replies; 52+ messages in thread From: Pascal Obry @ 2003-09-25 19:30 UTC (permalink / raw) Pascal Obry <p.obry@wanadoo.fr> writes: > I can tell you it works quite on my Laptop with Windows XP. I haven't ^ well > rebooted since at least 2 monthes. Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| "The best way to travel is by means of imagination" --| --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 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 1 sibling, 1 reply; 52+ messages in thread From: tmoran @ 2003-09-25 20:32 UTC (permalink / raw) > > > This is how hibernate works. > > > > If it works. > > I can tell you it works quite on my Laptop with Windows XP. I haven't > rebooted since at least 2 monthes. My XP laptop must alternate between Shutdown and Hibernate. A second Hibernate in a row hangs so power off is the only option. It used to work till one day I ran Windows Update and it stopped working. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 2003-09-25 20:32 ` tmoran @ 2003-09-26 18:57 ` Pascal Obry 2003-09-27 0:40 ` Stephane Richard 0 siblings, 1 reply; 52+ messages in thread From: Pascal Obry @ 2003-09-26 18:57 UTC (permalink / raw) tmoran@acm.org writes: > My XP laptop must alternate between Shutdown and Hibernate. A second > Hibernate in a row hangs so power off is the only option. It used to work > till one day I ran Windows Update and it stopped working. Ok. My point was more anyway that I'd like to see less "stupid" Windows bashing. Most of the critics I see here is as if we were still using Windows 9x. I'm a free software (as in free speech) defender but we must all recognize how good Windows XP is today, this is what we have to fight against. Windows XP is a very good operating system, we need to work very hard to do better. That is my whole point. BTW, ever tried to hibernate a GNU/Linux box ? Of course all this is far off topic for comp.lang.ada and I apologise :) Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| "The best way to travel is by means of imagination" --| --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 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 0 siblings, 2 replies; 52+ messages in thread From: Stephane Richard @ 2003-09-27 0:40 UTC (permalink / raw) [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #1: Type: text/plain, Size: 2052 bytes --] You're right of course Pascal :-) From Windows 95 to Windows XP is like night and day. They finally got it right :-). I have to admit. Where they''ll go next however may be a different stury but I dont know yet. we'll have to follow though on that. Indeed there's a lot of work ahead of us to attempt to top that. and Of course it doesn't mean we shouldn't do it ;-) either. But like Microsoft we should be more than one on the project each with expertise in each part of what's needed to make anything close to Windows XP. (Networking, Internet, GUI Design, Artists, System Access, OS development, etc etc..). and see if we can make it all fit together. -- St�phane Richard "Ada World" Webmaster http://www.adaworld.com "Pascal Obry" <p.obry@wanadoo.fr> wrote in message news:ur823idhu.fsf@wanadoo.fr... > > tmoran@acm.org writes: > > My XP laptop must alternate between Shutdown and Hibernate. A second > > Hibernate in a row hangs so power off is the only option. It used to work > > till one day I ran Windows Update and it stopped working. > > Ok. My point was more anyway that I'd like to see less "stupid" Windows > bashing. Most of the critics I see here is as if we were still using Windows > 9x. I'm a free software (as in free speech) defender but we must all recognize > how good Windows XP is today, this is what we have to fight against. Windows > XP is a very good operating system, we need to work very hard to do > better. That is my whole point. > > BTW, ever tried to hibernate a GNU/Linux box ? > > Of course all this is far off topic for comp.lang.ada and I apologise :) > > Pascal. > > -- > > --|------------------------------------------------------ > --| Pascal Obry Team-Ada Member > --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE > --|------------------------------------------------------ > --| http://perso.wanadoo.fr/pascal.obry > --| "The best way to travel is by means of imagination" > --| > --| gpg --keyserver wwwkeys.pgp.net --recv-key C1082595 ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 2003-09-27 0:40 ` Stephane Richard @ 2003-09-27 8:05 ` Preben Randhol 2003-09-27 10:01 ` chris 1 sibling, 0 replies; 52+ messages in thread From: Preben Randhol @ 2003-09-27 8:05 UTC (permalink / raw) On 2003-09-27, Stephane Richard <stephane.richard@verizon.net> wrote: > From Windows 95 to Windows XP is like night and day. And to Linux is like stepping into a bright warm summerday ;-) Sorry couldn't resist. Preben ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: OT Ada 0Y plans for garbage collection? 2003-09-27 0:40 ` Stephane Richard 2003-09-27 8:05 ` Preben Randhol @ 2003-09-27 10:01 ` chris 1 sibling, 0 replies; 52+ messages in thread From: chris @ 2003-09-27 10:01 UTC (permalink / raw) Stephane Richard wrote: > You're right of course Pascal :-) > > From Windows 95 to Windows XP is like night and day. They finally got it > right :-). I have to admit. Where they''ll go next however may be a > different stury but I dont know yet. we'll have to follow though on that. They had it right with 2k, they just didn't release a home version. XP is IMO good iff you take out activation (and turn off the Fisher Price GUI), which as time goes on *seems* to becoming more of an issue with techies and laymen than before. Also the policy of not supplying a CD via OEM distribution (instead a "recovery partition" distribution is causing real problems for some folk. Still it's better than single user land, which is IMO the root of many of M$ current problems. Things can only get better from here. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Time Taken to Boot 2003-09-24 14:28 ` Maxim S. Shatskih 2003-09-24 16:01 ` Preben Randhol @ 2003-09-24 16:33 ` Nick Roberts 2003-09-24 20:11 ` Mark A. Biggar 1 sibling, 1 reply; 52+ messages in thread From: Nick Roberts @ 2003-09-24 16:33 UTC (permalink / raw) "Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message news:bksdr3$2vhi$3@gavrilo.mtu.ru... > ... > XP is rather fast. The main time spent is to start the service > daemon executables. That's interesting. I have no experience of booting XP, but I have observed booting NT 4 from a network take more than 100 seconds. I cannot say whether it was the particular network or configuration that was causing a special delay (it was a part of the British government's huge 'corporate' intranet). > Only a minority need the complex init paths - IDE, for instance, > due to compatibility with some obsolete CD drives. I know some CD drives can take ages to intialise. I think the clear solution is to have the CD driver (including its initialisation routine) execute in parallel with the rest of the boot procedure. Of course, this won't help if you are booting /from/ a CD! > > If the user can shutdown and reboot quickly ... > This is how hibernate works. Yes, I thought I had read about the scheme I described, somewhere (but I don't remember where), a long time ago. I guess that's it. It seems fairly obvious. -- Nick Roberts Jabber: debater@charente.de [ICQ: 159718630] ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Time Taken to Boot 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 0 siblings, 1 reply; 52+ messages in thread From: Mark A. Biggar @ 2003-09-24 20:11 UTC (permalink / raw) Nick Roberts wrote: > "Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message > news:bksdr3$2vhi$3@gavrilo.mtu.ru... > > >>... >>XP is rather fast. The main time spent is to start the service >>daemon executables. > > > That's interesting. I have no experience of booting XP, but I have observed > booting NT 4 from a network take more than 100 seconds. I cannot say whether > it was the particular network or configuration that was causing a special > delay (it was a part of the British government's huge 'corporate' intranet). > > >>Only a minority need the complex init paths - IDE, for instance, >>due to compatibility with some obsolete CD drives. > > > I know some CD drives can take ages to intialise. I think the clear solution > is to have the CD driver (including its initialisation routine) execute in > parallel with the rest of the boot procedure. Of course, this won't help if > you are booting /from/ a CD! > > >>>If the user can shutdown and reboot quickly ... > > >>This is how hibernate works. > > > Yes, I thought I had read about the scheme I described, somewhere (but I > don't remember where), a long time ago. I guess that's it. It seems fairly > obvious. A large percentage of windows boot time is reading and parsing the registry. Which brings up the issue that the windows registry is one of the biggest problems with security in Windows. A folder with separate files for each program/service would not only be faster but would help with the security problems as well. -- mark@biggar.org mark.a.biggar@comcast.net ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Time Taken to Boot 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 0 siblings, 1 reply; 52+ messages in thread From: Maxim S. Shatskih @ 2003-09-25 15:14 UTC (permalink / raw) > A large percentage of windows boot time is reading and parsing the > registry. No. I have listed the causes for slow Windows boot. >Which brings up the issue that the windows registry is one > of the biggest problems with security in Windows. Sorry, how the boot speed is connected with security? Registry keys are protected by ACLs. You cannot achieve better protection with files. >A folder with > separate files for each program/service would not only be faster but Will be slower. Each file should be opened. Dirent read+metadata read+data read. Several seeks. Registry is read linearly in 64KB chunks on boot. All parsing is done in memory. > would help with the security problems as well. No. For instance, there is FAT filesystem with no ACLs on files. Registry is still protected. Not to say that "many files" approach hardens the "backup system state" task a lot. -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim@storagecraft.com http://www.storagecraft.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Time Taken to Boot 2003-09-25 15:14 ` Maxim S. Shatskih @ 2003-09-25 17:29 ` Warren W. Gay VE3WWG 0 siblings, 0 replies; 52+ messages in thread From: Warren W. Gay VE3WWG @ 2003-09-25 17:29 UTC (permalink / raw) Maxim S. Shatskih wrote: >>A large percentage of windows boot time is reading and parsing the >>registry. > > No. I have listed the causes for slow Windows boot. > >>Which brings up the issue that the windows registry is one >>of the biggest problems with security in Windows. > > Sorry, how the boot speed is connected with security? Registry keys are > protected by ACLs. > You cannot achieve better protection with files. The problem as I see it, is nobody makes use of that security! Almost every week, my spyware software is telling me I have gator installed. This stupid thing is thanks to the stupid security around ActiveX and the way registry entries are permitted to be changed. If you set it to "prompt", then you're bugged constantly, including for plugins for Adobe (to read PDF files). If you disable it, then Adobe's plugin doesn't run (I mean, at least separate plugins you have installed vs the web download-on-the-fly ActiveX crap). In XP, I set up my family as unpriviledged users (whatever that was named), initially. But in the end, I had to give in and make my wife and kids administrator, because they couldn't do the things they needed to do. Sigh. So why bother putting a security layer in place, Microsoft, if you're not going to plan out a decent design of roles and use of the system!?!?!? </rant> -- Warren W. Gay VE3WWG http://home.cogeco.ca/~ve3wwg ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-24 1:46 ` Nick Roberts 2003-09-24 14:28 ` Maxim S. Shatskih @ 2003-09-25 15:00 ` Robert C. Leif 1 sibling, 0 replies; 52+ messages in thread From: Robert C. Leif @ 2003-09-25 15:00 UTC (permalink / raw) If this could be done, it would be extremely valuable. A major problem with PCs is what was an information appliance was transformed into a computer with a full blown operating system. This is exactly what the majority of customers do NOT need. They would be much better served by a device that could be turned on and off by a simple switch. Parenthetically, Nick has one year from the date of publication to apply for a US Patent. If his technology works and is new, this patent could be very valuable. He could even license it with a clause that requires the code to be written in Ada. Bob Leif Robert C. Leif, Ph.D. Email rleif@rleif.com "Nick Roberts" <nickroberts@blueyonder.co.uk> wrote in message news:<bkqt28$3v03r$1@ID-25716.news.uni-berlin.de>... > "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message > news:2q30nv4fain641rin9dia3onjr7ut01our@4ax.com... > > [re booting and sleeping] > > Yep. Especially interesting it becomes with plug'n'play devices. You > > have, say a USB or PCMCIA device attached, before your Windoze > > hibernates. While it peacefully sleeps, you archly eject the hardware > > and then wake it up! The effect might be amazing, though predictable > > ... > > Of course in a truly memory-mapped OS, the present concept of > > hardware drives is out of place. One more reason for Ada OS? > > I think the broad scheme I would like to adopt for AdaOS would be as > follows. > > Each device driver, having at least once gone through a complete hardware > configuration procedure, would record the hardware configuration upon > shutdown. Upon the next reboot, the device driver would reinstate this > configuration, and would perform a quick check that the configuration still > accords with the detectable hardware (if this check failed, the full > configuration procedure would be activated). > > With a bit of care, this technique should make it possible to fully shutdown > and then reboot very rapidly, but it would still be safe in the case of > intervening hardware changes (which would automatically cause > reconfiguration). > > I intend to design the user application software for AdaOS so that it > (normally) remembers its important state in between the user logging off and > back on again. This is primarily to encourage users to log off whenever they > leave the workstation, but it also means that a user can log off, shutdown, > reboot, and log on, and all (or most) of their work (open windows) will be > reinstated as it was when the user logged off. > > I don't know why operating systems (Windows, SunOS, and Linux in my direct > experience) are so slow at booting up, but I suspect it has a lot to do with > device drivers intialising themselves and their hardware. If this > initialisation can be either avoided (by the above tactics) or deferred (to > be done in the background after the boot procedure has got the system to a > usable stage), the user will perceive a fast boot process. > > If the user can shutdown and reboot quickly (within a few seconds, I > suppose), and does not have to go through the rigmarole of closing a lot of > programs (windows) and then restarting them, I suspect the demand for a > 'sleep mode' would be largely obviated. > > If any OS is to be really secure, it must be basically reliable. I think > Dmitry has neatly illustrated the dangers of such fundamental complications > as sleep modes and other forms of partial shutdown. If a machine supports a > sleep mode, I think that's okay (especially as part of an overall power > management regime), but a full shutdown is better. > > However, I'm open to debate! ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 8:43 ` Dmitry A. Kazakov 2003-09-12 15:38 ` Martin Krischik 2003-09-12 15:49 ` Martin Krischik @ 2003-09-12 17:20 ` Robert I. Eachus 2003-09-13 9:54 ` Martin Krischik 2003-09-15 13:33 ` Dmitry A. Kazakov 2 siblings, 2 replies; 52+ messages in thread From: Robert I. Eachus @ 2003-09-12 17:20 UTC (permalink / raw) Dmitry A. Kazakov wrote: > 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... Agreed, which is why you want to use a reference counted storage pool. That way the count is stored with the object, and you only incur the overhead when you create a new counted access value. I've done this to create a pool of fixed sized objects. I keep intending to rewrite it to support variable sized objects, but it is always easier to create a fixed-sized reference-counted object with an access value into the normal heap, and do explicit deallocation of that object when the reference count reaches zero. Anyone want to work with me on a "standard" reference counted storage pool for Ada 200Y? The storage pool will only be a couple of pages of code. The real effort is in documenting it and providing examples of use. Or did you mean that the fact that the storage pool was a controlled type was a problem? I don't see that. Typically a program will create a storage pool once and then just use it. The controlled overhead really only comes into play if the storage pool is located inside a nested procedure. -- Robert I. Eachus "As far as I'm concerned, war always means failure." -- Jacques Chirac, President of France "As far as France is concerned, you're right." -- Rush Limbaugh ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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 1 sibling, 1 reply; 52+ messages in thread From: Martin Krischik @ 2003-09-13 9:54 UTC (permalink / raw) Robert I. Eachus wrote: > Dmitry A. Kazakov wrote: >> 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... > > Agreed, which is why you want to use a reference counted storage pool. > That way the count is stored with the object, and you only incur the > overhead when you create a new counted access value. Yes. > Anyone want to work with me on a "standard" reference counted storage > pool for Ada 200Y? The storage pool will only be a couple of pages of > code. The real effort is in documenting it and providing examples of use. But for it to work realy user friendly, would you not need compiler support? Everytime a new access is created or destroyed the compiler would need to tell the storrage pool. Remember: controlled types where considered not user friendly. If I undersand the OP right he wants: type Some_Access is access Some_Type; for Some_Access'Storrage_Pool use Ada.Reference_Counted__Pools.Pool; the rest need to be done by the compiler. With regards Martin -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-13 9:54 ` Martin Krischik @ 2003-09-13 20:37 ` Robert I. Eachus 0 siblings, 0 replies; 52+ messages in thread From: Robert I. Eachus @ 2003-09-13 20:37 UTC (permalink / raw) Martin Krischik wrote: > But for it to work realy user friendly, would you not need compiler > support? Everytime a new access is created or destroyed the compiler > would need to tell the storrage pool. > > Remember: controlled types where considered not user friendly. If I > undersand the OP right he wants: > > type Some_Access is access Some_Type; for Some_Access'Storrage_Pool > use Ada.Reference_Counted__Pools.Pool; > > the rest need to be done by the compiler. All that is currently allowed. Well technically, it should be My_Storage_Pool: Reference_Counted_Storage_Pool; type Some_Access is access Some_Type; for Some_Access'Storage_Pool use My_Storage_Pool; ...but that is a detail. Should we require such a storage pool type in Ada 200Y? I think it would be a good idea. But requiring that there be an instance of such a pool might not be a good idea. And I tend to like my current implementation, where I create a pool by instantiating a generic package, with the size of each allocated object, and the number of objects in the heap. It has a very low overhead for allocate and free. (And both operations are bounded in time.) -- Robert I. Eachus "As far as I'm concerned, war always means failure." -- Jacques Chirac, President of France "As far as France is concerned, you're right." -- Rush Limbaugh ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-12 17:20 ` Robert I. Eachus 2003-09-13 9:54 ` Martin Krischik @ 2003-09-15 13:33 ` Dmitry A. Kazakov 2003-09-15 21:17 ` Alexander Kopilovitch 1 sibling, 1 reply; 52+ messages in thread From: Dmitry A. Kazakov @ 2003-09-15 13:33 UTC (permalink / raw) On Fri, 12 Sep 2003 17:20:27 GMT, "Robert I. Eachus" <rieachus@attbi.com> wrote: >Dmitry A. Kazakov wrote: > >> 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... > >Agreed, which is why you want to use a reference counted storage pool. >That way the count is stored with the object, and you only incur the >overhead when you create a new counted access value. Sounds great, really! It also solves nasty problems when a GC object is allocated on the stack, or with [unsupported] MI (:-)), because the reference count is no more a part of the object. But I suppose that this would require massive compiler support. If so, then why not to make access types to counted storage pool more transparent. At least when: 1. passing to a subprogram expecting the designated object. 2. dispatching. Named access types do not dispatch and define no primitive operations. I mean, to finally kick GC off, access types to reference counted objects should fully mimic the designated types. I.e. ".all" dropped, "null" is not a valid value etc. AFAIK access types with no "null" are planned (?), so dropping ".all" would be a logical consequence. Assignment should then just copy the reference. BUT, what about cloning [non-limited] objects when they are modified through a counted access, while the reference count is greater than 1? This is not so easy. >I've done this to create a pool of fixed sized objects. I keep >intending to rewrite it to support variable sized objects, but it is >always easier to create a fixed-sized reference-counted object with an >access value into the normal heap, and do explicit deallocation of that >object when the reference count reaches zero. > >Anyone want to work with me on a "standard" reference counted storage >pool for Ada 200Y? The storage pool will only be a couple of pages of >code. The real effort is in documenting it and providing examples of use. If I can help... >Or did you mean that the fact that the storage pool was a controlled >type was a problem? No. The problem was that the reference type has to be controlled. > I don't see that. Typically a program will create >a storage pool once and then just use it. The controlled overhead >really only comes into play if the storage pool is located inside a >nested procedure. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-15 13:33 ` Dmitry A. Kazakov @ 2003-09-15 21:17 ` Alexander Kopilovitch 0 siblings, 0 replies; 52+ messages in thread From: Alexander Kopilovitch @ 2003-09-15 21:17 UTC (permalink / raw) Dmitry A. Kazakov wrote: > On Fri, 12 Sep 2003 17:20:27 GMT, "Robert I. Eachus" > <rieachus@attbi.com> wrote: > > ... > > >Anyone want to work with me on a "standard" reference counted storage > >pool for Ada 200Y? The storage pool will only be a couple of pages of > >code. The real effort is in documenting it and providing examples of use. > >If I can help... I am second with the same formula. (I'm an expert neither in Ada, nor in GC, although I certainly know enough of both to see rather clearly a substantial distance between me and experts in these things -;) Alexander Kopilovitch aek@vib.usr.pu.ru Saint-Petersburg Russia ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-10 6:55 ` olehjalmar kristensen - Sun Microsystems - Trondheim Norway 2003-09-11 15:09 ` Martin Krischik @ 2003-09-14 19:10 ` Matthew Heaney 2003-09-15 6:48 ` Martin Krischik 1 sibling, 1 reply; 52+ messages in thread From: Matthew Heaney @ 2003-09-14 19:10 UTC (permalink / raw) olehjalmar kristensen - Sun Microsystems - Trondheim Norway <ok145024@sun.com> writes: > 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. This would be the case in Ada, too, were an Ada vendor to provide such a pool (which the language was specifically designed to allow). Something like: type T is ...; type T_Access is access T; for T_Access'Storage_Pool use Garbage_Collected_Pool; Now when you do this: O : T_Access := new T; then the object is allocated from the garbage collected storage pool. However, I don't think there are any Ada vendors that provide such a pool, mostly because there has not been a market for it. ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 2003-09-14 19:10 ` Matthew Heaney @ 2003-09-15 6:48 ` Martin Krischik 0 siblings, 0 replies; 52+ messages in thread From: Martin Krischik @ 2003-09-15 6:48 UTC (permalink / raw) Matthew Heaney wrote: > olehjalmar kristensen - Sun Microsystems - Trondheim Norway > <ok145024@sun.com> writes: > >> 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. > > This would be the case in Ada, too, were an Ada vendor to provide such a > pool (which the language was specifically designed to allow). > However, I don't think there are any Ada vendors that provide such a > pool, mostly because there has not been a market for it. GCC 3.3 will provide such a pool for all GCC langunages. An Ada binding takes less 50 of code (w/o comments, package specs etc. pp.). But then GCC does not have a "verndor" ;-). With Regards Martin -- mailto://krischik@users.sourceforge.net http://www.ada.krischik.com ^ permalink raw reply [flat|nested] 52+ messages in thread
* Re: Ada 0Y plans for garbage collection? 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-14 13:19 ` Matthew Heaney 2 siblings, 0 replies; 52+ messages in thread From: Matthew Heaney @ 2003-09-14 13:19 UTC (permalink / raw) Jano <nono@celes.unizar.es> writes: > I'm very happy using Ada but when one needs to use heap-allocated > objects and unchecked deallocation it becomes tiresome rapidly, and that > leaving aside memory leaks. Why don't you simply encapsulate the allocation and deallocation behind an abstraction? For example, if I have a container like this: procedure Op (C : in out CT; E : ET) is begin Insert (C, E); ... Clear (C); The memory necessary to store element E in container C is allocated behind the scenes in the implementation of Insert. That same memory is deallocated when the container is cleared. The container itself is controlled, so that when the scope of the container ends, all the memory it owns is deallocation automatically. If you must manipulte pointers --say, you're doing class-wide programming-- then you can still hide the allocation and deallocation like this: package P is type T is abstract tagged null record; type T_Class_Access is access all T'Class; procedure Free (X : in out T_Class_Access); ... end P; package P.C is type NT (<>) is new T with private; function New_NT return T_Class_Access; ... private type NT is new NT with null record; end; By declaring the partial view of the type as indefinite, then you force clients to use your contructor function: declare O : T_Class_Access := New_NT; begin ... Free (O); end; That hides explicit calls, and allows each type in the class to allocate objects in whatever manner is most appropriate. If you want to automate calls to Free, you can use something like the auto_ptr in C++, which transfers ownership of an access object across assignments. In the Charles library, there is similar abstraction, allowing you to do this: declare O, O2 : Pointer_Type; begin Initialize (O, New_NT); --O owns ptr Op (+O); Assign (O2, O); --now O2 owns ptr Op (+O2); end; --no Free: O2 does it automatically Here, when the Pointer_Type object is finalized, it calls the Free operation automatically. See Charles.Access_Control for the full implementation. <http://home.earthlink.net/~matthewjheaney/charles/index.html> If you need to have pointer sharing, then you can use reference counting, something like: package P is type T is abstract tagged null record; type T_Class_Access is access all T'Class; type Handle_Type is private; --aka "smart pointer" ... end P; package P.C is type NT is new T with private; function New_NT return Handle_Type; end; During assignment, the reference count is bumped: declare O1 : Handle_Type := New_NT; --cnt is 1 begin Op (+O1); declare O2 : Handle_Type := O1; --inc cnt begin Op (+O2); end; --dec cnt end; --dec cnt; cnt = 0; call Free The point is that the language already provides many abstraction mechanims to make manipulation of memory easy and safe, and demonstrated above. GNAT also provides a debug storage pool, that can help find errors in heap memory use. They'll probably add a garbage-collected pool if there's interest. ^ permalink raw reply [flat|nested] 52+ messages in thread
end of thread, other threads:[~2003-09-27 10:01 UTC | newest] Thread overview: 52+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox