An error occurred fetching the project authors.
  1. 29 Apr, 2016 1 commit
    • Ian Lance Taylor's avatar
      cmd/cgo, runtime, runtime/cgo: use cgo context function · 5f9a870b
      Ian Lance Taylor authored
      Add support for the context function set by runtime.SetCgoTraceback.
      The context function was added in CL 17761, without support.
      This CL is the support.
      
      This CL has not been tested for real C code, as a working context
      function for C code requires unwind support that does not seem to exist.
      I wanted to get the CL out before the freeze.
      
      I apologize for the length of this CL.  It's mostly plumbing, but
      unfortunately the plumbing is processor-specific.
      
      Change-Id: I8ce11a0de9b3dafcc29efd2649d776e93bff0e90
      Reviewed-on: https://go-review.googlesource.com/22508Reviewed-by: default avatarAustin Clements <austin@google.com>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      5f9a870b
  2. 01 Mar, 2016 1 commit
  3. 03 Apr, 2015 1 commit
    • Srdjan Petrovic's avatar
      runtime: initialize shared library at library-load time · e8694c81
      Srdjan Petrovic authored
      This is Part 2 of the change, see Part 1 here: in https://go-review.googlesource.com/#/c/7692/
      
      Suggested by iant@, we use the library initialization entry point to:
          - create a new OS thread and run the "regular" runtime init stack on
            that thread
          - return immediately from the main (i.e., loader) thread
          - at the first CGO invocation, we wait for the runtime initialization
            to complete.
      
      The above mechanism is implemented only on linux_amd64.  Next step is to
      support it on linux_arm.  Other platforms don't yet support shared library
      compiling/linking, but we intend to use the same strategy there as well.
      
      Change-Id: Ib2c81b1b83bee837134084b75a3beecfb8de6bf4
      Reviewed-on: https://go-review.googlesource.com/8094
      Run-TryBot: Srdjan Petrovic <spetrovic@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      e8694c81
  4. 17 Mar, 2015 1 commit
    • David Crawshaw's avatar
      runtime/cgo: catch EXC_BAD_ACCESS on darwin/arm · 1b49a86e
      David Crawshaw authored
      The Go builders (and standard development cycle) for programs on iOS
      require running the programs under lldb. Unfortunately lldb intercepts
      SIGSEGV and will not give it back.
      
      https://llvm.org/bugs/show_bug.cgi?id=22868
      
      We get around this by never letting lldb see the SIGSEGV. On darwin,
      Unix signals are emulated on top of mach exceptions. The debugger
      registers a task-level mach exception handler. We register a
      thread-level exception handler which acts as a faux signal handler.
      The thread-level handler gets precedence over the task-level handler,
      so we can turn the exception EXC_BAD_ACCESS into a panic before lldb
      can see it.
      
      Fixes #10043
      
      Change-Id: I64d7c310dfa7ecf60eb1e59f094966520d473335
      Reviewed-on: https://go-review.googlesource.com/7072Reviewed-by: default avatarMinux Ma <minux@golang.org>
      Run-TryBot: David Crawshaw <crawshaw@golang.org>
      1b49a86e
  5. 09 Sep, 2014 1 commit
    • Russ Cox's avatar
      runtime: assume precisestack, copystack, StackCopyAlways, ScanStackByFrames · 15b76ad9
      Russ Cox authored
      Commit to stack copying for stack growth.
      
      We're carrying around a surprising amount of cruft from older schemes.
      I am confident that precise stack scans and stack copying are here to stay.
      
      Delete fallback code for when precise stack info is disabled.
      Delete fallback code for when copying stacks is disabled.
      Delete fallback code for when StackCopyAlways is disabled.
      Delete Stktop chain - there is only one stack segment now.
      Delete M.moreargp, M.moreargsize, M.moreframesize, M.cret.
      Delete G.writenbuf (unrelated, just dead).
      Delete runtime.lessstack, runtime.oldstack.
      Delete many amd64 morestack variants.
      Delete initialization of morestack frame/arg sizes (shortens split prologue!).
      
      Replace G's stackguard/stackbase/stack0/stacksize/
      syscallstack/syscallguard/forkstackguard with simple stack
      bounds (lo, hi).
      
      Update liblink, runtime/cgo for adjustments to G.
      
      LGTM=khr
      R=khr, bradfitz
      CC=golang-codereviews, iant, r
      https://golang.org/cl/137410043
      15b76ad9
  6. 08 Sep, 2014 1 commit
  7. 04 Jul, 2014 1 commit
  8. 26 Jun, 2014 1 commit
    • Russ Cox's avatar
      all: remove 'extern register M *m' from runtime · 89f185fe
      Russ Cox authored
      The runtime has historically held two dedicated values g (current goroutine)
      and m (current thread) in 'extern register' slots (TLS on x86, real registers
      backed by TLS on ARM).
      
      This CL removes the extern register m; code now uses g->m.
      
      On ARM, this frees up the register that formerly held m (R9).
      This is important for NaCl, because NaCl ARM code cannot use R9 at all.
      
      The Go 1 macrobenchmarks (those with per-op times >= 10 µs) are unaffected:
      
      BenchmarkBinaryTree17              5491374955     5471024381     -0.37%
      BenchmarkFannkuch11                4357101311     4275174828     -1.88%
      BenchmarkGobDecode                 11029957       11364184       +3.03%
      BenchmarkGobEncode                 6852205        6784822        -0.98%
      BenchmarkGzip                      650795967      650152275      -0.10%
      BenchmarkGunzip                    140962363      141041670      +0.06%
      BenchmarkHTTPClientServer          71581          73081          +2.10%
      BenchmarkJSONEncode                31928079       31913356       -0.05%
      BenchmarkJSONDecode                117470065      113689916      -3.22%
      BenchmarkMandelbrot200             6008923        5998712        -0.17%
      BenchmarkGoParse                   6310917        6327487        +0.26%
      BenchmarkRegexpMatchMedium_1K      114568         114763         +0.17%
      BenchmarkRegexpMatchHard_1K        168977         169244         +0.16%
      BenchmarkRevcomp                   935294971      914060918      -2.27%
      BenchmarkTemplate                  145917123      148186096      +1.55%
      
      Minux previous reported larger variations, but these were caused by
      run-to-run noise, not repeatable slowdowns.
      
      Actual code changes by Minux.
      I only did the docs and the benchmarking.
      
      LGTM=dvyukov, iant, minux
      R=minux, josharian, iant, dave, bradfitz, dvyukov
      CC=golang-codereviews
      https://golang.org/cl/109050043
      89f185fe
  9. 22 Jan, 2014 1 commit
    • Dmitriy Vyukov's avatar
      runtime: fix and improve CPU profiling · 8a3c587d
      Dmitriy Vyukov authored
      - do not lose profiling signals when we have no mcache (possible for syscalls/cgo)
      - do not lose any profiling signals on windows
      - fix profiling of cgo programs on windows (they had no m->thread setup)
      - properly setup tls in cgo programs on windows
      - check _beginthread return value
      
      Fixes #6417.
      Fixes #6986.
      
      R=alex.brainman, rsc
      CC=golang-codereviews
      https://golang.org/cl/44820047
      8a3c587d
  10. 28 Feb, 2013 1 commit
    • Russ Cox's avatar
      runtime/cgo: make symbol naming consistent · f8d49b50
      Russ Cox authored
      The naming in this package is a disaster.
      Make it all consistent.
      
      Remove some 'static' from functions that will
      be referred to from other files soon.
      
      This CL is purely renames using global search and replace.
      
      Submitting separately so that real changes will not
      be drowned out by these renames in future CLs.
      
      TBR=iant
      CC=golang-dev
      https://golang.org/cl/7416046
      f8d49b50
  11. 07 Nov, 2011 1 commit
  12. 08 Dec, 2010 1 commit
  13. 05 Aug, 2010 1 commit
  14. 03 Oct, 2009 1 commit
    • Russ Cox's avatar
      8c, 8l dynamic loading support. · 133a158b
      Russ Cox authored
      better mach binaries.
      cgo working on darwin+linux amd64+386.
      eliminated context switches - pi is 30x faster.
      add libcgo to build.
      
      on snow leopard:
        - non-cgo binaries work; all tests pass.
        - cgo binaries work on amd64 but not 386.
      
      R=r
      DELTA=2031  (1316 added, 626 deleted, 89 changed)
      OCL=35264
      CL=35304
      133a158b