Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: golang/go
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: go1.18.4
Choose a base ref
...
head repository: golang/go
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: go1.18.5
Choose a head ref
  • 10 commits
  • 20 files changed
  • 6 contributors

Commits on Jul 22, 2022

  1. [release-branch.go1.18] runtime: use saved LR when unwinding through …

    …morestack
    
    On LR machine, consider F calling G calling H, which grows stack.
    The stack looks like
    ...
    G's frame:
    	... locals ...
    	saved LR = return PC in F  <- SP points here at morestack
    H's frame (to be created)
    
    At morestack, we save
    	gp.sched.pc = H's morestack call
    	gp.sched.sp = H's entry SP (the arrow above)
    	gp.sched.lr = return PC in G
    
    Currently, when unwinding through morestack (if _TraceJumpStack
    is set), we switch PC and SP but not LR. We then have
    	frame.pc = H's morestack call
    	frame.sp = H's entry SP (the arrow above)
    As LR is not set, we load it from stack at *sp, so
    	frame.lr = return PC in F
    As the SP hasn't decremented at the morestack call,
    	frame.fp = frame.sp = H's entry SP
    
    Unwinding a frame, we have
    	frame.pc = old frame.lr = return PC in F
    	frame.sp = old frame.fp = H's entry SP a.k.a. G's SP
    The PC and SP don't match. The unwinding will go off if F and G
    have different frame sizes.
    
    Fix this by preserving the LR when switching stack.
    
    Also add code to detect infinite loop in unwinding.
    
    TODO: add some test. I can reproduce the infinite loop (or throw
    with added check) but the frequency is low.
    
    Fixes #53112.
    Updates #52116.
    
    Change-Id: I6e1294f1c6e55f664c962767a1cf6c466a0c0eff
    Reviewed-on: https://go-review.googlesource.com/c/go/+/400575
    TryBot-Result: Gopher Robot <[email protected]>
    Run-TryBot: Cherry Mui <[email protected]>
    Reviewed-by: Eric Fang <[email protected]>
    Reviewed-by: Benny Siegert <[email protected]>
    (cherry picked from commit 74f0009)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/408821
    Reviewed-by: Austin Clements <[email protected]>
    cherrymui authored and heschi committed Jul 22, 2022
    Configuration menu
    Copy the full SHA
    12e00f6 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2022

  1. [release-branch.go1.18] runtime: clear timerModifiedEarliest when las…

    …t timer is deleted
    
    timerModifiedEarliest contains the lowest possible expiration for a
    modified earlier timer, which may be earlier than timer0When because we
    haven't yet updated the heap. Note "may", as the modified earlier timer
    that set timerModifiedEarliest may have since been modified later or
    deleted.
    
    We can clear timerModifiedEarliest when the last timer is deleted
    because by definition there must not be any modified earlier timers.
    
    Why does this matter? checkTimersNoP claims that there is work to do if
    timerModifiedEarliest has passed, causing findRunnable to loop back
    around to checkTimers. But the code to clean up timerModifiedEarliest in
    checkTimers (i.e., the call to adjusttimers) is conditional behind a
    check that len(pp.timers) > 0.
    
    Without clearing timerModifiedEarliest, a spinning M that would
    otherwise go to sleep will busy loop in findRunnable until some other
    work is available.
    
    Note that changing the condition on the call to adjusttimers would also
    be a valid fix. I took this approach because it feels a bit cleaner to
    clean up timerModifiedEarliest as soon as it is known to be irrelevant.
    
    For #51654.
    Fixes #53847.
    
    Change-Id: I3f3787c67781cac7ce87939c5706cef8db927dd5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417434
    Auto-Submit: Michael Pratt <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    Run-TryBot: Michael Pratt <[email protected]>
    Reviewed-by: Michael Knyszek <[email protected]>
    Reviewed-by: Ian Lance Taylor <[email protected]>
    (cherry picked from commit c006b7a)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417475
    prattmic authored and cherrymui committed Jul 25, 2022
    Configuration menu
    Copy the full SHA
    4782f42 View commit details
    Browse the repository at this point in the history
  2. [release-branch.go1.18] cmd/go: omit build metadata that may contain …

    …system paths when -trimpath is set
    
    CGO flag variables often include system paths for header files and
    compiled libraries. The point of -trimpath is to avoid dependending on
    system paths, so stamping these variables is counterproductive.
    
    Moreover, the point of stamping build information is to improve
    reproducibility. Since we don't also stamp the versions of C
    compilers, headers, and libraries used in a cgo build, only the most
    trivial cgo programs can be faithfully reproduced from the stamped
    information.
    
    Likewise, the -ldflags flag may include system-specific paths,
    particularly if external linking is in use. For now, we omit -ldflags
    entirely; however, in the future we may instead want to parse and
    redact the individual flags.
    
    Updates #52372.
    Fixes #53119.
    
    Change-Id: I73318a01cce4371d66955b3261fc7ee58d4b33dd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/409174
    TryBot-Result: Gopher Robot <[email protected]>
    Auto-Submit: Bryan Mills <[email protected]>
    Reviewed-by: Ian Lance Taylor <[email protected]>
    Reviewed-by: Ian Lance Taylor <[email protected]>
    Run-TryBot: Bryan Mills <[email protected]>
    (cherry picked from commit a6e5be0)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/414794
    Reviewed-by: Nooras Saba‎ <[email protected]>
    Bryan C. Mills authored and cherrymui committed Jul 25, 2022
    Configuration menu
    Copy the full SHA
    d252fdd View commit details
    Browse the repository at this point in the history
  3. [release-branch.go1.18] testing: include ERROR_SHARING_VIOLATION in W…

    …indows cleanup retries
    
    Fixes #52986
    Updates #51442
    Updates #50051
    
    Change-Id: I1bfbc08c907077467fd50febbec6299a9b73af41
    Reviewed-on: https://go-review.googlesource.com/c/go/+/388916
    Trust: Bryan Mills <[email protected]>
    Run-TryBot: Bryan Mills <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    Reviewed-by: Ian Lance Taylor <[email protected]>
    (cherry picked from commit eeb9f09)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/407877
    Reviewed-by: Nooras Saba‎ <[email protected]>
    Auto-Submit: Bryan Mills <[email protected]>
    Bryan C. Mills authored and cherrymui committed Jul 25, 2022
    Configuration menu
    Copy the full SHA
    d06c911 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2022

  1. [release-branch.go1.18] cmd/compile: do not use special literal assig…

    …nment if LHS is address-taken
    
    A composite literal assignment
    
    x = T{field: v}
    
    may be compiled to
    
    x = T{}
    x.field = v
    
    We already do not use this form is RHS uses LHS. If LHS is
    address-taken, RHS may uses LHS implicitly, e.g.
    
    v = &x.field
    x = T{field: *v}
    
    The lowering above would change the value of RHS (*v).
    
    Updates #52953.
    Fixes #52961.
    
    Change-Id: I3f798e00598aaa550b8c17182c7472fef440d483
    Reviewed-on: https://go-review.googlesource.com/c/go/+/407014
    Reviewed-by: Cuong Manh Le <[email protected]>
    Run-TryBot: Cherry Mui <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    Reviewed-by: Michael Knyszek <[email protected]>
    (cherry picked from commit 1c77137)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/419450
    Reviewed-by: Matthew Dempsky <[email protected]>
    cherrymui committed Jul 26, 2022
    Configuration menu
    Copy the full SHA
    ed50277 View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2022

  1. [release-branch.go1.18] cmd/compile: revert "backport fix for #51840"

    This reverts CL 405436 (commit e1b14f5).
    
    Fixes #53883.
    Updates #51840.
    
    Change-Id: Ide5a9568a7ae5b449ef154c29b69699a7e4b3f6b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417616
    Reviewed-by: David Chase <[email protected]>
    Run-TryBot: Cherry Mui <[email protected]>
    Reviewed-by: Jenny Rakoczy <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    mdempsky authored and cherrymui committed Jul 27, 2022
    Configuration menu
    Copy the full SHA
    76ba1a5 View commit details
    Browse the repository at this point in the history
  2. [release-branch.go1.18] cmd/compile: revert "fix missing dict pass fo…

    …r type assertions"
    
    This reverts CL 411934 (commit 460a93b).
    
    Fixes #53852.
    Updates #53357.
    
    Change-Id: I93d7015d8962d22ffd73128b038e4e7e7ca41c2f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417615
    Run-TryBot: Cherry Mui <[email protected]>
    Reviewed-by: Cuong Manh Le <[email protected]>
    Reviewed-by: David Chase <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    mdempsky authored and cherrymui committed Jul 27, 2022
    Configuration menu
    Copy the full SHA
    6ff8801 View commit details
    Browse the repository at this point in the history
  3. [release-branch.go1.18] cmd/go: avoid re-enqueuing workspace dependen…

    …cies with errors
    
    Fixes #53875.
    Updates #53874.
    
    Change-Id: I41ab15cb9b86b807a9d9ad21fe21fb7aa5fbb46f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417594
    Run-TryBot: Bryan Mills <[email protected]>
    Auto-Submit: Bryan Mills <[email protected]>
    Reviewed-by: Hyang-Ah Hana Kim <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    (cherry picked from commit a906d3d)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417656
    Bryan C. Mills authored and cherrymui committed Jul 27, 2022
    Configuration menu
    Copy the full SHA
    be7c681 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2022

  1. [release-branch.go1.18] math/big: check buffer lengths in GobDecode

    In Float.GobDecode and Rat.GobDecode, check buffer sizes before
    indexing slices.
    
    Updates #53871
    Fixes #54095
    
    Change-Id: I1b652c32c2bc7a0e8aa7620f7be9b2740c568b0a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/417774
    TryBot-Result: Gopher Robot <[email protected]>
    Reviewed-by: Tatiana Bradley <[email protected]>
    Run-TryBot: Roland Shoemaker <[email protected]>
    (cherry picked from commit 055113e)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/419815
    Reviewed-by: Julie Qiu <[email protected]>
    rolandshoemaker authored and cherrymui committed Jul 29, 2022
    Configuration menu
    Copy the full SHA
    9240558 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2022

  1. [release-branch.go1.18] go1.18.5

    Change-Id: I4ca2e873fa21fb4676bc1d0e382bd8fd407a2986
    Reviewed-on: https://go-review.googlesource.com/c/go/+/420555
    Reviewed-by: Cherry Mui <[email protected]>
    Reviewed-by: Dmitri Shuralyov <[email protected]>
    Run-TryBot: Gopher Robot <[email protected]>
    Auto-Submit: Gopher Robot <[email protected]>
    Reviewed-by: Heschi Kreinick <[email protected]>
    TryBot-Result: Gopher Robot <[email protected]>
    gopherbot authored and dmitshur committed Aug 1, 2022
    Configuration menu
    Copy the full SHA
    be59153 View commit details
    Browse the repository at this point in the history
Loading