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!.POSTED!not-for-mail From: "Jeffrey R. Carter" Newsgroups: comp.lang.ada Subject: Re: Where to find Ravenscar compatible ADT Containers (List, Vector, stack) Date: Thu, 30 Aug 2018 09:13:07 +0200 Organization: Also freenews.netfront.net; news.tornevall.net; news.eternal-september.org Message-ID: References: <69e04c61-8ea3-40e2-bb9d-e5a128247df3@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 30 Aug 2018 07:13:07 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="cf563ecfeda126015b47f41ebc9327c3"; logging-data="18242"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19CQdCczBdSrlqHVDObnTZRRGAlSUnyvRU=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 Cancel-Lock: sha1:/ptyVKp0aH4h/e3r2OY3SsxaloY= In-Reply-To: <69e04c61-8ea3-40e2-bb9d-e5a128247df3@googlegroups.com> Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:54296 Date: 2018-08-30T09:13:07+02:00 List-Id: On 08/30/2018 02:21 AM, Jere wrote: > > I have a question about this as it has always bothered me. The > section that specifies that is under Implementation Advice, which > doesn't sound binding. That sounds more like it is a suggestion > to the vendor rather than a requirement. Is Implementation > Advice such that a conforming Ada compiler must follow it > (so not really advice at that point)? I've intentionally avoided > bounded containers in situations where I want portability for > some of my embedded targets that don't use heap because it > doesn't sound guaranteed that it will not use heap, even > if my current compiler implements it that way now. Technically, it's advice and implementations don't have to follow it. It's usually done as advice when it may not be possible to follow for some targets. My experience has been that vendors try to follow the advice if possible. From another point of view, the standard containers are not guaranteed to be suitable for applications that have specific requirements for their data structures. If you have such specific requirements, you should probably use data structures that you are sure meet them. So if you want bounded components that you know for sure don't do any heap allocation, you should use something like the PragmAda Reusable Components' bounded components, or write your own. -- Jeff Carter "In the frozen land of Nador they were forced to eat Robin's minstrels, and there was much rejoicing." Monty Python & the Holy Grail 70