Ken Thompson
f1baf78247
divide by a constant power of 2
...
R=rsc
OCL=32858
CL=32858
2009-08-06 22:33:12 -07:00
Russ Cox
ebdbbe0f49
fix amd64 build
...
R=ken
OCL=32771
CL=32771
2009-08-05 00:11:24 -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
4dec8ef35a
get function calls out of the way before
...
allocating registers in shift and div.
fix behavior when res == a reserved register.
R=ken
OCL=32765
CL=32767
2009-08-04 19:16:57 -07:00
Russ Cox
d169dcee3b
fix division bug
...
R=ken
OCL=32760
CL=32760
2009-08-04 17:59:10 -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
Russ Cox
ff3a73b407
typechecking checkpoint.
...
started to move typechecking to another file.
can build entire tree still, but lots of work
is duplicated. much to clean up.
R=ken
OCL=32536
CL=32543
2009-07-30 16:53:08 -07:00
Russ Cox
517e3457cc
fix build on amd64
...
R=ken
OCL=32521
CL=32521
2009-07-30 11:03:58 -07:00
Russ Cox
2946069e3f
break and continue fixes
...
labeled break/continue was using
first loop with any label,
not first loop with the right label.
R=ken
OCL=32453
CL=32458
2009-07-29 14:49:01 -07:00
Phil Pennock
d6f89c69c4
Support use of $GOBINDIR to override $HOME/bin
...
R=r,gri,rsc
APPROVED=rsc
DELTA=53 (12 added, 6 deleted, 35 changed)
OCL=31822
CL=32282
2009-07-28 11:23:24 -07:00
Russ Cox
30228a3bc6
avoid register computing len(x), cap(x)
...
for slice or string x.
R=ken
OCL=32249
CL=32249
2009-07-27 15:55:27 -07:00
Russ Cox
db508ccbff
baby step: const decls can refer to future
...
consts in the same factored block
const (
X = Y;
Y = 2;
)
R=ken
OCL=31782
CL=31782
2009-07-17 13:38:16 -07:00
Russ Cox
e52e9ca82e
another step toward eliminating forward declarations.
...
introduce NodeList* type in compiler to replace OLIST.
this clarifies where lists can and cannot occur.
list append and concatenation are now cheap.
the _r rules are gone from yacc.
rev and unrev are gone.
no more lists of lists.
the representation of assignments is a bit clunkier.
split into OAS (1=1) and OAS2 (2 or more on one side).
delete dead chanrecv3 code.
delay construction of func types.
R=ken
OCL=31745
CL=31762
2009-07-17 01:00:44 -07:00
Russ Cox
a6799963ef
update 6g to new REGARG convention.
...
silence gcc warning.
R=ken
OCL=31583
CL=31583
2009-07-13 23:30:30 -07:00
Russ Cox
541e638f9b
6g, 8g: generate data structures for new reflect interface (CL 31107)
...
R=ken
OCL=31122
CL=31278
2009-07-07 11:03:04 -07:00
Russ Cox
2acbc37166
various 6g cleanup:
...
* give genwrapper and genembedtramp the same signature.
* move duint8, duint16, duint32, duint64, duintptr into gc.
* tidy genwrapper.
* bug involving struct field symbols in signature list.
(hash-order dependent so hard to trigger)
* new Type print format %#-T like %#T but omits
names on function arguments.
R=ken
OCL=31237
CL=31237
2009-07-06 22:31:20 -07:00
Russ Cox
0aef57e37f
fix a 6g crash after type errors.
...
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
2009-06-23 15:30:59 -07:00
Russ Cox
e9e388412c
6g: add TODO about float constants back
...
R=ken
OCL=29984
CL=29997
2009-06-06 19:27:30 -07:00
Russ Cox
f1f970ad21
minor cleanup, 64-bit /= and %= on 32-bit
...
R=ken
OCL=29806
CL=29808
2009-06-02 23:21:58 -07:00
Ken Thompson
1c7bee0567
bug 155
...
R=r
OCL=29619
CL=29619
2009-05-29 14:42:24 -07:00
Russ Cox
3aa006b8cd
better 64-bit handling in 8g.
...
fewer moves, fewer stupid LEALs.
powser1 runs (with evaln commented out).
beginnings of floating point.
R=ken
OCL=29540
CL=29543
2009-05-28 15:48:47 -07:00
Russ Cox
e81d97ea84
clean up gmove:
...
* conversions all in one place.
* no separate load, store phases;
direct memory addressing when possible
(this is the x86 after all!).
avoids extra registers, extra MOVQs.
* fixes int32 -> uint64 bug
(was zero-extending)
R=ken
OCL=29482
CL=29484
2009-05-27 23:55:14 -07:00
Ken Thompson
798b19bf77
improvement in registerization
...
R=r
OCL=29317
CL=29317
2009-05-23 16:36:43 -07:00
Ken Thompson
4238b18344
1. check for dups in complex literals
...
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
2009-05-23 15:34:29 -07:00
Ken Thompson
bba10b3f49
some array init bugs
...
renamed 6g/(gen|align|obj).c
R=r
OCL=29205
CL=29205
2009-05-21 15:44:06 -07:00
Ken Thompson
a016081f43
added key:val extension to
...
structure and array literals
R=r
OCL=29190
CL=29190
2009-05-21 13:46:07 -07:00
Ken Thompson
da49bfe664
static initialization of strings
...
R=r
OCL=29036
CL=29036
2009-05-19 13:37:36 -07:00
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
Ken Thompson
52b0f77bf9
static initialization
...
structure set up - no change yet
R=r
OCL=28966
CL=28966
2009-05-16 13:29:08 -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
5a67ea3883
6g: simplify trampoline by postponing load.
...
TEXT tramp
MOVQ 8(SP), AX
ADDQ $40, AX
MOVQ AX, 8(SP)
JMP oldfunc
is now
TEXT tramp
ADDQ $40, 8(SP)
JMP oldfunc
and if s/40/0/, then it simplifies to
TEXT tramp
JMP oldfunc
(the tramp is still needed to satisfy
symbol references from other object files)
R=ken
OCL=28377
CL=28381
2009-05-06 17:06:06 -07:00
Russ Cox
83cd4ee070
6g: generate string data as individual symbols,
...
so that 6l can discard strings used by dead code.
also, for short strings, generate DUPOK global
symbols so that references to, say, "%s: %s" in
multiple files result in only a single symbol.
R=ken
OCL=28361
CL=28361
2009-05-06 13:47:40 -07:00
Ken Thompson
567a7bf664
more code optimization
...
1. dont clear external and heap objects
2. propagate constant assignment
R=r
OCL=28254
CL=28254
2009-05-04 21:48:46 -07:00
Ken Thompson
a5a878986c
more code fiddling
...
R=r
OCL=28201
CL=28201
2009-05-03 15:17:03 -07:00
Ken Thompson
91ce0ef8f3
bug 139
...
R=r
OCL=27987
CL=27987
2009-04-28 13:52:56 -07:00
Ben Eitzen
155ec1d904
Clear upper bits of 64-bit indexing register when using types smaller than 64 bits.
...
APPROVED=ken
OCL=27811
CL=27823
2009-04-23 18:23:34 -07:00
Ken Thompson
c18db5aa18
bug in shift of longer operand
...
by a shorter operand. the bits
in the difference were not cheared.
R=r
OCL=27705
CL=27705
2009-04-21 19:38:58 -07:00
Ken Thompson
f9854978e2
bug 142
...
order of evaluation && and ||
R=r
OCL=27294
CL=27294
2009-04-09 19:11:24 -07:00
Ken Thompson
3657061550
change representation of strings
...
R=r
OCL=27293
CL=27293
2009-04-09 18:16:21 -07:00
Russ Cox
b199035ba8
move tiny gsubr functions together at the top of the file.
...
delete unused mkenam file
R=ken
OCL=26940
CL=26940
2009-03-31 00:19:38 -07:00
Russ Cox
441da9af0d
fix build (moved decl to go.h earlier
...
and changed vlong to int64).
R=ken
OCL=26934
CL=26934
2009-03-30 21:39:10 -07:00
Russ Cox
5e792b6c09
move portable object routines (especially
...
signature generation) into gc.
R=ken
OCL=26933
CL=26933
2009-03-30 21:31:29 -07:00
Russ Cox
bac922c6e1
move portable code generation (basic statements) to gc.
...
R=ken
OCL=26929
CL=26929
2009-03-30 19:15:07 -07:00
Russ Cox
d30285a6f5
move some portable pieces of 6g/gsubr.c into gc/subr.c
...
int brcom(int);
int brrev(int);
void setmaxarg(Type*);
Sig* lsort(Sig*, int(*)(Sig*, Sig*));
int dotoffset(Node*, int*, Node**);
void stringpool(Node*);
void tempname(Node*, Type*);
R=ken
OCL=26922
CL=26922
2009-03-30 17:52:21 -07:00
Russ Cox
e5ba266e93
delete dregs: inarggen, genpanic, regret
...
R=ken
OCL=26916
CL=26918
2009-03-30 17:15:54 -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
531f242f5d
move bits.c from 6g to gc
...
R=ken
OCL=26909
CL=26909
2009-03-30 16:13:11 -07:00
Ken Thompson
0f469a99a3
binary search on type switches.
...
new feature 'case nil:' in type switch
will match iff the interface is nil.
R=r
OCL=26404
CL=26404
2009-03-17 13:58:38 -07:00
Ken Thompson
5136a9e1f7
change format of Sigt and Sigi
...
to allow room for type hash
needed for log-time type switch.
R=r
OCL=26354
CL=26354
2009-03-16 15:27:08 -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
48f6b516e2
bug 137
...
R=r
OCL=26142
CL=26142
2009-03-11 16:25:45 -07:00
Ken Thompson
0c4f4587d7
bug with interaction of variables
...
declared in cases and heap allocation
R=r
OCL=26064
CL=26064
2009-03-10 16:49:34 -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
Ken Thompson
751d13cbce
bug 130 (go/defer) interface.method()
...
R=r
OCL=25356
CL=25356
2009-02-23 22:43:04 -08:00
Ken Thompson
56003374d3
change array padding in structures
...
to pad to size of element rather
than size of array.
R=r
OCL=24641
CL=24641
2009-02-07 13:31:34 -08:00
Russ Cox
0970c46863
closures - 6g support
...
R=ken
OCL=24501
CL=24566
2009-02-06 13:47:10 -08:00
Russ Cox
f61639d4e2
6g return struct fix:
...
make t->width of funarg struct be width of struct.
emit MOVSL for 4-byte copy.
R=ken
OCL=24108
CL=24111
2009-02-02 13:41:38 -08:00
Russ Cox
7b6bdfb735
two uses of uninitialized memory,
...
picked up by valgrind.
fixes test/escape.go on linux.
R=ken
OCL=23971
CL=23971
2009-01-30 15:11:46 -08:00
Russ Cox
122ed3e988
print format bug
...
R=ken
OCL=23965
CL=23965
2009-01-30 14:54:49 -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
4f49b88dda
optimizer bug w STOstring
...
R=r
OCL=23820
CL=23820
2009-01-29 15:13:36 -08:00
Russ Cox
282bf8cc8c
fix possible infinite recursion in eqtype.
...
don't use intermediate register to move
32-or-fewer-bit immediate constants
into memory.
R=ken
OCL=23726
CL=23726
2009-01-28 16:42:26 -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
9b6d385cb5
interface speedups and fixes.
...
more caching, better hash functions, proper locking.
fixed a bug in interface comparison too.
R=ken
DELTA=177 (124 added, 10 deleted, 43 changed)
OCL=23491
CL=23493
2009-01-26 12:36:21 -08:00
Russ Cox
61590c4c44
disallow P.t for lowercase t and not our package P.
...
implement hiding lowercase methods m in
signatures by adding in a hash of the package name
to the type hash code.
remove remaining checks for internally-generated _ names:
they are all gone.
R=ken
OCL=23236
CL=23238
2009-01-21 14:51:57 -08:00
Russ Cox
35e37bbf41
6g: better genembedtramp fatal error,
...
and don't put inaccessible private methods
in signature.
R=ken
OCL=23138
CL=23140
2009-01-20 15:36:57 -08:00
Russ Cox
07d344e442
remove export name-list statement.
...
make package local the default.
warn about name case not matching export keyword.
R=ken
OCL=22881
CL=22886
2009-01-15 16:16:52 -08:00
Russ Cox
8fb60768c3
in 6g -r (the rsc flag),
...
rewrite heap pointer moves as xchg.
R=ken
OCL=22665
CL=22665
2009-01-13 13:46:09 -08:00
Russ Cox
ae167bf08f
clean up automatic indirect, delete some dead code.
...
R=ken
OCL=22454
CL=22457
2009-01-09 15:21:41 -08:00
Russ Cox
8f5bba0d82
silence gcc warnings.
...
not sure if the warning in reg.c was a real bug.
R=ken
OCL=22408
CL=22410
2009-01-09 11:13:59 -08:00
Russ Cox
a91af04c06
6g cleanup suggested by ken.
...
remove TPTR wrapper around TMAP, TCHAN, TSTRING.
R=ken
OCL=22406
CL=22409
2009-01-09 11:13:39 -08:00
Russ Cox
1b7881adb4
fix:
...
type T []int
var a []int
var t = T(a)
R=ken
OCL=22341
CL=22341
2009-01-08 15:01:22 -08:00
Russ Cox
20595ac4b0
many interface bug fixes.
...
also, after
func g() (int, int)
func f(int, int)
allow
f(g())
and
func h() (int, int) { return g() }
R=ken
DELTA=356 (252 added, 26 deleted, 78 changed)
OCL=22319
CL=22325
2009-01-08 14:30:00 -08:00
Russ Cox
1b1f1b53ea
correct signature generation decision
...
for non-pointer types with methods.
R=r
DELTA=37 (13 added, 14 deleted, 10 changed)
OCL=22217
CL=22219
2009-01-07 13:29:03 -08:00
Russ Cox
d8c7980514
comment sudoaddable;
...
remove unused second parameter.
R=ken
OCL=22126
CL=22126
2009-01-06 11:23:58 -08:00
Russ Cox
2d259c817a
add comments and delete dead code
...
R=ken
OCL=22078
CL=22080
2009-01-05 17:32:23 -08:00
Ken Thompson
2b33a134a8
regfree
...
R=r
OCL=21685
CL=21687
2008-12-20 16:07:56 -08:00
Ken Thompson
7cfe782a69
LEAQ bug
...
R=r
OCL=21684
CL=21684
2008-12-20 16:05:12 -08:00
Russ Cox
c3077f7606
[] and struct in interfaces.
...
other [] cleanup.
convert() is gone.
R=r
DELTA=352 (144 added, 68 deleted, 140 changed)
OCL=21660
CL=21662
2008-12-19 17:11:54 -08:00
Ken Thompson
a91a0a6a7a
array compare (except = != nil) are illegal
...
R=r
OCL=21637
CL=21637
2008-12-19 14:26:52 -08:00
Ken Thompson
6fa74e0973
portability bug
...
cant assign to closed array
R=r
OCL=21634
CL=21634
2008-12-19 14:04:25 -08:00
Ken Thompson
c9954c63a8
bug in [const]
...
R=r
OCL=21569
CL=21569
2008-12-18 22:01:46 -08:00
Ken Thompson
dcc064fe94
cmp [] to nil
...
R=r
OCL=21567
CL=21567
2008-12-18 21:33:45 -08:00
Ken Thompson
4026500d18
arrays
...
R=r
OCL=21564
CL=21564
2008-12-18 20:06:28 -08:00
Ken Thompson
8f53bc0612
new convention, direction bit is
...
always left cleared. changed
compiler generated memcpy and
memset to assume CLD.
R=r
OCL=21215
CL=21215
2008-12-15 15:07:35 -08:00
Ken Thompson
42d89ac02c
even more code improvement
...
R=r
OCL=21160
CL=21160
2008-12-14 18:45:00 -08:00
Ken Thompson
23fc0ac061
more code optimization
...
R=r
OCL=21159
CL=21159
2008-12-14 17:06:06 -08:00
Ken Thompson
719b088697
code generation
...
R=r
OCL=21146
CL=21146
2008-12-13 16:41:47 -08:00
Ken Thompson
937ac13f26
code improvement
...
R=r
OCL=21144
CL=21144
2008-12-13 13:16:14 -08:00
Russ Cox
cb64ec5bb6
only generate non-trivial signatures in the
...
file in which they occur. avoids duplicate
trampoline generation across multiple files.
R=ken
OCL=20976
CL=20980
2008-12-11 11:54:33 -08:00
Ken Thompson
a4459c5520
bug
...
R=r
OCL=20940
CL=20940
2008-12-10 16:23:29 -08:00
Ken Thompson
1d4daa2d39
foundation for import unsafe
...
R=r
OCL=20794
CL=20794
2008-12-08 19:46:39 -08:00
Ken Thompson
a0a14b98fa
empty switches -- bug128
...
R=r
OCL=20520
CL=20522
2008-12-04 16:05:40 -08:00
Ken Thompson
c8a66a98ff
small code improvement to
...
used scaled indexing
R=r
OCL=20308
CL=20310
2008-12-02 19:54:51 -08:00
Ken Thompson
9a5c7eab16
better code for += -= ^= |= and &=
...
R=r
OCL=19953
CL=19953
2008-11-24 17:51:26 -08:00
Ken Thompson
8e3fe10ee3
1. retract general field names
...
2. array bounds bug
3. ... optimization bug
R=r
OCL=19927
CL=19927
2008-11-24 14:01:12 -08:00
Ken Thompson
a6182dab47
indexing optimizations and bug fix
...
R=r
OCL=19886
CL=19886
2008-11-23 17:26:49 -08:00
Ken Thompson
e081f25c3e
reg and peep
...
R=r
OCL=19871
CL=19871
2008-11-22 17:58:53 -08:00
Russ Cox
9a6fd41a01
silence gcc warnings: missing prototypes and unused variables
...
R=ken
OCL=19583
CL=19583
2008-11-19 09:49:06 -08:00
Ken Thompson
64718ec262
oops
...
R=r
OCL=19566
CL=19566
2008-11-18 19:27:15 -08:00
Ken Thompson
2dd16a3208
first cut at optimizing
...
R=r
OCL=19564
CL=19564
2008-11-18 19:24:37 -08:00
Ken Thompson
93c8d3c41b
another shift bug
...
R=r
OCL=19525
CL=19525
2008-11-18 17:15:42 -08:00
Ken Thompson
b7f01f9f41
silence compiler warning
...
R=r
OCL=19382
CL=19382
2008-11-17 12:55:22 -08:00
Ken Thompson
e875055461
switch
...
R=r
OCL=19288
CL=19288
2008-11-14 16:24:27 -08:00
Russ Cox
792145723e
width fixes.
...
* check for uncomputed struct offsets
* distinguish function structs from ordinary structs
* make sure function structs are not examined in isolation
R=ken
OCL=19005
CL=19005
2008-11-11 13:46:55 -08:00
Ken Thompson
79f5697b02
byte multiply
...
R=r
OCL=18830
CL=18830
2008-11-07 16:05:17 -08:00
Ken Thompson
dc78c64f23
byte multiply
...
R=r
OCL=18807
CL=18807
2008-11-07 14:20:32 -08:00
Russ Cox
ec81145565
s/gins/gbranch/
...
R=ken
OCL=18713
CL=18713
2008-11-06 15:05:19 -08:00
Russ Cox
0eda21a2fd
change minimum sethi/ullman number to 1
...
to distinguish not computed (0) vs trivial (1).
add missing ullmancalc on function args.
R=ken
OCL=18711
CL=18711
2008-11-06 14:50:58 -08:00
Russ Cox
1983121bbb
6g interface changes:
...
* allow conversion between nil interface and any type.
* mark signatures as DUPOK so that multiple .6 can
contain sigt.*[]byte and only one gets used.
R=ken
OCL=18538
CL=18542
2008-11-05 11:27:50 -08:00
Russ Cox
c249a8de32
rename various magic names.
...
sigi and sigt:
sys·sigi_inter -> sigi·inter
sys·sigt_int -> sigt·int
Package·sigt_Type -> sigt·Package.Type
local type T in file x.go T_x -> T·x
second one T_x_1 -> T·x·1
method names M on T T_M -> T·M
correctly handle local embedded types
init functions are the only place left that use underscores
R=ken
OCL=18377
CL=18377
2008-11-03 15:36:08 -08:00
Ken Thompson
250ec1665a
unsigned divide by fn()
...
R=r
OCL=18351
CL=18351
2008-11-03 13:27:16 -08:00
Ken Thompson
d2472eb812
>>= and <<= shift bug
...
R=r
OCL=18322
CL=18322
2008-11-01 17:53:12 -07:00
Ken Thompson
74427c6346
DOTDOTDOT
...
R=r
OCL=18317
CL=18317
2008-11-01 16:36:46 -07:00
Ken Thompson
fd922c875d
shift bug
...
R=r
OCL=18166
CL=18166
2008-10-30 14:32:04 -07:00
Ken Thompson
4a3ce5f19e
sigt_int
...
R=r
OCL=18030
CL=18030
2008-10-29 13:40:00 -07:00
Ken Thompson
c21d9a1ec9
the end of life as we know it
...
int is new type
R=r
OCL=18023
CL=18023
2008-10-29 12:46:44 -07:00
Ken Thompson
b642cf8c00
embedded methods
...
R=r
OCL=17851
CL=17851
2008-10-25 13:31:25 -07:00
Ken Thompson
b379d54dea
another step toward interface subtypes
...
put explicit ./ on some runtime tests
R=r
OCL=17839
CL=17839
2008-10-24 20:14:28 -07:00
Russ Cox
ad48706a24
do not use fake names on anonymous function return values
...
R=ken
OCL=17679
CL=17679
2008-10-22 17:45:47 -07:00
Russ Cox
44b0ecc5ca
6g: use full type in sigt[0].name
...
sys: add sys.reflect
runtime: add canfail flag for later
R=ken
OCL=17583
CL=17583
2008-10-21 15:38:26 -07:00
Ian Lance Taylor
907fea6b54
Link against -lm so that we can find the function "floor".
...
R=rsc
DELTA=1 (0 added, 0 deleted, 1 changed)
OCL=17375
CL=17375
2008-10-17 15:52:49 -07:00
Russ Cox
b4f8e01acb
more interface checks:
...
- pointer to interface cannot have methods
- record type names for better runtime error
R=r,ken
DELTA=85 (80 added, 0 deleted, 5 changed)
OCL=16658
CL=16722
2008-10-08 09:21:57 -07:00
Russ Cox
74e2e087e2
change type names to go live at the name, so that
...
type T struct {
next *T
}
and
type T *struct {
next T
}
are valid without needing forward declarations.
add "type T struct" syntax for forward struct declarations.
add "type T interface" syntax, but commented out
(need to fix semicolons first)
R=ken
DELTA=452 (259 added, 115 deleted, 78 changed)
OCL=16580
CL=16584
2008-10-06 16:44:17 -07:00
Ken Thompson
f25843e65e
bug 026
...
R=r
OCL=16494
CL=16494
2008-10-04 15:17:49 -07:00
Russ Cox
45f4e38506
silence gcc warnings
...
R=ken
OCL=16449
CL=16466
2008-10-03 16:23:02 -07:00
Ken Thompson
8877d27b40
interfaces of all types
...
R=r
OCL=16462
CL=16462
2008-10-03 16:12:21 -07:00
Ken Thompson
ed139c1e37
more on arbitrary receiver types
...
this CL passes the tests, but should
be considered unstable
R=r
OCL=16390
CL=16390
2008-10-02 20:51:10 -07:00
Ken Thompson
53a22770a7
names now println/panicln
...
bug fix in named-return
R=r
OCL=16377
CL=16377
2008-10-02 15:37:15 -07:00
Ken Thompson
d015f896bb
clear output parameters
...
R=r
OCL=16345
CL=16345
2008-10-01 20:00:58 -07:00
Ken Thompson
970d6a14c4
initialization of
...
var a,b int;
R=r
OCL=16318
CL=16318
2008-10-01 14:16:57 -07:00
Ken Thompson
89ac5618ac
toward methods on any type
...
R=r
OCL=16068
CL=16068
2008-09-28 20:22:31 -07:00
Ken Thompson
8545700af8
export
...
R=r
OCL=16018
CL=16022
2008-09-26 17:41:23 -07:00
Ken Thompson
adaec0c4f4
vectors bug
...
R=r
OCL=15664
CL=15664
2008-09-22 16:58:30 -07:00
Ken Thompson
8231e94520
now method/interface code
...
R=r
OCL=15627
CL=15627
2008-09-22 12:16:19 -07:00
Ken Thompson
39a4b1421f
bug103 - but the fix caused other
...
things to break. hopefully all fixed
now.
R=r
OCL=15597
CL=15597
2008-09-20 14:59:15 -07:00
Ken Thompson
5d5e9f74cb
bug - divide and mod of a byte
...
R=r
OCL=15370
CL=15370
2008-09-15 15:03:10 -07:00
Ken Thompson
2119294af9
methods on any type
...
-- but only *struct tested
R=r
OCL=15326
CL=15326
2008-09-14 16:57:55 -07:00
Ken Thompson
b9cee1b6c1
package name on signatures thru rename
...
R=r
OCL=15314
CL=15314
2008-09-13 14:51:39 -07:00
Ken Thompson
1ae08bee90
Automated g4 rollback of changelist 15312.
...
*** Reason for rollback ***
<enter reason for rollback>
*** Original change description ***
correct signal name thru package rename
R=r
OCL=15313
CL=15313
2008-09-13 14:49:36 -07:00
Ken Thompson
28b9702741
correct signal name thru package rename
...
R=r
OCL=15312
CL=15312
2008-09-13 14:46:19 -07:00
Ken Thompson
bb3269fba0
snprints for safety
...
R=r
OCL=15311
CL=15311
2008-09-13 14:37:56 -07:00
Ken Thompson
904d4045d3
1 got rid if static 'fn wo return' test
...
2 added dynamic calls to throw for array bounds
and 'fn wo return'
3 small optimization on index[constant]
R=r
OCL=15281
CL=15281
2008-09-12 16:48:35 -07:00
Ken Thompson
d30c9a4be5
implement discussed function wo return statement
...
R=r
OCL=15166
CL=15166
2008-09-11 15:23:01 -07:00
Ken Thompson
0a7e4a7415
bug generating duplicate interface signatures
...
R=r
OCL=15119
CL=15119
2008-09-10 19:49:35 -07:00
Ken Thompson
d40f032d18
fixed bug in certain
...
evaluation of complex literals
R=r
OCL=15036
CL=15036
2008-09-09 15:47:31 -07:00