I'm building some new binaries for Windows (groovy.exe, groovyConsole.exe,
etc) and am looking for some folks to test and code review it.  Their
temporary home is here: https://github.com/keeganwitt/groovy-binaries.
After I've incorporated any feedback I get, I'll transfer it to a repo
under the groovy org on Github (haven't decided yet whether that should be
groovy-windows-installer
<https://github.com/groovy/groovy-windows-installer> or
groovy-native-launcher <https://github.com/groovy/groovy-native-launcher>).

To make it easy to test, you can download the compiled binaries from here (
https://drive.google.com/folderview?id=0B_uOQFeu84v0TDVkS00xeE5yNHc&usp=sharing)
and put them in your current Groovy installation (whether from zip or
installer).

The overall approach is to have an exe that calls the matching .bat file.
This approach was to avoid a few things I didn't like about the current
binaries, namely
Windows installer determines 32 or 64 bit version of Java at install time
and installs the appropriate groovy.exe, but if you change your Java
version later, exe won't be able to run Groovy because it won't be able to
find right Java to invoke.
Binaries have their own logic to find Java, which adds unnecessary
complexity since the batch files maintained by the Groovy team already have
this logic.
Parameters are hard-coded into the binaries, coupling any change in
parameters between Groovy versions to that binary.
I'm not a Windows or C++ guy, so there are some things I'd like somebody's
thoughts on:
Am I following best practices in C++ source and Makefile?
Would it be better to have wmain() instead of main()?
Any better way to have done resource templating other than* sed*?
Would there be a reason to have chosen C over C++?
Any non-ASCII character hangups?
Running groovy.exe 象.groovy 象 seemed to invoke and pass argument in fine,
but it printed the arg as a question mark.  Although the current binaries
binaries do the same thing, so maybe it's a limitation of* cmd.exe*.
Does my strategy of passing args from exe to bat have any edge cases to
worry about with the use of system() and CreateProcess()?

-Keegan

Reply via email to