[L] Change in dart/sdk[main]: [vm/shared] Prohibit capturing of 'late final' variables by isolategr...

0 views
Skip to first unread message

Alexander Aprelev (Gerrit)

unread,
Dec 8, 2025, 1:56:47 PM12/8/25
to Alexander Aprelev, Slava Egorov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Slava Egorov

Alexander Aprelev voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 1
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Comment-Date: Mon, 08 Dec 2025 18:56:44 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Slava Egorov (Gerrit)

unread,
Dec 8, 2025, 2:14:44 PM12/8/25
to Alexander Aprelev, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Alexander Aprelev

Slava Egorov added 1 comment

File pkg/dart2bytecode/lib/local_vars.dart
Line 211, Patchset 1 (Latest): bool get isFinalOrShared => (declaration.isFinal && !declaration.isLate) ||
Slava Egorov . unresolved

I think current spec is effectively saying that:

  • Global variables must be both final and shared.
  • Local captured variables must be final (not required to be marked as shared though).
Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Aprelev
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 1
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-Attention: Alexander Aprelev <a...@google.com>
Gerrit-Comment-Date: Mon, 08 Dec 2025 19:14:38 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Alexander Aprelev (Gerrit)

unread,
Dec 8, 2025, 3:44:59 PM12/8/25
to Alexander Aprelev, Slava Egorov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Slava Egorov

Alexander Aprelev voted and added 1 comment

Votes added by Alexander Aprelev

Commit-Queue+1

1 comment

File pkg/dart2bytecode/lib/local_vars.dart
Line 211, Patchset 1: bool get isFinalOrShared => (declaration.isFinal && !declaration.isLate) ||
Slava Egorov . resolved

I think current spec is effectively saying that:

  • Global variables must be both final and shared.
  • Local captured variables must be final (not required to be marked as shared though).
Alexander Aprelev

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 2
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Comment-Date: Mon, 08 Dec 2025 20:44:55 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Slava Egorov <veg...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Alexander Markov (Gerrit)

unread,
Dec 8, 2025, 3:51:20 PM12/8/25
to Alexander Aprelev, Alexander Markov, Slava Egorov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Alexander Aprelev and Slava Egorov

Alexander Markov added 2 comments

File pkg/dart2bytecode/lib/declarations.dart
Line 1165, Patchset 2 (Latest): static const capturesOnlyFinalNotLateVarsFlag = 1 << 3;
Alexander Markov . unresolved

DBC

Please update `pkg/dart2bytecode/docs/bytecode.md` accordingly.

File pkg/dart2bytecode/lib/local_vars.dart
Line 200, Patchset 2 (Latest): bool _isShared;
Alexander Markov . unresolved

DBC

Is this still needed? If not, consider cleaning it up.

Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Aprelev
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 2
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Markov <alexm...@google.com>
Gerrit-Attention: Alexander Aprelev <a...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Comment-Date: Mon, 08 Dec 2025 20:51:17 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Alexander Aprelev (Gerrit)

unread,
Dec 8, 2025, 4:22:12 PM12/8/25
to Alexander Aprelev, Alexander Markov, Slava Egorov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Alexander Markov and Slava Egorov

Alexander Aprelev voted and added 2 comments

Votes added by Alexander Aprelev

Commit-Queue+1

2 comments

File pkg/dart2bytecode/lib/declarations.dart
Line 1165, Patchset 2: static const capturesOnlyFinalNotLateVarsFlag = 1 << 3;
Alexander Markov . resolved

DBC

Please update `pkg/dart2bytecode/docs/bytecode.md` accordingly.

Alexander Aprelev

Done

File pkg/dart2bytecode/lib/local_vars.dart
Line 200, Patchset 2: bool _isShared;
Alexander Markov . resolved

DBC

Is this still needed? If not, consider cleaning it up.

Alexander Aprelev

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Markov
  • Slava Egorov
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Markov <alexm...@google.com>
Gerrit-Attention: Slava Egorov <veg...@google.com>
Gerrit-Attention: Alexander Markov <alexm...@google.com>
Gerrit-Comment-Date: Mon, 08 Dec 2025 21:22:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Alexander Markov <alexm...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Alexander Aprelev (Gerrit)

unread,
Dec 9, 2025, 1:51:52 PM12/9/25
to Alexander Aprelev, Alexander Markov, Slava Egorov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Alexander Markov and Slava Egorov

Alexander Aprelev added 1 comment

Patchset-level comments
File-level comment, Patchset 3 (Latest):
Alexander Aprelev . resolved

PTAL when you have a chance

Gerrit-Comment-Date: Tue, 09 Dec 2025 18:51:50 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Slava Egorov (Gerrit)

unread,
Dec 10, 2025, 7:54:18 AM12/10/25
to Alexander Aprelev, Alexander Markov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org
Attention needed from Alexander Aprelev

Slava Egorov voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Alexander Aprelev
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Markov <alexm...@google.com>
Gerrit-Attention: Alexander Aprelev <a...@google.com>
Gerrit-Comment-Date: Wed, 10 Dec 2025 12:54:12 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Alexander Aprelev (Gerrit)

unread,
Dec 10, 2025, 10:52:24 AM12/10/25
to Alexander Aprelev, Slava Egorov, Alexander Markov, Commit Queue, rev...@dartlang.org, vm-...@dartlang.org

Alexander Aprelev voted Commit-Queue+2

Commit-Queue+2
Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedCommit-Message-Has-TEST
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 3
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Slava Egorov <veg...@google.com>
Gerrit-CC: Alexander Markov <alexm...@google.com>
Gerrit-Comment-Date: Wed, 10 Dec 2025 15:52:20 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Commit Queue (Gerrit)

unread,
Dec 10, 2025, 11:30:02 AM12/10/25
to Alexander Aprelev, Slava Egorov, Alexander Markov, rev...@dartlang.org, vm-...@dartlang.org

Commit Queue submitted the change

Change information

Commit message:
[vm/shared] Prohibit capturing of 'late final' variables by isolategroup-bound closures.

TEST=run_isolate_group_run_test
BUG=https://github.com/dart-lang/sdk/issues/62181
Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Reviewed-by: Slava Egorov <veg...@google.com>
Commit-Queue: Alexander Aprelev <a...@google.com>
Files:
  • M pkg/dart2bytecode/docs/bytecode.md
  • M pkg/dart2bytecode/lib/bytecode_generator.dart
  • M pkg/dart2bytecode/lib/declarations.dart
  • M pkg/dart2bytecode/lib/local_vars.dart
  • M runtime/vm/bytecode_reader.cc
  • M runtime/vm/bytecode_reader.h
  • M runtime/vm/ffi_callback_metadata.cc
  • M runtime/vm/object.cc
  • M runtime/vm/object.h
  • M runtime/vm/scopes.cc
  • M tests/ffi/isolate_group_bound_captured_local_test.dart
  • M tests/ffi/run_isolate_group_run_test.dart
Change size: L
Delta: 12 files changed, 327 insertions(+), 210 deletions(-)
Branch: refs/heads/main
Submit Requirements:
  • requirement satisfiedCode-Review: +1 by Slava Egorov
Open in Gerrit
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: merged
Gerrit-Project: sdk
Gerrit-Branch: main
Gerrit-Change-Id: I50037ede337367020176262b98d2c2fd100b050a
Gerrit-Change-Number: 466820
Gerrit-PatchSet: 4
Gerrit-Owner: Alexander Aprelev <a...@google.com>
Gerrit-Reviewer: Alexander Aprelev <a...@google.com>
open
diffy
satisfied_requirement
Reply all
Reply to author
Forward
0 new messages