comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Parameterised 'Image Attributes
Date: Sun, 20 Aug 2023 02:25:20 -0500	[thread overview]
Message-ID: <ubsf4e$19bvo$1@dont-email.me> (raw)
In-Reply-To: kkca55F9sn7U1@mid.individual.net

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3648 bytes --]

The profile of the Image attribute is:

    X'Image

where X is an object of any type (or value of most types). And the old, 
unnecessary form was:
   S'Image(X)
where S and X are of any type.

If one tries to add parameters to this, one gives up this nice form for a 
mis-mash of profiles for various classes of types. Moreover, the result no 
longer composes in the obvious way (necessary to have Image for records and 
arrays).

Additionally, one ends up with a magic mechanism that only the compiler can 
use. That *never* is a good idea. Especially as there now is a way to allow 
Image to support user-defined types. It would seem necessary to also support 
user-defined formatting parameters (else one has magic only applicable to a 
handful of language defined types).

Attributes do not allow named parameters outside a few special cases, and 
*never* allow reordering of parameters. Does that need to change, too?

Float input/output in particular is very large, especially when all of the 
formatting options are included. Do you really want to drag that into 
*every* Ada program, whether it uses it or not??

'Image is convinient for integer and enumeration output, and one can format 
them in the rare case where that is necessary. But it is useless for float 
output -- manual reformatting the output of 'Image would round the results 
incorrectly.

Ada has few built-in facilities because it's primary purpose is to support 
the development of proper ADTs. Ease of writing is not a goal at all, and in 
most cases, the extra text is valuable to compilers and tools (even if it is 
not so valuable to human readers). If it was up to me, I would eliminate 
most of the shortcuts from Ada and require everything to be written out. 
(IDEs could/should do most of that for you anyway, so the extra text is not 
adding much effort.)

Ergo, I hope this idea is dead-on-arrival. I certainly won't be involved in 
it, that's for sure.

                                      Randy.



"moi" <findlaybill@blueyonder.co.uk> wrote in message 
news:kkca55F9sn7U1@mid.individual.net...
> On 19/08/2023 10:14, J-P. Rosen wrote:
>> Le 18/08/2023 à 10:25, Luke A. Guest a écrit :
>>> On 18/08/2023 08:18, Rod Kay wrote:
>>>> Hello.all,
>>>> There has been some recent discussion on #ada irc regarding formatted 
>>>> output.
>>>>
>>>> Would it be possible/desirable to allow the 'Image attribute to have 
>>>> formatting parameters ? Something along the lines of ...
>>>>
>>>> put_Line (some_Integer'Image (Width => 5, Padding => '0'));
>>>>
>>>> ... and similar 'Image attribute parameters for other types.
>>>>
>>>> If the parameters have defaults, then there should not be any backwards 
>>>> compatibility issues (I think).
>>>
>>> I wanted them for ages, but there was a conversation ages ago where 
>>> someone on here said attributes were for "debugging only," yet that's 
>>> not what the arm says.
>>>
>> The intent of the 'Image attribute is to have a quick representation, 
>> mainly for debugging purposes. If you want nice formatted output, use the 
>> Put procedure on String from Text_IO.
>>
>
> My code uses 'Image heavily, because it is usually the neatest and the
> clearest way to format many strings that mingle words and numbers.
>
> I sometimes have to pass the result of 'Image to a function that
> implements the kind of functionality people are asking for,
> and it would be even neater and clearer if I could get that with
> parameters to 'Image itself.
>
> None of that output has anything to do with debugging.
>
> -- 
> Bill F.
> 


  reply	other threads:[~2023-08-20  7:25 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-18  7:18 Parameterised 'Image Attributes Rod Kay
2023-08-18  8:25 ` Luke A. Guest
2023-08-19  9:14   ` J-P. Rosen
2023-08-19 10:03     ` Dmitry A. Kazakov
2023-08-19 11:45       ` Luke A. Guest
2023-08-19 11:56       ` J-P. Rosen
2023-08-19 13:01         ` Dmitry A. Kazakov
2023-08-19 15:27     ` Jeffrey R.Carter
2023-08-20  7:53       ` G.B.
2023-08-20  9:27         ` Dmitry A. Kazakov
2023-08-21 23:11           ` Randy Brukardt
2023-08-21 23:37           ` Randy Brukardt
2023-08-22  7:38             ` Dmitry A. Kazakov
2023-08-19 16:49     ` moi
2023-08-20  7:25       ` Randy Brukardt [this message]
2023-08-20  9:43         ` Dmitry A. Kazakov
2023-08-21 23:34           ` Randy Brukardt
2023-08-22  8:13             ` Dmitry A. Kazakov
2023-08-23 10:20               ` Stephen Davies
2023-08-23 16:16                 ` Dmitry A. Kazakov
2023-08-24 19:59                   ` Stephen Davies
2023-08-25  7:26                     ` Dmitry A. Kazakov
2023-08-25  9:04                       ` Stephen Davies
2023-08-25 13:02                         ` Dmitry A. Kazakov
2023-08-28  9:18                           ` Stephen Davies
2023-08-28 10:58                             ` Dmitry A. Kazakov
2023-08-28 15:42                               ` Stephen Davies
2023-08-28 16:09                                 ` Dmitry A. Kazakov
2023-08-28 17:33                                   ` G.B.
2023-08-28 19:08                                     ` Dmitry A. Kazakov
2023-08-28 17:58                               ` Niklas Holsti
2023-08-28 19:08                                 ` Dmitry A. Kazakov
2023-09-07  1:04                               ` Randy Brukardt
2023-09-07  9:01                                 ` Dmitry A. Kazakov
2023-08-18 18:53 ` Keith Thompson
2023-09-23 10:00 ` Rod Kay
2023-09-26  5:47   ` Vadim Godunko
2023-09-26 10:15     ` Rod Kay
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox