I will be moving to a new Dell Latitude D830 with 4GB of ram later this week. I had hoped to install the 64 bit version of Windows 7.
But before I do, I need to know if I can create 32-bit executables with PerlApp while running the 64-bit version of ActivePerl and PDK. Or, do I need to install the 32-bit version of ActivePerl and PDK on the 64-bit Windows 7 machine to create thee 32-bit executables with PerlApp.
I ask because almost all of our customers are running our software on 32-bit Windows and I will need to compile our programs for them, not for my own use on my 64-bit platform.
Please respond because I need to make a decision of which version of Windows 7 and which version of ActivePerl and PDK to install on my new machine as I hope to move all of my development to it this weekend.
Thanks,
Dale
No ActiveState products are supported on Windows 7 yet. By six months following the official release date of Windows 7, all ActiveState products in commercial release at that time will support Windows
7. In practice we will have supported releases much sooner than that, and they will appear as each product updates. Current products will not be back-certified.
PDK 8 can cross-compile. You can build 64-bit Windows binaries on 32-bit systems and vice-versa. PDK 7 can't cross compile. A 32-bit PDK 7 will only build 32-bit binaries and a 64-bit PDK 7 will only build 64-bit.
Even with PDK 8, you do still need to match your "native" ActivePerl and your PDK, so a 64-bit PDK must have a 64-bit ActivePerl as the native Perl and 32-bit PDK must have 32-bit ActivePerl native. PDK 8 handles cross-compiling by downloading a foreign Perl (but not until a build for that platform is requested) through the PPM system, so it helps to have internet access.
There are still some differences in content between the 32-bit and 64-bit versions of ActivePerl and PDK. Some ActivePerl extensions (including PerlEx, PerlIS, and PerlScript) are 32-bit only, as are PDK tools PerlNET, PerlMSI, and the PDK Perl Debugger.
I'll be moving to Windows 7 64-bit and too am interested in compiling both 32-bit and 64-bit versions of my code.
When you say 'match your "native" ActivePerl and your PDK' does that mean I should install both the 32-bit and 64-bit version of Perl (5.10) or do I just need the 32-bit (or 64-bit) version of PDK 8? And then how do I go about matching - not sure if you mean I need to adjust some pathing at a DOS prompt or based on what directory I'm running the PDK out of it will know what version of Perl I'm using.
I took a quick look at the PDK docs but didn't see anything specific in there about specifying 32-bit vs. 64-bit. I've used it for quite some time but this is the first time I've looked into compiling for 64-bit.
Also - what about perlctrl and perlnet? Can they compile for both 32-bit and 64-bit?
Thanks,
Mike
Mike,
Wanted to let you know that I wound up running 64-bit Perl 5.10.1.1006 and 64-bit PDK.
The reason. I initially installed 32-bit Perl and PDK on the 64-bit machine. So I could compile the 32-bit apps for our customers. But, when I did this I quickly discovered that my DBI ODBC routines which I use extensively would not work because of an architecture mismatch between the Perl ODBC libraries and the ODBC setup on the 64-bit machine.
So, I uninstalled and re-installed 64-bit Perl and 64-bit PDK. Everything runs fine. I just need to move my source over to my old (almost failing, XP machine) to compile my applications for our customers with 32-bit machines.
However, this move won't be required once the PDK 8.02 is released which is supposed to fix the cross compile bug that is supposed to be fixed in this release.
One other note. You cannot launch PDK 8.01 tools like PerlApp directly from Komodo 5.2 in the 64-bit world. But, I did discover a work around that has worked great. I go into the directory, select an existing ".perlapp" file, and do a right mouse and it give me the option to "Open with PDK ... something or other" This takes me right to the GUI whre I can change my version, comments and other information and compile and application. The 64-bit applications compiled in this manner run great on my Dell Latitude D830 running 64-bit Windows 7 RTM.
I sure wish PDK 8.02 would be released!
Hope this helps.
Thanks,
Dale
----
Dale L. Puckett
Brainworks Software
Wichita, KS 67205
Thanks Dale. That's good to know.
Have you had any issues with other DLLs? I installed perl 5.10.1 64-bit along with the 64-bit PDK. Specifically, I'm having a problem with libraries that are part of Win32 such as:
use Win32::OLE;
use Win32::TieRegistry( Delimiter=>"/", ArrayValues=>0 );
I just get errors like this:
Can't load 'C:/Perl64/site/lib/auto/Win32/OLE/OLE.dll' for module Win32::OLE: load_file:%1 is not a valid Win32 application at C:/Perl64/lib/DynaLoader.pm line 201.
Can't load 'C:/Perl64/site/lib/auto/Win32API/Registry/Registry.dll' for module Win32API::Registry: load_file:%1 is not a valid Win32 application at C:/Perl64/lib/DynaLoader.pm line 201. at C:/Perl64/site/lib/Win32/TieRegistry.pm line 26
Compilation failed in require at C:/Perl64/site/lib/Win32/TieRegistry.pm line 26.
BEGIN failed--compilation aborted at C:/Perl64/site/lib/Win32/TieRegistry.pm line 26.
I'm not sure if need to hunt down 64-bit versions of these or if there's a way around the problem. Now, if I run a copy of my code that's been compiled on a 32-bit machine in 64-bit, it runs fine, meaning it is loading these dll's.
Thanks,
Mike