Skip to content

Support integer parts-per-second time unit#2227

Open
petermm wants to merge 1 commit intoatomvm:release-0.7from
petermm:feature/integer-time-unit
Open

Support integer parts-per-second time unit#2227
petermm wants to merge 1 commit intoatomvm:release-0.7from
petermm:feature/integer-time-unit

Conversation

@petermm
Copy link
Contributor

@petermm petermm commented Mar 23, 2026

Add support for positive integer time units ("parts per second") in erlang:monotonic_time/1, erlang:system_time/1, and calendar:system_time_to_universal_time/2.

Used in elixir DynamicSupervisor - completes the timeunit support.

Restrict integer-unit handling to int64 inputs in the affected NIF paths. Use checked int64 decomposition for monotonic/system time conversion to avoid signed overflow in intermediate arithmetic. For calendar integer units, floor negative fractional values to whole seconds before converting to UTC.

Add focused Erlang tests for integer-unit parity, badarg on non-positive integer units, and negative fractional calendar conversion for integer units.

These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).

SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later

@petermm petermm force-pushed the feature/integer-time-unit branch from 6560e8c to dad612d Compare March 23, 2026 19:48
Add support for positive integer time units ("parts per second") in
erlang:monotonic_time/1, erlang:system_time/1, and
calendar:system_time_to_universal_time/2.

Restrict integer-unit handling to int64 inputs in the affected NIF paths.
Use checked int64 decomposition for monotonic/system time conversion to
avoid signed overflow in intermediate arithmetic. For calendar integer
units, floor negative fractional values to whole seconds before converting
to UTC.

Add focused Erlang tests for integer-unit parity, badarg on non-positive
integer units, and negative fractional calendar conversion for integer
units.

Signed-off-by: Peter M <petermm@gmail.com>
@petermm petermm force-pushed the feature/integer-time-unit branch from dad612d to 1f640b2 Compare March 24, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant