- 11 Apr, 2010 9 commits
-
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/902044
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/883049
-
Evan Shaw authored
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/849049
-
Evan Shaw authored
R=rsc CC=golang-dev https://golang.org/cl/901042
-
Christopher Wedgwood authored
R=rsc, r CC=golang-dev https://golang.org/cl/903044
-
Christopher Wedgwood authored
R=rsc, r CC=golang-dev https://golang.org/cl/822047
-
Christopher Wedgwood authored
R=rsc, r CC=golang-dev https://golang.org/cl/823045
-
Christopher Wedgwood authored
R=gri, r CC=golang-dev, rsc https://golang.org/cl/819042
-
Andrew Gerrand authored
R=r CC=golang-dev https://golang.org/cl/811044
-
- 10 Apr, 2010 2 commits
-
-
David Symonds authored
R=rsc CC=golang-dev https://golang.org/cl/903043
-
Michael Hoisie authored
strings: add IndexRune, Trim, TrimLeft, TrimRight, and the generic equivalents TrimFunc, TrimLeftFunc, TrimRightFunc R=rsc, r CC=golang-dev https://golang.org/cl/799048
-
- 09 Apr, 2010 14 commits
-
-
Russ Cox authored
remove internal functions from traces in gopprof instead. R=r CC=golang-dev https://golang.org/cl/855046
-
Russ Cox authored
R=r CC=golang-dev https://golang.org/cl/909041
-
Charles L. Dorian authored
R=rsc CC=golang-dev https://golang.org/cl/908041
-
Charles L. Dorian authored
R=rsc CC=golang-dev https://golang.org/cl/831045
-
Ian Lance Taylor authored
This is required to make cgo export work on Darwin. Note that this corrects the stack alignment when calling initcgo to that required by gcc on amd64. R=rsc CC=golang-dev https://golang.org/cl/907041
-
Ian Lance Taylor authored
R=rsc CC=golang-dev https://golang.org/cl/881043
-
Ian Lance Taylor authored
The new //export comment marks a Go function as callable from C. The syntax is "//export NAME" where NAME is the name of the function as seen from C. If such a comment is seen, cgo will generate two new files: _cgo_export.h and _cgo_export.c. The _cgo_export.h file provides declarations which C code may use to call Go functions. The _cgo_export.c file contains wrappers, and is to be compiled with gcc. The changes to Make.pkg support using this from a Go Makefile, though it could probably be more convenient. R=rsc CC=golang-dev https://golang.org/cl/853042
-
Ian Lance Taylor authored
These functions are used to call from a C function back to a Go function. This only includes 386 support. R=rsc CC=golang-dev https://golang.org/cl/834045
-
Ian Lance Taylor authored
R=rsc CC=golang-dev https://golang.org/cl/857045
-
Rob Pike authored
R=golang-dev, iant CC=golang-dev https://golang.org/cl/854045
-
Rob Pike authored
R=rsc CC=golang-dev https://golang.org/cl/902042
-
Alex Brainman authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/872043
-
Russ Cox authored
R=adg CC=golang-dev https://golang.org/cl/867046
-
Russ Cox authored
tested on linux/amd64, linux/386, linux/arm, darwin/amd64, darwin/386. freebsd untested; will finish in a separate CL. for now all the panics are errorStrings. richer structures can be added as necessary once the mechanism is shaked out. R=r CC=golang-dev https://golang.org/cl/906041
-
- 08 Apr, 2010 6 commits
-
-
Russ Cox authored
when garbage collector sees recovering goroutine Fixes #711. R=r CC=golang-dev https://golang.org/cl/869045
-
Russ Cox authored
Could not take a signal on threads other than the main thread. If you look at the spinning binary with dtrace, you can see a fault happening over and over: $ dtrace -n ' fbt::user_trap:entry /execname=="boot32" && self->count < 10/ { self->count++; printf("%s %x %x %x %x", probefunc, arg1, arg2, arg3, arg4); stack(); tracemem(arg4, 256); }' dtrace: description 'fbt::user_trap:entry ' matched 1 probe CPU ID FUNCTION:NAME 1 17015 user_trap:entry user_trap 0 10 79af0a0 79af0a0 mach_kernel`lo_alltraps+0x12a 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 0: 0e 00 00 00 37 00 00 00 00 00 00 00 1f 00 00 00 ....7........... 10: 1f 00 00 00 a8 33 00 00 00 00 00 01 00 00 00 00 .....3.......... 20: 98 ba dc fe 07 09 00 00 00 00 00 00 98 ba dc fe ................ 30: 06 00 00 00 0d 00 00 00 34 00 00 00 9e 1c 00 00 ........4....... 40: 17 00 00 00 00 02 00 00 ac 30 00 00 1f 00 00 00 .........0...... 50: 00 00 00 00 00 00 00 00 0d 00 00 00 e0 e6 29 00 ..............). 60: 34 00 00 00 00 00 00 00 9e 1c 00 00 00 00 00 00 4............... 70: 17 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................ 80: ac 30 00 00 00 00 00 00 1f 00 00 00 00 00 00 00 .0.............. 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ a0: 48 00 00 00 10 00 00 00 85 00 00 00 a0 f2 29 00 H.............). b0: 69 01 00 02 00 00 00 00 e6 93 04 82 ff 7f 00 00 i............... c0: 2f 00 00 00 00 00 00 00 06 02 00 00 00 00 00 00 /............... d0: 78 ee 42 01 01 00 00 00 1f 00 00 00 00 00 00 00 x.B............. e0: 00 ed 9a 07 00 00 00 00 00 00 00 00 00 00 00 00 ................ f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ... The memory dump shows a 32-bit exception frame: x86_saved_state32 gs = 0x37 fs = 0 es = 0x1f ds = 0x1f edi = 0x33a8 esi = 0x01000000 ebp = 0 cr2 = 0xfedcba98 ebx = 0x0907 edx = 0 ecx = 0xfedcba98 eax = 0x06 trapno = 0x0d err = 0x34 eip = 0x1c9e cs = 0x17 efl = 0x0200 uesp = 0x30ac ss = 0x1f The cr2 of 0xfedcba98 is the address that the new thread read to cause the fault, but note that the trap is now a GP fault with error code 0x34, meaning it's moved past the cr2 problem and on to an invaild segment selector. The 0x34 is suspiciously similar to the 0x37 in gs, and sure enough, OS X forces gs to have that value in the signal handler, and if your thread hasn't set up that segment (known as USER_CTHREAD), you'll fault on the IRET into the signal handler and never be able to handle a signal. The kernel bug is that it forces segment 0x37 without making sure it is a valid segment. Leopard also forced 0x37 but had the courtesy to set it up first. Since OS X requires us to set up that segment (using the thread_fast_set_cthread_self system call), we might as well use it instead of the more complicated i386_set_ldt call to set up our per-OS thread storage. Also add some more zeros to bsdthread_register for new arguments in Snow Leopard (apparently unnecessary, but being careful). Fixes #510. R=r CC=golang-dev https://golang.org/cl/824046
-
Charles L. Dorian authored
Added Signbit(), revised Copysign() R=rsc CC=golang-dev https://golang.org/cl/822045
-
Russ Cox authored
Avoids spurious wakeups during other sleeping by that goroutine. Fixes #711. R=r CC=golang-dev https://golang.org/cl/902041
-
Rob Pike authored
Fixes #677. R=rsc CC=golang-dev https://golang.org/cl/834046
-
Joe Poirier authored
R=rsc, adg CC=golang-dev https://golang.org/cl/881047
-
- 07 Apr, 2010 5 commits
-
-
Rob Pike authored
R=iant CC=golang-dev https://golang.org/cl/874043
-
Rob Pike authored
R=rsc, iant CC=golang-dev https://golang.org/cl/824045
-
Russ Cox authored
TBR=kaib CC=golang-dev https://golang.org/cl/897041
-
Russ Cox authored
TBR=kaib CC=golang-dev https://golang.org/cl/883046
-
Ken Thompson authored
channel recv data. R=rsc CC=golang-dev https://golang.org/cl/896041
-
- 06 Apr, 2010 4 commits
-
-
Ken Thompson authored
data just read from the channel. this will make it easier to recognize when to garbage collect and finalize. R=rsc CC=golang-dev https://golang.org/cl/882043
-
Russ Cox authored
The cycle is *netFD -> cw chanl *netFD in struct -> same *netFD in channel read buffer. Because channels are finalized, the cycle makes them uncollectable. A better fix is to make channels not finalized anymore, and that will happen, but this is an easy, reasonable workaround until then. Another good fix would be to zero the channel receive buffer entry after the receive. That too will happen. R=r CC=golang-dev https://golang.org/cl/875043
-
Rob Pike authored
R=rsc CC=golang-dev https://golang.org/cl/864044
-
Russ Cox authored
1. Fix bug in GOMAXPROCS when trying to cut number of procs Race could happen on any system but was manifesting only on Xen hosted Linux. 2. Fix recover on ARM, where FP != caller SP. R=r CC=golang-dev https://golang.org/cl/880043
-