From: Robert Griesemer Date: Wed, 21 May 2014 00:46:08 +0000 (-0700) Subject: spec: specify order of init() calls X-Git-Tag: go1.3beta2 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c00043b5d8bd53130bddb5ef1e88643dccc4586f;p=gostls13.git spec: specify order of init() calls The spec did not specify the order in which init() functions are called. Specify that they are called in source order since we have now also specified the initialization order of independent variables. While technically a language change, no existing code could have relied on this, so this should not break anything. Per suggestion from rsc. LGTM=r, iant R=rsc, iant, r, ken CC=golang-codereviews https://golang.org/cl/98420046 --- diff --git a/doc/go_spec.html b/doc/go_spec.html index 01770395fd..4c80f39d4c 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -6008,7 +6008,8 @@ in a program.

A package with no imports is initialized by assigning initial values to all its package-level variables followed by calling all init -functions in unspecified order. +functions in the order they appear in the source, possibly in multiple files, +as presented to the compiler. If a package has imports, the imported packages are initialized before initializing the package itself. If multiple packages import a package, the imported package will be initialized only once.