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: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: tmoran@acm.org Newsgroups: comp.lang.ada Subject: Re: thick bindings, was Re: Vulkan is here! Date: Sat, 20 Feb 2016 06:28:30 +0000 (UTC) Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: ru/enNNyVkms/PPjid3aKA.user.gioia.aioe.org X-Complaints-To: abuse@aioe.org X-Notice: Filtered by postfilter v. 0.8.2 X-Newsreader: Tom's custom newsreader Xref: news.eternal-september.org comp.lang.ada:29573 Date: 2016-02-20T06:28:30+00:00 List-Id: >The important reason for having access to some low-level binding is so that >one can directly translate examples into Ada. The idea is that a medium >binding preserves that (one uses the same objects, same parameters [possibly >better typed], same subprogram calls), but makes those calls more sensible >Ada code, letting the compiler provide more help to the programmer.) As I recall, there were a lot of Windows calls that did not work as documented (or weren't documented completely). A thick binding like CLAW works around and thus hides such things. A mechanically produced binding wouldn't do that. For instance, I have a mechanically produced thin, and hand made thick, binding to the Google Earth API. Several years ago Google changed the meaning of some of the parameters to an important function. The thick binding can check the API version and do the right thing - the thin binding can't.