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: border2.nntp.dca1.giganews.com!nntp.giganews.com!newspeer1.nac.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Brian Drummond Newsgroups: comp.lang.ada Subject: Re: community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Date: Sun, 16 Nov 2014 11:12:32 +0000 (UTC) Organization: A noiseless patient Spider Message-ID: References: <54609F34.4080201@spam.spam> <35f01472-3510-4f67-8765-006fa8591c35@googlegroups.com> <9tc8w.73007$ZT5.37595@fx07.iad> <22a3816a-4e89-48f0-a126-dce581781beb@googlegroups.com> <084b1934-9641-425e-85ec-293e0334413e@googlegroups.com> <86bf69c8-eb08-4696-b6c9-3784f5c42213@googlegroups.com> <87389olqie.fsf@ixod.org> <3516753b-5304-408d-99c8-67f544fdc185@googlegroups.com> <20141114085046.4cb00404@atmarama.ddns.net> <8392b6bd-61ab-43f9-aa6d-92a4b3f17f0d@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 16 Nov 2014 11:12:32 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="da745e888d4a5182b5fda6212bbb0a63"; logging-data="28956"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/a9mQPTkUY7650wbdzhdHND9lyf6zRtPo=" User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2) Cancel-Lock: sha1:vb3h6/lSUH/8FEr0YcnMFsDf+us= Xref: number.nntp.giganews.com comp.lang.ada:190721 Date: 2014-11-16T11:12:32+00:00 List-Id: On Sat, 15 Nov 2014 15:47:41 -0700, Shark8 wrote: > On 15-Nov-14 05:44, Brian Drummond wrote: >>> I haven't found a good path, but then I'm more interested in a whole >>> new >>> >project rather than tying ourselves down to a single implementation. >> At this stage, I'm happy to see several paths followed, some will >> inevitably turn out to be dead ends. > > Agreed. > I do hope, however, that we don't get "watered-down" or "spread too > thin" by having too many paths. > >> I am (very tentatively) looking at ghdl's intermediate representation. >> which currently interfaces to three compiler backends - gcc, >> (experimentally) LLVM, and its own 32-bit x86 JIT compiler. >> >> A translation between ASIS and this IR would (based on the equivalent >> translation layer in ghdl) be something like a 30,000 line project in >> itself. Big, but more manageable than an entire compiler. > > An interesting approach. > > I do wonder about VHDL though: since it's a hardware-description > language, could it be feasible to base a compiler backend on it so that > targeting a new system is merely a matter of feeding it the description > of that hardware? -- Or am I completely misinterpreting what its purpose > is? VHDL is indeed a hardware description language. However GHDL is a VHDL simulator : its gcc and llvm forms create executables which run as any other. If you use logic simulation types, they will be slow and inefficient executables, but if you use integer, boolean, array, record there need be no speed penalty (beyond that arising from the one man spare time effort, vs however large Adacore's team is). Its author now works for Adacore (or did, last I heard) so I don't want to use his pre-existing work for anything more than experiments without clearing up any possible conflict of interest concerns he might have. > * Another thing that might be interesting is an [portable] IR-executor, > this would have much of the benefit of bytecode w/o [directly] depending > on DOTNET or JVM... heck, if that translation-grammar module works very > well we could, in theory, make it so that adding a new target is simply > writing a new translation-grammar. Heh. Back in the Linn Rekursiv days where you could microcode arbitrarily complex instructions, I wanted to experiment with a genuinely recursive instruction set, that would execute directly off a parse tree... - Brian