1
0
mirror of https://github.com/golang/go synced 2024-11-24 08:10:09 -07:00
Commit Graph

125 Commits

Author SHA1 Message Date
Ross Light
d7eacee603 misc/vim: Add indent script for Vim
R=adg
CC=golang-dev
https://golang.org/cl/4258041
2011-03-08 15:42:23 +11:00
Robert Griesemer
4b4a1ea899 misc/dashboard/builder/doc.go: gofmt it
R=r, adg
CC=golang-dev
https://golang.org/cl/4256052
2011-03-07 11:00:57 -08:00
Russ Cox
f9ca3b5d5b runtime: scheduler, cgo reorganization
* Change use of m->g0 stack (aka scheduler stack).
* Provide runtime.mcall(f) to invoke f() on m->g0 stack.
* Replace scheduler loop entry with runtime.mcall(schedule).

Runtime.mcall eliminates the need for fake scheduler states that
exist just to run a bit of code on the m->g0 stack
(Grecovery, Gstackalloc).

The elimination of the scheduler as a loop that stops and
starts using gosave and gogo fixes a bad interaction with the
way cgo uses the m->g0 stack.  Cgo runs external (gcc-compiled)
C functions on that stack, and then when calling back into Go,
it sets m->g0->sched.sp below the added call frames, so that
other uses of m->g0's stack will not interfere with those frames.
Unfortunately, gogo (longjmp) back to the scheduler loop at
this point would end up running scheduler with the lower
sp, which no longer points at a valid stack frame for
a call to scheduler.  If scheduler then wrote any function call
arguments or local variables to where it expected the stack
frame to be, it would overwrite other data on the stack.
I realized this possibility while debugging a problem with
calling complex Go code in a Go -> C -> Go cgo callback.
This wasn't the bug I was looking for, it turns out, but I believe
it is a real bug nonetheless.  Switching to runtime.mcall, which
only adds new frames to the stack and never jumps into
functions running in existing ones, fixes this bug.

* Move cgo-related code out of proc.c into cgocall.c.
* Add very large comment describing cgo call sequences.
* Simpilify, regularize cgo function implementations and names.
* Add test suite as misc/cgo/test.

Now the Go -> C path calls cgocall, which calls asmcgocall,
and the C -> Go path calls cgocallback, which calls cgocallbackg.

The shuffling, which affects mainly the callback case, moves
most of the callback implementation to cgocallback running
on the m->curg stack (not the m->g0 scheduler stack) and
only while accounted for with $GOMAXPROCS (between calls
to exitsyscall and entersyscall).

The previous callback code did not block in startcgocallback's
approximation to exitsyscall, so if, say, the garbage collector
were running, it would still barge in and start doing things
like call malloc.  Similarly endcgocallback's approximation of
entersyscall did not call matchmg to kick off new OS threads
when necessary, which caused the bug in issue 1560.

Fixes #1560.

R=iant
CC=golang-dev
https://golang.org/cl/4253054
2011-03-07 10:37:42 -05:00
Andrew Gerrand
34f2f68354 gobuilder: add -package flag to build external packages
Also add -v for verbose logging.

R=rsc, gri, r, r2
CC=golang-dev
https://golang.org/cl/4172056
2011-03-03 14:41:09 +11:00
Andrew Gerrand
7f5acfb283 misc/dashboard/builder: talk to hg with utf-8 encoding always.
Fixes #1465.

R=rsc
CC=golang-dev
https://golang.org/cl/4172063
2011-02-23 07:47:53 +11:00
Andrew Gerrand
79ba1ce076 misc/dashboard: tweak build fail notification email
R=rsc
CC=golang-dev
https://golang.org/cl/4170063
2011-02-19 07:37:24 +11:00
Andrew Gerrand
00d8d0052a misc/dashboard: notify golang-dev on build failure
Fixes #1229.

R=rsc
CC=golang-dev
https://golang.org/cl/4178048
2011-02-18 03:34:22 +11:00
Rob Pike
fb9e37cd9b template: reverse order of arguments to Execute
In line with other functions such as Fprintf, put the
thing to be written first.

Apologies for the breakages this is sure to cause.

R=rsc, gri, adg, eds, r2, aam
CC=golang-dev
https://golang.org/cl/4169042
2011-02-09 14:23:01 -08:00
Andrew Gerrand
bbb7080b99 misc/dashboard: hide benchmarks link temporarily
R=rsc
CC=golang-dev
https://golang.org/cl/4128061
2011-02-09 00:03:08 -05:00
Robert Griesemer
288a39c86b go/ast: reflect communication operator changes accurately in ast
- go/ast: introduce SendStmt; adjust SelectStmt
- go/parser: accept new communication syntax, minor
  unrelated cleanups
- go/printer: adjustments for new ast, fewer binary
  expression precedences
- go/token: remove one binary precedence

Adjusted dependent code. gofmt -w src -misc. Ran all tests.

R=rsc, gri
CC=golang-dev
https://golang.org/cl/3989056
2011-02-01 13:47:51 -08:00
Rob Pike
eea18d959e log: rename Exit* to Fatal*
This aligns the naming scheme with the testing package and
also lets govet work on more logging calls.

R=rsc
CC=golang-dev
https://golang.org/cl/4001048
2011-02-01 12:47:35 -08:00
Gustavo Niemeyer
5887ef7571 misc/vim: Define import commands on buffer switch
This change fixes the import plugin so that the
defined commands are available when opening a new
Go buffer from within Vim itself.

R=adg, rsc
CC=golang-dev
https://golang.org/cl/3998053
2011-02-01 11:12:57 +11:00
Gustavo Niemeyer
400d7772cc misc/vim: Document better syntax sync parameter
Forcing the synchronization of 500 lines is both slower and
less precise than searching for a known sync point.
Unfortunately, though, the way to synchronize correctly is
using the grouphere instruction, which has a bug.

I've already proposed the fix to Vim, so future releases
should have this working.  We can continue using the 500 lines
syncing for now.

This change just documents the proper way to sync.

R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4029047
2011-02-01 11:12:45 +11:00
Yasuhiro Matsumoto
90585bde37 misc/vim/syntax: set large value to 'syntax sync'.
R=golang-dev, dsymonds, adg
CC=golang-dev
https://golang.org/cl/4102044
2011-01-27 23:03:52 +10:00
Gustavo Niemeyer
4e5e0b1d20 misc: Import/Drop commands for Vim
New ftplugin adds Import and Drop commands for Go buffers
in Vim.  These commands ensure that the provided package is
imported (or not imported) in the current Go buffer, using
proper style and ordering, without moving the cursor.

E.g.

    :Import strings
    :ImportAs . strings
    :Drop strings

Two mappings are also introduced to help with the fmt package:

    \f => :Import fmt
    \F => :Drop fmt

R=adg
CC=golang-dev
https://golang.org/cl/4009043
2011-01-25 11:36:13 +10:00
Russ Cox
5cfadeb047 misc: update type + builtin lists found in editor support files
R=adg, dsymonds
CC=golang-dev
https://golang.org/cl/4072041
2011-01-19 23:07:49 -05:00
Andrew Gerrand
a4bade8592 gobuilder: prefix the tarball with 'go.', tweak release regexp
R=rsc
CC=golang-dev
https://golang.org/cl/3775047
2011-01-04 13:16:38 +11:00
Russ Cox
6c6d53052e cgo: handle references to symbols in shared libraries
Fixes #1334.

R=r
CC=golang-dev
https://golang.org/cl/3746041
2010-12-17 11:37:11 -08:00
Russ Cox
0cd3475386 misc/cgo/life: fix, add to build
#pragma dynexport is no longer needed for
this use of cgo, since the gcc and gc code are
now linked together into the same binary.
It may still be necessary later.

On the Mac, you cannot use the GOT to resolve
symbols that exist in the current binary, so 6l and 8l
translate the GOT-loading mov instructions into lea
instructions.

On ELF systems, we could use the GOT for those
symbols, but for consistency 6l and 8l apply the
same translation.

The translation is sketchy in the extreme
(depending on the relocation being in a mov
instruction) but it verifies that the instruction
is a mov before rewriting it to lea.

Also makes typedefs global across files.

Fixes #1335.
Fixes #1345.

R=iant, r
CC=golang-dev
https://golang.org/cl/3650042
2010-12-17 09:51:55 -08:00
Ryan Hitchman
5742ded3ad godashboard: support submitting projects with non-ascii names
Fixes #1314.

R=adg, rsc
CC=golang-dev
https://golang.org/cl/3459043
2010-12-15 12:07:30 +11:00
Russ Cox
9da73612ed cgo: do not reset tag generator between files
Clean up an error message and error exit too.
Insert blank line after "DO NOT EDIT" comment
to keep it from being a doc comment.

Fixes #1213.
Fixes #1222.

R=r
CC=golang-dev
https://golang.org/cl/3608042
2010-12-13 13:20:04 -05:00
Andrew Gerrand
8984fa8fce dashboard: fix project tag filter
R=rsc
CC=golang-dev
https://golang.org/cl/3439043
2010-12-10 08:29:34 +11:00
Devon H. O'Dell
dfd98d090c builder: Allow buildroot to be passed as command-line argument
R=adg
CC=golang-dev
https://golang.org/cl/3473041
2010-12-06 10:34:39 +11:00
Evan Shaw
f62772b1e5 kate: update for append
R=golang-dev, PeterGo, gri
CC=golang-dev
https://golang.org/cl/2710044
2010-10-30 21:25:19 -07:00
Anthony Starks
edaeb88bd5 misc/bbedit: support append, other builtins
R=golang-dev, PeterGo, adg
CC=golang-dev
https://golang.org/cl/2791042
2010-10-30 22:15:59 +11:00
David Symonds
0451cd1950 misc/vim: update list of builtins.
R=adg
CC=golang-dev
https://golang.org/cl/2807041
2010-10-30 22:07:01 +11:00
Andrew Gerrand
fe57dd8522 builder: pass GOHOSTOS and GOHOSTARCH to build
R=rsc
CC=golang-dev
https://golang.org/cl/2759041
2010-10-27 11:27:52 +11:00
Robert Griesemer
3478891d12 gofmt -s -w src misc
R=r, rsc
CC=golang-dev
https://golang.org/cl/2662041
2010-10-22 10:06:33 -07:00
Andrew Gerrand
f16b6b14d8 misc: update python scripts to specify python2 or nothing
(Hopefully this changeset will notice my +x to googlecode_upload.py)

Fixes #1217.

R=rsc
CC=golang-dev
https://golang.org/cl/2634041
2010-10-21 15:41:51 +11:00
Andrew Gerrand
b3601a5c5b gobuilder: write build and benchmarking logs to disk
R=rsc
CC=golang-dev
https://golang.org/cl/2637041
2010-10-21 15:33:31 +11:00
Andrew Gerrand
06492d47cb build: add gobuilder and goplay to run.bash
gobuilder: fix build to work with new log package

R=rsc
CC=golang-dev
https://golang.org/cl/2592041
2010-10-21 10:46:10 +11:00
Yasuhiro Matsumoto
e64280ecfa goplay: fix to run under windows.
Fixes #1204.

R=golang-dev, brainman, Joe Poirier, alex.brainman, adg
CC=golang-dev, math-nuts
https://golang.org/cl/2532041
2010-10-19 11:29:31 +11:00
Andrew Gerrand
e2df7f42ac misc: add goplay
R=rsc, r
CC=golang-dev
https://golang.org/cl/2473041
2010-10-14 14:06:02 +11:00
Graham Miller
cc5c2ee0ec life: fix for new slice rules
R=golang-dev, adg, rsc
CC=golang-dev
https://golang.org/cl/2341049
2010-10-07 04:52:13 -04:00
Andrew Gerrand
03babfc626 Use Errorf where appropriate.
R=r, r2
CC=golang-dev
https://golang.org/cl/2308043
2010-10-01 14:14:18 +10:00
Andrew Gerrand
fdb9e68c4e misc/dashboard/builder: remove build files after benchmarking
R=r
CC=golang-dev
https://golang.org/cl/2270041
2010-09-30 11:59:36 +10:00
Andrew Gerrand
96d6f9dea4 misc/dashboard/builder: -cmd for user-specified build command
R=rsc
CC=golang-dev
https://golang.org/cl/2248043
2010-09-22 15:18:41 +10:00
Russ Cox
a2450c1456 cgo: bug fixes
* Add documentation about array arguments.  Fixes issue 1125.
* Do not interpret x, y := z, w as special errno form.  Fixes issue 952.
* Fix nested Go calls (brainman).  Fixes issue 907.

R=r
CC=golang-dev
https://golang.org/cl/2214044
2010-09-21 22:41:19 -04:00
Andrew Gerrand
0e73fffe36 misc/dashboard/builder: fix bug that caused old revisions to be rebuilt
R=rsc, r2
CC=golang-dev
https://golang.org/cl/2213044
2010-09-22 11:42:40 +10:00
Andrew Gerrand
6952347200 misc/dashboard/builder: fixes and improvements
- fix release upload
- add -rev= flag to build specific revision and exit
- added support for all-$GOARCH.bash

R=rsc
CC=golang-dev
https://golang.org/cl/2247044
2010-09-21 20:32:36 +10:00
Scott Lawrence
3b9a024d29 go-mode.el: Fix highlighting for 'chan' type
Fixes #1038.

R=aclements, rsc
CC=golang-dev
https://golang.org/cl/2111046
2010-09-13 00:12:18 -04:00
Andrew Gerrand
3e8cc7f114 misc/dashboard/builder: gobuilder, a continuous build client
R=rsc
CC=golang-dev
https://golang.org/cl/2126042
2010-09-13 10:46:17 +10:00
Andrew Gerrand
e11bcc88f5 revert accidental submit of builder.go
R=rsc
CC=golang-dev
https://golang.org/cl/2121042
2010-09-03 18:08:16 +10:00
Andrew Gerrand
1a5d3c224d misc/dashboard/builder: Go implementation of continuous build client
R=rsc, r
CC=golang-dev
https://golang.org/cl/2112042
2010-09-03 17:57:13 +10:00
Scott Lawrence
0f61f0140d misc/bash: add *.go completion for gofmt
R=golang-dev, rsc1, rsc
CC=golang-dev
https://golang.org/cl/2039044
2010-08-30 21:13:11 -04:00
Scott Lawrence
815a67850c misc: add zsh completion (using compctl)
R=golang-dev, rsc1, rsc
CC=golang-dev
https://golang.org/cl/2061042
2010-08-30 21:13:01 -04:00
Christian Himpel
5c603dbb75 build: remove unnecessary references to GOBIN and GOROOT
All scripts and makefiles assume that GOBIN is correctly set
in PATH.

R=rsc
CC=golang-dev
https://golang.org/cl/2043041
2010-08-30 15:40:56 -04:00
Vincent Ambo
c1497a0589 misc/fraise: syntax highlighting for Fraise.app (OS X)
R=golang-dev, adg1, adg
CC=golang-dev
https://golang.org/cl/2075041
2010-08-30 15:07:33 +10:00
Scott Lawrence
87229f54c3 misc/emacs: make _ a word symbol
Fixes #655.

R=rsc, aclements
CC=golang-dev
https://golang.org/cl/1981041
2010-08-26 13:32:50 -04:00
Russ Cox
da392d9136 build: no required environment variables
R=adg, r, PeterGo
CC=golang-dev
https://golang.org/cl/1942044
2010-08-18 10:08:49 -04:00