Matthew Dillon wrote:

> :4) Changing time_t to 64 bit using long long on a native 32 bit platform
> :is a f*cking nightmare.  I've tried this and it got very nasty very quickly.
> 
>     This is not what I proposed.  I proposed adding new system calls to
>     completely and permanently fix all of our outstanding issues and then
>     providing a compiler option to allow developers to select which API
>     they want presented.

Well, one thing that I would not be against is a clean divorce of the
syscall layer and libc.  That then gives us the freedom to implement 
alternative API selections etc at compile time pretty easily.

I just really do not want to see this sort of thing turning up:

  time_t foo = time(0);
  printf("the time is %lld\n", (long long)foo); /* i386 compatability */

.. because that hurts our 64 bit platforms down the road when long long
becomes 128 bit.  intmax_t/%j etc has similar problems as it then takes
the native 64 bit time type (long) and converts it to a synthetic 128 bit 
type.  ie: %j and intmax_t etc are just as bad.

My first exposure to a unix OS had some pretty horrific stat structure
versioning and evilness (svr4).  It was a real nightmare, except you never
got to wake up and discover that it was all over.

I am not against providing 64 bit extentions for 32 bit systems, but it
really needs to be done so that it all becomes a giant NOP when on native
64 bit systems.  Something like the large-file-summit API extensions that
all magically go away after the transition period or when you get a chance
to do a total ABI breakaway.

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to