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=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Allocators design flaw Date: Sat, 14 Oct 2017 17:51:47 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: MajGvm9MbNtGBKE7r8NgYA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 X-Notice: Filtered by postfilter v. 0.8.2 Content-Language: en-US Xref: news.eternal-september.org comp.lang.ada:48467 Date: 2017-10-14T17:51:47+02:00 List-Id: On 2017-10-14 17:17, Victor Porton wrote: > Dmitry A. Kazakov wrote: > >> On 2017-10-14 16:24, Victor Porton wrote: >> >>> I mean, it is because we cannot change C standard for better >>> compatibility with Ada. But we can change Ada 202x for better >>> compatibility with C libraries. >> >> There is nothing incompatible in what you described. >> >> There are many C libraries (most?) which cannot deal with objects >> allocated outside, e.g. in an Ada pool. There was never a big problem to >> communicate with such libraries. > > I want to create an Ada pool which does the same (de)allocation as a C > library. > > The problem is that creating such a pool is (seemingly) impossible with > current Ada RM. It is possible as I explained. You allocate additional information in front of the object and shift address. Upon deallocation you use that information to shift the address back before passing it to C's free. The same technique is used when handling Ada's array address issue in Simple Components. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de