From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: ** X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA, TO_NO_BRKTS_PCNT autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,5130eb23a7a191d4,start X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.43.48.202 with SMTP id ux10mr39187089icb.6.1320640438511; Sun, 06 Nov 2011 20:33:58 -0800 (PST) Path: h5ni7261pba.0!nntp.google.com!news1.google.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!newsfe22.iad.POSTED!00000000!not-for-mail From: Brad Moore User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: ANNOUNCE: Deepend 2.6 for GNAT and ICC Ada 2005 compilers Message-ID: NNTP-Posting-Host: 184.64.75.84 X-Complaints-To: internet.abuse@sjrb.ca X-Trace: newsfe22.iad 1320640438 184.64.75.84 (Mon, 07 Nov 2011 04:33:58 UTC) NNTP-Posting-Date: Mon, 07 Nov 2011 04:33:58 UTC Date: Sun, 06 Nov 2011 21:33:41 -0700 Xref: news1.google.com comp.lang.ada:18839 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Date: 2011-11-06T21:33:41-07:00 List-Id: I am pleased to announce the availability of Deepend 2.6. Deepend is an efficient and safer form of storage management for Ada 2005 that can outperform garbage collection schemes. Since the initial (previous) announcement of Deepend on comp.lang.ada, there have been a number of improvements. Some of these include: 1) When Deepend was first announced, it was a binding to the Apache run time pool library. Since then, the Apache library has been removed as a dependency, and Deepend is now 100% pure Ada. Testing has shown that the new version of Deepend runs noticeably faster than the earlier version that called out to the Apache library. 2) Deepend and the Irvine ICC Ada 2005 compiler Deepend has been compiled and tested using the Irvine ICC Ada 2005 compiler, running on Windows and purportedly on Linux. See http://www.irvine.com for more information about their compiler 3) Deepend on an Android Samsung Galaxy S II smart phone Deepend has been compiled and tested using GNAT AUX on an Android Samsung Galaxy S II Smart phone. See http://www.dragonlace.net for more information about this compiler 4) Deepend and the GNAT 2011 GPL compiler Deepend has been compiled and tested using GNAT 2010 and 2011 GPL versions of the compiler on both Windows and Linux. See http://libre.adacore.com/libre for more information about this compiler. 5) Deepend Aligned with the Ada 2012 subpools proposal. Deepend provides two storage management options, - Basic_Dynamic_Pools - Dynamic_Pools The Basic_Dynamic_Pools package is forward compatible with the Ada 2012 proposal for Storage_Pools, since it only allows allocations via the existing "new" operator. This facility relies on access type finalization to free all the objects from a pool. Dynamic_Pools provides the capabilities of Basic_Dynamic_Pools, but in addition allows the creation of subpools, and allocations can be made from subpools. Subpools can be deallocated, which deallocates all objects allocated from the subpool. The Dynamic_Pools package is designed to closely align with the Ada 2012 proposal, except that it works for Ada 2005, and doesn't support deallocation of fat pointers, or controlled types. When Ada 2012 is available, the interfaces may change to match the proposal, and capabilities offered by Ada 2012. Deepend is a dynamic storage pool with Subpool capabilities for Ada 2005 where all the objects in a subpool can be reclaimed all at once, instead of requiring each object to be individually reclaimed one at a time. A Dynamic Pool may have any number of subpools. If subpools are not reclaimed prior to finalization of the pool, then they are finalized when the pool is finalized. Rather than deallocate items individually which is error prone and subceptable to memory leaks and other memory issues, a subpool can be freed all at once automatically when the pool object goes out of scope. With this Storage pool, Unchecked_Deallocation is implemented as a No-Op (null procedure), because it is not needed or intended to be used. Subpool based storage management provides a safer means of memory management, which can outperform other mechanisms for storage reclamation including garbage collection. You can get the source code of Deepend from SourceForge: https://sourceforge.net/projects/deepend/files/ If performance is a desired goal, you may also want to check out Paraffin, which provides Ada 2005 generics to add Parallelism to loops and recursive algorithms. Paraffin and Deepend complement each other for obtaining faster execution times. for Paraffin, see https://sourceforge.net/projects/paraffin/files/ Brad Moore