| View previous topic :: View next topic |
| Author |
Message |
Chris Site Admin
Joined: 02 Mar 2004 Posts: 10716
|
Posted: Wed Feb 25, 2009 10:41 pm Post subject: v1.0.48 released: Runs up to 3x as fast. Adds while-loop. |
|
|
Here are the changes for v1.0.48:
Compatibility: The change most likely to affect backward compatibility is that floating point numbers stored in variables now have higher precision. Scripts that rely on tiny differences in precision would either need to be reviewed and updated, or have their compatibility improved by using "SetFormat Float" (e.g. SetFormat, Float, 0.6) anywhere in the script. "SetFormat Float" disables the higher precision, but gives up some of the new, faster floating point performance.
Performance: The main theme of this release is faster performance. Almost all scripts should run faster -- especially those that make heavy use of expressions and integer math/comparisons (which may run up to three times as fast). To achieve the full benefit, a script either should avoid using SetFormat or should use SetFormat's fast mode.
Performance improvements
Expressions and function calls are compiled more heavily, making them much faster (especially complex integer expressions, including those with commas).
Binary numbers are cached for variables to avoid conversions to/from strings. This makes numerical operations involving variables much faster.
Literal integers in expressions and math/comparison commands are replaced with binary integers, which makes them faster; e.g. X+5 and "if x > 5".
LOOPs, IFs, and ELSEs that have blocks (braces) are faster due to skipping the opening '{'. A side-effect is that the '{' is omitted from ListLines.
Thread-creation performance is improved, which should help rapid-fire threads in OnMessage(), RegisterCallback(), and GUI events.
Changes that might affect existing scripts (other than higher-precision floating point described at the top)
When "SetFormat, Integer, Hex" is in effect, assigning a literal decimal integer to a variable also converts it to hex. Usually this is only a display issue.
For OnMessage() performance, the message number and HWND arrive as standard numbers rather than appearing unconditionally as hex. Usually this is only a display issue.
To achieve various improvements in performance, scripts now use slightly more memory (proportionate to the number of variables and expressions).
Changed and fixed "if var is time" and other uses of YYYYMMDDHHMISS date-time stamps to recognize that months outside the range 1-12 are invalid. [thanks Nick]
Changed and improved dynamic function calling to allow passing more parameters than defined by a function, in which case the parameters are evaluated but discarded. [developed by Lexikos]
Other improvements
Added function IsFunc(), which indicates whether a function may be called dynamically. [developed by Lexikos]
Added the while-loop, which repeats its commands until its expression evaluates to false. [developed by Lexikos]
Added an assume-static mode for functions. [developed by Lexikos]
Added built-in variables A_IsPaused and A_IsCritical. [developed by Lexikos]
Improved NumPut() to support UInt64 like DllCall(). [thanks Sean]
Improved mouse wheel support by adding WheelLeft and WheelRight as hotkeys and supporting them in Send, Click, and related commands. However, WheelLeft/Right has no effect on operating systems older than Windows Vista. [developed by Lexikos]
Upgraded compiled script compressor from UPX 3.00 to 3.03.
Fixes
Fixed inability to use MsgBox's timeout parameter when the "Text" parameter had an expression containing commas.
Fixed "Menu, Delete, Item-that's-a-submenu" not to disrupt the associated submenu. [thanks animeaime & Lexikos]
Fixed the GUI Hotkey control to return usable hotkey names even for dead keys (e.g. "^" instead of Zircumflex). [thanks DerRaphael]
Fixed RegDelete so that it won't delete an entire root key when SubKey is blank. [thanks Icarus]
Fixed registry loops to support subkey names longer than 259 (rare). In prior versions, such subkeys would either be skipped or cause a crash. [thanks Krzysztof Sliwinski & Eggi]
Fixed FileSelectFolder by providing an option to make it compatible with BartPE/WinPE. [thanks markreflex]
Fixed window/control IDs (HWNDs), which in rare cases wrongly started with 0xFFFFFFFF instead of just 0x. [thanks Micahs]
Fixed inability of Send commands to use the Down/Up modifiers with the "}" character. [thanks neovars] |
|
| Back to top |
|
 |
SoggyDog
Joined: 02 May 2006 Posts: 783 Location: Greeley, CO
|
|
| Back to top |
|
 |
jaco0646
Joined: 07 Oct 2006 Posts: 3113 Location: MN, USA
|
Posted: Wed Feb 25, 2009 11:45 pm Post subject: |
|
|
Ditto!
Edit: Is there a reason for the different syntax style of the While-Loop, as opposed to | Code: | | Loop, While, Expression | ...like the other loop commands? |
|
| Back to top |
|
 |
Krogdor
Joined: 18 Apr 2008 Posts: 1390 Location: The Interwebs
|
Posted: Thu Feb 26, 2009 12:28 am Post subject: |
|
|
Great job, Chris! Not only a speed update but also quite a few good features from Lexikos' branch of AHK.
The only other thing from Lexikos' that I wish was in this one is the #If hotkey modifier, but it's still very nice to see an official update  |
|
| Back to top |
|
 |
Chris Site Admin
Joined: 02 Mar 2004 Posts: 10716
|
Posted: Thu Feb 26, 2009 12:50 am Post subject: |
|
|
| jaco0646 wrote: | Is there a reason for the different syntax style of the While-Loop, as opposed to | Code: | | Loop, While, Expression | ...like the other loop commands? | The main reason is that a simple While is used in many other languages, which cuts down the learning curve when going to or coming from other languages.
| Krogdor wrote: | The only other thing from Lexikos' that I wish was in this one is the #If hotkey modifier, but it's still very nice to see an official update  | Hopefully that and some of the other features will be added in the next major release, or maybe a sooner, minor one. |
|
| Back to top |
|
 |
tank
Joined: 21 Dec 2007 Posts: 3700 Location: Louisville KY USA
|
Posted: Thu Feb 26, 2009 1:50 am Post subject: |
|
|
| jaco0646 wrote: | Edit: Is there a reason for the different syntax style of the While-Loop, as opposed to | Code: | | Loop, While, Expression | ...like the other loop commands? | Actually i find this more apporpriate
than | Code: | | Loop, While, Expression | Tho i can see how your suggestion fits the rest of the ahk syntax scheme more.
but the syntax feels more natural comming from other languages _________________
We are troubled on every side‚ yet not distressed; we are perplexed‚
but not in despair; Persecuted‚ but not forsaken; cast down‚ but not destroyed; |
|
| Back to top |
|
 |
corrupt
Joined: 29 Dec 2004 Posts: 2485
|
Posted: Thu Feb 26, 2009 7:29 am Post subject: |
|
|
Thanks Time to play... |
|
| Back to top |
|
 |
fincs
Joined: 05 May 2007 Posts: 1160 Location: Seville, Spain
|
|
| Back to top |
|
 |
Sean
Joined: 12 Feb 2007 Posts: 2462
|
Posted: Thu Feb 26, 2009 12:05 pm Post subject: |
|
|
| Long awaited! All my scripts are now fully functional with the new build. |
|
| Back to top |
|
 |
Lexikos
Joined: 17 Oct 2006 Posts: 7295 Location: Australia
|
Posted: Thu Feb 26, 2009 1:42 pm Post subject: |
|
|
Thanks Chris. I've brought AutoHotkey_L in line with the new version.  |
|
| Back to top |
|
 |
toralf
Joined: 31 Jan 2005 Posts: 3910 Location: Bremen, Germany
|
Posted: Thu Feb 26, 2009 4:02 pm Post subject: |
|
|
Thank you Chris and Lexikos, much appreciated. _________________ Ciao
toralf  |
|
| Back to top |
|
 |
AnAHKUser
Joined: 05 Feb 2007 Posts: 27
|
Posted: Thu Feb 26, 2009 6:49 pm Post subject: |
|
|
Thank you! Much appreciated  |
|
| Back to top |
|
 |
Icarus
Joined: 24 Nov 2005 Posts: 851
|
Posted: Thu Feb 26, 2009 9:34 pm Post subject: Thanks a lot |
|
|
Chris,
Thanks a lot for this release and thanks for implementing the RegDelete fix.
I can sleep a little better now.
Even though I am not following the Lexikos branch, it is obvious that it has great contribution to the official build as well - so thanks a lot for that Lexikos.
AHK forever. (t-shirt? ) _________________ Sector-Seven - Freeware tools built with AutoHotkey |
|
| Back to top |
|
 |
David Andersen
Joined: 15 Jul 2005 Posts: 140 Location: Denmark
|
Posted: Fri Feb 27, 2009 9:57 am Post subject: |
|
|
| Great work Chris and Lexikos! Big thanks also to Sean, Nick, Icarus, DerRaphael, Animeaime, Markreflex, Krzysztof Sliwinski, Eggi, Micahs and Neovars for contributing! |
|
| Back to top |
|
 |
Tuncay
Joined: 07 Nov 2006 Posts: 1886 Location: Germany
|
Posted: Fri Feb 27, 2009 6:56 pm Post subject: |
|
|
| Thanks Chris, thats a great update. And thank you to Lexikos, who has developed some of the new elements like While Expression. |
|
| Back to top |
|
 |
|