From: alby.gamper@gmail.com
Subject: Re: Embeddinator-4000 begetting an Ada-cross-platform future?
Date: Fri, 16 Mar 2018 02:55:55 -0700 (PDT)
Date: 2018-03-16T02:55:55-07:00 [thread overview]
Message-ID: <93b2ceb2-0beb-47cf-a9f1-59ac7e81e052@googlegroups.com> (raw)
In-Reply-To: <aebf94bd-aef9-48db-84ac-352d476c9733@googlegroups.com>
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 classes
> > (each implemented as a tagged type)
>
> Oh, thank goodness! Thank you very much! Kenny Kerr's usage of value instances as type-ish stand-ins for types will likely be the cause of criticism/ridicule of C++/WinRT once its usage increases outside of Microsoft. (Microsoft has a track-record of ridicule with 3 prior iterations: 1) Stanley Lippman's managed C++ (adding COM semantics intrinsically to C++ object model), 2) Herb Sutter's C++/CLI (C++ divided by CLI: grafting on C# semantics via ^-syntaxed not-quite-C++ C++-ish/C#-ish language strewn throughout C++, hence the pejorative “divided by” moniker), 3) C++/CX (C++ divided by CX: analogous grafting of weird add-on language but for processor-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 grafted-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' indirection), keeping the types as first-class citizens will be worth it.
>
> > Still a lot of work to do with mapping winRT generics to Ada.
>
> 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; RxCpp). 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 begets the more-fundamental question: how do you envision releasing your WinRT-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 the
heavy use of C++ templates that Cpp/WinRt uses as an implementation. It does
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 believe
on my side, in getting dependent Ada packages (ie "limited with" and Ada generics
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 communities
suggestion's on improvements. Note that I am far from being a "Language expert"
in either C++ or Ada, But I know that instinctively Ada is my language of choice
and I would like to see it as a general programming language (GPL) as it was
originally intended.
Alex
next prev parent reply other threads:[~2018-03-16 9:55 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-26 17:06 Embeddinator-4000 begetting an Ada-cross-platform future? Dan'l Miller
2018-02-26 17:46 ` Dan'l Miller
2018-02-26 19:38 ` Mehdi Saada
2018-02-26 19:51 ` Dan'l Miller
2018-02-26 20:34 ` Luke A. Guest
2018-02-26 20:35 ` Luke A. Guest
2018-02-26 22:41 ` Dan'l Miller
2018-03-02 19:55 ` Ivan Levashev
2018-02-26 21:43 ` Dan'l Miller
2018-02-26 22:12 ` Luke A. Guest
2018-02-26 22:26 ` Dan'l Miller
2018-02-26 23:32 ` Randy Brukardt
2018-02-26 23:56 ` Dan'l Miller
2018-02-28 15:55 ` Dan'l Miller
2018-02-28 17:24 ` Lucretia
2018-02-28 19:20 ` Dan'l Miller
2018-03-01 16:03 ` Dan'l Miller
2018-03-01 18:04 ` Shark8
2018-03-01 19:09 ` Dan'l Miller
2018-03-01 22:25 ` Shark8
2018-03-01 23:08 ` Randy Brukardt
2018-03-02 5:39 ` Bojan Bozovic
2018-02-26 22:30 ` Dan'l Miller
2018-02-26 22:36 ` Luke A. Guest
2018-03-01 20:36 ` Robert Eachus
2018-03-09 16:45 ` Dan'l Miller
2018-03-13 9:54 ` alby.gamper
2018-03-13 15:26 ` Dan'l Miller
2018-03-14 8:53 ` alby.gamper
2018-03-14 15:24 ` Dan'l Miller
2018-03-16 9:55 ` alby.gamper [this message]
2018-03-16 15:35 ` Dan'l Miller
2018-03-02 20:18 ` Ivan Levashev
2018-03-05 16:57 ` Dan'l Miller
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox