ich habe bei meinem neuen PC mal die 6er Version mit dem Update installiert.
Leider kann ich meine Projekte nicht übersetzen, mit der 5.10.09 funktioniert es einwandfrei.
Es wird auch weiterhin im About Dialog das V6.00.05 angezeigt.
Thorsten
----------
Hello Merlin,
I have installed the 6 version with the update on my new PC.
Unfortunately I can't translate my projects, with 5.10.09 it works perfectly.
V6.00.05 is still displayed in the About dialogue.
The latest version is about 10% bigger than v5.10.
But I have to plead not guilty.
I have traced the issue right back to the version that Rolf gave me.
I had hoped that the version Rolf gave me would be the latest release but it was not so. I said so at the time, but Rolf told me it was all that he had and it "should be OK".
So I am sorry but it will be very difficult for me to fathom why Rolf did this, and therefore correct it.
This has caused some undesirable effects in multitasking - I am releasing the fix to that as v6.0.18
I have not had chance to compare the optimised versions yet, but I will.
On the subject of the Optimiser, there was a bug in the latest version - a fix is also included in v6.0.18
I am aware that the optimiser is very slow on a project this big, but you can speed that up a lot by not displaying the progress screen. This can be done by adding "-h" as a parameter to option 9 on the System Admin page:
...\MerlinOptimiser.exe %Proj -h
You can also use -sh for the smartlink only version (dead code removal but no other optimizing) or the fast version -fh which only goes through a single optimizer pass.
I am also including the VersionUpdater in v6.0.18.
Die neueste Version ist etwa 10 % größer als Version 5.10.
Aber ich muss auf nicht schuldig plädieren.
Ich habe das Problem bis zu der Version zurückverfolgt, die Rolf mir gegeben hat.
Ich hatte gehofft, dass die Version, die Rolf mir gegeben hat, die neueste Version sein würde, aber das war nicht der Fall. Ich sagte es damals, aber Rolf meinte, es sei alles, was er habe, und es „sollte in Ordnung sein“.
Es tut mir leid, aber es wird sehr schwer für mich sein, Rolfs Vorgehensweise zu verstehen und sie zu korrigieren.
Dies hat zu unerwünschten Effekten beim Multitasking geführt – ich veröffentliche den Fix dafür als Version 6.0.18.
Ich hatte noch keine Gelegenheit, die optimierten Versionen zu vergleichen, werde es aber tun.
Zum Thema Optimierer: In der neuesten Version gab es einen Fehler – ein Fix ist ebenfalls in Version 6.0.18 enthalten.
Mir ist bewusst, dass der Optimierer bei einem so großen Projekt sehr langsam ist. Sie können ihn jedoch deutlich beschleunigen, indem Sie den Fortschrittsbildschirm ausblenden. Dies erreichen Sie, indem Sie "-h" als Parameter zu Option 9 auf der Systemadministratorseite hinzufügen:
...\MerlinOptimiser.exe %Proj -h
Sie können auch -sh für die reine Smartlink-Version verwenden (Entfernung von totem Code, aber keine weitere Optimierung) oder die schnelle Version -fh, die nur einen einzigen Optimierungsdurchgang durchläuft.
Der Versionsupdater ist ebenfalls in Version 6.0.18 enthalten.
Weitere Informationen hierzu finden Sie im neuen Thread.
I have done some analysis on what is causing the increases the code size. Essentially it removes a weakness in v5.10. It must have been one of the last things Rolf worked on.
The issue it addresses is that just because a variable is defined as a boolean doesn't mean that it contains a boolean value. Boolean 'TRUE' is $FF and 'FALSE' is zero. But the actual content could also be any value in between, which can cause problems with logical operations, particularly 'AND'. TRUE and TRUE could evaluate as FALSE! A particularly common problem is if ABool = TRUE then which could behave incorrectly in v5.10 but would behave correctly in later versions.
The correct way do deal with it is to treat any non-zero value as TRUE and zero value as FALSE, and that is what the latest versions do and 5.10 does not.
Ich habe die Ursache für den größeren Code analysiert. Im Wesentlichen behebt es eine Schwachstelle in Version 5.10. Es muss eine der letzten Aufgaben von Rolf gewesen sein.
Das Problem besteht darin, dass eine Variable, nur weil sie als Boolean definiert ist, nicht unbedingt einen Boolean-Wert enthält. Boolean „TRUE“ ist $FF und „FALSE“ ist Null. Der tatsächliche Inhalt kann aber auch ein beliebiger Wert dazwischen sein, was zu Problemen mit logischen Operationen, insbesondere „AND“, führen kann. TRUE und TRUE könnten als FALSE ausgewertet werden! Ein besonders häufiges Problem ist if ABool = TRUE then, was in Version 5.10 zu fehlerhaftem Verhalten führen kann, in späteren Versionen jedoch korrekt.
Der korrekte Umgang damit besteht darin, jeden Wert ungleich Null als TRUE und jeden Nullwert als FALSE zu behandeln. Dies ist in den neuesten Versionen der Fall, in Version 5.10 jedoch nicht.
Note due to EU Cookie Law This page uses cookies to handle logins and unread markers. If you use this forum you allow that this page is storing cookies on your computer. To remove Cookies from this site just click on "Delete cookies of this forum" on the bottom of the page. You can find more infos in our Cookie Policy.