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,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.107.143.149 with SMTP id r143mr141975iod.120.1521194155424; Fri, 16 Mar 2018 02:55:55 -0700 (PDT) X-Received: by 2002:a9d:5220:: with SMTP id e32-v6mr57616oth.3.1521194155247; Fri, 16 Mar 2018 02:55:55 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!e10-v6no412922itf.0!news-out.google.com!a25-v6ni664itj.0!nntp.google.com!r195-v6no416150itc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 16 Mar 2018 02:55:55 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=101.164.108.182; posting-account=wavAeAoAAAAZF_sXSZepBukuPCBO0Zqt NNTP-Posting-Host: 101.164.108.182 References: <5a8e17dc-1d52-4393-be58-8881e741c3a4@googlegroups.com> <92b09533-40a2-4a91-a9bc-7b6eddb3e3a1@googlegroups.com> <1f3db512-b336-47aa-a3de-1f3771c15d75@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <93b2ceb2-0beb-47cf-a9f1-59ac7e81e052@googlegroups.com> Subject: Re: Embeddinator-4000 begetting an Ada-cross-platform future? From: alby.gamper@gmail.com Injection-Date: Fri, 16 Mar 2018 09:55:55 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 4963 X-Received-Body-CRC: 3650781245 Xref: reader02.eternal-september.org comp.lang.ada:51025 Date: 2018-03-16T02:55:55-07:00 List-Id: On Thursday, March 15, 2018 at 2:24:51 AM UTC+11, Dan'l Miller wrote: > Alex wrote: > > the resulting Api is a thin layer over the top of each of the winRT cla= sses > > (each implemented as a tagged type)=20 >=20 > Oh, thank goodness! Thank you very much! Kenny Kerr's usage of value in= stances as type-ish stand-ins for types will likely be the cause of critici= sm/ridicule of C++/WinRT once its usage increases outside of Microsoft. (M= icrosoft has a track-record of ridicule with 3 prior iterations: 1) Stanle= y Lippman's managed C++ (adding COM semantics intrinsically to C++ object m= odel), 2) Herb Sutter's C++/CLI (C++ divided by CLI: grafting on C# semanti= cs via ^-syntaxed not-quite-C++ C++-ish/C#-ish language strewn throughout C= ++, hence the pejorative =E2=80=9Cdivided by=E2=80=9D moniker), 3) C++/CX (= C++ divided by CX: analogous grafting of weird add-on language but for pro= cessor-native machine code instead of CLR), and now 4) weird not-types used= as stand-ins for what the human brain thinks of as types hence again a gra= fted-on thing that doesn't feel at all like C++ (or any other strongly-type= language's very-in-your-face type system). Even if there exist downsides = in your approach (e.g., a little more runtime overhead due to the tags' ind= irection), keeping the types as first-class citizens will be worth it. >=20 > > Still a lot of work to do with mapping winRT generics to Ada. >=20 > It appears that Kenny Kerr's work in C++/WinRT also is incomplete in that= area, among others (e.g., Rx and Ix reactive & interactive extensions). I= believe these areas are deemphasized in C++/WinRT because they are deemed = to have ISO C++ analogues to utilize instead (e.g., the standard library; R= xCpp). Do you really need to get the mapping of WinRT generics to Ada for = an initial release of your WinRT-to-Ada binding generator? I guess that be= gets the more-fundamental question: how do you envision releasing your Win= RT-to-Ada binding generator? Open-source? Proprietary commercial product? Dear Dan'l Regarding your first point, I take it you mean that you are not a fan of th= e heavy use of C++ templates that Cpp/WinRt uses as an implementation. It doe= s make the code hard to read/understand/maintain (in my opinion) WRT using Ada tagged types as an implementation, that was an obvious choice= , given that under GCC/GNAT C++ classes are equivalent to Ada Tagged types at= the ABI level and the binding needs to support client overriding semantics (ie implementing a native/WinRT class and overriding a method/procedure) WRT generics, in my current alpha non-release :-) Due to an issue. I believ= e on my side, in getting dependent Ada packages (ie "limited with" and Ada ge= nerics to work nicely) I have resorted to doing inline expansion of the required code where needed. When? I release sample code AND the underlying bindings/API you can analyse= what I have implemented wrt mapping WinRT to Ada and I will take on the communit= ies suggestion's on improvements. Note that I am far from being a "Language exp= ert" in either C++ or Ada, But I know that instinctively Ada is my language of c= hoice and I would like to see it as a general programming language (GPL) as it wa= s originally intended. Alex =20