-
-
Notifications
You must be signed in to change notification settings - Fork 385
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
Unable to build pendulum for 32bit #784
Comments
Unless you are up to making the change required for this to work on 32 bit system, I doubt it will change. |
This was my concern. As far I understand it would work, if the seconds variable in is changed to i64. I can try to start with rust programming and prepare a PR for that. |
Is there a way to force the install to fall back to the pure python implementation? EDIT: Or could a pure python wheel be published to pypi to fall back on? |
@gazpachoking maybe the |
I tried that env var. It seems that only disables the extensions at run
time. I don't see a way to install without building the rust extensions at
all.
…On Tue, Dec 26, 2023, 23:53 Edgar Ramírez Mondragón < ***@***.***> wrote:
Is there a way to force the install to fall back to the pure python
implementation?
EDIT: Or could a pure python wheel be published to pypi to fall back on?
@gazpachoking <https://github.com/gazpachoking> maybe the
PENDULUM_EXTENSIONS=0 env var?
—
Reply to this email directly, view it on GitHub
<#784 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABNV7PWBYEX6GTPUVRMX2TYLOSURAVCNFSM6AAAAABA3EREWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRZHE2DMMZZGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
We added pendulum as a dependency in our project and are now having multiple reports of people who can't install on their platform because either it's 32 bit, or they don't have rust tooling and there isn't a prebuilt wheel for their platform. I really hope official way is added such that pendulum can fall back to the pure python implementation in those cases. |
Other than 32-bit, could you maybe come up with a list of platforms we don't cover? |
I'll try to collect some data from our users with troubles. It's possible it's just 32bit users on raspberry pi like systems. |
Looks like linux aarch64 at least. (If that's not the detail needed there is more here) |
Same problem as original poster when running on Ubuntu 18.04.6 LTS and 32-bit. Cannot update Pendulum package since it required Rust and Cargo so installed those packages I also noticed that the line I'm not sure why all of a sudden a new language is required to be installed for this package dependency and it is now failing for 32-bit systems since it appears that the build for Rust -> Cargo -> Maturin makes the hardcoded assumption that the system is always 64-bit. Linux Info
Distro
Version
Error -
|
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
`pgcli` uses Pendulum to display the query execution time in words: > select pg_sleep(62) +----------+ | pg_sleep | |----------| | | +----------+ SELECT 1 Time: 62.066s (1 minute 2 seconds), executed in: 62.063s (1 minute 2 seconds) Pendulum 3 (which has been released in December 2023 and is now written in Rust) does not build on 32-bit architectures [1]. As such, installing `pgcli` on such architectures fails. We could pin Pendulum to version 2 (which was written in Python and builds "everywhere"), but requiring a whole library and its own dependencies for such a small feature seems unwarranted. This commit thus removes the requirement on Pendulum and replaces it by a simple "duration-to-words" function. Fixes #1451. [1] Upstream issue: sdispater/pendulum#784
Any updates on this issue @sdispater? |
pendulum 3.0.0-1 fails to build on armhf on Ubuntu 24.04 due to that: https://bugs.launchpad.net/ubuntu/+source/pendulum/+bug/2079029 |
pendulum 3.0.0 fails to build on 32-bit armhf: ``` error: this arithmetic operation will overflow --> src/helpers.rs:59:20 | 59 | seconds += ((146_097 - 10957) * SECS_PER_DAY as usize) as isize; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `135140_usize * 86400_usize`, which would overflow | = note: `#[deny(arithmetic_overflow)]` on by default ``` `(146_097 - 10957) * SECS_PER_DAY` equals 11,676,096,000 which does not fit into 32 bit integers. Use i64 for the seconds variable while handling with the timestamp. Only convert in to `usize` once the timestamp is split into its components. Fixes sdispater#784
pendulum 3.0.0 fails to build on 32-bit armhf: ``` error: this arithmetic operation will overflow --> src/helpers.rs:59:20 | 59 | seconds += ((146_097 - 10957) * SECS_PER_DAY as usize) as isize; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `135140_usize * 86400_usize`, which would overflow | = note: `#[deny(arithmetic_overflow)]` on by default ``` `(146_097 - 10957) * SECS_PER_DAY` equals 11,676,096,000 which does not fit into 32 bit integers. Use i64 for the seconds variable while handling with the timestamp. Only convert in to `usize` once the timestamp is split into its components. Fixes sdispater#784 Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/pendulum/+bug/2079029
pendulum 3.0.0 fails to build on 32-bit armhf: ``` error: this arithmetic operation will overflow --> src/helpers.rs:59:20 | 59 | seconds += ((146_097 - 10957) * SECS_PER_DAY as usize) as isize; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ attempt to compute `135140_usize * 86400_usize`, which would overflow | = note: `#[deny(arithmetic_overflow)]` on by default ``` `(146_097 - 10957) * SECS_PER_DAY` equals 11,676,096,000 which does not fit into 32 bit integers. Use i64 for the seconds variable while handling with the timestamp. Only convert in to `usize` once the timestamp is split into its components. Fixes sdispater#784 Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/pendulum/+bug/2079029
Issue
Trying to build pendulum for a 32bit system fails:
usize is only a 32 uint on 32 bit systems, thus this is not working.
The text was updated successfully, but these errors were encountered: