mirror of
https://github.com/golang/go
synced 2024-11-21 20:54:45 -07:00
move things out of sys into os and runtime
R=r OCL=28569 CL=28573
This commit is contained in:
parent
c367d1b789
commit
918afd9491
@ -18,7 +18,7 @@ func cat(f *file.File) {
|
||||
switch nr, er := f.Read(&buf); true {
|
||||
case nr < 0:
|
||||
fmt.Fprintf(os.Stderr, "error reading from %s: %s\n", f.String(), er.String());
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
case nr == 0: // EOF
|
||||
return;
|
||||
case nr > 0:
|
||||
@ -38,7 +38,7 @@ func main() {
|
||||
f, err := file.Open(flag.Arg(i), 0, 0);
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "can't open %s: error %s\n", flag.Arg(i), err);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
cat(f);
|
||||
f.Close();
|
||||
|
@ -60,7 +60,7 @@ func cat(r reader) {
|
||||
switch nr, er := r.Read(&buf); {
|
||||
case nr < 0:
|
||||
fmt.Fprintf(os.Stderr, "error reading from %s: %s\n", r.String(), er.String());
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
case nr == 0: // EOF
|
||||
return;
|
||||
case nr > 0:
|
||||
@ -81,7 +81,7 @@ func main() {
|
||||
f, err := file.Open(flag.Arg(i), 0, 0);
|
||||
if f == nil {
|
||||
fmt.Fprintf(os.Stderr, "can't open %s: error %s\n", flag.Arg(i), err);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
cat(f);
|
||||
f.Close();
|
||||
|
@ -7,6 +7,7 @@ package main
|
||||
import (
|
||||
"file";
|
||||
"fmt";
|
||||
"os";
|
||||
)
|
||||
|
||||
func main() {
|
||||
@ -15,6 +16,6 @@ func main() {
|
||||
file, err := file.Open("/does/not/exist", 0, 0);
|
||||
if file == nil {
|
||||
fmt.Printf("can't open file; err=%s\n", err.String());
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -5,10 +5,11 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
s := "hello";
|
||||
if s[1] != 'e' { sys.Exit(1) }
|
||||
if s[1] != 'e' { os.Exit(1) }
|
||||
s = "good bye";
|
||||
var p *string = &s;
|
||||
*p = "ciao";
|
||||
|
@ -44,7 +44,7 @@ y.tab.h: $(YFILES)
|
||||
y.tab.c: y.tab.h
|
||||
test -f y.tab.c && touch y.tab.c
|
||||
|
||||
builtin.c: sys.go unsafe.go mkbuiltin1.c mkbuiltin
|
||||
builtin.c: sys.go unsafe.go runtime.go mkbuiltin1.c mkbuiltin
|
||||
./mkbuiltin >builtin.c || \
|
||||
(echo 'mkbuiltin failed; using bootstrap copy of builtin.c'; cp builtin.c.boot builtin.c)
|
||||
|
||||
|
@ -55,13 +55,6 @@ char *sysimport =
|
||||
"func sys.arrayslices (old *any, nel int, lb int, hb int, width int) (ary []any)\n"
|
||||
"func sys.arrays2d (old *any, nel int) (ary []any)\n"
|
||||
"func sys.closure ()\n"
|
||||
"func sys.Breakpoint ()\n"
|
||||
"var sys.Args []string\n"
|
||||
"var sys.Envs []string\n"
|
||||
"func sys.Gosched ()\n"
|
||||
"func sys.Goexit ()\n"
|
||||
"func sys.Exit (? int)\n"
|
||||
"func sys.Caller (n int) (pc uint64, file string, line int, ok bool)\n"
|
||||
"\n"
|
||||
"$$\n";
|
||||
char *unsafeimport =
|
||||
@ -74,3 +67,11 @@ char *unsafeimport =
|
||||
"func unsafe.Unreflect (? uint64, ? string, ? bool) (ret interface { })\n"
|
||||
"\n"
|
||||
"$$\n";
|
||||
char *runtimeimport =
|
||||
"package runtime\n"
|
||||
"func runtime.Breakpoint ()\n"
|
||||
"func runtime.Gosched ()\n"
|
||||
"func runtime.Goexit ()\n"
|
||||
"func runtime.Caller (n int) (pc uint64, file string, line int, ok bool)\n"
|
||||
"\n"
|
||||
"$$\n";
|
||||
|
@ -541,6 +541,7 @@ EXTERN Sym* pkgimportname; // package name from imported package
|
||||
EXTERN int tptr; // either TPTR32 or TPTR64
|
||||
extern char* sysimport;
|
||||
extern char* unsafeimport;
|
||||
extern char* runtimeimport;
|
||||
EXTERN char* filename; // name to uniqify names
|
||||
EXTERN Idir* idirs;
|
||||
|
||||
|
@ -265,6 +265,10 @@ importfile(Val *f)
|
||||
cannedimports("unsafe.6", unsafeimport);
|
||||
return;
|
||||
}
|
||||
if(strcmp(f->u.sval->s, "runtime") == 0) {
|
||||
cannedimports("runtime.6", runtimeimport);
|
||||
return;
|
||||
}
|
||||
|
||||
if(!findpkg(f->u.sval))
|
||||
fatal("can't find import: %Z", f->u.sval);
|
||||
|
@ -5,11 +5,12 @@
|
||||
|
||||
set -e
|
||||
gcc -o mkbuiltin1 mkbuiltin1.c
|
||||
6g sys.go
|
||||
6g unsafe.go
|
||||
rm -f _builtin.c
|
||||
./mkbuiltin1 sys >_builtin.c
|
||||
./mkbuiltin1 unsafe >>_builtin.c
|
||||
for i in sys unsafe runtime
|
||||
do
|
||||
6g $i.go
|
||||
./mkbuiltin1 $i >>_builtin.c
|
||||
done
|
||||
|
||||
# If _builtin.c has changed vs builtin.c.boot,
|
||||
# check in the new change if being run by
|
||||
|
9
src/cmd/gc/runtime.go
Normal file
9
src/cmd/gc/runtime.go
Normal file
@ -0,0 +1,9 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package PACKAGE
|
||||
func Breakpoint();
|
||||
func Gosched();
|
||||
func Goexit();
|
||||
func Caller(n int) (pc uint64, file string, line int, ok bool);
|
@ -72,17 +72,3 @@ func arrayslices(old *any, nel int, lb int, hb int, width int) (ary []any);
|
||||
func arrays2d(old *any, nel int) (ary []any);
|
||||
|
||||
func closure(); // has args, but compiler fills in
|
||||
|
||||
// used by go programs
|
||||
|
||||
func Breakpoint();
|
||||
|
||||
var Args []string;
|
||||
var Envs []string;
|
||||
|
||||
func Gosched();
|
||||
func Goexit();
|
||||
|
||||
func Exit(int);
|
||||
|
||||
func Caller(n int) (pc uint64, file string, line int, ok bool);
|
||||
|
@ -131,7 +131,7 @@ func ScanFiles(filenames []string) *Info {
|
||||
// TODO(rsc): Build a binary from package main?
|
||||
|
||||
z := new(Info);
|
||||
z.Args = sys.Args;
|
||||
z.Args = os.Args;
|
||||
z.Dir = PkgDir();
|
||||
z.Char = theChar; // for template
|
||||
z.ObjDir = ObjDir; // for template
|
||||
|
@ -34,7 +34,7 @@ const ObjDir = "_obj"
|
||||
|
||||
func fatal(args ...) {
|
||||
fmt.Fprintf(os.Stderr, "gobuild: %s\n", fmt.Sprint(args));
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
@ -261,15 +261,15 @@ func PrintDefaults() {
|
||||
}
|
||||
|
||||
// Usage prints to standard error a default usage message documenting all defined flags and
|
||||
// then calls sys.Exit(1).
|
||||
// then calls os.Exit(1).
|
||||
func Usage() {
|
||||
if len(sys.Args) > 0 {
|
||||
fmt.Fprintln(os.Stderr, "Usage of", sys.Args[0] + ":");
|
||||
if len(os.Args) > 0 {
|
||||
fmt.Fprintln(os.Stderr, "Usage of", os.Args[0] + ":");
|
||||
} else {
|
||||
fmt.Fprintln(os.Stderr, "Usage:");
|
||||
}
|
||||
PrintDefaults();
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
func NFlag() int {
|
||||
@ -280,20 +280,20 @@ func NFlag() int {
|
||||
// after flags have been processed.
|
||||
func Arg(i int) string {
|
||||
i += flags.first_arg;
|
||||
if i < 0 || i >= len(sys.Args) {
|
||||
if i < 0 || i >= len(os.Args) {
|
||||
return "";
|
||||
}
|
||||
return sys.Args[i]
|
||||
return os.Args[i]
|
||||
}
|
||||
|
||||
// NArg is the number of arguments remaining after flags have been processed.
|
||||
func NArg() int {
|
||||
return len(sys.Args) - flags.first_arg
|
||||
return len(os.Args) - flags.first_arg
|
||||
}
|
||||
|
||||
// Args returns the non-flag command-line arguments.
|
||||
func Args() []string {
|
||||
return sys.Args[flags.first_arg:len(sys.Args)];
|
||||
return os.Args[flags.first_arg:len(os.Args)];
|
||||
}
|
||||
|
||||
func add(name string, value FlagValue, usage string) {
|
||||
@ -393,7 +393,7 @@ func String(name, value string, usage string) *string {
|
||||
|
||||
func (f *allFlags) parseOne(index int) (ok bool, next int)
|
||||
{
|
||||
s := sys.Args[index];
|
||||
s := os.Args[index];
|
||||
f.first_arg = index; // until proven otherwise
|
||||
if len(s) == 0 {
|
||||
return false, -1
|
||||
@ -450,11 +450,11 @@ func (f *allFlags) parseOne(index int) (ok bool, next int)
|
||||
}
|
||||
} else {
|
||||
// It must have a value, which might be the next argument.
|
||||
if !has_value && index < len(sys.Args)-1 {
|
||||
if !has_value && index < len(os.Args)-1 {
|
||||
// value is the next arg
|
||||
has_value = true;
|
||||
index++;
|
||||
value = sys.Args[index];
|
||||
value = os.Args[index];
|
||||
}
|
||||
if !has_value {
|
||||
print("flag needs an argument: -", name, "\n");
|
||||
@ -473,7 +473,7 @@ func (f *allFlags) parseOne(index int) (ok bool, next int)
|
||||
// Parse parses the command-line flags. Must be called after all flags are defined
|
||||
// and before any are accessed by the program.
|
||||
func Parse() {
|
||||
for i := 1; i < len(sys.Args); {
|
||||
for i := 1; i < len(os.Args); {
|
||||
ok, next := flags.parseOne(i);
|
||||
if next > 0 {
|
||||
flags.first_arg = next;
|
||||
|
@ -74,7 +74,7 @@ func FlagServer(c *http.Conn, req *http.Request) {
|
||||
|
||||
// simple argument server
|
||||
func ArgServer(c *http.Conn, req *http.Request) {
|
||||
for i, s := range sys.Args {
|
||||
for i, s := range os.Args {
|
||||
fmt.Fprint(c, s, " ");
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,7 @@ package log
|
||||
import (
|
||||
"fmt";
|
||||
"io";
|
||||
"runtime";
|
||||
"os";
|
||||
"time";
|
||||
)
|
||||
@ -96,7 +97,7 @@ func (l *Logger) formatHeader(ns int64, calldepth int) string {
|
||||
}
|
||||
}
|
||||
if l.flag & (Lshortfile | Llongfile) != 0 {
|
||||
pc, file, line, ok := sys.Caller(calldepth);
|
||||
pc, file, line, ok := runtime.Caller(calldepth);
|
||||
if ok {
|
||||
if l.flag & Lshortfile != 0 {
|
||||
short, ok := shortnames[file];
|
||||
@ -139,7 +140,7 @@ func (l *Logger) Output(calldepth int, s string) {
|
||||
case Lcrash:
|
||||
panic("log: fatal error");
|
||||
case Lexit:
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -173,12 +174,12 @@ func Stderrf(format string, v ...) {
|
||||
stderr.Output(2, fmt.Sprintf(format, v))
|
||||
}
|
||||
|
||||
// Exit is equivalent to Stderr() followed by a call to sys.Exit(1).
|
||||
// Exit is equivalent to Stderr() followed by a call to os.Exit(1).
|
||||
func Exit(v ...) {
|
||||
exit.Output(2, fmt.Sprintln(v))
|
||||
}
|
||||
|
||||
// Exitf is equivalent to Stderrf() followed by a call to sys.Exit(1).
|
||||
// Exitf is equivalent to Stderrf() followed by a call to os.Exit(1).
|
||||
func Exitf(format string, v ...) {
|
||||
exit.Output(2, fmt.Sprintf(format, v))
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
# license that can be found in the LICENSE file.
|
||||
|
||||
# DO NOT EDIT. Automatically generated by gobuild.
|
||||
# gobuild -m dir_${GOARCH}_${GOOS}.go env.go error.go file.go stat_${GOARCH}_${GOOS}.go time.go types.go exec.go >Makefile
|
||||
# gobuild -m dir_${GOARCH}_${GOOS}.go env.go error.go file.go proc.go stat_${GOARCH}_${GOOS}.go time.go types.go exec.go >Makefile
|
||||
|
||||
D=
|
||||
|
||||
@ -41,6 +41,7 @@ coverage: packages
|
||||
|
||||
O1=\
|
||||
error.$O\
|
||||
proc.$O\
|
||||
types.$O\
|
||||
|
||||
O2=\
|
||||
@ -60,7 +61,7 @@ phases: a1 a2 a3 a4
|
||||
_obj$D/os.a: phases
|
||||
|
||||
a1: $(O1)
|
||||
$(AR) grc _obj$D/os.a error.$O types.$O
|
||||
$(AR) grc _obj$D/os.a error.$O proc.$O types.$O
|
||||
rm -f $(O1)
|
||||
|
||||
a2: $(O2)
|
||||
|
@ -19,7 +19,7 @@ var env map[string] string;
|
||||
|
||||
func copyenv() {
|
||||
env = make(map[string] string);
|
||||
for i, s := range sys.Envs {
|
||||
for i, s := range os.Envs {
|
||||
for j := 0; j < len(s); j++ {
|
||||
if s[j] == '=' {
|
||||
env[s[0:j]] = s[j+1:len(s)];
|
||||
|
@ -132,7 +132,7 @@ func (file *File) Write(b []byte) (ret int, err Error) {
|
||||
if e == syscall.EPIPE {
|
||||
file.nepipe++;
|
||||
if file.nepipe >= 10 {
|
||||
sys.Exit(syscall.EPIPE);
|
||||
os.Exit(syscall.EPIPE);
|
||||
}
|
||||
} else {
|
||||
file.nepipe = 0;
|
||||
|
@ -25,6 +25,7 @@ package regexp
|
||||
import (
|
||||
"container/vector";
|
||||
"os";
|
||||
"runtime";
|
||||
"utf8";
|
||||
)
|
||||
|
||||
@ -236,7 +237,7 @@ func (nop *_Nop) print() { print("nop") }
|
||||
func (re *Regexp) setError(err os.Error) {
|
||||
re.error = err;
|
||||
re.ch <- re;
|
||||
sys.Goexit();
|
||||
runtime.Goexit();
|
||||
}
|
||||
|
||||
func (re *Regexp) add(i instr) instr {
|
||||
|
@ -61,6 +61,7 @@ import (
|
||||
"io";
|
||||
"os";
|
||||
"reflect";
|
||||
"runtime";
|
||||
"strings";
|
||||
"template";
|
||||
"container/vector";
|
||||
@ -181,7 +182,7 @@ func New(fmap FormatterMap) *Template {
|
||||
// Generic error handler, called only from execError or parseError.
|
||||
func error(errors chan os.Error, line int, err string, args ...) {
|
||||
errors <- ParseError{fmt.Sprintf("line %d: %s", line, fmt.Sprintf(err, args))};
|
||||
sys.Goexit();
|
||||
runtime.Goexit();
|
||||
}
|
||||
|
||||
// Report error and stop executing. The line number must be provided explicitly.
|
||||
|
@ -14,6 +14,8 @@ package testing
|
||||
import (
|
||||
"flag";
|
||||
"fmt";
|
||||
"os";
|
||||
"runtime";
|
||||
)
|
||||
|
||||
// Report as tests are run; default is silent for success.
|
||||
@ -47,7 +49,7 @@ func (t *T) Fail() {
|
||||
func (t *T) FailNow() {
|
||||
t.Fail();
|
||||
t.ch <- t;
|
||||
sys.Goexit();
|
||||
runtime.Goexit();
|
||||
}
|
||||
|
||||
// Log formats its arguments using default formatting, analogous to Print(),
|
||||
@ -129,7 +131,7 @@ func Main(tests []Test) {
|
||||
}
|
||||
if !ok {
|
||||
println("FAIL");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
println("PASS");
|
||||
}
|
||||
|
@ -84,12 +84,12 @@ TEXT mainstart(SB),7,$0
|
||||
CALL initdone(SB)
|
||||
CALL main·main(SB)
|
||||
PUSHL $0
|
||||
CALL sys·Exit(SB)
|
||||
CALL exit(SB)
|
||||
POPL AX
|
||||
INT $3
|
||||
RET
|
||||
|
||||
TEXT sys·Breakpoint(SB),7,$0
|
||||
TEXT breakpoint(SB),7,$0
|
||||
BYTE $0xcc
|
||||
RET
|
||||
|
||||
|
@ -82,7 +82,7 @@ traceback(byte *pc0, byte *sp, G *g)
|
||||
|
||||
// func caller(n int) (pc uint64, file string, line int, ok bool)
|
||||
void
|
||||
sys·Caller(int32 n, uint64 retpc, string retfile, int32 retline, bool retbool)
|
||||
runtime·Caller(int32 n, uint64 retpc, string retfile, int32 retline, bool retbool)
|
||||
{
|
||||
uint64 pc;
|
||||
byte *sp;
|
||||
|
@ -55,12 +55,12 @@ TEXT mainstart(SB),7,$0
|
||||
CALL initdone(SB)
|
||||
CALL main·main(SB)
|
||||
PUSHQ $0
|
||||
CALL sys·Exit(SB)
|
||||
CALL exit(SB)
|
||||
POPQ AX
|
||||
CALL notok(SB)
|
||||
RET
|
||||
|
||||
TEXT sys·Breakpoint(SB),7,$0
|
||||
TEXT breakpoint(SB),7,$0
|
||||
BYTE $0xcc
|
||||
RET
|
||||
|
||||
|
@ -79,7 +79,7 @@ traceback(byte *pc0, byte *sp, G *g)
|
||||
|
||||
// func caller(n int) (pc uint64, file string, line int, ok bool)
|
||||
void
|
||||
sys·Caller(int32 n, uint64 retpc, String retfile, int32 retline, bool retbool)
|
||||
runtime·Caller(int32 n, uint64 retpc, String retfile, int32 retline, bool retbool)
|
||||
{
|
||||
uint64 pc;
|
||||
byte *sp;
|
||||
|
@ -211,7 +211,7 @@ loop:
|
||||
g->status = Gwaiting;
|
||||
enqueue(&c->sendq, sg);
|
||||
unlock(&chanlock);
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
|
||||
lock(&chanlock);
|
||||
sg = g->param;
|
||||
@ -237,7 +237,7 @@ asynch:
|
||||
g->status = Gwaiting;
|
||||
enqueue(&c->sendq, sg);
|
||||
unlock(&chanlock);
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
|
||||
lock(&chanlock);
|
||||
goto asynch;
|
||||
@ -311,7 +311,7 @@ loop:
|
||||
g->status = Gwaiting;
|
||||
enqueue(&c->recvq, sg);
|
||||
unlock(&chanlock);
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
|
||||
lock(&chanlock);
|
||||
sg = g->param;
|
||||
@ -339,7 +339,7 @@ asynch:
|
||||
g->status = Gwaiting;
|
||||
enqueue(&c->recvq, sg);
|
||||
unlock(&chanlock);
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
|
||||
lock(&chanlock);
|
||||
goto asynch;
|
||||
@ -748,7 +748,7 @@ loop:
|
||||
g->param = nil;
|
||||
g->status = Gwaiting;
|
||||
unlock(&chanlock);
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
|
||||
lock(&chanlock);
|
||||
sg = g->param;
|
||||
|
@ -33,7 +33,7 @@ sighandler(int32 sig, Siginfo *info, void *context)
|
||||
Regs *r;
|
||||
|
||||
if(panicking) // traceback already printed
|
||||
sys_Exit(2);
|
||||
exit(2);
|
||||
panicking = 1;
|
||||
|
||||
if(sig < 0 || sig >= NSIG){
|
||||
@ -56,8 +56,8 @@ sighandler(int32 sig, Siginfo *info, void *context)
|
||||
dumpregs(r);
|
||||
}
|
||||
|
||||
sys·Breakpoint();
|
||||
sys_Exit(2);
|
||||
breakpoint();
|
||||
exit(2);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -11,7 +11,7 @@ TEXT notok(SB),7,$0
|
||||
RET
|
||||
|
||||
// Exit the entire program (like C exit)
|
||||
TEXT sys·Exit(SB),7,$0
|
||||
TEXT exit(SB),7,$0
|
||||
MOVL $1, AX
|
||||
INT $0x80
|
||||
CALL notok(SB)
|
||||
|
@ -41,7 +41,7 @@ sighandler(int32 sig, Siginfo *info, void *context)
|
||||
Regs *r;
|
||||
|
||||
if(panicking) // traceback already printed
|
||||
sys_Exit(2);
|
||||
exit(2);
|
||||
panicking = 1;
|
||||
|
||||
if(sig < 0 || sig >= NSIG){
|
||||
@ -64,8 +64,8 @@ sighandler(int32 sig, Siginfo *info, void *context)
|
||||
dumpregs(r);
|
||||
}
|
||||
|
||||
sys·Breakpoint();
|
||||
sys_Exit(2);
|
||||
breakpoint();
|
||||
exit(2);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -9,7 +9,7 @@
|
||||
//
|
||||
|
||||
// Exit the entire program (like C exit)
|
||||
TEXT sys·Exit(SB),7,$-8
|
||||
TEXT exit(SB),7,$-8
|
||||
MOVL 8(SP), DI // arg 1 exit status
|
||||
MOVL $(0x2000000+1), AX // syscall entry
|
||||
SYSCALL
|
||||
|
@ -40,7 +40,7 @@ sighandler(int32 sig, Siginfo* info, void* context)
|
||||
Sigcontext *sc;
|
||||
|
||||
if(panicking) // traceback already printed
|
||||
sys_Exit(2);
|
||||
exit(2);
|
||||
panicking = 1;
|
||||
|
||||
uc = context;
|
||||
@ -61,8 +61,8 @@ sighandler(int32 sig, Siginfo* info, void* context)
|
||||
dumpregs(sc);
|
||||
}
|
||||
|
||||
sys·Breakpoint();
|
||||
sys_Exit(2);
|
||||
breakpoint();
|
||||
exit(2);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -20,7 +20,7 @@ TEXT syscall(SB),7,$0
|
||||
INT $3 // not reached
|
||||
RET
|
||||
|
||||
TEXT sys·Exit(SB),7,$0
|
||||
TEXT exit(SB),7,$0
|
||||
MOVL $252, AX // syscall number
|
||||
MOVL 4(SP), BX
|
||||
INT $0x80
|
||||
|
@ -49,7 +49,7 @@ sighandler(int32 sig, Siginfo* info, void* context)
|
||||
Sigcontext *sc;
|
||||
|
||||
if(panicking) // traceback already printed
|
||||
sys_Exit(2);
|
||||
exit(2);
|
||||
panicking = 1;
|
||||
|
||||
uc = context;
|
||||
@ -71,8 +71,8 @@ sighandler(int32 sig, Siginfo* info, void* context)
|
||||
dumpregs(sc);
|
||||
}
|
||||
|
||||
sys·Breakpoint();
|
||||
sys_Exit(2);
|
||||
breakpoint();
|
||||
exit(2);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -6,7 +6,7 @@
|
||||
// System calls and other sys.stuff for AMD64, Linux
|
||||
//
|
||||
|
||||
TEXT sys·Exit(SB),7,$0-8
|
||||
TEXT exit(SB),7,$0-8
|
||||
MOVL 8(SP), DI
|
||||
MOVL $231, AX // exitgroup - force all os threads to exi
|
||||
SYSCALL
|
||||
|
@ -129,7 +129,7 @@ initdone(void)
|
||||
}
|
||||
|
||||
void
|
||||
sys·Goexit(void)
|
||||
goexit(void)
|
||||
{
|
||||
if(debug > 1){
|
||||
lock(&debuglock);
|
||||
@ -137,7 +137,7 @@ sys·Goexit(void)
|
||||
unlock(&debuglock);
|
||||
}
|
||||
g->status = Gmoribund;
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
}
|
||||
|
||||
void
|
||||
@ -431,7 +431,7 @@ scheduler(void)
|
||||
case Gmoribund:
|
||||
gp->status = Gdead;
|
||||
if(--sched.gcount == 0)
|
||||
sys_Exit(0);
|
||||
exit(0);
|
||||
break;
|
||||
}
|
||||
if(gp->readyonstop){
|
||||
@ -461,7 +461,7 @@ scheduler(void)
|
||||
// before running g again. If g->status is Gmoribund,
|
||||
// kills off g.
|
||||
void
|
||||
sys·Gosched(void)
|
||||
gosched(void)
|
||||
{
|
||||
if(g == m->g0)
|
||||
throw("gosched of g0");
|
||||
@ -529,7 +529,7 @@ sys·exitsyscall(void)
|
||||
// The scheduler will ready g and put this m to sleep.
|
||||
// When the scheduler takes g awa from m,
|
||||
// it will undo the sched.mcpu++ above.
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
}
|
||||
|
||||
/*
|
||||
@ -784,7 +784,7 @@ sys·newproc(int32 siz, byte* fn, byte* arg0)
|
||||
mcpy(sp, (byte*)&arg0, siz);
|
||||
|
||||
sp -= sizeof(uintptr);
|
||||
*(byte**)sp = (byte*)sys·Goexit;
|
||||
*(byte**)sp = (byte*)goexit;
|
||||
|
||||
sp -= sizeof(uintptr); // retpc used by gogo
|
||||
newg->sched.SP = sp;
|
||||
@ -839,3 +839,21 @@ sys·deferreturn(int32 arg0)
|
||||
jmpdefer(sp);
|
||||
}
|
||||
|
||||
void
|
||||
runtime·Breakpoint(void)
|
||||
{
|
||||
breakpoint();
|
||||
}
|
||||
|
||||
void
|
||||
runtime·Goexit(void)
|
||||
{
|
||||
goexit();
|
||||
}
|
||||
|
||||
void
|
||||
runtime·Gosched(void)
|
||||
{
|
||||
gosched();
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ sys·panicl(int32 lno)
|
||||
|
||||
if(panicking) {
|
||||
printf("double panic\n");
|
||||
sys_Exit(3);
|
||||
exit(3);
|
||||
}
|
||||
panicking++;
|
||||
|
||||
@ -35,8 +35,8 @@ sys·panicl(int32 lno)
|
||||
traceback(sys·getcallerpc(&lno), sp, g);
|
||||
tracebackothers(g);
|
||||
}
|
||||
sys·Breakpoint(); // so we can grab it in a debugger
|
||||
sys_Exit(2);
|
||||
breakpoint(); // so we can grab it in a debugger
|
||||
exit(2);
|
||||
}
|
||||
|
||||
void
|
||||
@ -57,7 +57,7 @@ throw(int8 *s)
|
||||
printf("throw: %s\n", s);
|
||||
sys·panicl(-1);
|
||||
*(int32*)0 = 0; // not reached
|
||||
sys_Exit(1); // even more not reached
|
||||
exit(1); // even more not reached
|
||||
}
|
||||
|
||||
void
|
||||
@ -136,8 +136,8 @@ rnd(uint32 n, uint32 m)
|
||||
static int32 argc;
|
||||
static uint8** argv;
|
||||
|
||||
Array sys·Args;
|
||||
Array sys·Envs;
|
||||
Array os·Args;
|
||||
Array os·Envs;
|
||||
|
||||
void
|
||||
args(int32 c, uint8 **v)
|
||||
@ -161,15 +161,15 @@ goargs(void)
|
||||
|
||||
for(i=0; i<argc; i++)
|
||||
gargv[i] = gostring(argv[i]);
|
||||
sys·Args.array = (byte*)gargv;
|
||||
sys·Args.nel = argc;
|
||||
sys·Args.cap = argc;
|
||||
os·Args.array = (byte*)gargv;
|
||||
os·Args.nel = argc;
|
||||
os·Args.cap = argc;
|
||||
|
||||
for(i=0; i<envc; i++)
|
||||
genvv[i] = gostring(argv[argc+1+i]);
|
||||
sys·Envs.array = (byte*)genvv;
|
||||
sys·Envs.nel = envc;
|
||||
sys·Envs.cap = envc;
|
||||
os·Envs.array = (byte*)genvv;
|
||||
os·Envs.nel = envc;
|
||||
os·Envs.cap = envc;
|
||||
}
|
||||
|
||||
byte*
|
||||
@ -182,8 +182,8 @@ getenv(int8 *s)
|
||||
|
||||
bs = (byte*)s;
|
||||
len = findnull(bs);
|
||||
envv = (String*)sys·Envs.array;
|
||||
envc = sys·Envs.nel;
|
||||
envv = (String*)os·Envs.array;
|
||||
envc = os·Envs.nel;
|
||||
for(i=0; i<envc; i++){
|
||||
if(envv[i].len <= len)
|
||||
continue;
|
||||
|
@ -329,6 +329,10 @@ uint32 noequal(uint32, void*, void*);
|
||||
void* malloc(uintptr size);
|
||||
void* mallocgc(uintptr size);
|
||||
void free(void *v);
|
||||
void exit(int32);
|
||||
void breakpoint(void);
|
||||
void gosched(void);
|
||||
void goexit(void);
|
||||
|
||||
#pragma varargck argpos printf 1
|
||||
|
||||
@ -378,15 +382,11 @@ void notewakeup(Note*);
|
||||
* UTF-8 characters in identifiers.
|
||||
*/
|
||||
#ifndef __GNUC__
|
||||
#define sys_Exit sys·Exit
|
||||
#define sys_Gosched sys·Gosched
|
||||
#define sys_memclr sys·memclr
|
||||
#define sys_write sys·write
|
||||
#define sys_Breakpoint sys·Breakpoint
|
||||
#define sys_catstring sys·catstring
|
||||
#define sys_cmpstring sys·cmpstring
|
||||
#define sys_getcallerpc sys·getcallerpc
|
||||
#define sys_Goexit sys·Goexit
|
||||
#define sys_indexstring sys·indexstring
|
||||
#define sys_intstring sys·intstring
|
||||
#define sys_mal sys·mal
|
||||
@ -408,11 +408,7 @@ void notewakeup(Note*);
|
||||
/*
|
||||
* low level go-called
|
||||
*/
|
||||
void sys_Goexit(void);
|
||||
void sys_Gosched(void);
|
||||
void sys_Exit(int32);
|
||||
void sys_write(int32, void*, int32);
|
||||
void sys_Breakpoint(void);
|
||||
uint8* sys_mmap(byte*, uint32, int32, int32, int32, uint32);
|
||||
void sys_memclr(byte*, uint32);
|
||||
void sys_setcallerpc(void*, void*);
|
||||
|
@ -119,7 +119,7 @@ semsleep2(Sema *s)
|
||||
{
|
||||
USED(s);
|
||||
g->status = Gwaiting;
|
||||
sys·Gosched();
|
||||
gosched();
|
||||
}
|
||||
|
||||
static int32
|
||||
|
@ -215,8 +215,6 @@ out:
|
||||
void
|
||||
sys·stringiter2(String s, int32 k, int32 retk, int32 retv)
|
||||
{
|
||||
int32 l;
|
||||
|
||||
if(k >= s.len) {
|
||||
// retk=0 is end of iteration
|
||||
retk = 0;
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type T chan uint64;
|
||||
|
||||
func M(f uint64) (in, out T) {
|
||||
@ -65,5 +67,5 @@ func main() {
|
||||
x = min(xs);
|
||||
if x != OUT[i] { panic("bad: ", x, " should be ", OUT[i]); }
|
||||
}
|
||||
sys.Exit(0);
|
||||
os.Exit(0);
|
||||
}
|
||||
|
@ -6,14 +6,16 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
if len(sys.Args) != 3 {
|
||||
if len(os.Args) != 3 {
|
||||
panic("argc")
|
||||
}
|
||||
if sys.Args[1] != "arg1" {
|
||||
if os.Args[1] != "arg1" {
|
||||
panic("arg1")
|
||||
}
|
||||
if sys.Args[2] != "arg2" {
|
||||
if os.Args[2] != "arg2" {
|
||||
panic("arg2")
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
const N = 10
|
||||
|
||||
func AsynchFifo() {
|
||||
@ -18,7 +20,7 @@ func AsynchFifo() {
|
||||
for i := 0; i < N; i++ {
|
||||
if <-ch != i {
|
||||
print("bad receive\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,12 +20,12 @@ func f(left, right chan int) {
|
||||
|
||||
func main() {
|
||||
var n = 10000;
|
||||
if len(sys.Args) > 1 {
|
||||
if len(os.Args) > 1 {
|
||||
var err os.Error;
|
||||
n, err = strconv.Atoi(sys.Args[1]);
|
||||
n, err = strconv.Atoi(os.Args[1]);
|
||||
if err != nil {
|
||||
print("bad arg\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
leftmost := make(chan int);
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
package main
|
||||
|
||||
import "runtime"
|
||||
import "time"
|
||||
|
||||
func i32receiver(c chan int32, strobe chan bool) {
|
||||
@ -55,9 +56,9 @@ var ticker = time.Tick(10*1000); // 10 us
|
||||
func sleep() {
|
||||
<-ticker;
|
||||
<-ticker;
|
||||
sys.Gosched();
|
||||
sys.Gosched();
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
runtime.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
|
||||
func main() {
|
||||
|
@ -13,6 +13,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type rat struct {
|
||||
num, den int64; // numerator, denominator
|
||||
}
|
||||
@ -623,7 +625,7 @@ func checka(U PS, a []rat, str string) {
|
||||
|
||||
func main() {
|
||||
Init();
|
||||
if len(sys.Args) > 1 { // print
|
||||
if len(os.Args) > 1 { // print
|
||||
print("Ones: "); printn(Ones, 10);
|
||||
print("Twos: "); printn(Twos, 10);
|
||||
print("Add: "); printn(Add(Ones, Twos), 10);
|
||||
|
@ -16,6 +16,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type rat struct {
|
||||
num, den int64; // numerator, denominator
|
||||
}
|
||||
@ -636,7 +638,7 @@ func checka(U PS, a []*rat, str string) {
|
||||
|
||||
func main() {
|
||||
Init();
|
||||
if len(sys.Args) > 1 { // print
|
||||
if len(os.Args) > 1 { // print
|
||||
print("Ones: "); Printn(Ones, 10);
|
||||
print("Twos: "); Printn(Twos, 10);
|
||||
print("Add: "); Printn(Add(Ones, Twos), 10);
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
// Send the sequence 2, 3, 4, ... to channel 'ch'.
|
||||
func Generate(ch chan<- int) {
|
||||
for i := 2; ; i++ {
|
||||
@ -47,5 +49,5 @@ func main() {
|
||||
for i := 0; i < len(a); i++ {
|
||||
if x := <-primes; x != a[i] { panic(x, " != ", a[i]) }
|
||||
}
|
||||
sys.Exit(0);
|
||||
os.Exit(0);
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
var i uint64 =
|
||||
' ' +
|
||||
@ -33,10 +35,10 @@ func main() {
|
||||
;
|
||||
if '\Ucafebabe' != 0xcafebabe {
|
||||
print("cafebabe wrong\n");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
if i != 0xcc238de1 {
|
||||
print("number is ", i, " should be ", 0xcc238de1, "\n");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -12,15 +12,15 @@ func main() {
|
||||
ga, e0 := os.Getenv("GOARCH");
|
||||
if e0 != nil {
|
||||
print("$GOARCH: ", e0.String(), "\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
if ga != "amd64" {
|
||||
print("$GOARCH=", ga, "\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
xxx, e1 := os.Getenv("DOES_NOT_EXIST");
|
||||
if e1 != os.ENOENV {
|
||||
print("$DOES_NOT_EXIST=", xxx, "; err = ", e1.String(), "\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
const (
|
||||
x float = iota;
|
||||
g float = 4.5 * iota;
|
||||
@ -13,5 +15,5 @@ const (
|
||||
|
||||
func main() {
|
||||
if g == 0.0 { print("zero\n");}
|
||||
if g != 4.5 { print(" fail\n"); sys.Exit(1); }
|
||||
if g != 4.5 { print(" fail\n"); os.Exit(1); }
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func P(a []string) string {
|
||||
s := "{";
|
||||
for i := 0; i < 2; i++ {
|
||||
@ -29,6 +31,6 @@ func main() {
|
||||
a[0] = "x";
|
||||
m["0"][0] = "deleted";
|
||||
if m["0"][0] != "deleted" {
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -6,12 +6,14 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
m := make(map[int]int);
|
||||
m[0] = 0;
|
||||
m[0]++;
|
||||
if m[0] != 1 {
|
||||
print("map does not increment\n");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
import "strconv";
|
||||
|
||||
type Test struct {
|
||||
@ -53,6 +54,6 @@ func main() {
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type I interface { send(chan <- int) }
|
||||
|
||||
type S struct { v int }
|
||||
@ -16,5 +18,5 @@ func main() {
|
||||
var i I = &s;
|
||||
c := make(chan int);
|
||||
go i.send(c);
|
||||
sys.Exit(<-c);
|
||||
os.Exit(<-c);
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type S struct { i int }
|
||||
func (p *S) Get() int { return p.i }
|
||||
|
||||
@ -18,7 +20,7 @@ type Getter interface {
|
||||
|
||||
func f1(p Empty) {
|
||||
switch x := p.(type) {
|
||||
default: println("failed to match interface"); sys.Exit(1);
|
||||
default: println("failed to match interface"); os.Exit(1);
|
||||
case Getter: break;
|
||||
}
|
||||
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
count := 7;
|
||||
if one := 1; {
|
||||
@ -13,6 +15,6 @@ func main() {
|
||||
}
|
||||
if count != 8 {
|
||||
print(count, " should be 8\n");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
s :=
|
||||
0 +
|
||||
@ -18,6 +20,6 @@ func main() {
|
||||
0X123;
|
||||
if s != 788 {
|
||||
print("s is ", s, "; should be 788\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
const Value = 1e12
|
||||
|
||||
type Inter interface { M() int64 }
|
||||
@ -73,6 +75,6 @@ func main() {
|
||||
|
||||
if !ok {
|
||||
println("BUG: interface10");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
type I interface { M() int64 }
|
||||
|
||||
type BigPtr struct { a, b, c, d int64 }
|
||||
@ -70,6 +72,6 @@ func main() {
|
||||
nonptrs();
|
||||
|
||||
if bad {
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
var fail int
|
||||
|
||||
func check(b bool, msg string) {
|
||||
@ -145,6 +147,6 @@ func main() {
|
||||
f11();
|
||||
f12();
|
||||
if fail > 0 {
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
import "runtime"
|
||||
|
||||
var randx int;
|
||||
|
||||
@ -88,7 +90,7 @@ send(c *Chan)
|
||||
nproc++; // total goroutines running
|
||||
for {
|
||||
for r:=nrand(10); r>=0; r-- {
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
c.sc <- c.sv;
|
||||
if c.send() {
|
||||
@ -119,7 +121,7 @@ recv(c *Chan)
|
||||
nproc++; // total goroutines running
|
||||
for {
|
||||
for r:=nrand(10); r>=0; r-- {
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
v = <-c.rc;
|
||||
if c.recv(v) {
|
||||
@ -148,7 +150,7 @@ sel(r0,r1,r2,r3, s0,s1,s2,s3 *Chan)
|
||||
|
||||
for {
|
||||
for r:=nrand(5); r>=0; r-- {
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
|
||||
select {
|
||||
@ -270,9 +272,9 @@ test6(c int)
|
||||
func
|
||||
wait()
|
||||
{
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
for nproc != 0 {
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
}
|
||||
|
||||
@ -321,7 +323,7 @@ main()
|
||||
|
||||
if tots != t || totr != t {
|
||||
print("tots=", tots, " totr=", totr, " sb=", t, "\n");
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
sys.Exit(0);
|
||||
os.Exit(0);
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "runtime"
|
||||
|
||||
const N = 1000; // sent messages
|
||||
const M = 10; // receiving goroutines
|
||||
const W = 2; // channel buffering
|
||||
@ -48,9 +50,9 @@ main()
|
||||
c := make(chan int, W);
|
||||
for m:=0; m<M; m++ {
|
||||
go r(c, m);
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
}
|
||||
sys.Gosched();
|
||||
sys.Gosched();
|
||||
runtime.Gosched();
|
||||
runtime.Gosched();
|
||||
s(c);
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
var ecode int;
|
||||
|
||||
func assert(a, b, c string) {
|
||||
@ -84,5 +86,5 @@ func main() {
|
||||
r = 0x10ffff + 1;
|
||||
s = string(r);
|
||||
assert(s, "\xef\xbf\xbd", "too-large rune");
|
||||
sys.Exit(ecode);
|
||||
os.Exit(ecode);
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ package main
|
||||
|
||||
import(
|
||||
"fmt";
|
||||
"os";
|
||||
"utf8";
|
||||
)
|
||||
|
||||
@ -56,6 +57,6 @@ func main() {
|
||||
|
||||
if !ok {
|
||||
fmt.Println("BUG: stringrange");
|
||||
sys.Exit(1)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
@ -6,13 +6,15 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
func main() {
|
||||
i := 0;
|
||||
switch x := 5; {
|
||||
case i < x:
|
||||
sys.Exit(0);
|
||||
os.Exit(0);
|
||||
case i == x:
|
||||
case i > x:
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
package main
|
||||
|
||||
import "os"
|
||||
|
||||
const (
|
||||
Bool = iota;
|
||||
Int;
|
||||
@ -31,7 +33,7 @@ var m = make(map[string]int)
|
||||
func assert(b bool, s string) {
|
||||
if !b {
|
||||
println(s);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -704,7 +704,7 @@ func usage() {
|
||||
" godoc -http=:6060\n"
|
||||
);
|
||||
flag.PrintDefaults();
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
|
||||
@ -761,7 +761,7 @@ func main() {
|
||||
if err != nil {
|
||||
log.Stderrf("packagelistText.Execute: %s", err);
|
||||
}
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
doc, errors := info.Package.Doc();
|
||||
@ -770,7 +770,7 @@ func main() {
|
||||
if err != nil {
|
||||
log.Stderrf("parseerrorText.Execute: %s", err);
|
||||
}
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
if flag.NArg() > 1 {
|
||||
|
@ -41,7 +41,7 @@ func init() {
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "usage: pretty { flags } { files }\n");
|
||||
flag.PrintDefaults();
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
|
||||
@ -127,12 +127,12 @@ func main() {
|
||||
src, err := readFile(ast_txt);
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s: %v\n", ast_txt, err);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
ast_format, err := format.Parse(src, format.FormatterMap{"isValidPos": isValidPos, "isSend": isSend, "isRecv": isRecv});
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s: format errors:\n%s", ast_txt, err);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
// process files
|
||||
@ -166,5 +166,5 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
sys.Exit(exitcode);
|
||||
os.Exit(exitcode);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ var (
|
||||
|
||||
func error(format string, params ...) {
|
||||
fmt.Printf(format, params);
|
||||
sys.Exit(1);
|
||||
os.Exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user