New Alpha_(re)
Thu, 3 Apr 1997 09:51:31 -0800 (PST)
> (*** Does anybody know how UCSD behaves here? I don't want to dig
> out my old Apple //e in order to check this. ***)
Yes, it clips strings and it has a 10 for the default field size.
Borland is the only Pascal compiler that I have used or heard of that does
not clip strings and uses 1 as the default field size. Does someone
know of another one (besides gpc)?
>The above does not clarify how GPC's default behaviour should be.
It should be ISO Pascal with the de-facto-standard field widths.
>IMHO Borland's method is more logical than what most Standard Pascal
>compilers do.
It may be more logical, but we didn't design the language.
>However the only true contradiction between Borland and
>ISO in this context is string clipping which only occurs in very rare
>cases (at least in my programs).
It happens in quite a few places in my programs. In fact, it breaks one
of my standard teaching examples to show students the power of Pascal.
(Write a program to print a right triangle of stars (*).)
>Thus I could live with string clipping
>being "on" by default. Concerning field widths, it does not contradict
>ISO Standard to follow Borland, so we should do that. (Remember that
>`--borland-pascal' turns string clipping off and that `--standard-pascal'
>makes GPC behave like other Standard Pascal compilers.)
I can not live with either being the standard behavior. If you do make
Borland behavior standard, at least make it a configure option to not
make Borland behavior standard so I don't have to maintain local changes
to gpc to get what I really want. Similarly, if you choose to make
Standard Pascal the default behavior, have a configure option to choose
Borland for those who want it. Better yet, make gpc change depending
on whether it is run as gpc (Standard Pascal) or bpc (Borland Pascal).
> * When an Integer value is being output with a field width of zero,
> output is suppressed. Is this ISO Standard (doesn't seem so),
> or a bug?
This is not conforming and needs to be changed. It should be the same as 1.
> * When a Real value is being output with a too narrow field width,
> other compilers bother to make the output as short as possible.
> Should GPC do the same?
It should follow 6.9.3.4.1 (ISO 7185) which says:
if TotalWidth >= ExpDigits + 6
then ActWidth := TotalWidth
else ActWidth := ExpDigits + 6;
where ActWidth is the actual number of characters written, yeilding the
format SV.V+EE where is S is - or blank, V.V is the number, EE is
the exponent. (+ could be -).
> * All Pascal compilers I have access to have the "feature" that it is
> impossible to output a positive Real value without at least one
> leading blank. This is annoying in some situations, so what about
> an additional switch, e.g. `--no-real-blank', to disable it
> optionally? (Better suggestions for the names of all compiler
> switches are welcome!)
Yes, they are following the standard. I have no problem with the switch
as long as it is not standardly on.
Is it possible we should ask Juki what the standard behavior should be?
Borland vs Standard?
--
Phil Nelson NetBSD: http://www.netbsd.org
e-mail: phil@cs.wwu.edu LPF: http://www.lpf.org
http://www.cs.wwu.edu/~phil !gifs: http://www.lpf.org/Patent/Gif/Gif.html
Phil Nelson (phil@cs.wwu.edu)
HTML conversion by Lluís de Yzaguirre i Maura
Institut de Lingüística Aplicada -
Universitat "Pompeu Fabra"
e-mail: de_yza@upf.es