[ Sorry Frank, for sending it to your privat address first ]
On Tue, Mar 19, 2002 at 12:50:52AM +0100, Frank Heckenbach wrote:
Carel Fellinger wrote:
How can I get more details on that bug? I can't find the file daj3.pas on my machine.
It's part of the GPC source distributions, or the separate test suite distributions in ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/current/.
Okee, downloading both.. I see a file dajmod3.pas, no daj3.pas, seems like half of the test:) But I get the idea.
Does this apply to constant strings only, so can you program around it by declaring var's and initialize them in the init-code of the implementation module? Sure hope so.
No, it applies to variables declared in a module interface.
Did me own test, and it seems that explicitly initializing the var as part of the var declaration can serve as a workaround, like in:
module c interface; export c = all; type s = string(25); { comments, -> output } var x : s = 'pipo de clown'; { this seems to work } y : s = ''; { this seems to work } z : s; { this one fails } end. module c implementation; to begin do begin y := 'mama lou'; { this is caried over } z := 'invisible'; { useless } writeln(z.capacity, z, length(z)); {-> 00 } end; end.
program b; import c; begin writeln(x.capacity, x, length(x)); {-> 25pipo de clown13 } writeln(y.capacity, y, length(y)); {-> 25mama lou8 } writeln(z.capacity, z, length(z)); {-> 00 } x := 'spam'; y := 'and'; z := 'eggs'; writeln(x.capacity, x, length(x)); {-> 25spam4 } writeln(y.capacity, y, length(y)); {-> 25and3 } writeln(z.capacity, z, length(z)); {-> 00 } end.
I sure hope this is inline with your understanding of the bug as I need this feature in that largish 80's program I'm porting.
Carel Fellinger wrote:
On Tue, Mar 19, 2002 at 12:50:52AM +0100, Frank Heckenbach wrote:
Carel Fellinger wrote:
How can I get more details on that bug? I can't find the file daj3.pas on my machine.
It's part of the GPC source distributions, or the separate test suite distributions in ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/current/.
Okee, downloading both.. I see a file dajmod3.pas, no daj3.pas, seems like half of the test:) But I get the idea.
It's in knownbugs/.
Does this apply to constant strings only, so can you program around it by declaring var's and initialize them in the init-code of the implementation module? Sure hope so.
No, it applies to variables declared in a module interface.
Did me own test, and it seems that explicitly initializing the var as part of the var declaration can serve as a workaround, like in:
I sure hope this is inline with your understanding of the bug as I need this feature in that largish 80's program I'm porting.
This works for strings, not for other schemata (whose discriminants also fail to be initialized in this situation) currently.
Frank
On Tue, Mar 19, 2002 at 06:09:30AM +0100, Frank Heckenbach wrote: ...
It's in knownbugs/.
Yes it is. I guesh, I need new glasses:)
...
This works for strings, not for other schemata (whose discriminants also fail to be initialized in this situation) currently.
Thanks for conforming this. In my case it means I've a _working_ work around for the time being. On to solve the other port problems (missing modules and the like). The compiler is doing great sofar!