Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:76781 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 30286 invoked from network); 21 Aug 2014 20:49:06 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Aug 2014 20:49:06 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.214.169 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.214.169 mail-ob0-f169.google.com Received: from [209.85.214.169] ([209.85.214.169:35983] helo=mail-ob0-f169.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A1/81-22336-04B56F35 for ; Thu, 21 Aug 2014 16:49:04 -0400 Received: by mail-ob0-f169.google.com with SMTP id uz6so5928707obc.28 for ; Thu, 21 Aug 2014 13:49:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cf6YQb0JdjTABo8n3mRTw/gRtsAuVnfPYNtIoIr1ZlQ=; b=OMqgVZL66bBQbGsYAnvhpjd2dVxH1Lo23QrCIKzDDYqjtnC5FVvOmUJKHhn4XSANE1 5BnLVV8Dy9PFHvWLk/GcugmwlalbTHA1RFQHJdrxswAYweEJvVgcnrn+MmkkEfBUvqar R7aDjB0JSo5dDC5YbhiNZvNVjj56cby9yN6hmUfXIUqWlQre5gwJ1z7VP9NaykZwf3dS U364MoWhC4CcedUOs/H4qnExPIDLq2TydLRl6TNtaLePlvW8MHWeE3DiePVHZEOAdSOy w80JlTG1nKGKxCpoMQREAL66Gi+H5Xt04XP/iaTTPiGp0uFkNgMILNoTJkvXLx0ayMbA WwEw== MIME-Version: 1.0 X-Received: by 10.182.209.101 with SMTP id ml5mr1052183obc.2.1408654140550; Thu, 21 Aug 2014 13:49:00 -0700 (PDT) Received: by 10.182.65.229 with HTTP; Thu, 21 Aug 2014 13:49:00 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Aug 2014 22:49:00 +0200 Message-ID: To: Dmitry Stogov Cc: PHP Internals , Pierre Joye , Anatol Belski Content-Type: multipart/alternative; boundary=e89a8ff1ca20a8b3e2050129d970 Subject: Re: [PHP-DEV] 64-bit integers and 64-bit string length patch is ready to be merged From: nikita.ppv@gmail.com (Nikita Popov) --e89a8ff1ca20a8b3e2050129d970 Content-Type: text/plain; charset=UTF-8 On Thu, Aug 21, 2014 at 7:23 PM, Dmitry Stogov wrote: > Hi, > > Thanks to Anatol and Pierre the 64-bit patch is ready > https://github.com/weltling/php-src > > I made quick code review and don't see any technical problems now. > > The performance and memory consumption difference is negligible. see > > https://docs.google.com/spreadsheets/d/1PD4oiiXz6B0JbeZYnUSat5fHoq3_jAiCeI2cGHJ3UtQ/edit#gid=0 > > The patch breaks one test on 32-bit Linux: > ext/date/tests/bug53437_var3.phpt (seems to be a bogus test and wrong > behavior in php5.6 and below) and one test on 64-bit Linux: > ext/standard/tests/array/array_pad_variation2.phpt (has to be analyzed) > > The only thing that I don't like is a massive renaming described here > https://wiki.php.net/rfc/size_t_and_int64_next#semantical_macro_renamings > > IS_LONG -> IS_INT > Z_LVAL -> L_IVAL > etc > > On one hand using INT may be more consistent, on the other hand it's going > to break habits and make addition headache for merging from php-5 (I know, > phpng already made problems) > > I'm not sure how to proceed. If I'm alone, lets go ahead with new names. If > some others prefer old names we will probably need voting. > > Despite of renaming, I would like to see this patch in master ASAP. > > Thanks. Dmitry. > I am against merging this with the long->int rename everywhere. This seems like change for the sake of change. I am also concerned that we now have zend_uint_t (a 64-bit integer type) and zend_uint (a 32-bit integer type). Notice the difference? Yes, it's the missing _t. I would appreciate it if we could consider the following naming convention: * zend_(u)int - 32 bit integer type * zend_(u)long - 64 bit integer type (on 64 bit systems) This retains the original meaning of the type, with the tweak that zend_(u)long will be 64bit on LLP64 systems as well. This avoids the confusion of having two types that only differ by a _t suffix and have totally different meanings. It also removes any need to rename everything from LONG to INT. Thanks, Nikita --e89a8ff1ca20a8b3e2050129d970--