Drop 32bit environment support
Drop 32bit environment support, and support only 64bit environment.
Additional information: #2084
Does the Windows system still continue to support 32-bit? If it's Linux, it may be considered to abandon it, as 32-bit environments are quite rare.
Can't this issue be fixed by explicitly using 64-bit wide types where needed, instead of relying on the fact that 64-bit environments have 64-bit wide size_t and co?
I never bothered about it but is std::int64_t 64 bits on 32 bits machines?
Of course!
I never bothered about it but is
std::int64_t64 bits on 32 bits machines?
There's also long long if you prefer fundamental types.
@yhirose This is a bit of a bummer for me - older raspberry pis are 32-bit and I still support/test on those. Of course there is no obligation for you to support anything, but maybe rather than adding the compile check to disallow 32-bit, just issue a warning that it's not supported, and if it happens to work, then great? I.e. support 32-bit on a "best effort/no guarantees" basis.
I will likely continue to try to support 32-bit in my application using cpp-httplib, and I will send PRs if I find things that are broken. Would you accept such PRs? So far everything has worked fine as I don't operate on more than 4GB.
@stingray-11 very sorry that my recent change caused the problem on your projects. You suggestion makes sense to me. So I changed #error to #warning for 32-bit environment except 32-bit Windows. Could you please test the latest httplib.h on the master branch? If it works, I'll bump the version to 0.24.0.
If you still see problems, please me know. I'll check my recent commits in connection with Drop 32bit environment support. If you send me PRs, it's even better!
I just updated to version 0.23.1. I had to change a few MultipartFormDataItems->UploadFormDataItems per https://github.com/yhirose/cpp-httplib/pull/2171, other than that no problems. I confirmed my 32-bit builds are still working as expected.
I will certainly send PRs (not issues) if I run into any problems going forward. Thanks!
Thanks for the report!
This is a bit of a bummer for me - older raspberry pis are 32-bit and I still support/test on those.
Same for us. The decision to drop Win32 support completely would force our project to move to another library, since we need to provide DLLs for 32bit processes on Windows / Wow64 as mentioned in https://github.com/yhirose/cpp-httplib/issues/2084#issuecomment-2869546765:
tbh there's really not much 32bit environments these days, The only mainstream 32bit platform leftover is Micro-controllers and maybe 32bit processes on Wow64
There may still be more 32-bit environments in use than the assumption suggests...
We'd also be happy to contribute patches or fixes to help maintain Win32 compatibility for future versions and appreciate the decision to remove the restriction.