[Vm-dev] failing/errors Pharo Tests with CogVM
eliot.miranda at gmail.com
Thu Sep 16 19:32:26 UTC 2010
I need to check these carefully. One thing that does differ in current
Cog is that the machine-code arithmetic float primitives don't fail if they
produce a NaN result; they simply answer a NaN result. IMo what needs to be
done is two-fold.
a) we need a NaN mode flag in the VM, that persists across snapshots and
e.g. is queryable/settable via vmParameterAt:put:, that puts the
floating-pont primitive into a state where NaNs are answered instead of
b) the Cog code generator needs to respect this flag and arrange that when
in the default mode (current behavior) the machine-code arithmetic float
primitives also fail if they produce a NaN result.
We can then decide at a later date whether to change the primitive behavior
to answer NaNs or not. This is also what we did in VisualWorks; there's an
IEEE arithmetic mode and in recent releases VW's floating-point arithmetic
will produce NaNs.
Anyone interested in taking a look at this is very welcome. Its probably a
week long project at most.
On Thu, Sep 16, 2010 at 12:19 PM, Nicolas Cellier <
nicolas.cellier.aka.nice at gmail.com> wrote:
> I mean the M7260-primitiveSmallIntegerCompareNan-Patch-nice.1.cs part,
> the rest has already been applied in COG.
> 2010/9/16 Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>:
> > I see http://bugs.squeak.org/view.php?id=7260 was not integrated in
> > COG, which was the cause of most of the Floating point failures in old
> > VM, but maybe it's now more complex than that ?
> > Nicolas
> > 2010/9/16 Mariano Martinez Peck <marianopeck at gmail.com>:
> >> Hi Eliot. I took a Pharo 1.1.1 image (which has included the changes to
> run Cog) and I run all the tests with the build r2219
> >> And these are the results:
> >> 9768 run, 9698 passes, 53 expected failures, 15 failures, 2 errors, 0
> unexpected passes
> >> Failures:
> >> FloatTest>>#testRaisedTo
> >> MCInitializationTest>>#testWorkingCopy
> >> FloatTest>>#testReciprocal
> >> ReleaseTest>>#testUndeclared
> >> FloatTest>>#testDivide
> >> MethodContextTest>>#testClosureRestart
> >> FloatTest>>#testCloseTo
> >> FloatTest>>#testHugeIntegerCloseTo
> >> FloatTest>>#testInfinityCloseTo
> >> WeakRegistryTest>>#testFinalization
> >> PCCByLiteralsTest>>#testSwitchPrimCallOffOn
> >> AllocationTest>>#testOneGigAllocation
> >> FloatTest>>#testNaNCompare
> >> FileStreamTest>>#testPositionPastEndIsAtEnd
> >> NumberTest>>#testRaisedToIntegerWithFloats
> >> Errors:
> >> MessageTallyTest>>#testSampling1
> >> WeakSetInspectorTest>>#testSymbolTableM6812
> >> I think that most of these problems were fixed in latest official
> SqueakVM. I guess they were integrated in VMMaker in versions later than the
> one you used for Cog. Maybe you can integrate them and create a new version?
> >> I am not a VM expert so please if you can help us with this tests it
> would be cool.
> >> Thanks
> >> Mariano
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev