comp.lang.ada
 help / color / mirror / Atom feed
From: "Dan'l Miller" <optikos@verizon.net>
Subject: Re: disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance
Date: Fri, 18 May 2018 18:48:03 -0700 (PDT)
Date: 2018-05-18T18:48:03-07:00	[thread overview]
Message-ID: <17f9d1c5-7c66-4c19-a1d3-f0e7d30cb063@googlegroups.com> (raw)
In-Reply-To: <9b5ee32b-0b12-48fe-b34f-135f3cd8cfb9@googlegroups.com>

On Thursday, May 17, 2018 at 11:49:03 AM UTC-5, Dan'l Miller wrote:
> Wait, GNAT has its own full-fledged IR stage prior to deriving either GENERIC or GIMPLE from that GNAT IR?

On Friday, May 18, 2018 at 6:48:22 AM UTC-5, Lucretia wrote:
> The *tree* packages in GNAT are autogenerated from a *def file, these map onto the C equivalent in the GCC backend so that GNAT can build the trees properly.

The following PowerPoint presentation concurs with you, Luke:
https://www.slideserve.com/reed/the-structure-of-the-gnat-compiler

It also presents a rewording of my “Wait, …” comment above:  GNAT builds an entire Ada-oriented AST-adorned-with-semantics then builds another IR tree using GCC-C-language-compiler constructs.  Effectively GNAT works by effectively translating Ada IR to C IR internally, and then generating machine code from C's IR.  I will need to investigate
1) whether C++ likewise builds its own AST-adorned-with-semantics then builds another IR tree using only C-language constructs
or
2) whether the so-called C-IR tree is actually capable of full-fledged C++-semantic adornment (i.e., whether the so-called C IR would be actually full-fledged C++ IR not lowered to C-only constructs at all) and thus C++ would build only one tree , not GNAT's two.

The GiggleVM drop-in LSP alternative to GIGI in GNAT would have the ability to translate Ada's AST-with-semantic-adornment to either C or C++ constructs in the interface-to-LLVM rear side of Clang.  Occasionally, it might be convenient for GiggleVM to map Ada to directly analogous C++ constructs instead of to C to avoid reinventing the OO wheel from scratch, especially regarding Ada's tagged records vis a vis C++'s vtables.

I need to investigate those def files.  Specifically I'll need to learn:  where is the script/code that reads def files and generates C code or C macros to manipulate the C IR tree?  Perhaps running these def scripts is a major portion of what you refer to as “GCC is a bitch to build” on your GCC build script GitHub README.md.


  reply	other threads:[~2018-05-19  1:48 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 15:30 disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance Dan'l Miller
2018-05-09 16:41 ` Lucretia
2018-05-09 17:26   ` Dan'l Miller
2018-05-09 17:34     ` Lucretia
2018-05-09 18:29       ` Dan'l Miller
2018-05-17 14:41       ` Dan'l Miller
2018-05-17 15:56         ` Luke A. Guest
2018-05-17 16:49           ` Dan'l Miller
2018-05-17 17:19             ` Luke A. Guest
2018-05-17 18:43               ` Dan'l Miller
2018-05-17 20:09               ` Dan'l Miller
2018-05-17 20:23               ` Dan'l Miller
2018-05-18  0:56                 ` Dan'l Miller
2018-05-18 10:47                   ` Lucretia
2018-05-18 11:33                     ` Dan'l Miller
2018-05-18 11:48                       ` Lucretia
2018-05-19  1:48                         ` Dan'l Miller [this message]
2018-05-19 13:04                           ` Brian Drummond
2018-05-19 15:04                             ` Dan'l Miller
2018-05-20 13:00                               ` Brian Drummond
2018-05-20 14:12                                 ` Simon Wright
2018-05-21 11:43                                   ` Brian Drummond
2018-05-20 17:24                                 ` Lucretia
2018-05-19 16:01                             ` Simon Wright
2018-05-20  3:02                             ` Shark8
2018-05-19  3:14                         ` Dan'l Miller
2018-05-17 18:42           ` Niklas Holsti
2018-05-18 14:06             ` R R
2018-05-18 14:33               ` Dan'l Miller
2018-05-09 17:36 ` Simon Clubley
2018-05-09 18:25 ` Dan'l Miller
2018-05-09 19:19 ` Niklas Holsti
2018-05-09 21:38 ` Randy Brukardt
2018-05-10  8:00   ` Micronian Coder
2018-05-10  8:49   ` Janus Ada 12 (was Re: disruptors of ...) Jeffrey R. Carter
2018-05-10 20:24     ` Paul Rubin
2018-06-26 20:36   ` disruptors of & inventory of Ada compilers and latest their era of ISO8652 compliance invalid
2018-06-29 22:18     ` Randy Brukardt
2018-07-01  8:44       ` invalid
2018-07-03 22:07         ` Randy Brukardt
2018-07-08 15:46           ` invalid
2018-05-10  7:49 ` Micronian Coder
2018-05-14 13:10 ` Jacob Sparre Andersen
2018-05-14 22:56   ` Randy Brukardt
2018-05-15 15:29   ` Dan'l Miller
2018-05-18 13:02     ` Simon Wright
2018-05-14 18:52 ` gautier_niouzes
2018-05-14 19:37   ` Dmitry A. Kazakov
2018-05-16 19:37     ` gautier_niouzes
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox