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
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
1cecac8134
gc: record full package paths in runtime type data
...
detect compilation of special package runtime with
compiler flag instead of package name.
R=ken2
CC=golang-dev
https://golang.org/cl/193080
2010-01-24 23:33:59 -08:00
Russ Cox
758f2bc556
eliminate the package global name space assumption in object files
...
5g/6g/8g: add import statements to export metadata, mapping package path to package name.
recognize "" as the path of the package in export metadata.
use "" as the path of the package in object symbol names.
5c/6c/8c, 5a/6a/8a: rewrite leading . to "". so that ·Sin means Sin in this package.
5l/6l/8l: rewrite "" in symbol names as object files are read.
gotest: handle new symbol names.
gopack: handle new import lines in export metadata.
Collectively, these changes eliminate the assumption of a global
name space in the object file formats. Higher level pieces such as
reflect and the computation of type hashes still depend on the
assumption; we're not done yet.
R=ken2, r, ken3
CC=golang-dev
https://golang.org/cl/186263
2010-01-22 17:06:20 -08:00
Russ Cox
a6736fa4ff
cleanup toward eliminating package global name space
...
* switch to real dot (.) instead of center dot (·) everywhere in object files.
before it was half and half depending on where in the name it appeared.
* in 6c/6a/etc identifiers, · can still be used but turns into . immediately.
* in export metadata, replace package identifiers with quoted strings
(still package names, not paths).
R=ken2, r
CC=golang-dev
https://golang.org/cl/190076
2010-01-19 21:34:44 -08:00
Russ Cox
5a5799f613
gc: more precise handling of import .
...
Fixes #455 .
R=ken2
CC=golang-dev
https://golang.org/cl/186212
2010-01-18 16:26:40 -08:00
Russ Cox
5f132b93eb
gc: various C nits, found by plan 9 compiler.
...
reported by erik quanstrom.
R=ken2
https://golang.org/cl/181071
2009-12-27 09:32:30 -08:00
Russ Cox
0d668259dc
gc: method expressions on concrete types
...
R=ken2
https://golang.org/cl/180092
2009-12-18 17:24:58 -08:00
Russ Cox
5d754bfaea
gc: bug fixes.
...
* better error for lookup of unexported field
* do not assign "ideal string" type to typed string literal
* do not confuse methods and fields during interface check
Fixes #410 .
Fixes #411 .
Fixes #426 .
R=ken2
https://golang.org/cl/179069
2009-12-15 16:22:04 -08:00
Christopher Wedgwood
7e7008fa5e
gc: Allow allow data types up to 1GB
...
R=rsc
https://golang.org/cl/164095
2009-12-03 12:46:34 -08:00
Russ Cox
41861a8812
gc: better diagnosis of initialization loops
...
Fixes bug 292.
R=ken2
https://golang.org/cl/164093
2009-12-03 00:51:03 -08:00
Ken Thompson
c4606d05da
install copy predefined
...
did not test 386, but should work
shouldnt matter if copy is not used
R=rsc
https://golang.org/cl/156055
2009-11-17 20:41:44 -08:00
Russ Cox
e5636d6e27
avoid seg fault when return type is unknown
...
Fixes #80 .
R=ken
https://golang.org/cl/154079
2009-11-11 22:20:05 -08:00
Russ Cox
71983af4a1
bug212, bug213.
...
R=ken
http://go/go-review/1026032
2009-11-08 23:22:06 -08: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
8fffa1d698
bug190.
...
also eliminate float80 dregs
R=ken
OCL=35894
CL=35896
2009-10-19 18:47:37 -07:00
Russ Cox
22a5c78f44
rename sys functions to runtime,
...
because they are in package runtime.
another step to enforcing package boundaries.
R=r
DELTA=732 (114 added, 93 deleted, 525 changed)
OCL=35811
CL=35824
2009-10-15 23:10:49 -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
d515063588
better handling of mistaken top-level variable
...
references during the parsing of :=. the base
problem is that when reading
a,b,c,d
the parser makes those refer to existing variables,
which might create a few stub top-level ones
for undefined names, but then if a := is the next
token, we need to undo those stubs.
this was causing problems in multifile packages
in which one file used a := variable named rpc
and the other imported a package named rpc.
R=ken
OCL=35446
CL=35446
2009-10-07 14:55:12 -07:00
Russ Cox
a95ee61aea
ideal bools and related fixes
...
R=ken
OCL=34859
CL=34865
2009-09-21 15:45:55 -07:00
Russ Cox
73e52ae971
check for unused imports
...
R=ken
OCL=34732
CL=34756
2009-09-17 16:42:10 -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
5438be4541
write-only variable _
...
R=ken
OCL=34465
CL=34470
2009-09-08 23:16:19 -07:00
Ken Thompson
18f2e360a0
composit literals
...
plateau - more to come
R=rsc
OCL=34413
CL=34413
2009-09-05 20:32:24 -07:00
Russ Cox
107d404378
stop using filename for disambiguation within a package.
...
R=ken
OCL=34339
CL=34341
2009-09-03 15:23:21 -07:00
Russ Cox
a1391c2d13
fix one bug involving [...] constructors.
...
added iant's bug202 (in main code)
and ken's bug203 (in init function).
bug187 remains at large.
R=ken
OCL=34293
CL=34293
2009-09-02 23:26:13 -07:00
Russ Cox
ee2d5128d6
the last bug involving type hashes
...
R=ken
OCL=34244
CL=34249
2009-09-02 09:09:32 -07:00
Russ Cox
bebe06a784
type switch bug involving function parameter names
...
R=ken
OCL=34232
CL=34232
2009-09-01 18:04:49 -07:00
Ken Thompson
6fceadbba3
cleanup getting ready for static init
...
R=rsc
OCL=34090
CL=34090
2009-08-30 14:43:33 -07:00
Russ Cox
3443656bce
clean up ideal handling; reject attempts
...
to write type descriptors for ideal types
R=ken
OCL=33958
CL=33958
2009-08-27 11:16:34 -07:00
Russ Cox
7b29dbb866
symbol bugs.
...
do not emit unreachable data symbols.
R=austin
DELTA=103 (71 added, 4 deleted, 28 changed)
OCL=33325
CL=33622
2009-08-20 17:33:28 -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
Russ Cox
38df5ec58d
try to do better line number reporting
...
in the presence of yacc lookahead.
better but still not perfect
R=ken
OCL=33541
CL=33541
2009-08-19 15:18:08 -07:00
Russ Cox
63aeaa2a03
fix import dot bug
...
R=ken
OCL=33526
CL=33528
2009-08-19 11:32:46 -07:00
Russ Cox
d594639087
rm outfile if 6g exits with an error
...
R=ken
OCL=33134
CL=33141
2009-08-12 17:58:53 -07:00
Russ Cox
a92610208e
delete code for forward type declarations
...
R=ken
OCL=33108
CL=33113
2009-08-12 14:41:13 -07:00
Russ Cox
7732f79daa
fix indirect error
...
x.go:3: invalid indirect of X (type int)
was
x.go:3: invalid indirect of nil
R=ken
OCL=33008
CL=33008
2009-08-10 18:19:32 -07:00
Ken Thompson
34f76b5de5
1. integer division by a constant done.
...
2. moved functions from 6g to gc
for portability to other families.
3. added rotate-carry instructions to
peek and reg.
R=rsc
OCL=32946
CL=32946
2009-08-09 15:16:06 -07:00
Russ Cox
aa7bd48389
bug183 - embedded vs non-embedded struct field in eqtype
...
R=ken
OCL=32888
CL=32888
2009-08-07 13:23:09 -07:00
Russ Cox
b648716ee9
forward declarations not necessary.
...
still to do:
* initializer cycle detection
* nicer error for type checking cycles
R=ken
OCL=32855
CL=32880
2009-08-07 12:50:26 -07:00
Russ Cox
2609731736
delay range processing. old2new is gone
...
R=ken
OCL=32780
CL=32780
2009-08-05 02:33:30 -07:00
Russ Cox
54b403723b
delay := processing
...
R=ken
OCL=32772
CL=32772
2009-08-05 00:42:44 -07:00
Russ Cox
a121410541
make Syms smaller.
...
collapse a lot of duplication in dcl.c
switch to NodeList* from Dcl*
R=ken
OCL=32770
CL=32770
2009-08-04 22:59:23 -07:00
Russ Cox
aa347c4a0d
move various bits of code around
...
and delete some dead code.
no actual changes here.
R=ken
OCL=32764
CL=32764
2009-08-04 18:43:32 -07:00
Russ Cox
f7a867e1a6
move select into its own file.
...
split into typecheck + walk
R=ken
OCL=32726
CL=32726
2009-08-04 12:57:48 -07:00
Russ Cox
9dc22b6d6f
more 6g reorg; checkpoint.
...
typecheck.c is now responsible for all type checking
except for assignment and function argument "..."
R=ken
OCL=32661
CL=32667
2009-08-03 11:58:52 -07:00
Russ Cox
a2b8e38766
checkpoint; still plenty to clean up
...
R=ken
OCL=32576
CL=32580
2009-07-31 09:29:28 -07:00
Russ Cox
b754b4348f
delete some code from walkexpr that is now
...
handled by typecheck.
second switch is gone
move floating point minus into back end
R=ken
OCL=32558
CL=32558
2009-07-30 18:56:44 -07:00