Auf Kommentar antworten

Gnash under Clang

Gnash is now completely compilable and optimizable with the LLVM frontend Clang. The AGG renderer headers have one C++ bug that causes an error. This needs to be fixed externally if you want to use that renderer, as it seems legitimate for a compiler to reject it (even if GCC doesn't).

Clang has already helped to find a few bugs in Gnash. Some warnings picked up things that GCC missed. And most interestingly, there were cases where Gnash's behaviour was relying on the order of evaluating function arguments.

Any C++ coder should know that this is unspecified, but it is often difficult to pick up the cases where it actually matters, for instance when the side-effects of the evaluation have to take place in an expected order. Some of these logic errors have been in Gnash for years. Clang helped here simply by using a different order from GCC, so it was noticeable when the testsuite failed.

Using part of Gnash's testsuite as a rough benchmark, the binaries that Clang produces are still significantly slower than GCCs. I'm looking forward to seeing improvements here.

Antworten

  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.

Weitere Informationen über Formatierungsoptionen

CAPTCHA
Diese Frage prüft, ob Sie ein Mensch sind und kein Bot, um Spam vorzubeugen.
Bild-CAPTCHA
Enter the characters shown in the image.