New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
swf output not compatible with flash player 27 #6589
Comments
Argh, so that was a real issue after all... It came up on our CI, but I was assuming that it's just some stupid setup issue because it only happened on OS X. No idea right now what could be causing this... |
Could you check if this is a regression from 3.4.2? There are no changes to the SWF generator between 3.4.2 and 3.4.3, so I'm very puzzled about this. |
Just checked. The swf produced with Haxe 3.4.2 runs fine... |
Looks like it's an OCaml issue...
|
Whaaaat... |
I've just pushed to the three_four_three branch to use OCaml 4.02.3 to build Haxe on Mac, and replaced the 3.4.3 Mac binaries and installer to use the new build artifacts. We still need to investigate OCaml 4.05's issue since we can't use 4.02.3 forever. |
What I don't understand (besides everything else) is why it only fails on 3.4.3 and not on development. |
What I don't understand (besides everything else) is why it only fails on
3.4.3 and not on development
It also fails on development (at least for the HelloWorld program).
|
But our CI doesn't fail on development, whereas it was failing on the 3.4.3 branch. Where's the difference? |
But our CI doesn't fail on development, whereas it was failing on the 3.4.3
branch. Where's the difference?
I think it didnt fail on the 3.4.3 branch either. The flash test still ran,
or did you commented it out?
My HaxeCI repo has the Haxe dev branch failed as expected.
Maybe it only affect small programs?
|
It was failing: https://travis-ci.org/HaxeFoundation/haxe/jobs/274558244#L4379 I disabled the tests because I thought it was some setup issue, and I really needed the builds before the conference. |
Some more testing:
The hex dump of the two swf files: |
The current development branch passes because flash target is not tested in mac builds since b4221c3. |
Haha... I'm so stupid. x) |
Turn out the issue isn't Mac specific - I successfully reproduced it on both Windows and Linux. It's just that we have been using OCaml 4.02.3 in CIs (except for Mac, in which the homebrew ocaml package is 4.05.0). It also means that this is an serious issue because there is no way for the Linux package to build with an older OCaml version - they will just use the one available in the Linux distro. i.e. The flash target is broken in most recent Linux distro releases. @ncannasse @Simn Would you try to find out what's happen here? Quick reminder on how to use OCaml 4.05.0 to compile Haxe 3.4.3 in Windows: # in a cygwin terminal
opam switch 4.05.0+mingw32c
eval `opam config env`
opam install camlp4
cd path/to/haxe
# clean everything and checkout 3.4.3
make clean && git clean -fdx && git reset --hard HEAD
git checkout 3.4.3
git submodule update --force
# compile
make |
Oh man... that could be some 10 year old |
Compare -D dump outputIdentical This is good because it means the rest of the compiler works fine. This is bad because it means the problem is the SWF generator itself. Compare in decompilerheader: identical (except file size)
Compare scriptsBoot: identical 4.02:
4.05:
Main: identical 4.02:
4.05:
First thoughtsSome problem with function argument names, but why... |
Update: It's not the MultiArray implementation. I reverted that change back to Array/DynArray and still get the same behavior. |
Someone on #ocaml mentioned that they had an issue with changed evaluation order which they addressed in this commit: facebook/infer@5b3c2c0 I have confirmed that a bytecode Haxe compiled from 4.04.2 also reproduces the issue, so it's almost definitely an evaluation order problem. Now I just have to find out where it comes from... |
Tag IDs + length: Working:
Broken:
72 is |
I finally found it and fixed it in HaxeFoundation/ocamllibs@b2d729b Took me 5 hours to track this down... Please confirm that it works now. |
I thought it could take even longer given how tricky it is, I'm so glad you fixed it in just 5 hours :) I think we need a 3.4.4 release soonish. |
Agreed... can you start a branch? I made a bit of a mess in the 3.4.3 branch when I was in a hurry to get the release out. Maybe we should try to get the RunCi changes onto that branch too so it's a bit cleaner. There was also a hardcoded "three_four_three" somewhere which shouldn't be there. |
No problem, I will sort this out in this weekend. Getting the RunCi split may be a bit too complex for the 3.4 branch (e.g. php/php7 change), but I will see what I can do there. |
Closing this since the fix was applied to both development and 3.4_bugfix. |
Tested with Haxe 3.4.3 and a0577b7.
A hello world program:
Compiled with
Run with Flash Player Debugger 27.0.0.130 (on a Mac)
If run with Flash Player (not Debugger), the Flash Player will simply crash.
Quick link for FP download: https://www.adobe.com/support/flashplayer/debug_downloads.html
The text was updated successfully, but these errors were encountered: