| View previous topic :: View next topic |
| Author |
Message |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Sun Feb 14, 2010 9:46 am Post subject: IronAHK (alpha): cross platform .NET rewrite of AutoHotkey |
|
|
IronAHK is a complete rewrite of AutoHotkey in C# for .NET and Mono. It works like a real compiler by producing optimised bytecode. Since like Java, the .NET runtime is available on all operating systems, mobile devices and game consoles, compiled scripts will run the same everywhere without modification.
Download (nightly): Installer (x64), OS X Bundle, Binaries, Portable, Source
Any previous pre-release versions must be uninstalled first. The nightly versions contain the latest bleeding edge binaries built against the development source and should only be used for testing. Also see: releases, status, changelog.
Benefits to existing AutoHotkey users:
- All Unicode
- Runs natively as 32 bit or 64 bit depending on your hardware
- Write once, run everywhere - your same compiled scripts will run on every platform with a .NET compatible runtime
- No source code is attached to compiled assemblies, the resulting binary resembles nothing like your original syntax and cannot be decompiled
- Permissive BSD license, freely use any part in your commercial or closed source software
- Modular design means you can use the command library or host the script engine in your own applications
- Arrays and objects with JSON syntax
- An active and open development cycle
- ... and more!
Bugs and suggestions are welcome on our issue tracker.
Follow developments on twitter @ironahk or GitHub.
Same script running on Windows 7 and Xubuntu Karmic.
Finally, thanks to the following people for their help in this project:
- Tobias, the co-developer responsible for Unix ports and the CIL compiler
- IsNull for key contributions to the command library
- DerRaphael for testing and bug reports
- infogulch for many useful suggestions
- Chris from autokey for X11 advice
- Slav2Gruzdev for submitting patches with improvements to the command library
- Chris for AutoHotkey
Last edited by polyethene on Tue Oct 12, 2010 9:41 pm; edited 9 times in total |
|
| Back to top |
|
 |
HotKeyIt
Joined: 18 Jun 2008 Posts: 4652 Location: AHK Forum
|
Posted: Sun Feb 14, 2010 10:48 am Post subject: |
|
|
Hi Titan, thanks for your great work, this looks very promising
Are there any docs? Which commands do work and what is difference to original AHK? How to compile a script?
What compiler can I use to compile source code?
Would you like to receive feedback on bugs/problems in this thread? _________________ AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun 
Last edited by HotKeyIt on Sun Feb 14, 2010 11:20 am; edited 1 time in total |
|
| Back to top |
|
 |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Sun Feb 14, 2010 11:08 am Post subject: |
|
|
To run a script just drag and drop any file onto IronAHK.exe. At the moment you can only compile a script by command line, run IronAHK.exe /out compiled.exe script.ahk. In future versions there will be an installer with file associations and GUI compiler to make this easier.
Documentation of the commands is a priority for the 0.9 release and there isn't a list of what works and what doesn't, but you can find some information on http://www.ironahk.net/docs/commands/msgbox/ (replace msgbox with any command name).
Bug reports, suggestions and comments are more than welcome on this thread. _________________ GitHub • Scripts • IronAHK • Contact by email not private message. |
|
| Back to top |
|
 |
HotKeyIt
Joined: 18 Jun 2008 Posts: 4652 Location: AHK Forum
|
|
| Back to top |
|
 |
Tuncay
Joined: 07 Nov 2006 Posts: 1886 Location: Germany
|
Posted: Sun Feb 14, 2010 11:35 am Post subject: |
|
|
Sounds very good. The power of open source. Something we all wanted to have. GREAT. After DLL, Unicode, Lexikos additions we have finally cross platform version. Thanks and keep the work.
Would the code be executed faster or slower in general logic? Bytecode is halfwise interpreted. But Ahk do once compile full script in memory before execution. _________________ {1:"ahkstdlib", 2:"my libs", 3:"my apps", 4:"my license"}
--> Don't feed the troll! <-- |
|
| Back to top |
|
 |
IsNull
Joined: 10 May 2007 Posts: 593 Location: .switzerland
|
Posted: Sun Feb 14, 2010 1:12 pm Post subject: |
|
|
As there is currently no support for GUIs, its hard for me to find scripts for testing purposes.
I've written some examples; This one doesn't work;
| Code: |
loop, 10
{
res .= func(44,a_index) . "-"
}
msgbox % res
return
func(a,b){
return, a ** b
}
|
but, this works:
| Code: |
var := 33 ** 12
msgbox % var
|
thanks for your hard work  _________________ http://securityvision.ch
AHK 2D GAME ENGINE |
|
| Back to top |
|
 |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Sun Feb 14, 2010 8:12 pm Post subject: |
|
|
| HotKeyIt wrote: | | SetBatchLines seems to have no effect. | I marked SetBatchLines as an obsolete command because I saw no compelling reason to have artificial delays between every line. Using sleeps and changing process priority gives more precise control of CPU usage. It also poses a design challenge, in AutoHotkey each line is executed one by one but in IronAHK every token is converted to bytecode with no reference to their originating line number; consequently, A_LineFile and A_LineNumber are also unsupported. The long term plan is to replace these with more useful debugging features and real threading with asynchronous background workers.
| HotKeyIt wrote: | Crashes when invalid command specified.
"`n" does not produce new line. | Thanks, both bugs will be fixed in the next release.
| Tuncay wrote: | | Would the code be executed faster or slower in general logic? | At the moment the compiler does no optimisations whatsoever, so your code may perform equally or even slower than AutoHotkey. In my preliminary tests with full optimisation IronAHK can perform arithmetic operations 35-40x faster than AutoHotkey.
| IsNull wrote: | | As there is currently no support for GUIs, its hard for me to find scripts for testing purposes. | Sorry, I should have put more emphasis on documenting broken or unsupported commands. I will make this a priority for the next release so everyone knows what scripts they can and cannot use, just until version 1.0 is ready.
| IsNull wrote: | | I've written some examples; This one doesn't work; | Both examples work for me, Tobias tested them too and said it gives the expected results. _________________ GitHub • Scripts • IronAHK • Contact by email not private message. |
|
| Back to top |
|
 |
IsNull
Joined: 10 May 2007 Posts: 593 Location: .switzerland
|
Posted: Mon Feb 15, 2010 9:47 pm Post subject: |
|
|
| Quote: |
Both examples work for me, Tobias tested them too and said it gives the expected results. |
I tried again, and it succedes... Actually, I have no idea why it works now and yesterday not. It failed every time, and it was exactly the same source... also other scripts were working as well, but this one not.
strange. _________________ http://securityvision.ch
AHK 2D GAME ENGINE |
|
| Back to top |
|
 |
newuser
Joined: 30 Dec 2009 Posts: 6
|
Posted: Tue Feb 16, 2010 4:14 am Post subject: |
|
|
Titan,
Can I know which version of dotnet framework is supported in IronAHK since Im currently using framework 2.0sp1 but the compiler came out with a blank box window if I drag the scite testsuite.ahk script into it.  |
|
| Back to top |
|
 |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Tue Feb 16, 2010 9:47 am Post subject: |
|
|
.NET 2.0 or greater is the requirement, so what you have is fine. The problem you are describing is a bug which has been fixed for the next version. _________________ GitHub • Scripts • IronAHK • Contact by email not private message. |
|
| Back to top |
|
 |
tic
Joined: 22 Apr 2007 Posts: 1786
|
Posted: Tue Feb 16, 2010 11:48 am Post subject: |
|
|
This script doesnt work for me:
| Code: | Loop, % -1+3
MsgBox, %A_Index% |
|
|
| Back to top |
|
 |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Tue Feb 16, 2010 12:16 pm Post subject: |
|
|
| tic wrote: | | This script doesnt work for me: |
Thanks, fixed in 9cd748d2. The parser was confused between binary subtract and unary minus operators. _________________ GitHub • Scripts • IronAHK • Contact by email not private message. |
|
| Back to top |
|
 |
tic
Joined: 22 Apr 2007 Posts: 1786
|
Posted: Tue Feb 16, 2010 12:28 pm Post subject: |
|
|
| Good work sir. You gonna remove the black window, or keeping that for the time being for debugging? |
|
| Back to top |
|
 |
polyethene
Joined: 11 Aug 2004 Posts: 5248 Location: UK
|
Posted: Tue Feb 16, 2010 12:51 pm Post subject: |
|
|
I am so used to working in command line I had actually forgot about that, but thanks for reminding me, it will be removed in v0.7. _________________ GitHub • Scripts • IronAHK • Contact by email not private message. |
|
| Back to top |
|
 |
jethrow
Joined: 24 May 2009 Posts: 1907 Location: Iowa, USA
|
Posted: Tue Feb 16, 2010 2:21 pm Post subject: |
|
|
I noticed the following about MsgBox: | Code: | MsgBox, 0, Title, Message ; diplays msgbox with no title, and the message is the first param ( 0 )
MsgBox, 0, Title, Message, 1 ; displays correctly, but doesn't timeout
MsgBox, 0, , Message, 1 ; displays msgbox with no title - should default to script name |
Thanks again for the work! _________________
- in case I forgot to smile
Basic Webpage Controls
COM Object Reference
Last edited by jethrow on Tue Feb 16, 2010 2:51 pm; edited 1 time in total |
|
| Back to top |
|
 |
|