GEOSoft Posted January 3, 2010 Posted January 3, 2010 Just uploaded a new Beta v 2.0.1.13: When run in an X64 OS the output script will default to an X64 Compiled script. When run in an X86 OS the output script will default to an X86 Compiled script. Jos Are you sure this even needs defaults? Perhaps just the options would be better. Just because I'm working on an x64 system, it doesn't always follow that I want it compiled for x64 or even run in an x64 mode. As a matter of fact I personally never use x64 simply because most user systems that the compiled file will run on are x86 systems. George Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.*** The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number. Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else. "Old age and treachery will always overcome youth and skill!"
Developers Jos Posted January 3, 2010 Author Developers Posted January 3, 2010 (edited) Are you sure this even needs defaults? Perhaps just the options would be better. Just because I'm working on an x64 system, it doesn't always follow that I want it compiled for x64 or even run in an x64 mode. As a matter of fact I personally never use x64 simply because most user systems that the compiled file will run on are x86 systems.What I am trying here is to have it follow the AutoIt3 Standards. This made me think that I really should test for the used AutoIt3 software version to set the default.... right? Edited January 3, 2010 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 4, 2010 Posted January 4, 2010 (edited) I think you mistakenly removed this line from line 982, which breaks the manifest: FileWriteLine($hTempFile2, ' <requestedPrivileges>') So the whole block would be: FileWriteLine($hTempFile2, ' <!-- Identify the application security requirements. -->') FileWriteLine($hTempFile2, ' <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">') FileWriteLine($hTempFile2, ' <security>') FileWriteLine($hTempFile2, ' <requestedPrivileges>') FileWriteLine($hTempFile2, ' <requestedExecutionLevel') FileWriteLine($hTempFile2, ' level="' & $INP_RES_requestedExecutionLevel & '"') FileWriteLine($hTempFile2, ' uiAccess="false"') FileWriteLine($hTempFile2, ' />') FileWriteLine($hTempFile2, ' </requestedPrivileges>') FileWriteLine($hTempFile2, ' </security>') FileWriteLine($hTempFile2, ' </trustInfo>') Other than that, I agree with the changes to follow AutoIt's standards about compiling x86 vs x64. Edited January 4, 2010 by wraithdu
wraithdu Posted January 4, 2010 Posted January 4, 2010 Something weird is going on. I just updated to AutoIt 3.3.3.0, and now I can't compile anything with a v3.3.3.0 compiled version of AI3Wrapper. I'm getting a program crash on the line that actually runs aut2exe. So far I can't figure exactly what's going on or write a simple reproducer script. Maybe you can take a look as well?
Valik Posted January 4, 2010 Posted January 4, 2010 It could be file reading/writing code. Jon has done tons of work in that area.
Developers Jos Posted January 4, 2010 Author Developers Posted January 4, 2010 I think you mistakenly removed this line from line 982, which breaks the manifest: FileWriteLine($hTempFile2, ' <requestedPrivileges>') So the whole block would be: FileWriteLine($hTempFile2, ' <!-- Identify the application security requirements. -->') FileWriteLine($hTempFile2, ' <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">') FileWriteLine($hTempFile2, ' <security>') FileWriteLine($hTempFile2, ' <requestedPrivileges>') FileWriteLine($hTempFile2, ' <requestedExecutionLevel') FileWriteLine($hTempFile2, ' level="' & $INP_RES_requestedExecutionLevel & '"') FileWriteLine($hTempFile2, ' uiAccess="false"') FileWriteLine($hTempFile2, ' />') FileWriteLine($hTempFile2, ' </requestedPrivileges>') FileWriteLine($hTempFile2, ' </security>') FileWriteLine($hTempFile2, ' </trustInfo>') Other than that, I agree with the changes to follow AutoIt's standards about compiling x86 vs x64. Fixed the manifest and uploaded a new version to the Beta dir. thanks SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 4, 2010 Posted January 4, 2010 Cool. I removed my posts about the crash. The bug in AutoIt is found / fixed / awaiting new beta release.
Developers Jos Posted January 4, 2010 Author Developers Posted January 4, 2010 I'm very very lost. I cannot for the life of me figure out why a v3.3.3.0 compiled AI3Wrapper is crashing when trying to run any script. Line 1229 is where the script is actually run when pressing F5 in Scite. Inserting a ConsoleWrite() before that line is ok and shows in the Scite output, but trying a MsgBox() crashes AI3Wrapper. Something has changed from AutoIt 3.3.2.0, but I can't figure it out to save my life right now.And I cannot put together a reproducing script either. I can only get the crash from a v3.3.3.0 AI3Wrapper. Jos, I hope you have some ideas cause I'm lost right now.Looking at it to see if I can make any sense out of iit here... I do get the crash. Actually also happens when AU3check give the popup with errors and you say stop.The Window even doesn't show both buttons unless I hover over the Continue button. weird... SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 4, 2010 Posted January 4, 2010 Don't worry, it's an AutoIt bug. Read the beta thread for more info. I was finally able to come up with a reproducer script, and Valik found and fixed the bug. Just waiting for the fixed release.
Developers Jos Posted January 4, 2010 Author Developers Posted January 4, 2010 Ok, this script does a hardcrash when run with Win7 X64 autoit3 3.3.3.0: #include <Constants.au3> $Pid = Run(@ComSpec & ' /c dir *', '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) $Return_Text = ShowStdOutErr($Pid) ;~ StdioClose($Pid) MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$Return_Text' & @lf & @lf & 'Return:' & @lf & $Return_Text) ;### Debug MSGBOX ; ; Func ShowStdOutErr($l_Handle, $ShowConsole = 1) Local $Line, $tot_out, $err1 = 0, $err2 = 0 Do Sleep(10) $Line = StdoutRead($l_Handle) $err1 = @error $tot_out &= $Line $Line = StderrRead($l_Handle) $err2 = @error $tot_out &= $Line Until $err1 And $err2 Return $tot_out EndFunc ;==>ShowStdOutErr My guess is that this is also why AutoIt3Wrapper crashes. Had a long day with many "challanges" so do not know if I will be able to spend much more time on it today... SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Developers Jos Posted January 4, 2010 Author Developers Posted January 4, 2010 Don't worry, it's an AutoIt bug. Read the beta thread for more info. I was finally able to come up with a reproducer script, and Valik found and fixed the bug. Just waiting for the fixed release....and you tell me this now .... great SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Developers Jos Posted January 4, 2010 Author Developers Posted January 4, 2010 I said it up there in post #147 too... My only comfort now is that it took me only 15 minutes to strip it down to a couple of lines. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 4, 2010 Posted January 4, 2010 Heh, I was screwing with it for hours last night... :/
wraithdu Posted January 5, 2010 Posted January 5, 2010 Beta 3.3.3.1 seems good to go, no more crashes.
Developers Jos Posted January 5, 2010 Author Developers Posted January 5, 2010 (edited) Great. So back to the topic raised last: What defaults to use in AutOit3Wrapper for x84 / x86 when nothing is specified? Oppinions welcome. I guess I really should use the registry settings from the run / compile settings for .au3 files, and only specify the /x86 or /x64 when excplicitly specified. Edited January 5, 2010 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 5, 2010 Posted January 5, 2010 (edited) Well, I think in all cases AI3Wrapper should use the platform specific compiler, ie use aut2exe_x64.exe on x64, and aut2exe.exe on x86. If the #AutoIt3Wrapper_UseX64 directive is missing, it should compile to match the platform, ie do not specify /x86 or /x64. If UseX64=y on x86, then specify /x64 to aut2exe.exe. If UseX64=n on x64, then specify /x86 to aut2exe_x64.exe. Simple enough? This is exactly how it operates now, if I'm not mistaken, and it seems very predictable to me. Edited January 5, 2010 by wraithdu
Developers Jos Posted January 5, 2010 Author Developers Posted January 5, 2010 (edited) Well, I think in all cases AI3Wrapper should use the platform specific compiler, ie use aut2exe_x64.exe on x64, and aut2exe.exe on x86. If the #AutoIt3Wrapper_UseX64 directive is missing, it should compile to match the platform, ie do not specify /x86 or /x64.If UseX64=y on x86, then specify /x64 to aut2exe.exe. If UseX64=n on x64, then specify /x86 to aut2exe_x64.exe.Simple enough? This is exactly how it operates now, if I'm not mistaken, and it seems very predictable to me.That is why I coded it this way but when reading George's post I was reminded about the fact that the AutoIt3 installer prompts you for which version of AutoIt3 to use by default. This means in my mind that when somebody with an X64 OS elects to use the X86 AutoIt3 programs by defaults the wrapper should also do so , moreover the default output EXE´s will be X86. I am honestly not too worried about which aut2exe version is used, but more about which BIN is included in the output program!Jos Edited January 5, 2010 by Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
wraithdu Posted January 5, 2010 Posted January 5, 2010 Yeah, I don't think it matters which aut2exe is used, as the absence or presence of /x86 | /x64 will determine which BIN is used. I think that part should follow the platform. If you wish to honor the installer flags, that's cool. More importantly though, regardless of how you choose the default platform, the UseX64 directive should override everything both at compile time and when running the script via F5 with the proper version of AutoIt3[_x64].exe. At the same time, running via F5 should follow the same defaults as you choose for compiling in the absence of the UseX64 directive. It still irks me that F5 on x64 runs AutoIt3_x64.exe regardless. Bottom line, running via F5 and compiling should use the same x86 | x64 platform.
Developers Jos Posted January 5, 2010 Author Developers Posted January 5, 2010 Yeah, I don't think it matters which aut2exe is used, as the absence or presence of /x86 | /x64 will determine which BIN is used. I think that part should follow the platform. If you wish to honor the installer flags, that's cool. More importantly though, regardless of how you choose the default platform, the UseX64 directive should override everything both at compile time and when running the script via F5 with the proper version of AutoIt3[_x64].exe. At the same time, running via F5 should follow the same defaults as you choose for compiling in the absence of the UseX64 directive. It still irks me that F5 on x64 runs AutoIt3_x64.exe regardless. Bottom line, running via F5 and compiling should use the same x86 | x64 platform. Already saw that F5 issue yesterday and have it noted to follow the same rules whatever we decide to use. Agree that the default only applies when there is no UseX64 present, else it will follow what the directive states. Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past.
Recommended Posts