[Oberon] bluebottle parallel compiler bug
Mircea Alexandru Popescu Moscu
mircalex at yahoo.com
Fri Sep 16 08:28:38 CEST 2005
Compiling the following module results in the compiler
terminating with a err 40 (compiletest identifier
expected). This is due the timeout expiring and the
scanner being not at the en of the module.
In fact the compiler blocks on (see following trace):
AosActive.SwitchToNew pc=2238
new=008F4650H
AosActive.Await pc=9277
cond=PCT.Scope.Await pc=132 slink=-2073953532
(8461FB04H) obj=008E7190H
flags={} hdr=008E7160H r=008DE090H t=00000000H
id=0
PCT.Scope.Await pc=182
state=2 @Self=008E7190H
PCV.TypeSize pc=1528
type=01263640H size=00000000H fsize=00000000H
recsize=00000000H brecsize=00000000H
p=00000000H t=00000000H redo=FALSE f=00000000H
s=00000000H name="AboutPanel"...
namef=""...
PCV.TypeSize pc=1373
type=01261B60H size=012A6B00H fsize=00000000H
recsize=00000000H brecsize=00000000H
p=00000000H t=00000000H redo=FALSE f=00000000H
s=008E7190H name="AboutPanel"...
namef=""...
PCV.AllocateTypes pc=3592
t=008E5130H v=01D2A4F0H
PCV.Allocate pc=4968
context=01D29F70H scope=01D29F70H proc=00000000H
madr=01D2A5F0H globals=00000000H
PCT.ChangeState pc=12382
scope=01D29F70H state=2 pos=64514 rec=00000000H
r=00000000H int=00000000H
rscope=00000000H mth=00000000H i=0 res=0
PCP.Parser.DeclSeq pc=9156
@Self=01D2A010H t=00000000H name=0 pos=0 res=0
PCP.Parser. at Body pc=24979
And here comes the module:
MODULE compiletest; (** AUTHOR "Alex Popescu";
PURPOSE "error in compilation"; PORTABLE *)
TYPE
Contained=OBJECT
VAR
parent: Container;
END Contained;
ContainedDescendent1=OBJECT(Contained)
END ContainedDescendent1;
ContainedDescendent2=OBJECT(Contained)
END ContainedDescendent2;
ContainedDescendent3=OBJECT(Contained)
END ContainedDescendent3;
ContainedDescendent4=OBJECT(Contained)
END ContainedDescendent4;
Container = OBJECT
VAR
c1: ContainedDescendent1;
c2: ContainedDescendent2;
c3: ContainedDescendent3;
c4: ContainedDescendent4;
END Container;
END compiletest.
Comments:
If compiled like this it doesn't compile. If the last
three lines in Container are commented out then it
compiles.
The problem is that the compiler doesn't provide a
good error message, allowing for a idenfication of the
problem; and that sometimes complies and sometimes
doesn't compile: in my opinion: or it never compiles
such code, or always compiles it.
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
More information about the Oberon
mailing list