-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Strawberry Perl 32bit version #96
Comments
About #94 For example, the InstallShield 2022 automation interface is still 32-bit |
@AgostinoSturaro - the perlmonks node you link to is more than ten years old. Is it still correct? It might be that we can release a cut-down version for 32-bit. For example, there is no point releasing a 32 bit PDL version so that reduces the number of external libs that would need to be built. And it is the external libs that are the main sticking point. I'll give this some thought but without any promises for when. |
@shawnlaffan Yes, it is still valid, I found that page searching for an error we got when we tried to run InstallShield automation using 64-bit Perl. Moving to 32-bit (same distro and version) solved it. |
I think a 32 bit version may be necessary. I just tried to install IO::AIO with the newest portable 5.38 64 bit strawberry perl and got this install error:
Edit: It works under 5.28 64 bit portable, so maybe something to do with the higher versions, or changes in 64 bit handling since then? |
Newer GCC since back then... ? Maybe reach out to MLEHMANN to see if you can work with him on it? It's very hard to know what's going on in that particular author's dists since he doesn't use any public issue tracking system that I'm aware of. I see there was already an issue created on RT over 2 years ago: https://rt.cpan.org/Public/Bug/Display.html?id=138060 but there's no way to tell if anything was ever done with it. |
32-bit builds won't fix this. We switched to our own stat struct in 5.34 for the stat rewrite, since the MSVCRT/UCRT stat struct uses short for st_dev and st_ino. |
We still need a 32-bit version to run the InstallShield automation, which is 32-bit COM stuff. |
Which of the modules from strawberry perl's vendor/lib are required to run this "InstallShield automation" ? |
@sisyphus we need the 32-bit version of the
Here is an example The issue is that we can't use the 64-bit version of |
Out of curiosity, would not Wix or the MS Visual Studio Installer Project be easier to deal with at this point than the necessity for a 32-bit Perl for InstallShield? |
@genio Not sure what you mean. If you start from scratch, of course you can avoid Perl entirely. The problem is needing 32-bit |
If that's all you need, then I would certainly recommend that you build and install your own perl-5.38.0 from source and then run Put your winlibs/mingw32/bin folder at the start of your PATH However, if you need to also use other modules that Strawberry Perl provides in vendor/lib, then things might become a little troublesome for you if any of those modules need to be built against a 3rd party C library. |
I ran the code snippet from #96 (comment) through pp_autolink under a 32 bit portable version 5.32. It detected the following dependent DLLs.
So any 32-bit perl would also need to provide ssl, zlib and libcrypto. One option is to use the compiler and libs that come with SP 5.32 as that would avoid potential headaches with building using a more recent GCC. We had to handle a few such issues with GCC-13 for SP 5.36 and 5.38. |
I went ahead and generated a 32-bit version of 5.38.1 using the gcc stack and other libs from SP 5.32.1. The build went relatively smoothly with most CPAN failures being the same as for the 5.38 builds, and thus having the same workarounds. https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/dev_5381_32bit @AgostinoSturaro and @aero - can you please download and test for your use cases? If it all works well enough then I'll run a new build when the Perl 5.38.1 release is stabilised (probably as 5.38.2: https://www.nntp.perl.org/group/perl.perl5.porters/2023/11/msg267372.html ). |
@shawnlaffan |
UCRT makes no difference to #119, it's a core perl issue |
It seems my optimism has proven unfounded once more. I guess we wait for the issue to be handled in core perl. |
The issue is how to handle it, there's been some discussion at Perl/perl5#21562 |
Thank you very much! Installed, and my old laptop is sending its first CPAN smoke test reports :) |
A 32-bit version of 5.38.2 can be downloaded from https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/tag/SP_5382_32bit |
Awesome! I'll try it next week. |
Flagging issue as closable, pending confirmation from AgostinoSturaro |
BTW we also use many other packages. It's just that one that keeps us on 32-bit. |
No rush - you did say next week. I just flagged the issue so I remember to close it when you respond. |
I checked. The We also use (among others) During my test, I had to bypass calls to It would be nice to have a full 32-bit build with all packages. |
We are unlikely to build the full set of packages for 32-bit. However, the stack does include all the external libs from the 5.32 release so it is possible to build packages locally. |
That's odd. I had errors about the Dynaloader not being able to load them. Still, I can't advocate using a test build in production, and we need to all use the same package internally, so a local build wouldn't be practical. |
This is an official release. It just does not contain as many pre-built packages as the 64 bit version. |
OK, I tested again with a simpler env and they work. |
Thanks for confirming.
The release notes were updated in StrawberryPerl/strawberryperl.com#45 but it looks like they have not been published yet. @genio - fyi |
Yeah, that table still needs to be updated manually. If one of y'all wants to throw in a PR for that, I'll gladly merge and update. I've been fairly busy with life kicking me as hard as possible lately. Apologies. |
I've added issues to update the release table and releases.json files. See StrawberryPerl/strawberryperl.com#47 and #163 I'll close this issue now as we have an open PR for the 32-bit 5.38 release notes update. |
Will the 32-bit version also be included in the next 5.36 release? just like previous versions of Strawberry Perl did.
There are some legacy Windows OLE/COM components that only support 32-bit versions, so that case needs a 32-bit version of Perl.
So, even Python and Ruby continue to release 32-bit versions along with their official distributions.
The text was updated successfully, but these errors were encountered: