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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ed3a51e96a1c868b X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,UTF8 Path: g2news2.google.com!news2.google.com!goblin3!goblin1!goblin.stu.neva.ru!uio.no!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Mon, 28 Feb 2011 00:46:48 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.14) Gecko/20110123 Thunderbird/3.1.8 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Using local storage pools... References: <7elam6trrv39c3p9iop4fiduqa1jrat4r4@4ax.com> <87mxljuio1.fsf@ludovic-brenta.org> <4D6A08C4.7040005@obry.net> In-Reply-To: <4D6A08C4.7040005@obry.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Message-ID: <4d6ae269$0$6770$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 28 Feb 2011 00:46:49 CET NNTP-Posting-Host: 73a1e97c.newsspool3.arcor-online.net X-Trace: DXC=T[a_oiOnD3I=8m7nZkdN^@McF=Q^Z^V3H4Fo<]lROoRA8kFejVHb2iY]SoGZ5Cg>\g_Ba5>lF X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:18603 Date: 2011-02-28T00:46:49+01:00 List-Id: On 2/27/11 9:18 AM, Pascal Obry wrote: > Le 27/02/2011 05:16, anon@att.net a écrit : >> 1.2 The GNAT Compiler >> ... >> "In order to bridge the semantic gap between Ada and C, several GCC code >> generation routines have been extended, and others added, so that the >> burden of translation is also assumed by GIGI and GCC whenever it is >> awkward or inefficient to perform the expansion in the front-end. For >> example, there are code generation actions for exceptions, variant parts >> and accesses to unconstrained types. As a matter of GCC policy, the code >> generator is extended only when the extension is likely to be of benefit >> to more than one language." >> >> The first sentence suggest the conversion is from Ada to C. And extending > > Wrong again. GCC is GNU Compiler Collection it is not a C compiler. So GCC code generation means just that, the middle-end and backend of GCC (shared with the C, C++ frontends and others) has been extended. > > Pascal. I understand one claim is that GCC's infrastructure had originally been made with sequential {}-languages in mind? So that GCC's infrastructure won't be best for a concurrent language such as Ada. Consequently, that GNAT might actually profit from any changes to GCC infrastructure in case they'll change it in order to support the new C++ with its concurrency libraries. Is it true at all that GCC's internals are biased towards "sequential"? Hasn't even the C part grown with POSIX threads and corresponding needs? Grown with GCC being used as the system compiler of a major commercial server operating system (GNU/Linux) written in C and being a multitasking OS? Is it true at all that GCC's infrastructure is unaware of parallelism? GCC supports many of the primitive "concurrency instructions" like read-and-increment or test-and-set. So I don't think it is true that today's GCC infrastructure neglects concurrency. Is it likely that Apple could have developed Grand Central Dispatch for the Objective-C part of GCC if using its backend had been in the way ofthe concurrency goal? They are switching to LLVM and CLang, though. Curiously, the parallelism built-ins are readily available to languages such as C and, to a lesser extent, to Ada. Fortunately, recent GNAT makes some of these available, like the SIMD instructions for processors made by AMD and Intel.