From: Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP>
Subject: Re: Text_IO, was: Re: Something I don't understand
Date: Tue, 18 Feb 2014 00:50:23 +0000 (UTC)
Date: 2014-02-18T00:50:23+00:00 [thread overview]
Message-ID: <lduaof$alu$1@dont-email.me> (raw)
In-Reply-To: bmf9btFrpu3U1@mid.individual.net
On 2014-02-17, Niklas Holsti <niklas.holsti@tidorum.invalid> wrote:
> This invites errors in matching the fragments in the format string with
> the variables in the variable sequence, just as in current
> template-based systems e.g. C. You add a variable, but forget to add the
> format fragment, et cetera. With the current method using string
> concatenation, the format parameters are automatically associated with
> the right variable, being parameters in the same Image call.
>
That could be caught at compilation time because there would be a
mismatch between the format string and the number of variables.
>
> So this is only *dynamically* type safe, not statically so. Moreover, as
> C formats already demonstrate, sooner or later one will run out of
> useful and unique letters and format forms, so a format fragment meant
> for variable X, of type T, may by mistake be applied to variable Y, of
> type S -- and will happen to be valid for that type, too, but will not
> produced the desired result.
>
>> And voila, C printf templates in a fully Ada type safe manner.
>
> No, dynamic type safety is not fully "Ada type safe". Ada is (mainly)
> statically type safe; dynamism only enters in subtype safety.
>
I see your point, but it's still better than what the C language itself
provides and it is guaranteed to catch type mismatches even if it's
deferred to runtime.
I wonder if it's possible to do something along the lines of gcc
which looks at the printf format string during compilation and
complains, during compilation, if there's a mismatch detected in
data types.
I am interested to see what Robert's detailed proposals look like or
what any other ideas for printf style template I/O might look like.
Simon.
--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Microsoft: Bringing you 1980s technology to a 21st century world
next prev parent reply other threads:[~2014-02-18 0:50 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-13 23:57 Something I don't understand Laurent
2014-02-14 0:18 ` adambeneschan
2014-02-14 7:05 ` Charles H. Sampson
2014-02-15 15:27 ` Laurent
2014-02-15 19:10 ` Laurent
2014-02-15 20:05 ` Niklas Holsti
2014-02-15 21:16 ` Laurent
2014-02-15 21:40 ` Jeffrey Carter
2014-02-16 1:39 ` Robert A Duff
2014-02-16 9:08 ` Text_IO, was: " Simon Clubley
2014-02-16 9:43 ` Dmitry A. Kazakov
2014-02-16 16:57 ` Dennis Lee Bieber
2014-02-16 16:17 ` Robert A Duff
2014-02-17 12:52 ` Simon Clubley
2014-02-17 15:32 ` G.B.
2014-02-17 15:35 ` G.B.
2014-02-17 17:34 ` Mike H
2014-02-17 16:59 ` Niklas Holsti
2014-02-17 17:17 ` Dmitry A. Kazakov
2014-02-17 17:42 ` Niklas Holsti
2014-02-17 19:55 ` Dmitry A. Kazakov
2014-02-18 7:14 ` Niklas Holsti
2014-02-18 8:40 ` Dmitry A. Kazakov
2014-02-18 9:00 ` Niklas Holsti
2014-02-18 9:31 ` Dmitry A. Kazakov
2014-02-19 8:36 ` Niklas Holsti
2014-02-19 9:40 ` Dmitry A. Kazakov
2014-02-19 13:20 ` Niklas Holsti
2014-02-19 14:13 ` Dmitry A. Kazakov
2014-02-19 15:37 ` Georg Bauhaus
2014-02-19 16:32 ` Laurent
2014-02-19 17:46 ` Simon Clubley
2014-02-20 2:39 ` Dennis Lee Bieber
2014-02-20 11:44 ` G.B.
2014-02-19 21:45 ` Niklas Holsti
2014-02-20 9:52 ` Dmitry A. Kazakov
2014-02-20 18:19 ` Niklas Holsti
2014-02-19 15:06 ` Robert A Duff
2014-02-19 17:03 ` Niklas Holsti
2014-02-19 22:30 ` Robert A Duff
2014-02-17 18:13 ` Simon Clubley
2014-02-17 20:09 ` Dmitry A. Kazakov
2014-02-18 7:50 ` Georg Bauhaus
2014-02-18 8:28 ` Dmitry A. Kazakov
2014-02-17 20:22 ` Niklas Holsti
2014-02-18 0:50 ` Simon Clubley [this message]
2014-02-18 6:56 ` Niklas Holsti
2014-02-18 8:04 ` Georg Bauhaus
2014-02-19 22:01 ` Robert A Duff
2014-02-20 8:25 ` Dmitry A. Kazakov
2014-02-20 15:54 ` Robert A Duff
2014-02-20 17:54 ` Dmitry A. Kazakov
2014-02-20 20:45 ` Niklas Holsti
2014-02-19 21:52 ` Robert A Duff
2014-02-20 0:50 ` Simon Clubley
2014-02-19 21:46 ` Robert A Duff
2014-02-20 0:09 ` Jeffrey Carter
2014-02-20 1:09 ` Simon Clubley
2014-02-20 7:06 ` Niklas Holsti
2014-02-20 13:05 ` Simon Clubley
2014-02-20 11:51 ` G.B.
2014-02-20 12:53 ` Simon Clubley
2014-02-21 11:50 ` Brian Drummond
2014-02-23 21:37 ` AdaMagica
2014-02-23 23:23 ` Bill Findlay
2014-02-24 4:29 ` AdaMagica
2014-02-24 12:22 ` Brian Drummond
2014-02-24 19:03 ` AdaMagica
2014-02-20 20:02 ` Niklas Holsti
2014-02-19 21:15 ` Robert A Duff
2014-02-19 22:01 ` Simon Clubley
2014-02-16 14:50 ` Mike H
2014-02-17 16:09 ` Laurent
2014-02-17 17:42 ` Mike H
2014-02-18 1:05 ` Dennis Lee Bieber
2014-02-17 22:31 ` Jeffrey Carter
2014-02-19 12:51 ` Laurent
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox