Closed Aaron1011 closed 7 months ago
It throws a lot of
[ERROR swf::read] Error decompressing SWF: corrupt deflate stream
[WARN swf::read] SWF length doesn't match header, may be corrupt
but doesn't actually crash at any point on an unimplemented intrinsic on my laptop despite it having AVX2 and FMA support.
I've tracked down the 'corrupt deflate stream' error to a miscompilation of simd-adler32
: https://github.com/rust-lang/rustc_codegen_cranelift/issues/1426
Thanks for tracking this down! I will fix it once I have time.
The miscompilation has been fixed. It now crashes on _mm256_fmaddsub_ps
in rustfft.
rustfft now works on the even_more_simd_intrinsics branch. Next issue:
thread '<unnamed>' panicked at tests/framework/src/options.rs:101:38:
assert_relative_eq!(actual, expected, epsilon = epsilon)
left = 286.65
right = 358.25
The failing test is avm2/edittext_tab_stops. I found several miscompilations in the stdarch test suite. Hopefully one of them is the cause of this test failure.
Edit: Fixed the stdarch test suite failures. The ruffle test failure remains.
@bjorn3 The avm2/edittext_tab_stops
panic is legitimate (it occurs under LLVM). However, the ruffle test suite normally catches that panic.
I see. cg_clif currently only supports panic=abort, so test failures can't be caught. For regular libtest tests, -Zpanic-abort-tests
is enabled by default which puts every test in a separate process to make panics abort just a single test process rather than the test runner, but ruffle uses libtest-mimic which doesn't support this feature.
Is from_avmplus/as3/Types/Int/wraparound
also expected to fail?
And from_avmplus/ecma3/TypeConversion/e9_3_1_3_rt
?
Looks like it. Seems like ruffle fully works as expected then.
Current Ruffle master (https://github.com/ruffle-rs/ruffle/commit/fa05c66e2a7d08c695628705c5beb550030efbc8) shows the following with
cargo-clif test -p tests
: