summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2010-04-08runtime: fix bad status throwRuss Cox3-3/+11
when garbage collector sees recovering goroutine Fixes issue 711. R=r CC=golang-dev http://codereview.appspot.com/869045
2010-04-08runtime: work around kernel bug in Snow Leopard signal handlingRuss Cox2-63/+22
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 issue 510. R=r CC=golang-dev http://codereview.appspot.com/824046
2010-04-08math: atan2 special cases (negative zero)Charles L. Dorian5-32/+91
Added Signbit(), revised Copysign() R=rsc CC=golang-dev http://codereview.appspot.com/822045 Committer: Russ Cox <rsc@golang.org>
2010-04-07runtime: use explicit flag when finalizer goroutine is waitingRuss Cox1-1/+6
Avoids spurious wakeups during other sleeping by that goroutine. Fixes issue 711. R=r CC=golang-dev http://codereview.appspot.com/902041
2010-04-07gotest: update URL printed by failure message.Rob Pike1-1/+1
Fixes issue 677. R=rsc CC=golang-dev http://codereview.appspot.com/834046
2010-04-06another try at clearingKen Thompson1-9/+6
channel recv data. R=rsc CC=golang-dev http://codereview.appspot.com/896041
2010-04-06change channel read to clearKen Thompson1-3/+12
data just read from the channel. this will make it easier to recognize when to garbage collect and finalize. R=rsc CC=golang-dev http://codereview.appspot.com/882043
2010-04-06net: use chan bool instead of chan *netFD to avoid cycleRuss Cox1-8/+8
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 http://codereview.appspot.com/875043
2010-04-06flags: better tests.Rob Pike2-18/+138
R=rsc CC=golang-dev http://codereview.appspot.com/864044
2010-04-06runtime: two proc bug fixesRuss Cox1-6/+13
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 http://codereview.appspot.com/880043
2010-04-06Change goyacc to be reentrant.Roger Peppe3-605/+532
Instead of calling the package scope Lex function, Parse now takes an argument which is used to do the lexing. I reverted to having the generated switch code inside Parse rather than a separate function because the function needs 7 arguments or a context structure, which seems unnecessary. I used yyrun(), not the original $A so that it's possible to run the backquoted code through gofmt. R=rsc, ken2, ken3 CC=golang-dev http://codereview.appspot.com/879041 Committer: Ken Thompson <ken@golang.org>
2010-04-06replace original float instruction with jump to make branchesKai Backman1-11/+12
to float instructions work correctly. R=rsc CC=golang-dev http://codereview.appspot.com/870044
2010-04-06fix deps.bash. \t does not mean tab in some seds.Rob Pike1-2/+4
also: add /dev/null to the ls args to repair handling of empty dependency lists. R=rsc CC=golang-dev http://codereview.appspot.com/883045
2010-04-06syscall package: document that errno is zeroed on successGiles Lean1-0/+2
This is a documentation enhancement only, without any code change. The rationale for documenting this precisely is that Unix programmers who "know" that errno's value is undefined after a successful system call may be surprised otherwise and search to be sure that a zero errno may be relied upon after successful calls. R=r, rsc1, rsc CC=golang-dev http://codereview.appspot.com/812044 Committer: Russ Cox <rsc@golang.org>
2010-04-06GNU/Linux sed requires \? rather than ?. Just use * instead.Ian Lance Taylor1-1/+1
R=rsc, r CC=golang-dev http://codereview.appspot.com/810043 Committer: Russ Cox <rsc@golang.org>
2010-04-05libcgo: initial mingw port work - builds but untestedJoe Poirier5-2/+94
R=rsc CC=golang-dev http://codereview.appspot.com/812041 Committer: Russ Cox <rsc@golang.org>
2010-04-05io/ioutil: fix bug in ReadFile when Open succeeds but Stat failsRuss Cox1-1/+1
R=gri CC=golang-dev http://codereview.appspot.com/867044
2010-04-05runtime: fix CallerRuss Cox2-2/+2
log: add test of Caller New regexp in log test is picky and will require some maintenance, but it catches off-by-one mistakes too. Fixes issue 710. R=gri CC=esko.luontola, golang-dev http://codereview.appspot.com/887043
2010-04-05http: fix documentation exampleRuss Cox1-6/+7
R=adg CC=golang-dev http://codereview.appspot.com/813043
2010-04-05cmath: new packageCharles L. Dorian17-0/+1715
Complex math function package. Still needs more special case checking. R=rsc CC=golang-dev http://codereview.appspot.com/874041 Committer: Russ Cox <rsc@golang.org>
2010-04-05deps.bash: be less strict about format of x.go linesRuss Cox1-1/+1
R=iant CC=golang-dev http://codereview.appspot.com/862042
2010-04-05runtime: handle malloc > 2GB correctlyRuss Cox4-18/+18
R=ken2 CC=golang-dev http://codereview.appspot.com/821048
2010-04-05crypto/tls: good defaultsRuss Cox2-1/+61
R=agl1 CC=golang-dev http://codereview.appspot.com/851041
2010-04-05runtime: various arm fixesRuss Cox31-200/+401
* correct symbol table size * do not reorder functions in output * traceback * signal handling * use same code for go + defer * handle leaf functions in symbol table R=kaib, dpx CC=golang-dev http://codereview.appspot.com/884041
2010-04-04gc: good syntax error for defer func() {} - missing final ()Russ Cox1-0/+4
R=ken2 CC=golang-dev http://codereview.appspot.com/855044
2010-04-04nntp: new package, NNTP clientConrad Meyer4-0/+962
R=rsc, rsc1 CC=golang-dev http://codereview.appspot.com/808041 Committer: Russ Cox <rsc@golang.org>
2010-04-05run.bash: remove MAKEFLAGS=-j4 to prevent crashing on freebsdAndrew Gerrand1-1/+0
R=rsc CC=golang-dev http://codereview.appspot.com/881044
2010-04-02debug/proc: fix typo in package documentationRobert Griesemer1-1/+1
R=rsc CC=golang-dev http://codereview.appspot.com/829044
2010-04-02syscall: implementing some mingw syscalls required by os packageAlex Brainman11-29/+571
R=rsc CC=golang-dev http://codereview.appspot.com/770041 Committer: Russ Cox <rsc@golang.org>
2010-04-01runtime: turn run time errors checks into panicsRuss Cox26-200/+134
R=ken2, r CC=golang-dev http://codereview.appspot.com/871042 Committer: Russ Cox <rsc@golang.org>
2010-04-01debug/macho: fix error message formatRobert Griesemer1-2/+2
R=rsc CC=golang-dev http://codereview.appspot.com/836046
2010-04-01debug/macho: don't crash when reading non-Mach-O filesRobert Griesemer2-1/+11
R=rsc CC=golang-dev http://codereview.appspot.com/838046
2010-04-01runtime: correct memory leak in selectRuss Cox1-179/+125
* adds pass 3 to dequeue from channels eagerly various other cleanup/churn: * use switch on cas->send in each pass to factor out common code. * longer goto labels, commented at target * be more agressive about can't happen: throw instead of print + cope. * use "select" instead of "selectgo" in errors * use printf for debug prints when possible R=ken2, ken3 CC=golang-dev, r http://codereview.appspot.com/875041
2010-03-31build script tweaksRuss Cox4-49/+84
factor out environment variable checks. infer $GOROOT etc during build if not set. it's still necessary to set them for yourself to use the standard Makefiles. when running all.bash, don't recompile all the go packages in run.bash, since make.bash already did. R=r CC=golang-dev http://codereview.appspot.com/609042
2010-03-31testing/regexp: use recover.Rob Pike2-61/+32
R=rsc CC=golang-dev http://codereview.appspot.com/816042 Committer: Rob Pike <r@golang.org>
2010-04-01json: use panic/recover to handle errors in MarshalAndrew Gerrand1-36/+21
R=r, gri CC=golang-dev http://codereview.appspot.com/872041
2010-04-01Delete xgb from the main repository. It has moved toNigel Tao7-5521/+0
http://code.google.com/p/x-go-binding/ R=rsc CC=golang-dev http://codereview.appspot.com/846043
2010-03-31gc: fix alignment on non-amd64Russ Cox1-1/+1
R=ken2 CC=golang-dev http://codereview.appspot.com/870041
2010-03-31tabwriter: use panic/recover to handle errorsRobert Griesemer1-50/+47
R=rsc, r CC=golang-dev http://codereview.appspot.com/864042
2010-03-31regexp: use panic/recover to handle errorsRob Pike1-72/+50
R=rsc, gri CC=golang-dev http://codereview.appspot.com/821046
2010-03-31runtime: make type assertion a runtime.Error, the first of manyRuss Cox9-127/+162
R=r CC=golang-dev http://codereview.appspot.com/805043
2010-03-31gc: implement panic and recoverRuss Cox15-30/+238
R=ken2, r, ken3 CC=golang-dev http://codereview.appspot.com/831042
2010-03-30Unicode: fix stupid typo in comment.Rob Pike1-2/+2
R=rsc CC=golang-dev http://codereview.appspot.com/864041
2010-03-30Unicode: provide an ability to supplement the case-mapping tablesRob Pike6-5/+133
in character and string case mapping routines. Add a custom mapper for Turkish and Azeri. A more general solution for deriving the case information from Unicode's SpecialCasing.txt will require more work. Fixes issue 703. R=rsc, rsc1 CC=golang-dev, mdakin http://codereview.appspot.com/824043
2010-03-30godoc: support for title and subtitle headers when serving .html docsRobert Griesemer2-17/+27
and use it to show version (date) of go spec Fixes issue 68. R=rsc CC=golang-dev, r http://codereview.appspot.com/848042
2010-03-30runtime: fix arm build, slightly.Russ Cox1-1/+1
R=r CC=golang-dev http://codereview.appspot.com/842042
2010-03-30go/printer: follow-up on CL 802043Robert Griesemer5-23/+87
- more test cases - comment fixes - minor unrelated changes as part of investigation of issue 702 R=rsc CC=golang-dev http://codereview.appspot.com/860041
2010-03-30time: do not segment time strings by character class.Russ Cox3-173/+212
instead use pure substring matching to find template values. this makes stdZulu unnecessary and allows formats like "20060102 030405" (used in some internet protocols). this makes Parse not handle years < 0000 or > 9999 anymore. that seems like an okay price to pay, trading hypothetical functionality for real functionality. also changed the comments on the Time struct to use the same reference date as the format and parse routines. R=r CC=golang-dev http://codereview.appspot.com/833045
2010-03-30syscall: add IPV6 constantsRuss Cox6-1108/+1255
R=r CC=golang-dev http://codereview.appspot.com/848041
2010-03-30single argument panic on non-darwin and in commentsRuss Cox6-12/+12
R=r CC=golang-dev http://codereview.appspot.com/800042