1
0
mirror of https://github.com/golang/go synced 2024-10-04 18:31:22 -06:00
go/src/cmd/gc
Russ Cox 25922c0658 cmd/gc: introduce hidden closure functions earlier
The original implementation of closures created the
underlying top-level function during walk, which is fairly
late in the compilation process and caused ordering-based
complications due to earlier stages that had to be repeated
any number of times.

Create the underlying function during typecheck, much
earlier, so that later stages can be run just once.

The result is a simpler compilation sequence.

R=ken2
CC=golang-dev
https://golang.org/cl/6279049
2012-06-04 17:07:59 -04:00
..
align.c gc: Nicer errors before miscompiling. 2012-01-10 11:19:22 +01:00
bisonerrors gc: support for building with Plan 9 yacc 2011-11-16 16:58:02 -05:00
bits.c gc: format nits 2011-11-07 11:42:08 -05:00
builtin.c cmd/gc: inline slice[arr,str] in the frontend (mostly). 2012-06-02 22:50:57 -04:00
closure.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
const.c gc: new, less strict bool rules 2012-02-22 00:29:37 -05:00
cplx.c cmd/gc: contiguous loop layout 2012-05-30 18:07:39 -04:00
dcl.c cmd/gc: unnamed struct types can have methods 2012-03-07 02:27:15 -05:00
doc.go doc: various update to command documents 2012-03-09 01:31:09 +08:00
esc.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
export.c gc: return of ideal bool 2012-02-21 22:54:07 -05:00
fmt.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
gen.c cmd/gc: inline slice[arr,str] in the frontend (mostly). 2012-06-02 22:50:57 -04:00
go.errors gc: improve error message for composite literals with unexpected newlines 2012-04-02 11:00:55 -04:00
go.h cmd/gc: inline slice[arr,str] in the frontend (mostly). 2012-06-02 22:50:57 -04:00
go.y gc: reject import paths containing special characters 2012-02-24 14:48:36 -05:00
init.c gc: changes in export format in preparation of inlining. 2011-12-05 14:40:19 -05:00
inl.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
lex.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
Makefile build: update Makefile to track source code dependencies better 2012-03-13 03:31:11 +08:00
md5.c gc: shuffle #includes 2011-08-25 16:25:10 -04:00
md5.h the last bug involving type hashes 2009-09-02 09:09:32 -07:00
mkbuiltin gc: fix comment in mkbuiltin 2012-02-14 16:27:35 -05:00
mkbuiltin1.c gc: delete old unsafe functions 2012-02-13 15:37:35 -05:00
mkopnames gc: use octal escapes in mkopnames 2012-01-31 18:15:42 -08:00
mparith1.c cmd/gc: export constants in hexadecimal 2012-05-22 13:53:38 -04:00
mparith2.c cmd/gc: error on constant shift overflows. 2012-02-16 00:19:42 +01:00
mparith3.c gc: make constant arith errors a little more friendly 2012-02-11 00:50:56 -05:00
obj.c cmd/gc: if $GOROOT_FINAL is set, rewrite file names in object files 2012-03-05 16:13:33 -05:00
order.c cmd/gc: forgotten recursion on ninit itself in order.c 2012-01-26 15:10:24 +01:00
pgen.c gc, 8g, 8l: fix a handful of warnings 2012-02-12 23:07:31 -08:00
range.c cmd/gc: fix parallel assignment in range 2012-05-24 23:05:36 -04:00
reflect.c runtime: add (unused for now) gc field to type information 2012-06-02 14:02:44 -04:00
runtime.go cmd/gc: inline slice[arr,str] in the frontend (mostly). 2012-06-02 22:50:57 -04:00
select.c gc: introduce temp = nod+tempname 2011-09-02 15:35:16 -04:00
sinit.c cmd/gc: introduce hidden closure functions earlier 2012-06-04 17:07:59 -04:00
subr.c cmd/gc: fix parallel assignment in range 2012-05-24 23:05:36 -04:00
swt.c gc: static implements check on typeswitches only applies to concrete case types. 2012-01-24 13:53:00 +01:00
typecheck.c cmd/gc: make append(nil, x) error more precise 2012-05-15 12:51:58 -04:00
unsafe.c gc: keep pointer to original node in constant rewrites. 2011-12-07 16:18:50 -05:00
unsafe.go gc: delete old unsafe functions 2012-02-13 15:37:35 -05:00
walk.c cmd/gc: recognize u<<1 op u>>31 as a rotate when op is ^, not just |. 2012-06-04 20:53:32 +10:00
y.tab.c gc: reject import paths containing special characters 2012-02-24 14:48:36 -05:00
y.tab.h gc: reject import paths containing special characters 2012-02-24 14:48:36 -05:00
yerr.h gc: improve error message for composite literals with unexpected newlines 2012-04-02 11:00:55 -04:00