Commit 966bf713 authored by Rob Pike's avatar Rob Pike

docs: make "runtime" a word only as a name for the package.

Computer people have an agglutinating streak that I like to resist.
As a time of execution: run time.
As an adjective: run-time.
As a noun: run-time support/code/library.

Signed,
Mr. Pedant.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/4252048
parent a77744f4
...@@ -45,7 +45,7 @@ a <code>gcc-interface</code> subdirectory. ...@@ -45,7 +45,7 @@ a <code>gcc-interface</code> subdirectory.
</p> </p>
<p> <p>
The runtime library for <code>gccgo</code> is mostly the same as the The run-time library for <code>gccgo</code> is mostly the same as the
library in <a href="http://code.google.com/p/go">the main Go library in <a href="http://code.google.com/p/go">the main Go
repository</a>. The library code in the Go repository is periodically repository</a>. The library code in the Go repository is periodically
copied into the <code>gofrontend</code> and the <code>gcc</code> copied into the <code>gofrontend</code> and the <code>gcc</code>
......
...@@ -116,7 +116,7 @@ gccgo -o file file.o ...@@ -116,7 +116,7 @@ gccgo -o file file.o
<p> <p>
To run the resulting file, you will need to tell the program where to To run the resulting file, you will need to tell the program where to
find the Go runtime library. This can be done either by setting find the compiled Go packages. This can be done either by setting
<code>LD_LIBRARY_PATH</code> in your environment: <code>LD_LIBRARY_PATH</code> in your environment:
<pre> <pre>
......
...@@ -730,7 +730,7 @@ Why doesn't my multi-goroutine program use multiple CPUs?</h3> ...@@ -730,7 +730,7 @@ Why doesn't my multi-goroutine program use multiple CPUs?</h3>
<p> <p>
Under the gc compilers you must set <code>GOMAXPROCS</code> to allow the Under the gc compilers you must set <code>GOMAXPROCS</code> to allow the
runtime to utilise more than one OS thread. Under <code>gccgo</code> an OS run-time support to utilise more than one OS thread. Under <code>gccgo</code> an OS
thread will be created for each goroutine, and <code>GOMAXPROCS</code> is thread will be created for each goroutine, and <code>GOMAXPROCS</code> is
effectively equal to the number of running goroutines. effectively equal to the number of running goroutines.
</p> </p>
...@@ -738,7 +738,7 @@ effectively equal to the number of running goroutines. ...@@ -738,7 +738,7 @@ effectively equal to the number of running goroutines.
<p> <p>
Programs that perform concurrent computation should benefit from an increase in Programs that perform concurrent computation should benefit from an increase in
<code>GOMAXPROCS</code>. (See the <a <code>GOMAXPROCS</code>. (See the <a
href="http://golang.org/pkg/runtime/#GOMAXPROCS">runtime package href="http://golang.org/pkg/runtime/#GOMAXPROCS"><code>runtime</code> package's
documentation</a>.) documentation</a>.)
</p> </p>
...@@ -759,8 +759,8 @@ penalty involved in sending data between threads. ...@@ -759,8 +759,8 @@ penalty involved in sending data between threads.
</p> </p>
<p> <p>
The Go runtime's scheduler is not as good as it needs to be. In future, it Go's goroutine scheduler is not as good as it needs to be. In future, it
should recognise such cases and optimize its use of OS threads. For now, should recognize such cases and optimize its use of OS threads. For now,
<code>GOMAXPROCS</code> should be set on a per-application basis. <code>GOMAXPROCS</code> should be set on a per-application basis.
</p> </p>
...@@ -942,13 +942,13 @@ parser are already available in <a href="/pkg/go/"><code>/pkg/go</code></a>.) ...@@ -942,13 +942,13 @@ parser are already available in <a href="/pkg/go/"><code>/pkg/go</code></a>.)
We also considered using LLVM for <code>6g</code> but we felt it was too large and We also considered using LLVM for <code>6g</code> but we felt it was too large and
slow to meet our performance goals. slow to meet our performance goals.
<h3 id="How_is_the_runtime_implemented"> <h3 id="How_is_the_run_time_support_implemented">
How is the runtime implemented?</h3> How is the run-time support implemented?</h3>
<p> <p>
Again due to bootstrapping issues, the runtime is mostly in C (with a Again due to bootstrapping issues, the run-time code is mostly in C (with a
tiny bit of assembler) although Go is capable of implementing most of tiny bit of assembler) although Go is capable of implementing most of
it now. <code>Gccgo</code>'s runtime uses <code>glibc</code>. it now. <code>Gccgo</code>'s run-time support uses <code>glibc</code>.
<code>Gc</code> uses a custom library, to keep the footprint under <code>Gc</code> uses a custom library, to keep the footprint under
control; it is control; it is
compiled with a version of the Plan 9 C compiler that supports compiled with a version of the Plan 9 C compiler that supports
...@@ -968,7 +968,7 @@ type checks, reflection, and even panic-time stack traces. ...@@ -968,7 +968,7 @@ type checks, reflection, and even panic-time stack traces.
<p> <p>
A trivial C "hello, world" program compiled and linked statically using gcc A trivial C "hello, world" program compiled and linked statically using gcc
on Linux is around 750 kB. An equivalent Go program is around 1.8 MB, but on Linux is around 750 kB. An equivalent Go program is around 1.8 MB, but
that includes a more powerful runtime. We believe that with some effort that includes more powerful run-time support. We believe that with some effort
the size of Go binaries can be reduced. the size of Go binaries can be reduced.
<h2 id="Performance">Performance</h2> <h2 id="Performance">Performance</h2>
......
...@@ -555,7 +555,7 @@ When you want the equivalent of a virtual function, use an interface. ...@@ -555,7 +555,7 @@ When you want the equivalent of a virtual function, use an interface.
A variable which has an interface type may be converted to have a A variable which has an interface type may be converted to have a
different interface type using a special construct called a type assertion. different interface type using a special construct called a type assertion.
This is implemented dynamically This is implemented dynamically
at runtime, like C++ <code>dynamic_cast</code>. Unlike at run time, like C++ <code>dynamic_cast</code>. Unlike
<code>dynamic_cast</code>, there does <code>dynamic_cast</code>, there does
not need to be any declared relationship between the two interfaces. not need to be any declared relationship between the two interfaces.
...@@ -589,7 +589,7 @@ must unbox using a type assertion to recover ...@@ -589,7 +589,7 @@ must unbox using a type assertion to recover
values of the contained type. As the typing is dynamic rather values of the contained type. As the typing is dynamic rather
than static, there is no equivalent of the way that a C++ template may than static, there is no equivalent of the way that a C++ template may
inline the relevant operations. The operations are fully type-checked inline the relevant operations. The operations are fully type-checked
at runtime, but all operations will involve a function call. at run time, but all operations will involve a function call.
<pre> <pre>
type iterator interface { type iterator interface {
......
...@@ -4698,7 +4698,7 @@ func protect(g func()) { ...@@ -4698,7 +4698,7 @@ func protect(g func()) {
defer func() { defer func() {
log.Println("done") // Println executes normally even in there is a panic log.Println("done") // Println executes normally even in there is a panic
if x := recover(); x != nil { if x := recover(); x != nil {
log.Printf("runtime panic: %v", x) log.Printf("run time panic: %v", x)
} }
} }
log.Println("start") log.Println("start")
......
...@@ -54,7 +54,7 @@ architectures. ...@@ -54,7 +54,7 @@ architectures.
</dl> </dl>
<p> <p>
Except for things like low-level operating system interface code, the runtime Except for things like low-level operating system interface code, the run-time
support is the same in all ports and includes a mark-and-sweep garbage collector support is the same in all ports and includes a mark-and-sweep garbage collector
(a fancier one is in the works), efficient array and string slicing, (a fancier one is in the works), efficient array and string slicing,
support for segmented stacks, and a strong goroutine implementation. support for segmented stacks, and a strong goroutine implementation.
...@@ -419,9 +419,9 @@ to override the defaults. ...@@ -419,9 +419,9 @@ to override the defaults.
<code>$GOARM</code> (arm, default=6) <code>$GOARM</code> (arm, default=6)
</dt> </dt>
<dd> <dd>
The ARM architecture version the runtime libraries should target. The ARM architecture version the run-time libraries should target.
ARMv6 cores have more efficient synchronization primitives. Setting ARMv6 cores have more efficient synchronization primitives. Setting
<code>$GOARM</code> to 5 will compile the runtime libraries using <code>$GOARM</code> to 5 will compile the run-time libraries using
just SWP instructions that work on older architectures as well. just SWP instructions that work on older architectures as well.
Running v6 code on an older core will cause an illegal instruction trap. Running v6 code on an older core will cause an illegal instruction trap.
</dd> </dd>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment