Skip to content
Permalink
Branch: master
Commits on Jun 17, 2019
  1. doc: update 1.13 release notes

    randall77 committed Jun 10, 2019
    Write release notes for a few reflect, runtime, and syscall changes.
    
    The init randomization has been reverted.
    
    Change-Id: Idae481ca015e325eb7302abaa15b2792312f4c32
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181577
    Reviewed-by: Austin Clements <austin@google.com>
Commits on Jun 10, 2019
  1. syscall: fix freebsd 64-bit test

    randall77 committed Jun 10, 2019
    64 bits is 8 bytes. Duh.
    
    Change-Id: I991b359df6241889bdef13152f551af9db6e14c9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181557
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
  2. Revert "Revert "cmd/compile,runtime: allocate defer records on the st…

    randall77 committed Jun 8, 2019
    …ack""
    
    This reverts CL 180761
    
    Reason for revert: Reinstate the stack-allocated defer CL.
    
    There was nothing wrong with the CL proper, but stack allocation of defers exposed two other issues.
    
    Issue #32477: Fix has been submitted as CL 181258.
    Issue #32498: Possible fix is CL 181377 (not submitted yet).
    
    Change-Id: I32b3365d5026600069291b068bbba6cb15295eb3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181378
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
  3. syscall: fix Getdirentries on 32-bit freebsd 12

    randall77 committed Jun 8, 2019
    On freebsd 12, the system call for getdirentries writes 64 bits to
    *basep, even on 32-bit systems. Accomodate that by providing a uint64
    to the system call and copy the base to/from that uint64.
    The uint64 seems to be a virtual file offset, so failing if the high
    bits are not zero should be fine for reasonable-sized directories.
    
    Fixes #32498
    
    Change-Id: Ie22c0d301c6091bd20e813432928b24ab95cc314
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181377
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Commits on Jun 7, 2019
  1. cmd/link: fix deferreturn detector

    randall77 committed Jun 7, 2019
    The logic for detecting deferreturn calls is wrong.
    
    We used to look for a relocation whose symbol is runtime.deferreturn
    and has an offset of 0. But on some architectures, the relocation
    offset is not zero. These include arm (the offset is 0xebfffffe) and
    s390x (the offset is 6).
    
    This ends up setting the deferreturn offset at 0, so we end up using
    the entry point live map instead of the deferreturn live map in a
    frame which defers and then segfaults.
    
    Instead, use the IsDirectCall helper to find calls.
    
    Fixes #32477
    Update #6980
    
    Change-Id: Iecb530a7cf6eabd7233be7d0731ffa78873f3a54
    Reviewed-on: https://go-review.googlesource.com/c/go/+/181258
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
Commits on Jun 5, 2019
  1. Revert "cmd/compile,runtime: allocate defer records on the stack"

    randall77 committed Jun 5, 2019
    This reverts commit fff4f59.
    
    Reason for revert: Seems to still have issues around GC.
    
    Fixes #32452
    
    Change-Id: Ibe7af629f9ad6a3d5312acd7b066123f484da7f0
    Reviewed-on: https://go-review.googlesource.com/c/go/+/180761
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Commits on Jun 4, 2019
  1. cmd/compile,runtime: allocate defer records on the stack

    randall77 committed Apr 11, 2019
    When a defer is executed at most once in a function body,
    we can allocate the defer record for it on the stack instead
    of on the heap.
    
    This should make defers like this (which are very common) faster.
    
    This optimization applies to 363 out of the 370 static defer sites
    in the cmd/go binary.
    
    name     old time/op  new time/op  delta
    Defer-4  52.2ns ± 5%  36.2ns ± 3%  -30.70%  (p=0.000 n=10+10)
    
    Fixes #6980
    Update #14939
    
    Change-Id: I697109dd7aeef9e97a9eeba2ef65ff53d3ee1004
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171758
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Austin Clements <austin@google.com>
Commits on Jun 3, 2019
  1. runtime: get map of args of unstarted goroutines like we do for defers

    randall77 committed Jun 3, 2019
    Normally, reflect.makeFuncStub records the context value at a known
    point in the stack frame, so that the runtime can get the argument map
    for reflect.makeFuncStub from that known location.
    
    This doesn't work for defers or goroutines that haven't started yet,
    because they haven't allocated a frame or run an instruction yet. The
    argument map must be extracted from the context value. We already do
    this for defers (the non-nil ctxt arg to getArgInfo), we just need to
    do it for unstarted goroutines as well.
    
    When we traceback a goroutine, remember the context value from
    g.sched.  Use it for the first frame we find.
    
    (We never need it for deeper frames, because we normally don't stop at
     the start of reflect.makeFuncStub, as it is nosplit. With this CL we
     could allow makeFuncStub to no longer be nosplit.)
    
    Fixes #25897
    
    Change-Id: I427abf332a741a80728cdc0b8412aa8f37e7c418
    Reviewed-on: https://go-review.googlesource.com/c/go/+/180258
    Reviewed-by: Cherry Zhang <cherryyz@google.com>
Commits on May 31, 2019
  1. cmd/compile: don't move nil checks across a VarDef

    randall77 committed May 28, 2019
    We need to make sure that there's no possible faulting
    instruction between a VarDef and that variable being
    fully initialized. If there was, then anything scanning
    the stack during the handling of that fault will see
    a live but uninitialized variable on the stack.
    
    If we have:
    
      NilCheck p
      VarDef x
      x = *p
    
    We can't rewrite that to
    
      VarDef x
      NilCheck p
      x = *p
    
    Particularly, even though *p faults on p==nil, we still
    have to do the explicit nil check before the VarDef.
    
    Fixes #32288
    
    Change-Id: Ib8b88e6a5af3bf6f238ff5491ac86f53f3cf9fc9
    Reviewed-on: https://go-review.googlesource.com/c/go/+/179239
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Commits on May 29, 2019
  1. cmd/compile: add GCNode to VarDef in tests

    randall77 committed May 29, 2019
    Change-Id: I0f79d317ae7ac46c7e824bd382a4f51d53adaaa6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/179257
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Commits on May 22, 2019
  1. runtime: revert init order changes

    randall77 committed May 21, 2019
    First, remove the randomization of initialization order.
    
    Then, revert to source code order instead of sorted package path order.
    
    This restores the behavior that was in 1.12.
    
    A larger change which will implement the suggestion in #31636 will
    wait for 1.14. It's too complicated for 1.13 at this point (it has
    tricky interactions with plugins).
    
    Fixes #31636
    
    Change-Id: I35b48e8cc21cf9f93c0973edd9193d2eac197628
    Reviewed-on: https://go-review.googlesource.com/c/go/+/178297
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
Commits on May 20, 2019
  1. runtime: In Frames.Next, delay file/line lookup until just before return

    randall77 committed May 19, 2019
    That way we will never have to look up the file/line for the frame
    that's next to be returned when the user stops calling Next.
    
    For the benchmark from #32093:
    
    name      old time/op  new time/op  delta
    Helper-4   948ns ± 1%   836ns ± 3%  -11.89%  (p=0.000 n=9+9)
    
    (#32093 was fixed with a more specific, and better, fix, but this
    fix is much more general.)
    
    Change-Id: I89e796f80c9706706d8d8b30eb14be3a8a442846
    Reviewed-on: https://go-review.googlesource.com/c/go/+/178077
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on May 17, 2019
  1. testing: callerName only needs one PC in the traceback

    randall77 committed May 17, 2019
    callerName requested 2 PCs from Callers, and that causes
    both to be looked up in the file/line mapping.
    We really only need to do the work for one PC.
    (And in fact the caller doesn't need file/line at all, but
    the Callers API can't express that.)
    
    We used to request 2 PCs because in 1.11 and earlier we
    stored an inline skip count in the second entry.
    That's not necessary any more (as of 1.12).
    
    Fixes #32093
    
    Change-Id: I7b272626ef6496e848ee8af388cdaafd2556857b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177858
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Caleb Spare <cespare@gmail.com>
  2. cmd/compile: mention issue 28603 when discussing where inline marks go

    randall77 committed May 16, 2019
    Update #28603
    
    Change-Id: I8bdbea57b3661e15dcc760d27252b794daa476db
    Reviewed-on: https://go-review.googlesource.com/c/go/+/177697
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Commits on May 14, 2019
  1. cmd/compile: make sure to initialize static entries of slices

    randall77 committed May 13, 2019
    If a slice's entries are sparse, we decide to initialize it dynamically
    instead of statically. That's CL 151319.
    
    But if we do initialize it dynamically, we still need to initialize
    the static entries. Typically we do that, but the bug fixed here is
    that we don't if the entry's value is itself an array or struct.
    
    To fix, use initKindLocalCode to ensure that both static and
    dynamic entries are initialized via code.
    
    Fixes #31987
    
    Change-Id: I1192ffdbfb5cd50445c1206c4a3d8253295201dd
    Reviewed-on: https://go-review.googlesource.com/c/go/+/176904
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Commits on May 6, 2019
  1. reflect: special-case panic message when returning Value{} from MakeF…

    randall77 committed May 6, 2019
    …unc function
    
    Before this CL we used to panic with "nil pointer dereference" because
    the value we're calling assignTo on is the zero Value. Provide a better
    error message.
    
    Fixes #28748
    
    Change-Id: I7dd4c9e30b599863664d91e78cc45878d8b0052e
    Reviewed-on: https://go-review.googlesource.com/c/go/+/175440
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Commits on May 2, 2019
  1. reflect: MakeFunc: allow assignment conversions on values returned fr…

    randall77 committed Apr 30, 2019
    …om the wrapped function
    
    Instead of requiring exact type match, allow assignment conversions
    (those conversions allowed in the language spec without a cast) on the
    returned values.
    
    Particularly useful when the type being returned is an interface type,
    but the Value actually returned is a concrete value implementing that
    type (as it is tricky to return a Value which has interface type).
    
    RELNOTE=y
    
    Fixes #28761
    
    Change-Id: I69eef07ca51690b2086dfa1eb549db5e4724c657
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174531
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Commits on Apr 30, 2019
  1. cmd/compile: fix line numbers for index panics

    randall77 committed Apr 30, 2019
    In the statement x = a[i], the index panic should appear to come from
    the line number of the '['. Previous to this CL we sometimes used the
    line number of the '=' instead.
    
    Fixes #29504
    
    Change-Id: Ie718fd303c1ac2aee33e88d52c9ba9bcf220dea1
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174617
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
  2. cmd/compile: remove dynamic entry handling from sinit/maplit

    randall77 committed Apr 30, 2019
    The order pass now handles all the dynamic entries.
    
    Update #26552
    
    Followup to CL 174417
    
    Change-Id: Ie924cadb0e0ba36c423868f654f13040100b44c6
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174498
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
  3. runtime: fix data sizes for res_search results

    randall77 committed Apr 30, 2019
    The return values are 32 bit, not 64 bit.
    
    I don't think this would be the cause of any problems, but
    it can't hurt to fix it.
    
    Change-Id: Icdd50606360ab9d74070271f9d1721d5fe640bc7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174518
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 29, 2019
  1. cmd/compile: evaluate map initializers incrementally

    randall77 committed Apr 29, 2019
    For the code:
    
    m := map[int]int {
      a(): b(),
      c(): d(),
      e(): f(),
    }
    
    We used to do:
    
    t1 := a()
    t2 := b()
    t3 := c()
    t4 := d()
    t5 := e()
    t6 := f()
    m := map[int]int{}
    m[t1] = t2
    m[t3] = t4
    m[t5] = t6
    
    After this CL we do:
    
    m := map[int]int{}
    t1 := a()
    t2 := b()
    m[t1] = t2
    t3 := c()
    t4 := d()
    m[t3] = t4
    t5 := e()
    t6 := f()
    m[t5] = t6
    
    Ordering the initialization this way limits the lifetime of the
    temporaries involved.  In particular, for large maps the number of
    simultaneously live temporaries goes from ~2*len(m) to ~2. This change
    makes the compiler (regalloc, mostly) a lot happier. The compiler runs
    faster and uses a lot less memory.
    
    For #26546, changes compile time of a big map from 8 sec to 0.5 sec.
    
    Fixes #26552
    
    Update #26546
    
    Change-Id: Ib7d202dead3feaf493a464779fd9611c63fcc25f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/174417
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Commits on Apr 23, 2019
  1. Revert "cmd/compile: add signed divisibility by power of 2 rules"

    randall77 committed Apr 23, 2019
    This reverts CL 168038 (git 68819fb)
    
    Reason for revert: Doesn't work on 32 bit archs.
    
    Change-Id: Idec9098060dc65bc2f774c5383f0477f8eb63a3d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173442
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
  2. runtime: randomize package initialization order in race mode

    randall77 committed Apr 1, 2019
    This is one small step to force people to not depend on the order of
    initialization of packages which are not explicitly ordered by import
    directives. Similar to randomizing map iteration order, this makes
    sure people aren't depending on the behavior of the current release,
    so that we can change the order in future releases without breaking
    everyone.
    
    Maybe one day we can randomize always, but for now we do it just in
    race mode. (We would need to measure the impact on startup time before
    we enabled it always.)
    
    RELNOTE=yes
    
    Change-Id: I99026394796125974c5f2c3660a88becb92c9df3
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170318
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
  3. cmd/compile: always mark atColumn1 results as statements

    randall77 committed Apr 23, 2019
    In 31618, we end up comparing the is-stmt-ness of positions
    to repurpose real instructions as inline marks. If the is-stmt-ness
    doesn't match, we end up not being able to remove the inline mark.
    
    Always use statement-full positions to do the matching, so we
    always find a match if there is one.
    
    Also always use positions that are statements for inline marks.
    
    Fixes #31618
    
    Change-Id: Idaf39bdb32fa45238d5cd52973cadf4504f947d5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/173324
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: David Chase <drchase@google.com>
Commits on Apr 22, 2019
  1. cmd/compile: use correct package name for stack object symbol

    randall77 committed Apr 10, 2019
    Stack object generation code was always using the local package name
    for its symbol. Normally that doesn't matter, as we usually only
    compile functions in the local package. But for wrappers, the compiler
    generates functions which live in other packages. When there are two
    other packages with identical functions to wrap, the same name appears
    twice, and the compiler goes boom.
    
    Fixes #31252
    
    Change-Id: I7026eebabe562cb159b8b6046cf656afd336ba25
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171464
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Commits on Apr 16, 2019
  1. syscall: skip DirentRepeat test on freebsd

    randall77 authored and bcmills committed Apr 11, 2019
    Dirent doesn't work properly. Diable the test for now.
    
    Update #31416
    
    Change-Id: I34a8045598a9c303dcc754ce04da3c124f122d1a
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171818
    Reviewed-by: Bryan C. Mills <bcmills@google.com>
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 11, 2019
  1. syscall: enforce minimum buffer size to call ReadDirent

    randall77 committed Apr 11, 2019
    freebsd and netbsd require a minimum buffer size of 1K.
    
    Note this doesn't quite fix freebsd, it has other bugs,
    I'll file a separate issue.
    
    Fixes #31403
    
    Change-Id: I9d7e78f6d30859b34715afadc4b8bd3b1ecc606b
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171757
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 10, 2019
  1. syscall: store skip count in file descriptor offset

    randall77 committed Apr 10, 2019
    Multiple calls to ReadDirent expect to return subsequent
    portions of the directory listing. There's no place to store
    our progress other than the file descriptor offset.
    
    Fortunately, the file descriptor offset doesn't need to be
    a real offset. We can store any int64 we want there.
    
    Fixes #31368
    
    Change-Id: I49e4e0e7ff707d3e96aa5d43e3b0199531013cde
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171477
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 8, 2019
  1. cmd/compile: get rid of unnecessary inline marks

    randall77 committed Apr 2, 2019
    If no other instruction mentions an inline mark, we can get rid of it.
    This normally happens when the inlined function is empty, or when all
    of its code is folded into other instructions.
    
    Also use consistent statement-ness for inline mark positions, so that
    more of them can be removed in favor of existing instructions.
    
    Update #29571
    Fixes #31172
    
    Change-Id: I71f84d355101f37a27960d9e8528f42f92767496
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170445
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Commits on Apr 7, 2019
  1. cmd/compile: remove AUNDEF opcode

    randall77 committed Apr 6, 2019
    This opcode was only used to mark unreachable code for plive to use.
    plive now uses the SSA representation, so it knows locations are
    unreachable because they are ends of Exit blocks. It doesn't need
    these opcodes any more.
    
    These opcodes actually used space in the binary, 2 bytes per undef
    on x86 and more for other archs.
    
    Makes the amd64 go binary 0.2% smaller.
    
    Change-Id: I64c84c35db7c7949617a3a5830f09c8e5fcd2620
    Reviewed-on: https://go-review.googlesource.com/c/go/+/171058
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Commits on Apr 5, 2019
  1. syscall: use openat instead of dup to make a really new file descriptor

    randall77 committed Apr 5, 2019
    Update #31269
    
    Change-Id: I0e7184420055b8dfd23688dab9f9d8cba1fa2485
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170892
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
  2. syscall: dup the argument to fdopendir

    randall77 committed Apr 5, 2019
    fdopendir takes ownership of its file descriptor argument.
    Getdirentries shouldn't do that, so dup the file descriptor
    before passing to fdopendir.
    
    Fixes #31269
    
    Change-Id: Ie36be8fd6c59eb339dcc9f40228d4191fc1e5850
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170698
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 4, 2019
  1. syscall: don't use INODE64 for fdopendir on darwin/386

    randall77 committed Apr 4, 2019
    The INODE64 variant only exists on 64-bit.
    
    Fixes #31262
    
    Change-Id: I528277c9b3312fdb15463ccbea0d537ff300f4ae
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170837
    Run-TryBot: Keith Randall <khr@golang.org>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
Commits on Apr 3, 2019
  1. syscall: avoid _getdirentries64 on darwin

    randall77 committed Mar 20, 2019
    Getdirentries is implemented with the __getdirentries64 function
    in libSystem.dylib. That function works, but it's on Apple's
    can't-be-used-in-an-app-store-application list.
    
    Implement Getdirentries using the underlying fdopendir/readdir_r/closedir.
    The simulation isn't faithful, and could be slow, but it should handle
    common cases.
    
    Don't use Getdirentries in the stdlib, use fdopendir/readdir_r/closedir
    instead (via (*os.File).readdirnames).
    
    Fixes #30933
    
    Update #28984
    
    RELNOTE=yes
    
    Change-Id: Ia6b5d003e5bfe43ba54b1e1d9cfa792cc6511717
    Reviewed-on: https://go-review.googlesource.com/c/go/+/168479
    Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
    Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
    Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
  2. cmd/compile: handle new panicindex/slice names in optimizations

    randall77 committed Apr 3, 2019
    These new calls should not prevent NOSPLIT promotion, like the old ones.
    These new calls should not prevent racefuncenter/exit removal.
    
    (The latter was already true, as the new calls are not yet lowered
    to StaticCalls at the point where racefuncenter/exit removal is done.)
    
    Add tests to make sure we don't regress (again).
    
    Fixes #31219
    
    Change-Id: I3fb6b17cdd32c425829f1e2498defa813a5a9ace
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170639
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: Ilya Tocar <ilya.tocar@intel.com>
Older
You can’t perform that action at this time.