Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127709 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 1BB5B1A00BC for ; Wed, 18 Jun 2025 12:58:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1750251407; bh=MNe5W0veoay91qMYGMU520DSelU19DLNCQ3rmomoaBg=; h=Date:From:To:In-Reply-To:References:Subject:From; b=Wjs1xh5nxtDWzCZeCmLs83FhALqGBd/lbhJk9dI4HpEl8KmpyYNSrKYiAEO/zlW7F zJB89gAWMBpZAVQMRPhg6S5OiEXuyN2HfK31GFOTVOU/khxntm1mEoYmJ41tJ2EIfH 80OKWLI6V1t07hHoCdxCavY1n/RWyoPsmPhc/+4HKItZkKQ03flNH8A9syj48Z4ezO 9Zo1mk2Hrw+x+QwAocS6jrZmUBOzkQB3RH2d5jLXtZyXHXYZAFnN6CapSc0pXSUjeT XbGa7hntzqKlplpKr5Z3zCnVPfn7geXKSRwlmz/AtKn61HiJlYTpOoKBeyXDZH6MOE 7kE1bN+9UecbQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B250C180087 for ; Wed, 18 Jun 2025 12:56:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,HTML_MESSAGE, RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from fhigh-b4-smtp.messagingengine.com (fhigh-b4-smtp.messagingengine.com [202.12.124.155]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 18 Jun 2025 12:56:46 +0000 (UTC) Received: from phl-compute-05.internal (phl-compute-05.phl.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id 3D64025400A5 for ; Wed, 18 Jun 2025 08:58:44 -0400 (EDT) Received: from phl-imap-05 ([10.202.2.95]) by phl-compute-05.internal (MEProxy); Wed, 18 Jun 2025 08:58:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bottled.codes; h=cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1750251524; x=1750337924; bh=qMmSq+jaUQ ix/BN+TwRuXs0/Nio1BVN6GDId+39Adfg=; b=fAAZfrnAKnyq6WTQE+8eO/mww0 oMmHohw2MEbpqJsHv54/3e+dC+3h1SV2qArXTfW/8V4slwoPpvY+CvMybUJCQL6p SKdQfp8LXhI3TjreVNxdwSKPmLQzFemCN9XJqe1A6UuV3n4uWBrsUTOT4Nhjyqyq UJwLS5vWMQtadoIdmVougewpk+3JVAnFufEsWoBJYLyvKH0EfzVVIE63KzfxWvJc Z+nfg103vKp4cR8hE8dxeJFakmZiT3bHMbb2f2hEI3u+9iIyjIFjvhc9EVJFEu+J 4rOsLqZXH6MoWRrFo0B7bRQ2qfql8gkIkwemJl/9abVCjWfBUQ4TT3uJFaIg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1750251524; x=1750337924; bh=qMmSq+jaUQix/BN+TwRuXs0/Nio1BVN6GDI d+39Adfg=; b=QtpPP5BctizOrugcFOIaG89KrK66wQCimPuDOjkdAiFerxHr6bR yWmMFWK04Xou1cr4Yb27H2fyYPy4xgIPwKsJEJ8VjhqFaYRn+zbSR11/Xugxb72p E/keZkbjQwUyrN4XK9rKoo9QYdwbw3MDnD3tZjYngtaFUTyO4fSSnZCC7iY0Txzv 6O7AkCuCickeAVxDLKMDOKPCnzXiAkcHmAcG775TbUDzIHMUjrfkzmCYJdQ7ngxB Es+8WFAc43mOLeYD6UTES/8ic912d5i48/ccbbAzP9Nk9yQXmLQgZexX6cgYjFut 5zLuGTvqlEsSOol+4cq23OcQLAo1RTW11mQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddvgddvjedtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucenucfjughrpefoggffhf fvkfgjfhfutgesrgdtreerredtjeenucfhrhhomhepfdftohgsucfnrghnuggvrhhsfdcu oehrohgssegsohhtthhlvggurdgtohguvghsqeenucggtffrrghtthgvrhhnpedtueejtd ethfeulefhtdelieduteelffdtudelheffgedtieehhfelieejgfevgeenucevlhhushht vghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehrohgssegsohhtthhlvg gurdgtohguvghspdhnsggprhgtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgt phhtthhopehinhhtvghrnhgrlhhssehlihhsthhsrdhphhhprdhnvght X-ME-Proxy: Feedback-ID: ifab94697:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 9A05B1820073; Wed, 18 Jun 2025 08:58:43 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 X-ThreadId: Tc073e2972d3113a8 Date: Wed, 18 Jun 2025 14:58:23 +0200 To: internals@lists.php.net Message-ID: In-Reply-To: <4b5da64c-36b9-49db-8ec4-3247e05bf286@mabe.berlin> References: <576B21BE-D5ED-49EB-99D9-731F89DF4DAA@garsi.de> <4b5da64c-36b9-49db-8ec4-3247e05bf286@mabe.berlin> Subject: Re: [PHP-DEV] Year 2038 issue Content-Type: multipart/alternative; boundary=4530c7447db5419d94ac5b11ef7e8bf1 From: rob@bottled.codes ("Rob Landers") --4530c7447db5419d94ac5b11ef7e8bf1 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Wed, Jun 18, 2025, at 13:18, Marc Bennewitz wrote: >=20 >=20 > On 16.06.25 19:01, Yogarine wrote: >> Hi all, >>=20 >> On 16 Jun 2025, at 17:24, Rob Landers wrote: >>> On Mon, Jun 16, 2025, at 16:54, Alexandru P=C4=83tr=C4=83nescu wrote: >>>> On Mon, Jun 16, 2025 at 4:03=E2=80=AFPM Marc Bennewitz wrote: >>>> Hi all, >>>>=20 >>>> It's 12.5 years only until the timestamps in PHP on 32bit will not = work=20 >>>> as expected anymore. >>>>=20 >>>>=20 >>>> Hi, >>>>=20 >>>> I think that maybe we can already deprecate supporting 32 bit build= s. >>>> And, maybe with PHP 9, or PHP 10, or with a future version that mig= ht exist in about 6/7 years, completely drop 32 bits support. >>>>=20 >>>> As far as I checked a bit, all major OSs where PHP could run alread= y dropped or will drop support for 32 bits builds. >>>> I expect that at some point even the linux kernel will drop support. >>>>=20 >>>> The impacted runtimes will probably be very low. >>>>=20 >>>> --=20 >>>> Alex >>>>=20 >>> 100% agree. We are already running out of space on some bitmasks (th= ere are a couple with exactly one bit left, or even none in the case of = GC flags) for 32 bit support. >>>=20 >>> =E2=80=94 Rob >> I'm reminded of a recent comment by Derick. He mentioned that usually= if a function can't be provided on a specific platform or SAPI, that fu= nction is disabled for that environment specifically. This allows for a = polyfill to provide an alternative implementation. (e.g. `getallheaders(= )`) >>=20 >> Considering 32-bit builds will not be able to reliable provide the `d= ate()` function at some point, what if we deprecate, and later disable, = these integer date functions on 32-bit builds specifically? This would h= ave 0 impact for 64-bit users and provide a means for users on legacy or= embedded systems to use an alternative implementation (that perhaps use= s a custom Unix epoch, or numeric strings =C2=AF\_(=E3=83=84)_/=C2=AF). > It's a long list of date functions already (see my first mail) and on = looking deeper into detail it's not limited to the date extension. Same = issues happen on a wide range of standard functions like "filemtime" or = "opcache_get_status". Specifically everywhere where a timestamp is invol= ved. Not even talking about the already known behavior differences of fu= nctions like "crc32". >=20 >=20 >=20 >> Alwin >=20 > *Attachments:* > =E2=80=A2 OpenPGP_0x3936ABF753BC88CE.asc > =E2=80=A2 OpenPGP_signature.asc I dunno. The more I think about it, the more this seems like a systemic = issue with 32-bit. Meaning this is potentially the wrong layer to try an= d fix it. This will likely have to be addressed at a deeper layer (such = as the OS) or a higher layer (treating negative numbers differently than= positive ones, contextually). =E2=80=94 Rob --4530c7447db5419d94ac5b11ef7e8bf1 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
On Wed, Jun = 18, 2025, at 13:18, Marc Bennewitz wrote:


On 16= .06.25 19:01, Yogarine wrote:
Hi all,=0A=0AOn 16 Jun 2025, at 17:24, Rob Landers <rob@bottl=
ed.codes> wrote:=0A
On Mon, Jun 16, 2025, at 16:54, Alexandru P=C4=83tr=C4=
=83nescu wrote:=0A
On Mon, Jun 16, 2025 at 4:03=E2=80=AFPM Marc Bennewitz <marc=
@mabe.berlin> wrote:=0AHi all,=0A=0AIt's 12.5 years only until th=
e timestamps in PHP on 32bit will not work=20=0Aas expected anymore.=0A=0A=
=0AHi,=0A=0AI think that maybe we can already deprecate supporting 32 bi=
t builds.=0AAnd, maybe with PHP 9, or PHP 10, or with a future version t=
hat might exist in about 6/7 years, completely drop 32 bits support.=0A=0A=
As far as I checked a bit, all major OSs where PHP could run already dro=
pped or will drop support for 32 bits builds.=0AI expect that at some po=
int even the linux kernel will drop support.=0A=0AThe impacted runtimes =
will probably be very low.=0A=0A--=20=0AAlex=0A=0A
100% agree. We are already running out of s= pace on some bitmasks (there are a couple with exactly one bit left, or = even none in the case of GC flags) for 32 bit support.=0A=0A=E2=80=94 Rob= =0A
I'm reminded of a =
recent comment by Derick. He mentioned that usually if a function can't =
be provided on a specific platform or SAPI, that function is disabled fo=
r that environment specifically. This allows for a polyfill to provide a=
n alternative implementation. (e.g. `getallheaders()`)=0A=0AConsidering =
32-bit builds will not be able to reliable provide the `date()` function=
 at some point, what if we deprecate, and later disable, these integer d=
ate functions on 32-bit builds specifically? This would have 0 impact fo=
r 64-bit users and provide a means for users on legacy or embedded syste=
ms to use an alternative implementation (that perhaps uses a custom Unix=
 epoch, or numeric strings =C2=AF\_(=E3=83=84)_/=C2=AF).

It's a long list of date functions already (see my first mail)=0A = and on looking deeper into detail it's not limited to the date=0A = extension. Same issues happen on a wide range of standard=0A fu= nctions like "filemtime" or "opcache_get_status". Specifically=0A e= verywhere where a timestamp is involved. Not even talking about=0A = the already known behavior differences of functions like "crc32".

=

Alwin=0A

Attachments:
  • OpenPGP_0= x3936ABF753BC88CE.asc
  • OpenPGP_signature.asc

I dunno. The more I think about it, the more this = seems like a systemic issue with 32-bit. Meaning this is potentially the= wrong layer to try and fix it. This will likely have to be addressed at= a deeper layer (such as the OS) or a higher layer (treating negative nu= mbers differently than positive ones, contextually).

=E2=80=94 Rob
--4530c7447db5419d94ac5b11ef7e8bf1--