Russ Cox
a186b77b03
gc: implement defer print/println/panic/panicln
...
Fixes #219 .
R=ken2, r
CC=golang-dev
https://golang.org/cl/194097
2010-01-27 15:37:08 -08:00
Russ Cox
2a01d72878
gc: improved syntax errors
...
* example-based syntax errors (go.errors)
* enable bison's more specific errors
and translate grammar token names into
tokens like ++
* test cases
R=ken2, r, ken3
CC=golang-dev
https://golang.org/cl/194085
2010-01-26 23:13:22 -08:00
Russ Cox
7abb4b3a96
gc: fix chan <- chan precedence.
...
also allow func() func().
R=ken2
CC=golang-dev
https://golang.org/cl/194078
2010-01-26 10:40:28 -08:00
Robert Griesemer
f4dfbd1cf0
channel types parsed not according to spec by 6g
...
R=r, rsc
CC=golang-dev
https://golang.org/cl/193101
2010-01-25 22:10:35 -08:00
Russ Cox
1912632019
runtime, type switch: eliminate package global name space assumption
...
bonus: type switch now detects multiple uses of identical interface types.
bonus: interface types are now order-independent, following the spec.
R=ken2
CC=golang-dev
https://golang.org/cl/194053
2010-01-25 18:23:20 -08:00
Russ Cox
ee6b883101
add bug246 (issue 492)
...
R=r
CC=golang-dev
https://golang.org/cl/186216
2010-01-18 18:26:10 -08:00
Ian Lance Taylor
32e2ae0b18
Test order of evaluation in tuple assignments.
...
gccgo currently passes this test; 8g currently does not. I
think I counted everything out right.
R=rsc
CC=golang-dev
https://golang.org/cl/186165
2010-01-15 14:02:53 -08:00
Russ Cox
307a899d5b
gc: bug238
...
Fixes #471 .
R=ken2
CC=golang-dev
https://golang.org/cl/181184
2010-01-08 00:01:03 -08:00
Robert Griesemer
c7bd61a216
Test case for issue 475 and related bug.
...
R=iant
CC=golang-dev
https://golang.org/cl/183087
2009-12-29 14:44:56 -08:00
Robert Griesemer
a947d0d0c1
test case for issue 471
...
R=iant
CC=golang-dev
https://golang.org/cl/183084
2009-12-29 14:01:09 -08:00
Adam Langley
50d6c81d4a
runtime: fix race condition
...
(Thanks to ken and rsc for pointing this out)
rsc:
ken pointed out that there's a race in the new
one-lock-per-channel code. the issue is that
if one goroutine has gone to sleep doing
select {
case <-c1:
case <-c2:
}
and then two more goroutines try to send
on c1 and c2 simultaneously, the way that
the code makes sure only one wins is the
selgen field manipulation in dequeue:
// if sgp is stale, ignore it
if(sgp->selgen != sgp->g->selgen) {
//prints("INVALID PSEUDOG POINTER\n");
freesg(c, sgp);
goto loop;
}
// invalidate any others
sgp->g->selgen++;
but because the global lock is gone both
goroutines will be fiddling with sgp->g->selgen
at the same time.
This results in a 7% slowdown in the single threaded case for a
ping-pong microbenchmark.
Since the cas predominantly succeeds, adding a simple check first
didn't make any difference.
R=rsc
CC=golang-dev
https://golang.org/cl/180068
2009-12-18 12:25:53 -08:00
Russ Cox
c6e316a4b9
gc: handle _ = <-c in select.
...
Fixes #238 .
R=ken2
https://golang.org/cl/163098
2009-12-03 01:30:19 -08:00
Robert Griesemer
5fd4f76802
bug219: parsing difficulties with 6g
...
R=r, rsc
https://golang.org/cl/157085
2009-11-19 00:04:30 -08:00
Robert Griesemer
3c5dbb036b
bug218.go: testcase for issue 238
...
R=rsc
https://golang.org/cl/154172
2009-11-16 17:53:39 -08:00
Russ Cox
da776791c4
drop output from nilptr tests;
...
too hard to make it the same everywhere.
still checking for non-zero exit status though.
disable core files while running tests
R=r
http://go/go-review/1026037
2009-11-09 23:11:36 -08:00
Russ Cox
71983af4a1
bug212, bug213.
...
R=ken
http://go/go-review/1026032
2009-11-08 23:22:06 -08:00
Russ Cox
9dd2e1e30f
nil pointer checks in 8g.
...
fix nil pointer check in 6g.
was dereferencing after the ADD;
dereference before instead.
R=ken@golang.org
CC=iant
http://go/go-review/1016022
2009-11-01 21:04:16 -08:00
Ian Lance Taylor
f305d04943
Bug: 6g accepts fallthrough in type switch.
...
R=r
CC=go-dev
http://go/go-review/1016006
2009-10-29 15:41:02 -07:00
Ian Lance Taylor
eb63c3fec4
Test that the compiler rejects map types which should not be
...
compatible.
R=rsc
CC=go-dev
http://go/go-review/1018001
2009-10-28 17:09:24 -07:00
Russ Cox
60ff8cc86f
address bug193 and add note to spec about it.
...
R=ken
OCL=35920
CL=35920
2009-10-20 08:27:14 -07:00
Russ Cox
02fd255a14
bug162, over and over
...
R=ken
OCL=35919
CL=35919
2009-10-20 08:03:43 -07:00
Russ Cox
a15648658f
bug196
...
R=ken
OCL=35905
CL=35905
2009-10-19 21:10:29 -07:00
Russ Cox
62c4818ee0
bug136
...
R=ken
OCL=35902
CL=35904
2009-10-19 20:39:18 -07:00
Russ Cox
1be74762c1
bug169
...
R=ken
OCL=35899
CL=35899
2009-10-19 19:55:17 -07:00
Russ Cox
4c3a85d73a
6g bug fixes:
...
* bug211
* embedded interfaces with lowercase methods
* var _ = f() at top level
R=ken
OCL=35898
CL=35898
2009-10-19 19:27:40 -07:00
Russ Cox
8fffa1d698
bug190.
...
also eliminate float80 dregs
R=ken
OCL=35894
CL=35896
2009-10-19 18:47:37 -07:00
Rob Pike
e32883df01
bug 211: duplicate interface methods not caught by 6g
...
R=gri
DELTA=17 (17 added, 0 deleted, 0 changed)
OCL=35852
CL=35876
2009-10-19 11:47:42 -07:00
Robert Griesemer
b0dcc6b9a4
bug210
...
R=rsc
DELTA=20 (20 added, 0 deleted, 0 changed)
OCL=35847
CL=35847
2009-10-16 13:31:35 -07:00
Russ Cox
2372408189
sort errors by line number
...
turn off testdclstack and "not used" errors
when there are syntax errors.
BUG=2181825
R=ken
OCL=35606
CL=35608
2009-10-12 11:03:48 -07:00
Russ Cox
867e10f241
fix build
...
TBR=r
OCL=35592
CL=35592
2009-10-11 23:38:44 -07:00
Robert Griesemer
d5c4142758
bug209.go
...
R=rsc
DELTA=23 (22 added, 1 deleted, 0 changed)
OCL=35529
CL=35537
2009-10-09 15:28:09 -07:00
Russ Cox
680ee6af63
add & fix bug208, from ken.
...
fix bug198.
R=ken
OCL=35504
CL=35507
2009-10-08 23:03:34 -07:00
Russ Cox
2204cfddea
fix bug206.
...
delay calls to savex as long as possible.
R=ken
OCL=34535
CL=34546
2009-09-10 17:33:01 -07:00
Russ Cox
757fe32fe7
fix bug206 output on different platforms
...
TBR=r
OCL=34524
CL=34524
2009-09-10 13:43:15 -07:00
Robert Griesemer
82540ebdf0
bug206
...
R=rsc
DELTA=51 (51 added, 0 deleted, 0 changed)
OCL=34516
CL=34516
2009-09-10 10:30:36 -07:00
Russ Cox
e780fa8669
defining package block names must override
...
universe block names.
BUG=2097244
R=ken
OCL=34295
CL=34473
2009-09-09 01:01:39 -07:00
Russ Cox
620dc595ff
missed in last compiler change
...
R=ken
OCL=34348
CL=34348
2009-09-03 16:18:03 -07:00
Russ Cox
262b6462aa
fix bug187 (itself buggy)
...
R=austin
DELTA=26 (0 added, 26 deleted, 0 changed)
OCL=34294
CL=34317
2009-09-03 10:59:52 -07:00
Ian Lance Taylor
79606b9952
Cascading errors lead to a compiler crash.
...
R=rsc
DELTA=18 (18 added, 0 deleted, 0 changed)
OCL=33914
CL=33917
2009-08-26 16:24:51 -07:00
Russ Cox
d66d65da96
bug132
...
R=ken
OCL=33792
CL=33803
2009-08-24 17:06:10 -07:00
Russ Cox
ef3e6810b8
bug189
...
R=ken
OCL=33745
CL=33745
2009-08-24 09:23:04 -07:00
Russ Cox
ac9d833c1e
half of bug193
...
R=ken
OCL=33730
CL=33730
2009-08-23 18:09:44 -07:00
Russ Cox
59e2e54eab
fix bug195
...
R=ken
OCL=33700
CL=33700
2009-08-21 18:07:11 -07:00
Russ Cox
e1c5d179d6
fix crash in bug194; add bug196
...
R=ken
OCL=33694
CL=33697
2009-08-21 17:54:07 -07:00
Ian Lance Taylor
5261be20eb
A test for an interface which uses a forward declared type
...
which turns out to be invalid.
R=rsc
DELTA=15 (15 added, 0 deleted, 0 changed)
OCL=33691
CL=33693
2009-08-21 17:42:41 -07:00
Ian Lance Taylor
1f1551f179
Test composite literals with undeclared types. This crashed
...
gccgo in a few different places, and crashes 6g as of this
writing. Note that the index in a composite literal must be
looked up in a different namespace if the composite literal
type turns out to be a struct.
R=rsc
DELTA=36 (36 added, 0 deleted, 0 changed)
OCL=33681
CL=33685
2009-08-21 16:09:17 -07:00
Robert Griesemer
cfa52e5e0b
unexpected shift conversion behavior
...
R=r
DELTA=20 (20 added, 0 deleted, 0 changed)
OCL=33646
CL=33667
2009-08-21 14:14:25 -07:00
Russ Cox
e107afddc5
fix build
...
TBR=r
OCL=33623
CL=33623
2009-08-20 17:36:21 -07:00
Rob Pike
770485e522
add bug to capture double declaration of name in file and package block
...
R=rsc
DELTA=12 (12 added, 0 deleted, 0 changed)
OCL=33554
CL=33563
2009-08-19 17:37:23 -07:00
Russ Cox
5600435fe4
produce diagnostic for
...
import "fmt"
var fmt = 1
R=ken
OCL=33556
CL=33561
2009-08-19 17:27:08 -07:00