GEOSoft Posted May 27, 2011 Share Posted May 27, 2011 Can we hold up for a day Jon? Something has definitly broken and I want to backtrack to see where it happened. I'm not sure if it's in AutoIt or in Scite nor do I know in what beta version it happened. Everything has been fine with test scripts and any other small scripts I tried but when I got to testing the PCRE Toolkit I ran into a major issue. Not only will it not Run under Scite it won't compile either. Since there are no script breaking changes listed I will have to start going back to previous versions of the beta and see if I can find out when it happened and then try to see what is happening. It will be 3 or 4 hours before I can even start on that part. 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!" Link to comment Share on other sites More sharing options...
ProgAndy Posted May 27, 2011 Share Posted May 27, 2011 Yes, bug in the testscript. @jchd: Thanks for the script, now my nested DLLStructs are corrected, too. *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
GEOSoft Posted May 27, 2011 Share Posted May 27, 2011 Okay, I took a few minutes away from service to check this. The Beta isn't what is directly causing my problem. It is however causing a problem in one file that is #Included in my code. I still don't know why it tried to compile the Beta version and just hung up in the middle and went no place. I had to force the compile (through Scite) to close with End Process. Also Just an FYI; I have to look at why my processor usage went up to about 90% on 2 of my cores after I forced the process to close but that is probably not AutoIt related. It's just never happened with anything before now. @jchd The problem file is one of yours. Get hold of me on IM when you get a chance and I'll give you the details. I probably won't be back here for a while so better with the IM. 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!" Link to comment Share on other sites More sharing options...
Ascend4nt Posted May 27, 2011 Share Posted May 27, 2011 3.3.7.3 crashes on parsing a (meaningless) align directive at the end of a struct: [autoit]Local $s5 = DllStructCreate("int; STRUCT; short; char; align 1; ENDSTRUCT; char") Interesting, I just found align on its own or at the end of the string causes crashes on the production v3.3.6.1 as well as the latest betas. The following strings crash AutoIt (adding ';' after align doesn't help):"align 4" "align 4;dword;byte;align 2" My contributions: Performance Counters in Windows - Measure CPU, Disk, Network etc Performance | Network Interface Info, Statistics, and Traffic | CPU Multi-Processor Usage w/o Performance Counters | Disk and Device Read/Write Statistics | Atom Table Functions | Process, Thread, & DLL Functions UDFs | Process CPU Usage Trackers | PE File Overlay Extraction | A3X Script Extract | File + Process Imports/Exports Information | Windows Desktop Dimmer Shade | Spotlight + Focus GUI - Highlight and Dim for Eyestrain Relief | CrossHairs (FullScreen) | Rubber-Band Boxes using GUI's (_GUIBox) | GUI Fun! | IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) | Magnifier (Vista+) Functions UDF | _DLLStructDisplay (Debug!) | _EnumChildWindows (controls etc) | _FileFindEx | _ClipGetHTML | _ClipPutHTML + ClipPutHyperlink | _FileGetShortcutEx | _FilePropertiesDialog | I/O Port Functions | File(s) Drag & Drop | _RunWithReducedPrivileges | _ShellExecuteWithReducedPrivileges | _WinAPI_GetSystemInfo | dotNETGetVersions | Drive(s) Power Status | _WinGetDesktopHandle | _StringParseParameters | Screensaver, Sleep, Desktop Lock Disable | Full-Screen Crash Recovery Wrappers/Modifications of others' contributions: _DOSWildcardsToPCRegEx (original code: RobSaunder's) | WinGetAltTabWinList (original: Authenticity) UDF's added support/programming to: _ExplorerWinGetSelectedItems | MIDIEx UDF (original code: eynstyne) (All personal code/wrappers centrally located at Ascend4nt's AutoIT Code) Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 27, 2011 Author Administrators Share Posted May 27, 2011 Yeah, fixed in my working copy Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Richard Robertson Posted May 27, 2011 Share Posted May 27, 2011 Can anyone out there give me a good reason for structures to change alignment part of the way through? While on that topic, why are structures padded anyway? Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 27, 2011 Author Administrators Share Posted May 27, 2011 Can anyone out there give me a good reason for structures to change alignment part of the way through?None really. 99.9999% of the winapi structures are at default alignment. But all these weird tests at least give me the confidence that our padding logic is correct.When a modern computer reads from or writes to a memory address, it will do this in word sized chunks (e.g. 4 byte chunks on a 32-bit system). Data alignment means putting the data at a memory offset equal to some multiple of the word size, which increases the system's performance due to the way the CPU handles memory. To align the data, it may be necessary to insert some meaningless bytes between the end of the last data structure and the start of the next, which is data structure padding. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Valik Posted May 27, 2011 Share Posted May 27, 2011 Jon, remember to use A_01_configure_build_settings to update the versions. It looks like Au3Check had a manual change. Also for some reason the change to 3.3.7.4 didn't happen for all the files. Not sure if this was an issue with the script, with you not using the script or some other working copy weirdness that prevented the changes from getting committed. Previous version changes appear to have gone okay so I assume you are using the script at least some of the time. Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 27, 2011 Author Administrators Share Posted May 27, 2011 Yeah, I always use the script. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Valik Posted May 27, 2011 Share Posted May 27, 2011 Yeah, I always use the script.Strange. Something definitely went wrong with the 3.3.7.4 change as you can see from one of my more recent commits. We can chalk the Au3Check one up to probably not having the right year set. Hopefully it was a one-time thing and not a bug in the script. Link to comment Share on other sites More sharing options...
trancexx Posted May 27, 2011 Share Posted May 27, 2011 Is it possible to change the syntax for the sake of forward compatibility to something like $sStruct = 'align 2;int;{double};byte' $stStr = DllStructCreate($sStruct) $sStruct = 'int;{ptr;int};byte' $stStr = DllStructCreate($sStruct)I can understand the need to have the simplest transition as possible with UDFs, but still. And it looks weird to me. Jokes aside, really. ♡♡♡ . eMyvnE Link to comment Share on other sites More sharing options...
jchd Posted May 27, 2011 Share Posted May 27, 2011 @Richard,Can anyone out there give me a good reason for structures to change alignment part of the way through?Because existing structs already in use in the wild may require it, either in files or memory-mapped I/O where cheating is out of question.I agree that you can just go with align 1 and insert padding with filler bytes yourself to model any existing struct, but doing so is not only very cumbersome and also prone to potentially serious errors even if you are cautious.I had once to create thousand of AutoIt structs with sometimes weird layout and I'd have liked to avoid inserting dummies everywhere.why are structures padded anyway?Struct arrays and nested structs often require padding, and sometimes with different packing sizes for inner struct(s). This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 28, 2011 Author Administrators Share Posted May 28, 2011 3.3.7.4 (28th May, 2011) (Beta) - Fixed: More DllStruct alignment fixes and crash. - Fixed: All VC10 Code Analysis warnings fixed. Check for subtle bugs. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
GEOSoft Posted May 28, 2011 Share Posted May 28, 2011 Just a general question about the Betas Is there any particular reason to have the Scite folder included in the Beta SFX files? Or in the Beta installer for that matter since it doesn't install without the release version if I remember correctly. As far as I know it will still use the version of Scite installed in the main AutoIt3 folder so having the extra one seems somewhat redundant. This only came to mind when I thought of sending a PM to Jos about something Scite related that I noticed while I was testing a script. 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!" Link to comment Share on other sites More sharing options...
Developers Jos Posted May 28, 2011 Developers Share Posted May 28, 2011 Just a general question about the BetasIs there any particular reason to have the Scite folder included in the Beta SFX files? Or in the Beta installer for that matter since it doesn't install without the release version if I remember correctly.As far as I know it will still use the version of Scite installed in the main AutoIt3 folder so having the extra one seems somewhat redundant.This only came to mind when I thought of sending a PM to Jos about something Scite related that I noticed while I was testing a script.This is only valid when you either have the Full version of SciTE4AutoIt3 installed or no changes were made to the lite version supplied with the production version of Autoit3. 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. Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 28, 2011 Author Administrators Share Posted May 28, 2011 We don't have separate zip commands for the beta/release so scite/lite just gets included by accident. It's not included in the installer though. Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 28, 2011 Author Administrators Share Posted May 28, 2011 Jon, remember to use A_01_configure_build_settings to update the versions. It looks like Au3Check had a manual change. Also for some reason the change to 3.3.7.4 didn't happen for all the files. Not sure if this was an issue with the script, with you not using the script or some other working copy weirdness that prevented the changes from getting committed. Previous version changes appear to have gone okay so I assume you are using the script at least some of the time.This just happened again. I'd accidentally used the x64 version of autoit to run it and it only half works. Arse.Edit: Specifically, it's not modifiying the .rc files.Edit2: Some function in "VersionSetByPath" must be failing as input and output are always identical. This will be fun to track down >.<Edit3: It works in the Prod version, that makes it a bit easier to find I guess.Edit4: Need to go out. Found that it occurs between revision 6011-6026 Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Valik Posted May 28, 2011 Share Posted May 28, 2011 Oooh, I've never tested any of those scripts as x64. At least we have a clue now, though. Link to comment Share on other sites More sharing options...
Administrators Jon Posted May 28, 2011 Author Administrators Share Posted May 28, 2011 Need to go out. Found that it occurs between revision 6011-6026 Deployment Blog: https://www.autoitconsulting.com/site/blog/ SCCM SDK Programming: https://www.autoitconsulting.com/site/sccm-sdk/ Link to comment Share on other sites More sharing options...
Valik Posted May 28, 2011 Share Posted May 28, 2011 Oh, so it's a bug in AutoIt itself in one of the betas that only happens with x64? In other words, AutoIt is broke, not the script. Link to comment Share on other sites More sharing options...
Recommended Posts