On Mon, Nov 4, 2024 at 10:33 PM Guiding Li <ligd...@gmail.com> wrote:
>
> Hi all:
>
> We decide change 'time_t' from unsigned type to signed type in PR:
> https://github.com/apache/nuttx/pull/14460
>
> Because when compile some POSIX library, there always be a warning on
> comparison
> between time_t and zero.
>
> For example:
>
> The following code will generate warnings:
> auto now = time(nullptr);
> auto last_active_time = GetEventService(self->ctx_)->getActiveTime(); if
> (last_active_time + 60 * 1000 / 1000 <= now) {
>
> src/ams/../controller/controller_timer.h: In lambda function:
> src/ams/../controller/controller_timer.h:117:57: warning: comparison of
> integer expressions of different signedness: 'long long int' and 'long long
> unsigned int' [-Wsign-compare]
> 117 | if (last_active_time + 60 * 1000 / 1000 <= now) {

this example doesn't make sense without showing the type of getActiveTime.

> And we can find an reference on the official website:
>
> https://www.gnu.org/software/libc/manual/html_node/Time-Types.html

this is not "official" for nuttx.

>
> On POSIX-conformant systems, time_t is an integer type.
>
>
> The comparation of the merits and shortcomings:
>
> Advantage:
> For the most POSIX applications they assume the time_t as signed and do
> compare with 0.
> The code will become more compatible after this modification.
>
> Disadvantage:
> None.

this is clearly wrong.

for this kind of announcements, it's far important to highlight disadvantages
than advantages, IMO.

i made references to the previous discussions on this topic i'm aware
of, up to this ML thread:
https://github.com/apache/nuttx/issues/3390#issuecomment-2456418833

> If there is any question about this, please let me know.
> Thanks,
> Guiding

Reply via email to