Russ Cox
b1f44a120f
gc: improve error message for x \= 0
...
was
x.go:2: syntax error: unexpected $undefined
now
x.go:2: syntax error: unexpected \
R=ken2
CC=golang-dev
https://golang.org/cl/2267044
2010-09-24 17:09:31 -04:00
Russ Cox
1d315a8abd
gc: printing of ...
...
R=ken2
CC=golang-dev
https://golang.org/cl/2218043
2010-09-24 12:29:20 -04:00
Russ Cox
75dd8fdb34
gc: ... changes
...
R=ken2, ken3
CC=golang-dev
https://golang.org/cl/2208047
2010-09-24 11:55:30 -04:00
Ken Thompson
103d756663
loader fix
...
static init redo
R=rsc
CC=golang-dev
https://golang.org/cl/2254041
2010-09-20 14:23:25 -07:00
Ken Thompson
d348971103
add readonly flag to static initialization
...
R=rsc
CC=golang-dev
https://golang.org/cl/2187042
2010-09-16 16:42:38 -07:00
Russ Cox
d19fcd0784
gc: spell debug['u'] correctly
...
R=ken2
CC=golang-dev
https://golang.org/cl/2214042
2010-09-16 15:50:46 -04:00
Russ Cox
555f5b6b24
gc: make sure path names are canonical
...
R=ken2
CC=golang-dev
https://golang.org/cl/2209042
2010-09-16 15:37:57 -04:00
Ken Thompson
abb73a4a86
fix line number printing
...
with //line directives.
R=rsc
CC=golang-dev
https://golang.org/cl/2224041
2010-09-15 14:32:09 -07:00
Russ Cox
23bd214aee
gc: implement new comparison rule
...
The new comparison rule was added to the spec by
changeset: 5605:33abb649cb63
user: Robert Griesemer <gri@golang.org>
date: Thu Jun 03 16:55:50 2010 -0700
files: doc/go_spec.html
description:
go spec: Base comparison compatibility on assignment compatibility.
Specifically:
- Simplified definition of comparison compatibility and folded into
section on comparison operators since it's only used there.
This is a small language change/cleanup. As a consequence:
- An interface value may now be compared against a non-interface value.
- Channels with opposite directions cannot be compared directly anymore
(per discussion with rsc).
R=rsc, r, iant, ken2
CC=golang-dev
https://golang.org/cl/1462041
but never implemented.
Fixes #1070 .
R=ken2
CC=golang-dev
https://golang.org/cl/2116047
2010-09-13 15:42:47 -04:00
Russ Cox
c3900387db
gc: bug306
...
Fixes #1040 .
R=ken2
CC=golang-dev
https://golang.org/cl/2132047
2010-09-13 15:42:14 -04:00
Alex Brainman
77a70ddb7b
gc: fix symbol table generation on windows
...
gc records full, '/' delimited, filenames now.
R=rsc
CC=golang-dev
https://golang.org/cl/1962042
2010-09-12 18:07:13 +10:00
Russ Cox
f47d403cb4
gc: make string x + y + z + ... + w efficient
...
1 malloc per concatenation.
R=ken2
CC=golang-dev
https://golang.org/cl/2124045
2010-09-12 00:53:04 -04:00
Russ Cox
698fb4f192
6g, 6l, 8g, 8l: move read-only data to text segment
...
Changing 5g and 5l too, but it doesn't work yet.
R=ken2
CC=golang-dev
https://golang.org/cl/2136047
2010-09-12 00:17:44 -04:00
Russ Cox
be443ee8bc
5g: register allocation bugs
...
Fixes #1099 .
R=ken2, r
CC=golang-dev
https://golang.org/cl/2147047
2010-09-12 00:06:45 -04:00
Russ Cox
0acb63769c
gc: const nil bug
...
Fixes #1073 .
R=ken2
CC=golang-dev
https://golang.org/cl/2169043
2010-09-11 15:47:56 -04:00
Russ Cox
82ee481dfc
gc: remove &[10]int -> []int conversion
...
Fixes #829 .
R=ken2
CC=golang-dev
https://golang.org/cl/2124044
2010-09-10 11:53:27 -04:00
Robert Griesemer
0eb0afde9a
fix build
...
R=rsc, ken2
CC=golang-dev
https://golang.org/cl/2118050
2010-09-09 14:42:49 -07:00
Russ Cox
1678dcc378
gc: more accurate line numbers for ATEXT
...
and other begin and end of function code
R=ken2
CC=golang-dev
https://golang.org/cl/2158044
2010-09-09 17:11:51 -04:00
Scott Lawrence
fce222a95b
gc: implement new slice spec
...
Fixes #382 .
R=gri, cw, r, rsc
CC=golang-dev
https://golang.org/cl/1957045
2010-09-08 22:20:29 -04:00
Russ Cox
5baaa490d6
gc: better printing of named constants, func literals
...
R=ken2
CC=golang-dev
https://golang.org/cl/2121045
2010-09-08 10:12:56 -04:00
Russ Cox
1cb951d994
gc: appease bison version running on FreeBSD builder
...
R=ken2
CC=golang-dev
https://golang.org/cl/2141042
2010-09-02 14:31:39 -04:00
Russ Cox
dea283750b
gc: fix spurious syntax error
...
Fixes #1071 .
R=ken2
CC=golang-dev
https://golang.org/cl/2136043
2010-09-02 14:16:01 -04:00
Christian Himpel
5c603dbb75
build: remove unnecessary references to GOBIN and GOROOT
...
All scripts and makefiles assume that GOBIN is correctly set
in PATH.
R=rsc
CC=golang-dev
https://golang.org/cl/2043041
2010-08-30 15:40:56 -04:00
Kyle Consalus
e24910d09b
gc: brace nit from last review
...
R=rsc
CC=golang-dev
https://golang.org/cl/1997045
2010-08-26 18:46:56 -04:00
Kyle Consalus
4d903504b3
runtime: special case copy, equal for one-word interface values
...
Based on the observation that a great number of the types that
are copied or compared in interfaces, maps, and channels are
word-sized, this uses specialized copy and equality functions
for them that use a word instead of 4 or 8 bytes. Seems to yield
0-6% improvements in performance in the benchmarks I've run.
For example, with the regexp benchmarks:
Before:
regexp.BenchmarkLiteral 500000 3.26 µs/op
regexp.BenchmarkNotLiteral 100000 13.67 µs/op
regexp.BenchmarkMatchClass 100000 18.72 µs/op
regexp.BenchmarkMatchClass_InRange 100000 20.04 µs/op
regexp.BenchmarkReplaceAll 100000 27.85 µs/op
After:
regexp.BenchmarkLiteral 500000 3.11 µs/op
regexp.BenchmarkNotLiteral 200000 13.29 µs/op
regexp.BenchmarkMatchClass 100000 17.65 µs/op
regexp.BenchmarkMatchClass_InRange 100000 18.49 µs/op
regexp.BenchmarkReplaceAll 100000 26.34 µs/op
R=rsc
CC=golang-dev
https://golang.org/cl/1967047
2010-08-26 13:32:40 -04:00
Russ Cox
aafe474ec9
build: $GOBIN defaults to $GOROOT/bin
...
R=r
CC=golang-dev
https://golang.org/cl/1982049
2010-08-24 20:00:33 -04:00
Russ Cox
b1311cbc93
gc: fix parenthesization check
...
Cannot use paren field in Node because all
instances of a given symbol name use the same Node.
Fixes #1022 .
R=ken2
CC=golang-dev
https://golang.org/cl/2015043
2010-08-23 23:10:25 -04:00
Russ Cox
da392d9136
build: no required environment variables
...
R=adg, r, PeterGo
CC=golang-dev
https://golang.org/cl/1942044
2010-08-18 10:08:49 -04:00
Russ Cox
a9a62eef6b
gc: bug302
...
Fixed by http://code.google.com/p/go/source/detail?r=d1f41e20a90e
This just adds a test and checks the return value of Bprint.
R=ken2
CC=golang-dev
https://golang.org/cl/1949042
2010-08-10 17:39:38 -07:00
Russ Cox
3f19d8ae8d
gc: empty select
...
R=ken2
CC=golang-dev
https://golang.org/cl/1871057
2010-08-03 01:07:57 -07:00
Russ Cox
585eae3bce
gc: bug301
...
Fixes #990 .
R=ken2
CC=golang-dev
https://golang.org/cl/1742055
2010-08-03 01:07:40 -07:00
Russ Cox
c6cb303a8a
gc: bug299, bug300
...
R=ken2
CC=golang-dev
https://golang.org/cl/1731057
2010-08-03 00:53:32 -07:00
Russ Cox
9bac9d23d3
gc: index bounds tests and fixes
...
move constant index checking to front end
x[2:1] is a compile-time error now too
R=ken2
CC=golang-dev
https://golang.org/cl/1848056
2010-08-03 00:26:02 -07:00
Russ Cox
491a3ca5b7
gc: fix SIGBUS
...
R=ken2
CC=golang-dev
https://golang.org/cl/1906042
2010-07-28 18:21:50 -07:00
Russ Cox
f930d28164
5g: fix build
...
R=ken2
CC=golang-dev
https://golang.org/cl/1893042
2010-07-27 13:43:58 -07:00
Russ Cox
711f075987
gc: include signal.h (fix build)
...
R=ken2
CC=golang-dev
https://golang.org/cl/1871049
2010-07-26 18:41:36 -07:00
Russ Cox
f20c2e1cf5
gc: more crash avoidance
...
Fixes #961 .
Fixes #962 .
R=ken2
CC=golang-dev
https://golang.org/cl/1903043
2010-07-26 17:34:17 -07:00
Russ Cox
b49561d884
gc: graceful exit on seg fault
...
R=ken2
CC=golang-dev
https://golang.org/cl/1882043
2010-07-26 16:52:51 -07:00
Russ Cox
607eaea456
gc: fix smaller-than-pointer-sized receivers in interfaces
...
Fixes #812 .
R=ken2
CC=golang-dev
https://golang.org/cl/1904041
2010-07-26 15:25:10 -07:00
Russ Cox
7b240e8135
gc: import dot shadowing bug
...
R=ken2
CC=golang-dev
https://golang.org/cl/1873047
2010-07-26 14:21:39 -07:00
Russ Cox
fa3d86ca39
libmach: correct handling of .5 files with D_REGREG addresses
...
undo workaround in gc
Fixes #943 .
R=kaib
CC=golang-dev
https://golang.org/cl/1889041
2010-07-22 09:00:34 -07:00
Kai Backman
47b6400556
arm: fix build by disabling list copying optimization for 5g.
...
R=rsc
CC=golang-dev
https://golang.org/cl/1697053
2010-07-21 14:14:21 +03:00
Russ Cox
0decedf636
gc: various bug fixes
...
Fixes #935 .
Fixes #936 .
Fixes #941 .
R=ken2
CC=golang-dev
https://golang.org/cl/1867042
2010-07-20 23:45:33 -07:00
Ken Thompson
f6b93ab432
change floating literal normalization
...
from word-oriented to bit-oriented.
this will increase fp literal precision
by up to a full word.
R=rsc
CC=golang-dev
https://golang.org/cl/1859044
2010-07-19 16:10:46 -07:00
Ken Thompson
95b93c28e3
1. got 29 (Mpscale) more bits of precision
...
out of floating constant multiply
2. added rounding code to "const fix=float"
to allow up to 29 (Mpscale) bits of
slop and still get an exact fixed constant.
fixes #931
R=rsc
CC=golang-dev
https://golang.org/cl/1692055
2010-07-17 16:32:40 -07:00
Russ Cox
b693847ea8
gc: print error detail about failure to open import
...
R=ken2
CC=golang-dev
https://golang.org/cl/1872041
2010-07-16 21:38:51 -07:00
Rob Pike
8519134b98
fix typo in lex.c comment
...
R=rsc
CC=golang-dev
https://golang.org/cl/1862044
2010-07-16 15:08:31 -07:00
Ken Thompson
19d7fc4026
change line pragma from
...
//line number file
to
//line file:number
R=rsc
CC=golang-dev
https://golang.org/cl/1868041
2010-07-16 13:34:36 -07:00
Ken Thompson
444066e56d
interpret lines that look like
...
//line 10 units.y
which is equiv to c
#line 10 units.y
the purpose is to generate diagnostics
that correctly point to preprocessed source.
R=rsc
CC=golang-dev
https://golang.org/cl/1863042
2010-07-15 20:21:33 -07:00
Russ Cox
4c0de303ce
gc: bug294
...
Fixes #800 .
R=ken2
CC=golang-dev
https://golang.org/cl/1855043
2010-07-15 16:42:32 -07:00
Russ Cox
ece6a8c549
gc: bug293
...
Fixes #846 .
R=ken2
CC=golang-dev
https://golang.org/cl/1862042
2010-07-15 16:14:06 -07:00
Russ Cox
cdb446feb5
gc: bug292
...
Fixes #843 .
R=ken2
CC=golang-dev
https://golang.org/cl/1729051
2010-07-15 16:13:47 -07:00
Russ Cox
31c07dfddf
gc: issue 901
...
Fixes #901 .
R=ken2
CC=golang-dev
https://golang.org/cl/1674049
2010-07-15 15:22:51 -07:00
Russ Cox
08a263a991
gc: bug291
...
Fixes #915 .
R=ken2
CC=golang-dev
https://golang.org/cl/1856042
2010-07-15 15:17:42 -07:00
Russ Cox
691d765121
gc: bug274
...
R=ken2
CC=golang-dev
https://golang.org/cl/1742044
2010-07-15 15:05:56 -07:00
Russ Cox
17f90c68c6
gc: fix handling of types inside function bodies
...
Fixes #849 .
Fixes #920 .
R=ken2
CC=golang-dev
https://golang.org/cl/1841042
2010-07-15 14:25:50 -07:00
Rob Pike
c9f83372d8
add missing argument to usage message.
...
Fixes #912 .
R=rsc
CC=golang-dev
https://golang.org/cl/1819041
2010-07-12 16:31:51 -07:00
Russ Cox
81c3e8cabc
gc: implement new len spec, range bug fix, optimization
...
Fixes #885 .
R=ken2
CC=golang-dev
https://golang.org/cl/1680048
2010-07-01 18:04:25 -07:00
Russ Cox
ed39c764b8
gc: do not crash on bad [...]T
...
Fixes #879 .
R=ken2
CC=golang-dev
https://golang.org/cl/1678048
2010-06-30 20:34:31 -07:00
Ken Thompson
2795282b50
compiler fatal error in switch.
...
fixes #867 .
R=rsc
CC=golang-dev
https://golang.org/cl/1691045
2010-06-28 16:30:55 -07:00
Ken Thompson
33da9afc3e
optimization of static initialization
...
R=rsc
CC=golang-dev
https://golang.org/cl/1677049
2010-06-27 17:37:01 -07:00
Russ Cox
6d8b8101ea
gc: fix crash for nested complex division
...
R=ken2
CC=golang-dev
https://golang.org/cl/1720043
2010-06-23 10:55:50 -04:00
Russ Cox
2fc0b4f01b
gc: include struct field tags in type equality
...
R=ken2
CC=golang-dev
https://golang.org/cl/1667048
2010-06-21 13:06:39 -07:00
Russ Cox
45bdf0367e
reflect: add Kind, remove Int8Type, Int8Value, etc.
...
update other code to match.
R=r
CC=golang-dev
https://golang.org/cl/1680044
2010-06-20 12:16:25 -07:00
Russ Cox
9f002f6892
gc: delete debug print
...
R=ken2
CC=golang-dev
https://golang.org/cl/1732043
2010-06-20 12:15:10 -07:00
Russ Cox
a212d174ac
gc: better error messages for interface failures, conversions
...
x.go:13: cannot use t (type T) as type Reader in assignment:
T does not implement Reader (Read method requires pointer receiver)
x.go:19: cannot use q (type Q) as type Reader in assignment:
Q does not implement Reader (missing Read method)
have read()
want Read()
x.go:22: cannot use z (type int) as type Reader in assignment:
int does not implement Reader (missing Read method)
x.go:24: too many arguments to conversion to complex: complex(1, 3)
R=ken2
CC=golang-dev
https://golang.org/cl/1736041
2010-06-20 11:45:53 -07:00
Russ Cox
ceb868bf0a
gc: fix build - subnode not addable in complexgen
...
R=ken2
CC=golang-dev
https://golang.org/cl/1677047
2010-06-20 11:21:43 -07:00
Russ Cox
d5a80d0ba4
gc: no more ...
...
various cleanup, deleting unused code
R=ken2
CC=golang-dev
https://golang.org/cl/1663041
2010-06-14 11:24:51 -07:00
Russ Cox
76da2780c3
gc: less aggressive name binding, for better line numbers in errors
...
Cleans up a few other corner cases too.
R=ken2
CC=golang-dev
https://golang.org/cl/1592045
2010-06-12 11:17:24 -07:00
Russ Cox
d20ad1c75a
gc: change -u to require imports to be marked safe
...
R=ken2
CC=golang-dev
https://golang.org/cl/1597043
2010-06-11 15:28:43 -07:00
Russ Cox
a2a7d473f4
gc: more cleanup
...
* disallow surrogate pair runes.
* diagnose impossible type assertions
* eliminate another static buffer.
* do not overflow lexbuf.
* add -u flag to disable package unsafe.
R=ken2
CC=golang-dev
https://golang.org/cl/1619042
2010-06-09 11:00:55 -07:00
Russ Cox
565b5dc076
gc: new typechecking rules
...
* Code for assignment, conversions now mirrors spec.
* Changed some snprint -> smprint.
* Renamed runtime functions to separate
interface conversions from type assertions:
convT2I, assertI2T, etc.
* Correct checking of \U sequences.
Fixes #840 .
Fixes #830 .
Fixes #778 .
R=ken2
CC=golang-dev
https://golang.org/cl/1303042
2010-06-08 18:50:02 -07:00
Robert Griesemer
98b27814ae
gc: better error message when ~ operator is found
...
Fixes #844 .
R=ken2, rsc, ken3
CC=golang-dev
https://golang.org/cl/1593041
2010-06-07 18:27:26 -07:00
Robert Griesemer
0c222d6e49
gc: backslash newline is not a legal escape sequence in strings
...
Fixes #827 .
R=ken2
CC=golang-dev, rsc
https://golang.org/cl/1592041
2010-06-07 18:10:48 -07:00
Russ Cox
cd016d7558
gc: fix export of complex types
...
R=ken2
CC=golang-dev
https://golang.org/cl/1442042
2010-06-01 14:48:57 -07:00
Russ Cox
ea941f09bf
gc: more accurate error description
...
R=ken2
CC=golang-dev
https://golang.org/cl/1284041
2010-05-24 17:07:51 -07:00
Russ Cox
8c2bc4419b
gc: fix shift/reduce conflict in go.y export syntax
...
Fixes #771 .
R=ken2
CC=golang-dev
https://golang.org/cl/1267042
2010-05-24 16:55:23 -07:00
Russ Cox
2e9b67afa6
gc: bug277 - new conversion syntax
...
R=ken2
CC=golang-dev
https://golang.org/cl/1220046
2010-05-24 15:25:30 -07:00
Russ Cox
43c0a46ac6
gc: bug280
...
Fixes #808 .
R=ken2
CC=golang-dev
https://golang.org/cl/1273042
2010-05-24 15:25:09 -07:00
Russ Cox
5e253645d2
gc: bug278
...
Fixes #804 .
R=ken2
CC=golang-dev
https://golang.org/cl/1224045
2010-05-24 14:22:54 -07:00
Russ Cox
80ac15ec12
gc: fix unsafe.Sizeof on ideal constants
...
R=ken2
CC=golang-dev
https://golang.org/cl/1280041
2010-05-24 14:18:15 -07:00
Russ Cox
709c5b2481
gc: handle use of builtin function outside function call
...
tweaks & tests of last bug fix too.
R=ken2
CC=golang-dev
https://golang.org/cl/1207044
2010-05-20 22:57:08 -07:00
Russ Cox
b03d7f4d8f
gc: line number bug fix
...
R=ken2
CC=golang-dev
https://golang.org/cl/1243044
2010-05-20 22:19:50 -07:00
Ken Thompson
09b2de77b5
fix bug 275
...
R=rsc
CC=golang-dev
https://golang.org/cl/1198046
2010-05-20 20:56:28 -07:00
Russ Cox
9e497c3656
gc: disallow · in Go programs
...
Fixes #793 .
R=ken2
CC=golang-dev
https://golang.org/cl/1249043
2010-05-20 17:34:22 -07:00
Ken Thompson
b0283611e4
fix issue 798
...
cannot allocate an audomatic temp
while real registers are allocated.
there is a chance that the automatic
will be allocated to one of the
allocated registers. the fix is to
not registerize such variables.
R=rsc
CC=golang-dev
https://golang.org/cl/1202042
2010-05-20 17:31:28 -07:00
Evan Shaw
d2aa74118c
gc: Better error when computing remainder of non-int
...
Previously the compiler would just emit "internal compiler error" when
trying to compute the remainder of floats or complex types.
R=rsc
CC=golang-dev
https://golang.org/cl/1243041
2010-05-18 22:41:12 -07:00
Russ Cox
6dbba67214
gc: distinguish array, slice literal in error messages
...
R=ken2
CC=golang-dev
https://golang.org/cl/1138041
2010-05-06 09:34:12 -07:00
Ken Thompson
a3a0a5fdc3
allow data statements for simple
...
external variable assignements.
R=rsc
CC=golang-dev
https://golang.org/cl/1094041
2010-05-03 22:51:30 -07:00
Russ Cox
32df678894
gc: bug264
...
Fixes #692 .
R=ken2
CC=golang-dev
https://golang.org/cl/1092041
2010-05-03 17:51:48 -07:00
Russ Cox
b5f54db359
gc: bug267
...
R=ken2
CC=golang-dev
https://golang.org/cl/1067042
2010-05-03 15:29:59 -07:00
Russ Cox
371b77ad20
gc: error for nested functions, one semicolon problem
...
R=ken2
CC=golang-dev
https://golang.org/cl/1046042
2010-05-03 15:02:32 -07:00
Russ Cox
6361f52fc4
gc: be pickier about slice, chan, array, and map sizes
...
Fixes #589 .
R=ken2
CC=golang-dev
https://golang.org/cl/1032044
2010-05-01 13:15:42 -07:00
Russ Cox
253fd30e66
gc: bug271
...
Fixes #662 .
R=ken2
CC=golang-dev
https://golang.org/cl/978043
2010-04-30 13:27:08 -07:00
Russ Cox
560283c880
gc: bug270
...
Fixes #746 .
R=ken2
CC=golang-dev
https://golang.org/cl/1040042
2010-04-30 13:04:16 -07:00
Russ Cox
77817e08d5
gc: never include ( ) on singleton func return type
...
Fixes #749 .
R=ken2
CC=golang-dev
https://golang.org/cl/963043
2010-04-29 16:07:14 -07:00
Russ Cox
10eb76b04e
gc: bug268
...
Fixes #745 .
R=ken2
CC=golang-dev
https://golang.org/cl/1008045
2010-04-29 15:52:27 -07:00
Russ Cox
69a2e1dc52
gc: better windows detection
...
R=ken2
CC=golang-dev
https://golang.org/cl/944043
2010-04-27 17:19:15 -07:00
Russ Cox
3bcef5ac30
gc: fix islocalname on windows
...
Fixes #732 .
R=ken2
CC=golang-dev
https://golang.org/cl/956050
2010-04-27 13:52:43 -07:00
Russ Cox
d6e4e18c8c
gc: more specific error for statements at top level
...
R=ken2, r, ken3
CC=golang-dev
https://golang.org/cl/1006041
2010-04-26 22:35:27 -07:00