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!mx02.eternal-september.org!.POSTED!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: Containers on small systems Date: Thu, 05 Feb 2015 09:40:50 +0000 Organization: A noiseless patient Spider Message-ID: References: <0Kgqw.953330$_k.685364@fx16.iad> <199c826a-923e-497f-a8e2-9e732c8a5665@googlegroups.com> <87bnmetex4.fsf@ludovic-brenta.org> <4ae7f0d5-d681-4be9-95bc-b5e789b3ad40@googlegroups.com> <87tx06rve6.fsf@ludovic-brenta.org> <87lhlirpk0.fsf@ludovic-brenta.org> <724c149f-0396-42a4-8594-bdbf21cce0d9@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: mx02.eternal-september.org; posting-host="8cd79d7ffa75567f93d907bdfb272368"; logging-data="27745"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19RkiwYYiFw/o32zjUWdqD8gYs3/O2J3HY=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (darwin) Cancel-Lock: sha1:avB3KT0+xD32kfXmPvfG3yvPKok= sha1:DSHbNXg6fTH56mv2njRticyXVSc= Xref: news.eternal-september.org comp.lang.ada:24885 Date: 2015-02-05T09:40:50+00:00 List-Id: Simon Wright writes: > "Randy Brukardt" writes: >> A bounded container is only as big as you need it to be. (Well, >> unless the compiler is doing something unfriendly.) Not having >> bounded containers is pretty much like not having arrays, IMHO. > > Of course this is just GNAT, but the amount of support software > required to support their Containers (called in by finalization, > exception propagation, dispatching, streams ...) is large. I see AARM > A.18.19(6.a) indicates that Iterator and Reference types could be left > out in restricted environments (so no "for A of B loop ..."?), which > would eliminate the need for finalization and dispatching .. maybe > something can be done. Haven't tried Containers yet, but adding tagged types, secondary stack and allocators increased the size of RTS from 12276 bytes to 20584. That was compiled with -O0 (still need the debugger a lot!) which more-or-less doubles the size from -O2; I'll try -Os (minimise size) and see how that plays with the debugger. Oh, and it doesn't support wide characters in tag names. I think that'd just be a matter of including the support packages and uncommenting the parts of Ada.Tags that use them.