Ken Thompson
b91a043d02
static initialization of slices
...
R=r
OCL=29016
CL=29016
2009-05-18 22:11:22 -07:00
Ken Thompson
62231e91d0
static initialization with DATA statements
...
structs and arrays are done
slices and maps are yet to do
R=r
OCL=28977
CL=28977
2009-05-17 19:16:16 -07:00
Rob Pike
a8db4593ab
fix spelling error in message
...
R=ken
OCL=28814
CL=28814
2009-05-14 09:59:16 -07:00
Russ Cox
b3533dfd72
6g:
...
new type equality restrictions
better handling of renamed packages
"sys" is no longer available to programs
R=ken
OCL=28553
CL=28578
2009-05-08 15:40:31 -07:00
Russ Cox
d4fa253837
eqtype(t1, t2, 0) => eqtype(t1, t2)
...
R=ken
OCL=28559
CL=28562
2009-05-08 14:40:38 -07:00
Russ Cox
401a95aa83
if a struct s contains an anonymous interface value
...
with method m, s.m() is ok and m now shows up
in s's method set for interface runtime.
see http://cl/28419-p2 for new test interface10.go.
R=ken
OCL=28420
CL=28423
2009-05-07 13:42:47 -07:00
Russ Cox
b5e212ffdd
6g: error messages
...
replace "shape error across CALL" with more information.
x.go:7: not enough arguments to CALL
a int, b int
int
x.go:10: assignment count mismatch: 3 = 2
x.go:12: too many arguments to RETURN
[no arguments expected]
int, int, int
also leave type alone after conversion failure,
for later errors:
bug049.go:6: cannot convert nil constant to string
bug049.go:6: illegal types for operand: EQ
string
nil # this used to be blank
R=ken
OCL=28405
CL=28407
2009-05-07 10:29:35 -07:00
Russ Cox
a6ba5ec535
6g: new interface rules (code got simpler!)
...
R=ken
OCL=28374
CL=28378
2009-05-06 17:05:35 -07:00
Russ Cox
83e976d53e
bug146: array/slice conversion before I left missed conversions
...
R=ken
OCL=28120
CL=28124
2009-04-30 13:49:58 -07:00
Ken Thompson
b03b541b7a
recognize a defined constant
...
as a new name in a later declaration
(bug 144)
R=r
OCL=27850
CL=27850
2009-04-24 16:43:31 -07:00
Ken Thompson
190a540892
2 minor bugs.
...
lv context for some [] operations
calling implicit(*map) before walk.
R=r
OCL=27706
CL=27706
2009-04-21 19:52:13 -07:00
Ken Thompson
b5e7562191
supply default indirection to
...
map indexing - bug 143
R=r
OCL=27695
CL=27695
2009-04-21 17:00:08 -07:00
Ken Thompson
34b6f642de
mixed old/new declaration
...
exact spec:
a) must be a multi-assignment w :=
b) a proper subset of the lhs
can be declared in same block
with the same type with no
"redeclaration" error
R=r
OCL=27610
CL=27610
2009-04-18 13:58:04 -07:00
Russ Cox
3ea8d854a3
make string(array) take []byte only (and thus *[10]byte but not [10]byte)
...
R=ken
OCL=27581
CL=27585
2009-04-16 23:07:30 -07:00
Russ Cox
1cb3b7d124
panicln: emit just one newline
...
R=ken
OCL=27537
CL=27545
2009-04-15 22:38:09 -07:00
Russ Cox
65d397f747
compiler implementation of array slice change
...
R=ken
OCL=27533
CL=27533
2009-04-15 20:27:22 -07:00
Russ Cox
a62467af93
fix stringrange test
...
R=ken
OCL=27353
CL=27353
2009-04-13 05:31:44 -07:00
Ken Thompson
a91a8042b4
range over strings
...
R=r
OCL=27332
CL=27332
2009-04-10 19:49:31 -07:00
Russ Cox
f95da9a639
yet another attempt at auto-linking
...
store only the original import path string (+ .a)
if 6g resolves it to an archive file.
let 6l re-resolve the .a at link time.
this lets libraries build against an archive
in the current directory but get used
against an installed archive.
R=r
OCL=27244
CL=27244
2009-04-08 22:45:33 -07:00
Russ Cox
3067781ab9
func f() (int, int);
...
x := f();
used to give
fatal error: dowidth fn struct struct { int; int }
now gives
assignment count mismatch: 1 = 2
R=ken
OCL=27198
CL=27201
2009-04-07 22:20:37 -07:00
Russ Cox
d50c70d261
set line number for errors produced during walkstate.
...
R=ken
OCL=27145
CL=27145
2009-04-06 22:17:46 -07:00
Russ Cox
907cb4f1e6
fix both of anton's bugs:
...
* make([100]int) was being compiled to
make([]int), kind of.
* []this = [100]that was working for any this, that.
turned up a typo in pipe_test.go
R=ken
OCL=27081
CL=27081
2009-04-03 23:20:51 -07:00
Russ Cox
8e54729b5a
move alignment calculations into gc
...
R=ken
OCL=26914
CL=26914
2009-03-30 17:09:28 -07:00
Russ Cox
54aa835b44
range over channels.
...
also fix multiple-evaluation bug in range over arrays.
R=ken
OCL=26576
CL=26576
2009-03-20 11:32:58 -07:00
Russ Cox
f7772627ad
fix b/1722502
...
BUG=1722502
R=ken
OCL=26526
CL=26526
2009-03-18 19:20:54 -07:00
Russ Cox
8f194bf5ff
make 6g constants behave as ken proposes. (i hope.)
...
various bug fixes and tests involving constants.
test/const1.go is the major new test case.
R=ken
OCL=26216
CL=26224
2009-03-12 19:04:38 -07:00
Ken Thompson
6eb54cb05b
chan flags close/closed installed
...
runtime not finished.
R=r
OCL=26217
CL=26217
2009-03-12 17:55:11 -07:00
Ken Thompson
bb02e481d2
added bitclear operators &^ and &^=
...
R=r
OCL=26152
CL=26152
2009-03-11 19:59:35 -07:00
Ken Thompson
767845b6fa
bug 125
...
R=r
OCL=26146
CL=26146
2009-03-11 17:37:04 -07:00
Ken Thompson
d27e9f528d
bug086
...
R=r
OCL=26090
CL=26090
2009-03-10 19:16:31 -07:00
Ken Thompson
bf983477a2
new switch implementation
...
in preparation of type switch.
no functional change (yet).
R=r
OCL=25784
CL=25788
2009-03-05 15:49:34 -08:00
Russ Cox
955638e2fb
disallow ordinary-type.(T), as in spec.
...
R=ken
OCL=25705
CL=25705
2009-03-04 14:50:25 -08:00
Russ Cox
49cc649e59
back to T{x}, stricter handling of T(x) vs x.(T)
...
R=ken
DELTA=131 (60 added, 41 deleted, 30 changed)
OCL=25617
CL=25633
2009-03-03 08:41:02 -08:00
Ken Thompson
a665e2924c
bug with select :=
...
R=r
OCL=25278
CL=25278
2009-02-21 12:41:34 -08:00
Russ Cox
d3d0c256be
bug123
...
R=ken
OCL=25075
CL=25075
2009-02-16 17:44:05 -08:00
Russ Cox
3b3e63735e
bug fix for &x[0] when x is slice
...
R=ken
OCL=25044
CL=25044
2009-02-15 13:15:46 -08:00
Russ Cox
07244f7c80
add composite literal ( ) syntax.
...
warn about composite literal { } syntax.
R=ken
OCL=25018
CL=25023
2009-02-13 14:48:16 -08:00
Russ Cox
5f4f5647ef
require type assertions when narrowing.
...
R=ken
OCL=24350
CL=24914
2009-02-11 17:57:29 -08:00
Russ Cox
a81870badf
add error to catch 6g alignment bug.
...
the fix appears to be to align the
out struct on an 8 boundary, but that
is a bit involved.
R=ken
OCL=24657
CL=24657
2009-02-08 11:19:45 -08:00
Russ Cox
a6c59ce274
gc funarg return fix.
...
change type (to satisfy OAS) after nodarg:
nodarg uses offset from type too,
and must use correct offset.
R=ken
OCL=24656
CL=24656
2009-02-08 11:01:52 -08:00
Russ Cox
0970c46863
closures - 6g support
...
R=ken
OCL=24501
CL=24566
2009-02-06 13:47:10 -08:00
Russ Cox
b0009bef20
bug064
...
make f(g()) work when g returns multiple
args with names different than f expects.
func swap(a, b int) (c, d int) {
return b, a
}
swap(swap(1,2))
R=ken
OCL=24474
CL=24476
2009-02-05 15:22:49 -08:00
Russ Cox
9e735985d4
avoid memcpy(x, x),
...
which valgrind complains about.
R=ken
OCL=23990
CL=23990
2009-01-30 16:31:26 -08:00
Russ Cox
4a43198390
update compiler to new func rules
...
R=ken
OCL=23958
CL=23961
2009-01-30 14:39:42 -08:00
Russ Cox
391425ae55
if take address of local, move to heap.
...
heuristic to not print bogus strings.
fix one error message format.
R=ken
OCL=23849
CL=23851
2009-01-29 17:38:58 -08:00
Ken Thompson
4b8e030762
bug 135
...
R=r
OCL=23646
CL=23646
2009-01-27 18:21:03 -08:00
Russ Cox
743ac07cc3
change dotdotdot interfaces to be structs,
...
not pointers to structs.
fix defered dotdotdot.
R=r,ken
DELTA=25 (7 added, 5 deleted, 13 changed)
OCL=23620
CL=23625
2009-01-27 15:05:25 -08:00
Ken Thompson
1e1cc4eb57
defer
...
R=r
OCL=23592
CL=23592
2009-01-27 12:03:53 -08:00
Russ Cox
5b129cda5f
assignment count mismatch: 2 = 1.
...
R=ken
OCL=23534
CL=23534
2009-01-26 17:20:29 -08:00
Russ Cox
3c5f3a8641
print(map) and print(chan) as pointers.
...
R=ken
OCL=23520
CL=23520
2009-01-26 15:36:28 -08:00