Commit Graph

745 Commits

Author SHA1 Message Date
Kai Backman
399d23d4f4 load binary op arguments into registers
go/test: passes 69% (237/339)

R=rsc
APPROVED=rsc
DELTA=12  (3 added, 9 deleted, 0 changed)
OCL=35178
CL=35180
2009-09-30 14:28:18 -07:00
Russ Cox
6f1698774d undo 35108 (disallow parens around type in struct literal).
allow parens around [...]int in struct literal.

R=ken
OCL=35112
CL=35130
2009-09-29 21:21:14 -07:00
Kai Backman
187cc1eb49 fix munging of pointer.
go/test: passes 69% (235/339)

R=rsc
APPROVED=rsc
DELTA=5  (4 added, 1 deleted, 0 changed)
OCL=35107
CL=35109
2009-09-29 16:07:59 -07:00
Russ Cox
9c3c140984 disallow parens around type in struct literal syntax,
per discussion with gri.

R=ken
OCL=35108
CL=35108
2009-09-29 16:05:44 -07:00
Kai Backman
8ccf8240f4 fixed alignment issue resulting from confusion around the
meaning of out args.

go/test: passes 68% (231/339)

R=rsc
APPROVED=rsc
DELTA=13  (7 added, 0 deleted, 6 changed)
OCL=35072
CL=35080
2009-09-29 07:27:49 -07:00
Kai Backman
24bfaaf07a - added gcmp for proper ACMP generation, changed all call
sites plus optimized constant code a bit (one less register
  used).
- changed conditional branches, might need a re-tweak later
- gave up on agen OINDEX and copied/fixed the version in 8g

go/test: passes 66% (225/339)

R=rsc
APPROVED=rsc
DELTA=148  (67 added, 32 deleted, 49 changed)
OCL=35040
CL=35055
2009-09-28 15:40:13 -07:00
Russ Cox
7743ffead4 disallow interface { x, y() }
R=ken
OCL=35042
CL=35044
2009-09-28 14:05:34 -07:00
Russ Cox
78ebe2b392 test: comparisons have type bool
R=r
DELTA=81  (57 added, 24 deleted, 0 changed)
OCL=34991
CL=34996
2009-09-24 17:54:47 -07:00
Rob Pike
f448057b8a Sqrt in assembler is worth 3-4X for nbody
R=rsc
DELTA=10  (10 added, 0 deleted, 0 changed)
OCL=34987
CL=34987
2009-09-24 14:47:34 -07:00
Russ Cox
285b6021e9 missing files; cleaned up g4 nothave output.
fixes 386 build.

R=r
DELTA=56  (56 added, 0 deleted, 0 changed)
OCL=34979
CL=34981
2009-09-24 13:38:18 -07:00
Russ Cox
567673fc42 nacl - run tests under emulator.
special all-nacl.bash and test/run-nacl that
run just the tests known to work under nacl.
the rest requires closures.

fix another bug or two in syscall.

R=r
DELTA=420  (410 added, 8 deleted, 2 changed)
OCL=34882
CL=34907
2009-09-22 16:56:28 -07:00
Rob Pike
b9493ded12 updated numbers after more slice inlining
R=rsc
DELTA=57  (57 added, 0 deleted, 0 changed)
OCL=34896
CL=34901
2009-09-22 14:13:40 -07:00
Kai Backman
8ce5f6e14a fix bad code generation.
go/test: passes 64% (215/337) tests

metric updated, had total number of tests wrong. number of
failing tests is down from 129 to 122.

R=rsc
APPROVED=rsc
DELTA=228  (12 added, 5 deleted, 211 changed)
OCL=34897
CL=34899
2009-09-22 13:13:23 -07:00
Russ Cox
ce46cbe89e test of named operations
R=r
DELTA=305  (305 added, 0 deleted, 0 changed)
OCL=34848
CL=34875
2009-09-21 22:45:19 -07:00
Russ Cox
f0536598b1 fix build
R=kaib
OCL=34823
CL=34823
2009-09-18 21:17:16 -07:00
Kai Backman
e4eaf4c24e expanded arm regression testing. will go away once 5g is compliant
R=rsc
APPROVED=rsc
DELTA=300  (297 added, 0 deleted, 3 changed)
OCL=34813
CL=34821
2009-09-18 19:09:29 -07:00
Kai Backman
1c71ab1808 added emulator support for arm.
R=rsc
APPROVED=rsc
DELTA=7  (3 added, 0 deleted, 4 changed)
OCL=34661
CL=34820
2009-09-18 19:09:12 -07:00
Russ Cox
20011bc878 unused imports
R=r
OCL=34731
CL=34731
2009-09-17 10:27:04 -07:00
Russ Cox
ae54cf73ca last round: non-package code
R=r
DELTA=127  (38 added, 3 deleted, 86 changed)
OCL=34640
CL=34650
2009-09-15 12:42:24 -07:00
Russ Cox
1a3198907b fix "declared and not used" in tests;
also template/template.go, missed last time.

R=r
DELTA=116  (61 added, 10 deleted, 45 changed)
OCL=34620
CL=34622
2009-09-14 21:03:53 -07:00
Russ Cox
28eba4877b fix "declared and not used" errors in non-test code.
R=r
DELTA=112  (6 added, 57 deleted, 49 changed)
OCL=34610
CL=34610
2009-09-14 17:20:29 -07:00
Rob Pike
5e11bb259b add tests for the func()() case
R=gri
DELTA=12  (12 added, 0 deleted, 0 changed)
OCL=34601
CL=34601
2009-09-14 13:09:53 -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
aa6e81dd71 a few more blank tests
R=ken
OCL=34500
CL=34500
2009-09-09 16:59:41 -07:00
Russ Cox
f4ee9f133c check type of string/map/array index expressions
R=ken
OCL=34478
CL=34480
2009-09-09 01:31: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
5d16d23362 update type switch to match spec.
R=ken
OCL=34471
CL=34471
2009-09-09 00:18:16 -07:00
Russ Cox
5438be4541 write-only variable _
R=ken
OCL=34465
CL=34470
2009-09-08 23:16:19 -07:00
Ken Thompson
a4448a97d8 compound literal test
R=rsc
OCL=34453
CL=34455
2009-09-08 14:26:39 -07:00
Russ Cox
c702bdd828 script for running test programs in interpreter.
tweak test/literal.go to give more information.

R=austin
DELTA=45  (43 added, 0 deleted, 2 changed)
OCL=34381
CL=34398
2009-09-04 13:04:11 -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
f2a8cd5ad9 corrected bug187; dropped on the floor somehow
R=austin
DELTA=23  (23 added, 0 deleted, 0 changed)
OCL=34340
CL=34346
2009-09-03 16:17:06 -07:00
Russ Cox
a18208fb60 fix range on invalid utf8 bug
R=r
DELTA=42  (21 added, 20 deleted, 1 changed)
OCL=34328
CL=34333
2009-09-03 13:56:06 -07:00
Rob Pike
cf336b10df partial rune at end makes string range loop forever
R=rsc
DELTA=20  (20 added, 0 deleted, 0 changed)
OCL=34330
CL=34332
2009-09-03 13:33:16 -07:00
Rob Pike
7f0dd8b1b7 new benchmark results.
main changes:
	gccgo is much slower on  binary-tree and fannkuch
	6g seems to struggle with alignment of loops in nbody (dignosis uncertain)
	6g is a little faster at regexps and concurrency

R=rsc
DELTA=93  (93 added, 0 deleted, 0 changed)
OCL=34320
CL=34322
2009-09-03 11:41:01 -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
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
Russ Cox
27c4e7e74e catch package net import "net" for release
R=ken
OCL=34205
CL=34207
2009-09-01 14:12:09 -07:00
Ian Lance Taylor
1a05177d44 Match gccgo error messages.
bug197.go:10:5: error: incompatible type in initialization
bug197.go:11:5: error: incompatible type in initialization
bug197.go:12:5: error: incompatible type in initialization
bug197.go:13:5: error: incompatible type in initialization
bug197.go:20:13: error: incompatible types in binary expression
bug197.go:21:27: error: incompatible types in binary expression

R=rsc
DELTA=6  (0 added, 0 deleted, 6 changed)
OCL=34135
CL=34177
2009-08-31 21:39:08 -07:00
Russ Cox
6e8524be18 array index bug
x[i]
x not addressable, i >= UINF
double evaluated i
second eval killed live registers

manifested as gob instability

R=ken
OCL=34097
CL=34099
2009-08-30 18:47:48 -07:00
Ken Thompson
e667e8a4f7 arraytoslice and some cleanup
R=rsc
OCL=34058
CL=34058
2009-08-28 15:44:24 -07:00
Ken Thompson
bf0130cc0f sliceslice inline
R=rsc
OCL=34041
CL=34041
2009-08-28 12:37:39 -07:00
Ken Thompson
9bf597a210 inline slicearray
R=rsc
OCL=33974
CL=33974
2009-08-27 13:19:44 -07:00
Russ Cox
4b409289f6 remove Line in bufio.ReadLine(Bytes|Slice|String)
also drop bool arg from ReadString

R=r
DELTA=45  (13 added, 1 deleted, 31 changed)
OCL=33923
CL=33960
2009-08-27 11:20:15 -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
Ian Lance Taylor
92ac4bff74 Match gccgo error messages.
bug192.go:11:5: error: redefinition of ‘fmt’
bug192.go:9:8: note: previous definition of ‘fmt’ was here

R=r
DELTA=2  (0 added, 0 deleted, 2 changed)
OCL=33780
CL=33790
2009-08-24 15:56:39 -07:00
Russ Cox
14be733a25 bug197
R=ken
OCL=33765
CL=33765
2009-08-24 13:41:47 -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
28b655ea07 more interface embedding tests
6g's error for I4 is not quite accurate
(it calls I4 a non-interface) but also
not a crash or infinite loop.

R=iant
DELTA=15  (15 added, 0 deleted, 0 changed)
OCL=33701
CL=33709
2009-08-21 21:30:24 -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
f861c7f61b If the compiler dumps core, bash will print a useless error
message with the full path of the errchk script.  Catch that
by wrapping the if statement which invokes the compiler in a
subshell.  Use the $TMPOUT file as a flag to let the main
shell know whether the subshell ran.  Since the compiler
stdout and stderr are redirected, if the if statement produces
any output, then the compiler crashed, and we report that.

R=r,rsc
DELTA=14  (11 added, 1 deleted, 2 changed)
OCL=33690
CL=33692
2009-08-21 17:41:18 -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
Ian Lance Taylor
8bbe748b84 Enable these tests. Fix divconst.go and modconst.go to
compile with the current compiler.  Adjust expected error
message in method1.go to match 6g output.

R=rsc
DELTA=9  (2 added, 5 deleted, 2 changed)
OCL=33674
CL=33682
2009-08-21 15:43:23 -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
Russ Cox
8a45917f3d len and cap on chans
R=ken
OCL=33599
CL=33599
2009-08-20 11:12:04 -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
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
Ian Lance Taylor
8aa9161e47 With the changes to support automatic forward declarations of
type names, gccgo no longer reports redefinition errors for
:=, because it no longer knows at parse time whether the type
has changed.  Adjust this test to not match "redefinition",
and to instead match gccgo's current output.

declbad.go:19:3: error: variables redeclared but no variable is new
declbad.go:34:3: error: variables redeclared but no variable is new
declbad.go:39:3: error: variables redeclared but no variable is new
declbad.go:44:3: error: variables redeclared but no variable is new
declbad.go:49:3: error: variables redeclared but no variable is new
declbad.go:24:3: error: incompatible types in assignment
declbad.go:29:3: error: incompatible types in assignment
declbad.go:39:3: error: incompatible types in assignment

R=rsc
DELTA=10  (0 added, 0 deleted, 10 changed)
OCL=33537
CL=33539
2009-08-19 14:40:48 -07:00
Russ Cox
63aeaa2a03 fix import dot bug
R=ken
OCL=33526
CL=33528
2009-08-19 11:32:46 -07:00
Ian Lance Taylor
42e9db134b Test that a type can refer to itself recursively as long as it
does so in ways that permit its size to be known.

R=rsc
DELTA=35  (35 added, 0 deleted, 0 changed)
OCL=33427
CL=33433
2009-08-17 19:23:17 -07:00
Ian Lance Taylor
f7e4fc9b1f Match gccgo error messages.
bug165.go:13:6: error: invalid recursive type 'S'

This is a different line from the 6g error message, which is
"invalid map key type".  I accomodated both compilers by
merging the line.

bug188.go:13:2: error: unexpected reference to package

I made the error message less specific, which I think is fine
here.

R=rsc
DELTA=2  (0 added, 0 deleted, 2 changed)
OCL=33398
CL=33426
2009-08-17 17:40:52 -07:00
Rob Pike
83c9d97abf fix a couple of scripts
R=rsc
DELTA=6  (4 added, 2 deleted, 0 changed)
OCL=33400
CL=33400
2009-08-17 14:16:25 -07:00
Rob Pike
74dd0ab670 fix up some irregular indentation
R=rsc
OCL=33382
CL=33391
2009-08-17 13:30:22 -07:00
Robert Griesemer
6f911ccaa5 6g bug: struct initializers must provide all field values unless the fields are named
R=rsc,r
DELTA=16  (16 added, 0 deleted, 0 changed)
OCL=33292
CL=33303
2009-08-14 15:13:32 -07:00
Ian Lance Taylor
91173b8930 Recognize gccgo error messages.
bug039.go:6:7: error: redefinition of 'x'
bug039.go:5:1: note: previous definition of 'x' was here

bug049.go:6:9: error: incompatible types in binary expression

bug062.go:6:7: error: incompatible type in initialization

bug086.go:5:1: error: control reaches end of non-void function

bug103.go:8:2: error: variable has no type

bug121.go:9:2: error: expected signature or type name

bug131.go:7:7: error: incompatible type in initialization

bug165.go:10:8: error: expected complete type

bug171.go:5:1: error: control reaches end of non-void function
bug171.go:6:1: error: control reaches end of non-void function

bug172.go:7:6: error: expected integer type

bug182.go:7:2: error: if statement expects boolean expression

bug183.go:10:5: error: incompatible types in assignment
bug183.go:19:5: error: incompatible types in assignment

R=rsc
DELTA=15  (0 added, 0 deleted, 15 changed)
OCL=33168
CL=33175
2009-08-13 09:42:28 -07:00
Russ Cox
3e98a40793 bug188 - sort(x)
R=ken
OCL=33123
CL=33123
2009-08-12 15:58:31 -07:00
Russ Cox
66beb2fd3b fix bug187 not to crash
TBR=austin
DELTA=9  (4 added, 4 deleted, 1 changed)
OCL=33115
CL=33115
2009-08-12 14:54:15 -07:00
Russ Cox
b5c57fea96 delete forward type declarations
R=r
DELTA=163  (1 added, 149 deleted, 13 changed)
OCL=33106
CL=33111
2009-08-12 14:40:47 -07:00
Austin Clements
f60203666b Bug involving ... initializers and interface values.
R=rsc
APPROVED=rsc
DELTA=22  (22 added, 0 deleted, 0 changed)
OCL=33053
CL=33104
2009-08-12 13:57:05 -07:00
Russ Cox
5b62b19d43 convert non-pkg go files to whole-package compilation.
mostly removing forward declarations.

R=r
DELTA=138  (2 added, 127 deleted, 9 changed)
OCL=33068
CL=33099
2009-08-12 13:18:54 -07:00
Russ Cox
866b272336 bug186 - f(iota)
R=ken
OCL=33051
CL=33051
2009-08-11 17:05:22 -07:00
Robert Griesemer
0dbd8971a2 - use in-place bignum operations where available
- runs approx. 30% faster

R=r
DELTA=24  (10 added, 2 deleted, 12 changed)
OCL=32984
CL=33005
2009-08-10 17:44:46 -07:00
Rob Pike
ea8197cb45 new timing data after compiler updates (fp regs, integer div and mod)
R=rsc
DELTA=90  (90 added, 0 deleted, 0 changed)
OCL=32993
CL=33001
2009-08-10 17:04:59 -07:00
Russ Cox
3f91f80a21 8-bit div and mod
R=ken
OCL=32975
CL=32975
2009-08-10 12:46:23 -07:00
David Symonds
b65a5225f6 Partially fix build: don't assume . is in PATH.
APPROVED=rsc
DELTA=1  (1 added, 0 deleted, 0 changed)
OCL=32948
CL=32948
2009-08-09 19:18:40 -07:00
Rob Pike
266a2c47e0 run benchmarks in a relatively fast test mode, as part of run.bash/all.bash
R=rsc
DELTA=293  (224 added, 0 deleted, 69 changed)
OCL=32917
CL=32944
2009-08-09 14:31:05 -07:00
Ken Thompson
812f06b3ca another plateau - almost done
only need to fix up certain
denominators

R=rsc
OCL=32928
CL=32928
2009-08-08 16:53:21 -07:00
Russ Cox
6be0f50b97 bug159
R=ken
OCL=32902
CL=32914
2009-08-07 16:47:54 -07:00
Rob Pike
c12ccabb9c chameneos
R=rsc
DELTA=514  (513 added, 0 deleted, 1 changed)
OCL=32898
CL=32910
2009-08-07 15:28:46 -07:00
Russ Cox
39b12e2dcb bug185 - return b,a from func() (a,b int)
R=ken
OCL=32900
CL=32900
2009-08-07 14:38:31 -07:00
Russ Cox
0ab8dbef76 annotations
TBR=r
OCL=32896
CL=32896
2009-08-07 14:18:30 -07:00
Russ Cox
d1ee5d6e8f bug184 - assignment compatibility in unpacked multireturn
R=ken
OCL=32890
CL=32894
2009-08-07 14:00:18 -07:00
Rob Pike
5005fb46a2 simplify threadring slightly; slight speed improvement
R=rsc
DELTA=7  (3 added, 3 deleted, 1 changed)
OCL=32885
CL=32889
2009-08-07 13:30:20 -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
468f244416 bug182 - compiler crash
R=ken
OCL=32887
CL=32887
2009-08-07 13:17:28 -07:00
Russ Cox
6c2738eb43 bug181 - type T *struct { T } is an invalid embedded type
R=ken
OCL=32886
CL=32886
2009-08-07 13:14:01 -07:00
Russ Cox
99eca57d43 clean up a few error messages;
disable func redeclaration mismatch test;
fix golden.out

R=ken
OCL=32883
CL=32883
2009-08-07 13:00:20 -07:00
Rob Pike
c30d81bd23 threadring
more interesting than most

R=rsc
DELTA=132  (131 added, 0 deleted, 1 changed)
OCL=32876
CL=32881
2009-08-07 12:53:51 -07:00
Rob Pike
e98dde27ef timing updates after 6g change for efficient division by powers of two
R=rsc
DELTA=25  (23 added, 0 deleted, 2 changed)
OCL=32873
CL=32875
2009-08-07 10:39:45 -07:00
Ken Thompson
f1baf78247 divide by a constant power of 2
R=rsc
OCL=32858
CL=32858
2009-08-06 22:33:12 -07:00