[comp.lang.eiffel] compiler crash

giacomet@venus.ecn.purdue.edu (Frederic B Giacometti) (09/08/90)

 While compiling a class I got the following message:

 Pass 4 on class matrix3: internal error (code: 4TYGC2)
 Please send information regarding this error
 to Interactive Software Engineering
 ----------------------------------------------------

 As an obedient person, here I am:

 My class matrix3 had the following feature:

 cell( i, j: INTEGER ): PARAM_REAL is
	-- value of cell (i, j)

In another feature definition I had the following line:

	Result := cell(1,1)*some stuff

The crash would occur at that point.

I fixed this quick and dirty by defining the variable/features:

a11: like cell is do Result := cell(1, 1) end;
.
	-- 9 coefficients of my 3x3 matrix
.
a33: like cell is do Result := cell(3, 3) end;

and replaced the crashing cell(i, j) by aij's.



Since, I'm here, I can report another case I ran into: the double
definition of a feature in a same class is not detected in the 4
compilation passes and makes the c-compilation crash.

Finally, i got to signal an inconsistency relating to REAL constants:

The `pi' constant from the MATH_CONSTANT library is defined as a REAL.
Still, if we have

   inherit MATH_CONSTANT
   feature
      .
      .
      value: REAL;
      .
      .
          value := pi;

Then the test `value = pi' will return `false'. This seems pretty much
inconsistant to me, since `true' would be expected; am I not right ?

Frederic Giacometti