6 posts in this topic
Okay, this is exciting.
I'm proud to introduce CompileIt - an experimental compiler, that allows to compile AutoIt to machine code.
...Kind of. CompileIt does compilation in a similar way the Glasgow Haskell compiler does: translates the code into a lower-level language (in CompileIt's case it's C), and then compiles the code in that language.
Now, this project is still in its infancy, since, although it is simple to use, AutoIt is incredibly complex on the inside (automation, COM, etc.). So, CompileIt can compile only a very small subset of what we know as AutoIt.
Here's a list of things CompileIt (partially) supports (or not):
Numbers, booleans, strings Some built-in functions If, For and While statements Exporting DLL functions (you can now write DLL's in AutoIt, guys!) No arrays, automation, GUI or COM. A more detailed list is included with CompileIt.
GCC is required to compile scripts. After you extract the files, run CompileIt.exe and configure it to work with GCC.
Make sure you have GCC installed and configured within CompileIt before using.
This is my modification of the editor based on SciTE 220.127.116.11. Too many changes are made. Added new plugins (.lua) and rewrited existing, added Toolbar and Sidebar, expanded main and context menu, and more... I will not list all the changes, just download and try it.
I also want to say a big thank the staff of Ru-Board for the excellent work on the modification of the editor and writing great plugins (.lua).
Compiler Wrapper (CW) - a new tool that is part of SciTE 18.104.22.168 and designed to replace the AutoItWrapper. CW only works with "pragma" directives and does not use "AutoIt3Wrapper" directives. CW differs from AutoItWrapper both externally and internally but has a similar logic. Here are some possibilities utility - more friendly GUI, all options of "pragma" directives are located in one window, the ability to add digital signature, and a simple way to add resources (.rcs and .res files). The current version of CW is compatible with AutoIt 3.3.10.x, 3.3.12.x, and 3.3.14.x.
How to install?
Unpack CW to Compiler Wrapper folder and copy it to your SciTE or SciTE\Tools directory. Note that if you download SciTE 22.214.171.124 then you need not do anything because CW is already installed in the package.
Command lines for SciTE:
#Command line for compilation command.compile.au3="$(SciteDefaultHome)\Compiler Wrapper\CW.exe" "$(FilePath)" /m:1 /c:0 command.compile.subsystem.au3=1 #Command line for building (without GUI) command.build.au3="$(SciteDefaultHome)\Compiler Wrapper\CW.exe" "$(FilePath)" /m:1 /c:0 /s:1 command.build.subsystem.$(au3)=1 #Command line for changing "pragma" options only command.90.au3="$(SciteDefaultHome)\Compiler Wrapper\CW.exe" "$(FilePath)" /m:2 command.name.90.au3=Compiler Options... command.shortcut.90.au3=Shift+F7 command.subsystem.90.au3=1 command.save.before.90.au3=1
Command lines for Windows Explorer context menu:
;Command line for compilation "C:\Program Files (x86)\SciTE\Tools\Compiler Wrapper\CW.exe" "%1" /m:0 /c:0 ;Command line for building (without GUI) "C:\Program Files (x86)\SciTE\Tools\Compiler Wrapper\CW.exe" "%1" /m:0 /c:0 /s:1
Files to download
You can download latest SciTE build on this page (bottom of the post) or by using the SciTE Updater.
I am running the latest version of Autoit 126.96.36.199 and the lasted version of the SciTE. I am trying to figure out how I can get the file version to show when I compile a script. I have used SciTE and Aut2exe and the result is same. The compiled exe shows file version 0.0.0.0 whereas, prior to 3.3.10.x (3.3.8.X) when the script was compiled the exe file would show the correct (autoit) file version.
I am attaching 2 screenshot that will show what I am talking about. I have used various commands like #AutoIt3Wrapper_Res_Fileversion=188.8.131.52, #Autoit3wrapper_Res_Version=184.108.40.206, each with no luck. Any help would be greatly appreciated.