comp.lang.ada
 help / color / mirror / Atom feed
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

 

  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