Commit Graph

3138 Commits

Author SHA1 Message Date
Russ Cox 8998835543 5g, 6g, 8g: flush modified globals aggressively
The alternative is to record enough information that the
trap handler know which registers contain cached globals
and can flush the registers back to their original locations.
That's significantly more work.

This only affects globals that have been written to.
Code that reads from a global should continue to registerize
as well as before.

Fixes #1304.

R=ken2
CC=golang-dev
https://golang.org/cl/5687046
2012-02-20 13:41:44 -05:00
Dmitriy Vyukov b40000423b cmd/6c: add line feed after an error message
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5685051
2012-02-20 13:57:14 +04:00
Rob Pike b5a3bd5ff6 os: drop the Wait function and the options to Process.Wait
They are portability problems and the options are almost always zero in practice anyway.

R=golang-dev, dsymonds, r, bradfitz
CC=golang-dev
https://golang.org/cl/5688046
2012-02-20 15:36:08 +11:00
Rob Pike d6f8c751de all: rewrite references to old tool names
R=golang-dev, nigeltao
CC=golang-dev
https://golang.org/cl/5683045
2012-02-20 13:42:37 +11:00
Shenghou Ma 463009ff06 5a, 5c, 5g, 5l: fix build for Linux/ARM.
ARM doesn't have the concept of scale, so I renamed the field
Addr.scale to Addr.flag to better reflect its true meaning.

R=rsc
CC=golang-dev
https://golang.org/cl/5687044
2012-02-19 18:11:16 -05:00
Russ Cox 3c831f6395 cmd/fix: add runtime renamings
R=golang-dev, dsymonds, r
CC=golang-dev
https://golang.org/cl/5685043
2012-02-19 16:10:45 -05:00
Russ Cox 1a0c8fe9bb cmd/cgo: bug fixes
* disallow embedding of C type (Fixes issue 2552)
* detect 0-length array (Fixes issue 2806)
* use typedefs when possible, to avoid attribute((unavailable)) (Fixes issue 2888)
* print Go types constructed from C types using original C types (Fixes issue 2612)

This fix changes _cgo_export.h to repeat the preamble from import "C".
Otherwise the fix to issue 2612 is impossible, since it cannot refer to
types that have not been defined.  If people are using //export and
putting non-header information in the preamble, they will need to
refactor their code.

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/5672080
2012-02-19 13:32:55 -05:00
Shenghou Ma cf52e39ee0 6l, 8l: fix build for ELF systems
R=rsc
CC=golang-dev
https://golang.org/cl/5677095
2012-02-19 13:16:47 -05:00
Russ Cox 4e3f8e915f gc, ld: tag data as no-pointers and allocate in separate section
The garbage collector can avoid scanning this section, with
reduces collection time as well as the number of false positives.
Helps a little bit with issue 909, but certainly does not solve it.

R=ken2
CC=golang-dev
https://golang.org/cl/5671099
2012-02-19 03:19:52 -05:00
Russ Cox 83feedf7bf gc: fix error for floating-point constant %
R=ken2
CC=golang-dev
https://golang.org/cl/5674108
2012-02-19 00:12:31 -05:00
Russ Cox 126d475a43 gc: drop ideal bool
R=golang-dev, ken2
CC=golang-dev
https://golang.org/cl/5674098
2012-02-18 21:07:08 -05:00
Russ Cox 95b0fe141c cmd/api: s/ideal-bool/bool/
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5674105
2012-02-18 20:31:19 -05:00
Robert Griesemer b6e2d6b778 go/doc: move Example code from go/ast to go/doc.
Fixes #3048.

R=rsc
CC=golang-dev
https://golang.org/cl/5672081
2012-02-17 12:00:12 -08:00
Russ Cox c4c92ebeb6 cmd/gc: fix comparison of struct with _ field
Fixes #2989.

R=ken2
CC=golang-dev
https://golang.org/cl/5674091
2012-02-17 14:45:29 -05:00
Robert Griesemer 6cdf0a1eab godoc: don't print spurious suggestion when running "go doc foo"
Fixes #3041.

R=rsc
CC=golang-dev
https://golang.org/cl/5671087
2012-02-17 11:01:16 -08:00
Shenghou Ma 710d0540e2 cmd/dist: make dir check in defaulttarg() more robust
1, strip last path separator from $GOROOT
   The user might define GOROOT=/path/to/go/, but then the dir
   check in defaulttarg() will always complain the current dir
   is not within $GOROOT/src/.
2, resolve symlinks in the default goroot
   Or if getcwd() returns a fully-resolved path, the check in
   defaulttarg() will always fail.

R=rsc
CC=golang-dev
https://golang.org/cl/5649073
2012-02-17 11:29:34 -05:00
Evan Shaw fc444ebac1 8a, 8l: add EMMS instruction
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5673081
2012-02-17 11:21:46 -05:00
Russ Cox b27bd42a9a net/url: API
Convert cryptotype to general go1rename fix.
Add os.Exec -> syscall.Exec fix along with new
URL fixes.

Fixes #2946.

R=golang-dev, r, dsymonds
CC=golang-dev
https://golang.org/cl/5672072
2012-02-16 23:46:28 -05:00
Nigel Tao a52027a491 fix: walk ast.Ellipsis values.
Fixes #2583.

R=rsc, r
CC=golang-dev
https://golang.org/cl/5671078
2012-02-17 14:39:50 +11:00
Rémy Oudompheng 1d3ca9236e cmd/gc: correctly typecheck expression lists in returns.
Invalid return statements were accidentally compiling or
triggering internal errors.
Fixes #3044.

R=golang-dev, rsc
CC=golang-dev, remy
https://golang.org/cl/5673074
2012-02-16 23:42:19 +01:00
Bobby Powers 8098d711f3 cmd/go: fix 'go help <command>'
It depended on the old behavior of functions in structs.

R=golang-dev, rsc
CC=golang-dev, r
https://golang.org/cl/5656076
2012-02-16 14:05:17 -05:00
Bobby Powers 7c2bfa4f2c dist: add clang specific -Wno options
Clang 3.1 has more warnings enabled by default than GCC.
Combined with -Werror, they cause the build to fail
unnecessarily.  if the name of our compiler ends in "clang",
add the necessary extra -Wno options.  Ideally we would add
these flags unconditionally, as GCC is supposed to ignore
unknown -Wno flags, but apple's llvm-gcc doesn't.

Fixes #2878.

R=rsc, dave
CC=golang-dev
https://golang.org/cl/5673055
2012-02-16 13:31:46 -05:00
Nigel Tao 85d33918a0 cmd, pkg/go/*: fix "go vet" warnings for go/ast and go/printer
struct literals.

R=gri
CC=golang-dev
https://golang.org/cl/5653073
2012-02-16 22:43:41 +11:00
David Symonds 8342793e7b net/url: Rename ParseWithReference to ParseWithFragment.
Updates #2946.

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/5671061
2012-02-16 15:56:03 +11:00
Rob Pike d3f9aa47e5 cmd/go: fix 'go help'
It depended on old behavior of functions in structs.
Solved by adding a boolean method to check .Run != nil.

R=golang-dev, adg, r, rsc
CC=golang-dev
https://golang.org/cl/5674062
2012-02-15 18:12:42 -08:00
Andrew Gerrand 7c9662f461 godoc: show example function doc comments in UI
R=gri
CC=golang-dev
https://golang.org/cl/5677061
2012-02-16 12:43:22 +11:00
Andrew Gerrand 11e113db57 godoc: make example code more readable with new comment convention
go/doc: move Examples to go/ast
cmd/go: use go/doc to read examples
src/pkg: update examples to use new convention

This is to make whole file examples more readable. When presented as a
complete function, preceding an Example with its output is confusing.
The new convention is to put the expected output in the final comment
of the example, preceded by the string "output:" (case insensitive).

An idiomatic example looks like this:

// This example demonstrates Foo by doing bar and quux.
func ExampleFoo() {
        // example body that does bar and quux

        // Output:
        // example output
}

R=rsc, gri
CC=golang-dev
https://golang.org/cl/5673053
2012-02-16 11:50:28 +11:00
Rémy Oudompheng 79db6ada48 cmd/gc: error on constant shift overflows.
Fixes #3019.

R=golang-dev, rsc
CC=golang-dev, remy
https://golang.org/cl/5674044
2012-02-16 00:19:42 +01:00
Andrew Gerrand f3c3130685 godoc: support for package examples, display example suffixes
Fixes #2896.

R=golang-dev, gri
CC=golang-dev
https://golang.org/cl/5677047
2012-02-16 09:44:01 +11:00
Robert Griesemer 47afa4dba5 go/printer: don't lose relevant parentheses when rewriting selector expressions
Also: Simplified handling of selector expressions. As a result, complicated
multi-line expressions containing selectors and calls/indices with arguments
broken accross lines don't get indented the same way as before, but the change
is minimal (see tests) and there's no such code in the std library. It seems
a worthwhile compromise given the much simpler code.

Applied gofmt -w $GOROOT/src $GOROOT/misc .

Fixes #1847.

R=rsc
CC=golang-dev
https://golang.org/cl/5675062
2012-02-15 12:25:37 -08:00
Shenghou Ma 53d94a7220 cmd/go: suggest 'go test -i [args to test]'
Fixes #3023.

R=rsc
CC=golang-dev
https://golang.org/cl/5674055
2012-02-15 13:26:50 -05:00
Shenghou Ma 9c1f54c9ed cmd/go: go test -i correctly handle cgo packages
Previous CL (5674043) omit the case where runtime/cgo itself is out-of-date.
Fixes #2936 (again).

R=rsc
CC=golang-dev
https://golang.org/cl/5674048
2012-02-15 13:26:22 -05:00
Russ Cox 2506fd43d4 build: add make.bash --no-clean option
Makes it possible to run

GOARCH=amd64 make.bash
GOARCH=386 make.bash --no-clean

to avoid deleting some of the work done by the first one.

R=golang-dev
CC=golang-dev
https://golang.org/cl/5673056
2012-02-15 11:48:17 -05:00
Alex Brainman def2022bc0 cmd/dist: use correct package target when cross-compiling
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5672050
2012-02-15 09:02:45 -05:00
Shenghou Ma 6ed2b6c47d 5c, 6c, 8c, 6g, 8g: correct boundary checking
CL 5666043 fixed the same checking for 5g.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5666045
2012-02-15 08:59:03 -05:00
Nigel Tao da8f037b57 fix: add fix for bufio, gzip, zlib NewWriterXxx changes.
Fixes #2979.

R=rsc, r
CC=golang-dev
https://golang.org/cl/5664046
2012-02-15 14:41:47 +11:00
Yasuhiro Matsumoto 6fae34db94 cmd/dist: xprintf() can't output whole of 'dist env'.
R=golang-dev, mpimenov, alex.brainman
CC=golang-dev
https://golang.org/cl/5667045
2012-02-15 14:25:27 +11:00
Robert Griesemer 3a582a768b godoc: make godoc go work
- if a package path leads to subdirectories only,
  show command instead, if any
- to force documentation for a command, use the
  cmd/ prefix, as in: godoc cmd/go
  (note that for the go command, the prefix is
  not required since there is no actual go library
  package at the moment)

Fixes #3012.

R=rsc
CC=golang-dev
https://golang.org/cl/5665049
2012-02-14 13:57:21 -08:00
Russ Cox 9f333170bf cmd/go: a raft of fixes
* add -work option to save temporary files (Fixes issue 2980)
* fix go test -i to work with cgo packages (Fixes issue 2936)
* do not overwrite/remove empty directories or non-object
  files during build (Fixes issue 2829)
* remove package main vs package non-main heuristic:
  a directory must contain only one package (Fixes issue 2864)
* to make last item workable, ignore +build tags for files
  named on command line: go build x.go builds x.go even
  if it says // +build ignore.
* add // +build ignore tags to helper programs

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/5674043
2012-02-14 16:39:20 -05:00
Maxim Pimenov 87a04c0bcf gc: fix comment in mkbuiltin
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5669046
2012-02-14 16:27:35 -05:00
Rémy Oudompheng f8f0a2bc7b cgo: add support for returning errno with gccgo.
Also eliminate some warnings in builds.

R=golang-dev, fullung, iant, rsc
CC=golang-dev, remy
https://golang.org/cl/5650066
2012-02-14 20:23:45 +01:00
Shenghou Ma 60e4d5668e cmd/vet: give warning for construct 'Println(os.Stderr, ...)'
also fixes this bug in net/http/httptest.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5654083
2012-02-14 11:24:41 -05:00
Andrew Gerrand e11632ee00 go/doc, godoc: regard lone examples as "whole file" examples
Fixes #2930.

R=r, gri, rsc
CC=golang-dev
https://golang.org/cl/5657048
2012-02-14 17:19:59 +11:00
Russ Cox 1c987a321f 5g: fix memory corruption
R=ken2
CC=golang-dev
https://golang.org/cl/5666043
2012-02-14 01:13:14 -05:00
Russ Cox 82568c5cd5 cmd/dist: exclude cov and prof from releases
Also check for old and exp.

Fixes #2764.
Fixes #2765.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5654068
2012-02-14 00:18:30 -05:00
Daniel Krech dcf5ca706b cmd/go: go get scheme detection
Fixes #2895.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5651055
2012-02-13 23:46:31 -05:00
Andrew Gerrand 5ab935f68a godoc: list examples in index
Fixes #2897.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5658047
2012-02-14 14:52:00 +11:00
Russ Cox 7b848c6964 cmd/dist: cross-compiling fixes
This CL makes it possible to run make.bash with
GOOS and GOARCH set to something other than
the native host GOOS and GOARCH.

As part of the CL, the tool directory moves from bin/tool/
to pkg/tool/goos_goarch where goos and goarch are
the values for the host system (running the build), not
the target.  pkg/ is not technically appropriate, but C objects
are there now tool (pkg/obj/) so this puts all the generated
binaries in one place (rm -rf $GOROOT/pkg cleans everything).
Including goos_goarch in the name allows different systems
to share a single $GOROOT on a shared file system.

Fixes #2920.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5645093
2012-02-13 22:31:51 -05:00
Nigel Tao e8d30eb404 cmd/api: fix typo.
R=gri, r
CC=golang-dev
https://golang.org/cl/5659048
2012-02-14 12:37:57 +11:00
Russ Cox 422826270d cmd/cgo: omit //line in -godefs, -cdefs output
Makes files like src/pkg/syscall/ztypes_linux_amd64.go easier to read.
(The copy that is checked in predates the //line output mode,
so this also preserves the status quo.)

R=golang-dev, iant, gri
CC=golang-dev
https://golang.org/cl/5655068
2012-02-13 16:02:13 -05:00