Hi,
When Frank asked me if i could do the remaining test, i was a little bit
optimistic.
I thought i could do that before my "computer&mail-less" holidays. And
it appears that i won't.
Next time i'll have time for that, it'll be mid or end Augustus. If
somebody want to make those remaining tests before, that would make it
implemented faster i suppose.
If nobody can, i'll do that before my students come back, so it would be
done for (hopefully) mid september. Except the one on ASM... sorry, 1
day won't be enough :-)
Given the mailing-list archives are not available for now, i give what's
remaining to do juste here after.
--
Francois Schoubben (Bureau 324-Tel:32/81/72.4989)
FUNDP - Institut d'Informatique - Assistant
21 rue Grandgagnage, B-5000 Namur (Belgium)
Le mer 11/06/2003 à 05:09, Frank Heckenbach a écrit :
> Francois Schoubben wrote:
>
> > For the main tests, i hope it's the end...
> > Up to you to correct my tests...
> >
http://www.info.fundp.ac.be/~fsc/dvpt/fsc.tar.gz
> > or, "online"
> >
http://www.info.fundp.ac.be/~fsc/dvpt/
>
> Sorry for the late reply.
>
> > fsc31-35 : actual schema discriminant
>
> What's missing is a test where the formal discriminants are of a
> subrange type and the actual discriminants (in `New' or a variable
> declaration) are out of range.
>
> > fsc36-37 : "for loops", i'm not sure it's what you expect...
>
> Yes (I'm only adding cases for the lower bound).
>
> > For asm target, i have a problem...
> > The only "assembler language" i know is MIX (thanks D. Knuth :-) )...
> > And i haven't really got time to learn it before... long time i'm
> > afraid...
> > Can anybody help here???
>
> It's hard to impossible to write them portably, of course, but a
> platform specific one (perferably IA32) should be enough (since the
> range checking issues are the same everywhere). Perhaps someone who
> uses asm can write one (range-checking would occur when using a
> subrange variable as a target).
>
> > For the remaining... What's missing?
>
> Initialization of types, variables and typed constants. (I.e.,
> variables (or fields) or subrange type with an out-of-range
> initializer; must be locally, otherwise GPC won't accept
> non-constants initializers.)
>
> > wrong?
>
> I've corrected a few details, nothing serious.
>
> The `FillChar' test (fsc20.pas) shouldn't (I think) work like this
> since it takes an untyped parameter. (Some people (ab)use it for
> strange purposes.) Instead, the 3rd parameter may also be an
> integer, so it's an error if it's < 0 or > Ord (MaxChar).
>
> > misunderstood?
>
> `WRONG' is only for compile-time failures. I've removed it.
>
> > I've never played with delphi extensions, the OO language i used was
> > java.
>
> I don't think there's anything about objects needed here.
>
> Frank
>
> --
> Frank Heckenbach, frank@g-n-u.de,
http://fjf.gnu.de/, 7977168E
> GPC To-Do list, latest features, fixed bugs:
>
http://www.gnu-pascal.de/todo.html
> GPC download signing key: 51FF C1F0 1A77 C6C2 4482 4DDC 117A 9773 7F88 1707
>
Then,
Date: 11 Jun 2003 17:45:27 +0200
I wrote:
> What's missing is a test where the formal discriminants are of a
> subrange type and the actual discriminants (in `New' or a variable
> declaration) are out of range.
>
> Initialization of types, variables and typed constants. (I.e.,
> variables (or fields) or subrange type with an out-of-range
> initializer; must be locally, otherwise GPC won't accept
> non-constants initializers.)
>
> The `FillChar' test (fsc20.pas) shouldn't (I think) work like this
> since it takes an untyped parameter. (Some people (ab)use it for
> strange purposes.) Instead, the 3rd parameter may also be an
> integer, so it's an error if it's < 0 or > Ord (MaxChar).
I've found some more missing cases:
- `Return' (where the result type is a subrange and the `Return'
value is out of range)
- `Pack', `Unpack' (the index parameter)
- `Include', `Exclude'
- `Inc', `Dec'
- 4th parameter of `BlockRead', `BlockWrite' (not obvious, but GPC
allows a subrange here which may be too small for the actual
result)
- `Val' (2nd and 3rd parameter)
- `and', `or', `xor', `shl', `shr' used as procedures, e.g., if a is
of type 1 .. 10: a := 5; or (a, 8) (whereas normal use as
operators will be covered by assignments or whatever is done with
them)
- Conformant arrays (i.e., where the index type in the conformant
array in the formal parameter list is a subrange, and the actual
parameter's range is too big -- check both bounds)
- `New' with variant records (where the variant tag is of subrange
type)
- sets (e.g., assigning a set of a larger range to one of a smaller
range where the former contains out of range elements)
Frank