Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Go back towards a pure capability system #21764

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Commits on Sep 25, 2024

  1. Add path support for cc

    noti0na1 authored and odersky committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    74b6bf6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ddba608 View commit details
    Browse the repository at this point in the history
  3. Add alternative subsumes implementations

    This is done for comparing old with new
    odersky committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    440c053 View commit details
    Browse the repository at this point in the history
  4. Revert to previous subsumes scheme

    Add the path cases without changing the whole logic
    odersky committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    45df152 View commit details
    Browse the repository at this point in the history
  5. Add logic to mark paths as used

    If we refer to a path `a.b`, we should mark `a.b` as used,
    which is better than marking `a`.
    odersky committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    263d6eb View commit details
    Browse the repository at this point in the history
  6. Tweaks to path checking and massage tests

    Needed to make stdlib2-cc go through.
    
    There were two errors. One in LayListIterable required a type annotation
    and a tweak to markFree. The other in Vieew.scala required a cast, but this could be fixed
    with better handling of pattern matching. path-patmat-should-be-pos.scala is a minimization.
    odersky committed Sep 25, 2024
    Configuration menu
    Copy the full SHA
    152710b View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2024

  1. Configuration menu
    Copy the full SHA
    215b67a View commit details
    Browse the repository at this point in the history
  2. Recognize double annotated capabilities such as x*?

    x*? is x.type @reach @maybe. This was not recognized before.
    odersky committed Oct 5, 2024
    Configuration menu
    Copy the full SHA
    dc8b8a0 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2024

  1. Refactor narrowCaps

    odersky committed Oct 11, 2024
    Configuration menu
    Copy the full SHA
    1d92033 View commit details
    Browse the repository at this point in the history
  2. Make sure dcs includes cs

    Previously, we violated that assumption is we too the deep capture set
    of a capture reference wiht singleton type.
    odersky committed Oct 11, 2024
    Configuration menu
    Copy the full SHA
    d749137 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2024

  1. Align deep capture sets with reach capabilities

    Count in dcs exactly those locations where a cap gets replaced by a reach capability.
    odersky committed Oct 12, 2024
    Configuration menu
    Copy the full SHA
    7693722 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2024

  1. Always charge deep capture set of function arguments to cv

    Also: In Recheck-apply, use deep capture sets of arguments in computing the
    result alternative.
    
    Drop restrictions on leaking reach capabilities in markFree.
    
    Revise visibility criterion for paths.
    
    Together these changes now implement a classical capability system with reach capabilities.
    References that are used later after passing some arguments are already recorded in capture sets
    of earlier stages (exception: closure results).
    odersky committed Oct 14, 2024
    Configuration menu
    Copy the full SHA
    16f86f0 View commit details
    Browse the repository at this point in the history
  2. Drop @unbox annotation

    odersky committed Oct 14, 2024
    Configuration menu
    Copy the full SHA
    1836fb3 View commit details
    Browse the repository at this point in the history
  3. Fix computation of deep capture set.

    A deep capture set should not be shortened to a reach capability `x*`
    if there are elements in the underlying set that live longer than `x`.
    odersky committed Oct 14, 2024
    Configuration menu
    Copy the full SHA
    e007539 View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2024

  1. Configuration menu
    Copy the full SHA
    af9ecad View commit details
    Browse the repository at this point in the history