Age | Commit message (Collapse) | Author | Files | Lines |
|
R=ken
OCL=31122
CL=31278
|
|
x << "a"
1 << int(2)
R=ken
OCL=31244
CL=31244
|
|
missing break after error.
dot symbol bug fix: leave sym alone
(was incorrect for inserted cross-package dots).
R=ken
OCL=31234
CL=31236
|
|
when implicit assignment would have been okay.
R=ken
OCL=31225
CL=31227
|
|
R=r
OCL=31156
CL=31156
|
|
alignment issue is fixed.
R=ken
OCL=31124
CL=31144
|
|
wreck.mtv=; cat x.go
package main
var x = string.Split()
wreck.mtv=; 6g x.go
x.go:2: type string used as expression
x.go:2: undefined DOT Split on string
x.go:3: illegal types for operand: AS
undefined
wreck.mtv=;
BUG=1938751
R=ken
OCL=30766
CL=30766
|
|
R=ken
OCL=30593
CL=30756
|
|
do not bother warning about marks left
on stack after syntax errors.
leave OCONV nodes in tree to avoid type errors
arising from multiple walks.
R=ken
OCL=30639
CL=30662
|
|
R=ken
OCL=30519
CL=30534
|
|
* no longer distinguishes const, var, type, package names.
* all the predefined names are not tokens anymore.
R=ken
OCL=29326
CL=29985
|
|
R=ken
OCL=29849
CL=29849
|
|
R=ken
OCL=29806
CL=29808
|
|
in complex literals. side effect is
fix of error in initializerr.go
R=r
OCL=29667
CL=29667
|
|
R=ken
OCL=29651
CL=29653
|
|
R=ken
OCL=29568
CL=29570
|
|
R=r
OCL=29479
CL=29479
|
|
R=r
OCL=29466
CL=29466
|
|
can run 64-bit sieve and powser.
interfaces are limping along.
next hurdle is floating point.
R=ken
OCL=29418
CL=29423
|
|
R=r
OCL=29419
CL=29419
|
|
R=r
OCL=29409
CL=29409
|
|
R=r
OCL=29405
CL=29405
|
|
structtype{a:1, a:2}
maptypetype{"xx":1, "xx":2}
arraytypetype{5:1, 5:2}
2. bug in registerization concerning
alias of a struct and one of its elements
3. code optimization of struct.field
(which exposed bug in 2)
R=r
OCL=29315
CL=29315
|
|
R=ken
OCL=29209
CL=29216
|
|
renamed 6g/(gen|align|obj).c
R=r
OCL=29205
CL=29205
|
|
when assigning a multifield object
(structs or arrays of structs) they
must not contain any fields that could
not be assigned individually.
R=ken
OCL=29192
CL=29194
|
|
structure and array literals
R=r
OCL=29190
CL=29190
|
|
must have non-nil i.
R=ken
OCL=29136
CL=29136
|
|
that came from two different enums.
spilt into ifacecvt and ifaceop depending
on which enum the argument is.
R=ken
OCL=29122
CL=29122
|
|
this is not a user-visible change.
before, all interface values were
struct Itype {
Sigt *type;
Sigi *inter;
void *method[n];
}
struct Iface {
void *addr;
Itype *itype;
}
the itype is basically a vtable, but it's unnecessary
if the static type is interface{ }.
for interface values with static type empty, the
new representation is
struct Eface {
void *addr;
Sigt *type;
}
this complicates the code somewhat, but
it reduces the number of Itypes that
have to be computed and cached,
it opens up opportunities to avoid function
calls in a few common cases,
and it will make it possible to lay out
interface{} values at compile time,
which i think i'll need for the new reflection.
R=ken
OCL=28701
CL=29121
|
|
do not update lineno from ONAME nodes,
because they have declaration lineno not use.
show actual name in top-level statement error.
before
runtime.a:7: x.go:5: walkstate: NAME not a top level statement
after
x.go:14: walkstate: runtime.Goexit not a top level statement
R=ken
OCL=29113
CL=29116
|
|
R=r
OCL=29016
CL=29016
|
|
structs and arrays are done
slices and maps are yet to do
R=r
OCL=28977
CL=28977
|
|
R=ken
OCL=28814
CL=28814
|
|
new type equality restrictions
better handling of renamed packages
"sys" is no longer available to programs
R=ken
OCL=28553
CL=28578
|
|
R=ken
OCL=28559
CL=28562
|
|
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
|
|
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
|
|
R=ken
OCL=28374
CL=28378
|
|
R=ken
OCL=28120
CL=28124
|
|
as a new name in a later declaration
(bug 144)
R=r
OCL=27850
CL=27850
|
|
lv context for some [] operations
calling implicit(*map) before walk.
R=r
OCL=27706
CL=27706
|
|
map indexing - bug 143
R=r
OCL=27695
CL=27695
|
|
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
|
|
R=ken
OCL=27581
CL=27585
|
|
R=ken
OCL=27537
CL=27545
|
|
R=ken
OCL=27533
CL=27533
|
|
R=ken
OCL=27353
CL=27353
|
|
R=r
OCL=27332
CL=27332
|
|
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
|