Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > perl.perl5.changes > #34431

[Perl/perl5] 3af0c9: intuit_more: Save start parse position

Newsgroups perl.perl5.changes
Path csiph.com!weretis.net!feeder8.news.weretis.net!fu-berlin.de!bofh.it!nntp.perl.org
Xref csiph.com perl.perl5.changes:34431
Return-Path <noreply@github.com>
Mailing-List contact perl5-changes-help@perl.org; run by ezmlm
Delivered-To mailing list perl5-changes@perl.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=perl.org; h=date :from:to:message-id:subject:mime-version:content-type :content-transfer-encoding:list-unsubscribe:reply-to; s=dr1; bh= UzgYWQJ+MRs0iP0xhcNtSIvM3na+h+Mv3CtbYm9EQY0=; b=n/c62y6qOwx2/qMN e4dedIo2ZAEEsiTHv7/08k81uOKxnOlZPyMBFhpQSWrW0H7VGl6gG+wBs39iMFUv hS9t9gUhIJiHj4qEsYRUyAcmW80GJdXk1sLtKXR5kfwJC+xslO0cZX12c1v7ovO0 Ahd5Q+tEt2+l3Ka1r209Yn+pzqkR202K3KldE/ebsESUNuddJJVTmsWvYVgz0710 JBGpvkRqz1NLKtmswexYfK+Mv0mSXbzyZ/5/hT8trFibIJoWXIxoK3TLGLXyMP1s i6fAP2SK/qdRpx1G/aJ/VYMvP5TjSh1QjHV8TG8kYJ0oT2ERIucbw0YsjKYQpa2J +j0Kuw==
Received (qmail 32045 invoked from network); 4 Mar 2026 19:18:00 -0000
Received from xx1.develooper.com (147.75.38.233) by x6.develooper.com with SMTP; 4 Mar 2026 19:18:00 -0000
Received from inbound-egress-7.mailchannels.net (inbound-egress-7.mailchannels.net [23.83.220.5]) by xx1.develooper.com (Postfix) with ESMTP id B81377C1BE for <perl5-changes@perl.org>; Wed, 4 Mar 2026 11:17:59 -0800 (PST)
ARC-Seal i=1; a=rsa-sha256; d=mailchannels.net; s=arc-2022; cv=none; t=1772651878; b=l5UEQN8dy+HEzxaPDkBkPm1lPLPLIl9zQQmw51poOqATh50/d5sHL1jbSVC2xAEv/Ln/IN q2zdAu6apT4tnA/HCI0BlU36HzwDziRx0mGzPxvS9mjZ1KVHMCYCaBj28BNYhNQwRcQ6uD cftGcefxWSDsYm8IzWckJoWNVl/V4IdwUtKUv7+n6XovEjE5srW5sUWPLoyjFngRzJUB5V wlW1jHeVYgP2pZNB6X0zDM7p2SdEYMSR0100Xi0yh6nRJFjnYsJ9LX3Se1+AyQuBeu4NIa 0/EsidJ4HJ5/nyJy+i292tXkbSYGrt4d9RPoNEFfT5esFDp2I0cUJ3HBWS1MWQ==
ARC-Message-Signature i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1772651878; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-unsubscribe: dkim-signature; bh=UzgYWQJ+MRs0iP0xhcNtSIvM3na+h+Mv3CtbYm9EQY0=; b=kTFyOHEfeXMfs+p9rae/KkcxTn/Wt4bh4svI/DndT/maPiBBSpXvkUiBNWamHt7AEns8Mi QNPV2RekkCc5tL4EAVEeStibxYTtYpTP2D0aCqdb2D0dmf//TWjwvXbyQ1pdc4H8w60F4S s+lODf1nEDtqIQHJlg4VehR0i1HIl4BhnJZOZ3oWfLcaGEZRjT4YiEuT9UIvb24ZaV2EHT G2O/C4WzcaxE1sUvK2S2Ixa3cUAd4DR5ygNwfjcgdUBo+sntPmPsfLxCRUpGtZXoejkF7+ 6q+wEKxtYTFRtw4uL8RqN9QyFYi+16bP4lnBXQgdQgkXo2HdRn6geUIckoph8Q==
ARC-Authentication-Results i=1; inbound-rspamd-59f67b687b-hr4s8; none
X-Message-ID 6AzHscj5Fj8sxvoFhh7Xa2oQ
Received from out-19.smtp.github.com (out-19.smtp.github.com [192.30.252.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.105.173.40 (trex/7.1.3); Wed, 04 Mar 2026 19:17:58 +0000
Authentication-Results inbound.mailchannels.net; spf=pass smtp.mailfrom=noreply@github.com; dkim=pass header.d=github.com; dmarc=pass (policy=reject; pct=100; status=pass); arc=none
Received-SPF pass (dmarc-service-78968d7585-dlhrq: domain of github.com designates 192.30.252.202 as permitted sender) client-ip=192.30.252.202; envelope-from=noreply@github.com; helo=out-19.smtp.github.com;
Received from github.com (hubbernetes-node-b7f7677.va3-iad.github.net [10.51.88.37]) by smtp.github.com (Postfix) with ESMTPA id 86115E128E for <perl5-changes@perl.org>; Wed, 4 Mar 2026 11:17:57 -0800 (PST)
Date Wed, 04 Mar 2026 11:17:57 -0800
To perl5-changes@perl.org
Message-ID <Perl/perl5/push/refs/heads/blead/d31370-7646ce@github.com> (permalink)
Subject [Perl/perl5] 3af0c9: intuit_more: Save start parse position
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 7bit
X-GitHub-Recipient-Address perl5-changes@perl.org
X-Auto-Response-Suppress All
Original-From Karl Williamson <noreply@github.com>
Reply-To Karl Williamson <noreply@github.com>,
Approved news@nntp.perl.org
From perl5-changes@perl.org (Karl Williamson via perl5-changes)

Show key headers only | View raw


  Branch: refs/heads/blead
  Home:   https://github.com/Perl/perl5
  Commit: 3af0c9cbc4d14b19aaf8b9ea12be9f6622c195b4
      https://github.com/Perl/perl5/commit/3af0c9cbc4d14b19aaf8b9ea12be9f6622c195b4
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Save start parse position

Future commits will need this.  Having it means the 'first_time'
variable becomes redundant, and is removed.


  Commit: 6cc7c28176938505f19774540f537126659e2cfc
      https://github.com/Perl/perl5/commit/6cc7c28176938505f19774540f537126659e2cfc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  inuit_more: Rewrite expression for clarity,future

These are equivalent since *e is asserted to be NUL, and if s[1] is NUL,
it can't be a digit.  But there's a bit more cognition to figure this
out than the new spelling, which also paves the way for a future commit


  Commit: 8a8e24b58092749dde20b59382221cb2dd75defc
      https://github.com/Perl/perl5/commit/8a8e24b58092749dde20b59382221cb2dd75defc
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Use isDIGIT paradigm for isALPHA

This makes these two loops parallel, fixing a subtle bug in the isALPHA
one.  The isDIGIT loop stops when s[1] is no longer a digit, leaving *s
pointing to the current character, so that when s gets incremented for
the the next iteration it looks at that non-digit.  Prior to this
commit, the isALPHA loop stopped when s[0] is no longer an alpha, so
that when s gets incremented for the next iteration, it skips that
non-alpha instead of processing it.


  Commit: 82a37e5d74a6af63720d7166467eff2fad2564e0
      https://github.com/Perl/perl5/commit/82a37e5d74a6af63720d7166467eff2fad2564e0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Convert for loop to while

This will give future commits the flexibility to do a 'continue' to
avoid incrementing the position pointer.


  Commit: a59e58cfb0d0e06fcb785a423f4629ae7669a47a
      https://github.com/Perl/perl5/commit/a59e58cfb0d0e06fcb785a423f4629ae7669a47a
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Add explicit check to avoid buffer overruns

The entry conditions for this function is that the pointer to the string
start and end positions may be the same, but that the end must be a NUL
character.  If you follow the logic, it turns out that it never looks
past the first character unless it isn't a NUL.  This commit makes that
more obvious.


  Commit: fe0bdb5529a93d69393ce94d87cab42b367ccfa0
      https://github.com/Perl/perl5/commit/fe0bdb5529a93d69393ce94d87cab42b367ccfa0
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Avoid use of unreliable value

As now stated in the comments, the 'send' variable may point to
something earlier than it should.  This is a step towards fixing that.
In this particular case, it is easy to rewrite this 'if' statement to
avoid using 'send'


  Commit: 7646ce7e591864e549df28dfa7246e8ebba19d14
      https://github.com/Perl/perl5/commit/7646ce7e591864e549df28dfa7246e8ebba19d14
  Author: Karl Williamson <khw@cpan.org>
  Date:   2026-03-04 (Wed, 04 Mar 2026)

  Changed paths:
    M toke.c

  Log Message:
  -----------
  intuit_more: Fix premature termination bug

As noted in the commentary, this code is looking for a terminating ']',
and stops at the first one it finds, but that could be escaped (by any
odd number of preceding backslashes, or be within a \Q, so isn't
actually the terminating one.  Hence it can stop processing prematurely.

Also, inside the loop, it nonetheless thought it should handle an
interior ']', which it would never get.

This commit changes the code so that the loop continues until it finds
an unescaped ']', leaving fixing the \Q case for the future.

Also, the intended handling of an interior ']' is commented out to
keep previous behavior unchanged.  This is due to the point we are at
towards the end of the development cycle.


Compare: https://github.com/Perl/perl5/compare/d31370d6023d...7646ce7e5918

To unsubscribe from these emails, change your notification settings at https://github.com/Perl/perl5/settings/notifications

Back to perl.perl5.changes | Previous | Next | Find similar


Thread

[Perl/perl5] 3af0c9: intuit_more: Save start parse position perl5-changes@perl.org (Karl Williamson via perl5-changes) - 2026-03-04 11:17 -0800

csiph-web