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