1
0
mirror of https://github.com/golang/go synced 2024-11-20 11:04:56 -07:00

convert gob to whole-package compilation.

had to reorder some init code.

R=r
DELTA=136  (15 added, 110 deleted, 11 changed)
OCL=33071
CL=33102
This commit is contained in:
Russ Cox 2009-08-12 13:19:27 -07:00
parent b04ac108fd
commit a5bf45e389
9 changed files with 26 additions and 121 deletions

View File

@ -2,85 +2,14 @@
# Use of this source code is governed by a BSD-style # Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file. # license that can be found in the LICENSE file.
# DO NOT EDIT. Automatically generated by gobuild.
# gobuild -m >Makefile
D=
include $(GOROOT)/src/Make.$(GOARCH) include $(GOROOT)/src/Make.$(GOARCH)
AR=gopack
default: packages TARG=gob
GOFILES=\
decode.go\
decoder.go\
encode.go\
encoder.go\
type.go\
clean: include $(GOROOT)/src/Make.pkg
rm -rf *.[$(OS)] *.a [$(OS)].out _obj
test: packages
gotest
coverage: packages
gotest
6cov -g $$(pwd) | grep -v '_test\.go:'
%.$O: %.go
$(GC) -I_obj $*.go
%.$O: %.c
$(CC) $*.c
%.$O: %.s
$(AS) $*.s
O1=\
type.$O\
O2=\
encode.$O\
O3=\
decode.$O\
encoder.$O\
O4=\
decoder.$O\
phases: a1 a2 a3 a4
_obj$D/gob.a: phases
a1: $(O1)
$(AR) grc _obj$D/gob.a type.$O
rm -f $(O1)
a2: $(O2)
$(AR) grc _obj$D/gob.a encode.$O
rm -f $(O2)
a3: $(O3)
$(AR) grc _obj$D/gob.a decode.$O encoder.$O
rm -f $(O3)
a4: $(O4)
$(AR) grc _obj$D/gob.a decoder.$O
rm -f $(O4)
newpkg: clean
mkdir -p _obj$D
$(AR) grc _obj$D/gob.a
$(O1): newpkg
$(O2): a1
$(O3): a2
$(O4): a3
$(O5): a4
nuke: clean
rm -f $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D/gob.a
packages: _obj$D/gob.a
install: packages
test -d $(GOROOT)/pkg && mkdir -p $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D
cp _obj$D/gob.a $(GOROOT)/pkg/$(GOOS)_$(GOARCH)$D/gob.a

View File

@ -6,7 +6,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"math"; "math";
"os"; "os";
"reflect"; "reflect";

View File

@ -9,7 +9,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"io"; "io";
"math"; "math";
"os"; "os";
@ -512,9 +511,6 @@ var decIgnoreOpMap = map[typeId] decOp {
tString: ignoreUint8Array, tString: ignoreUint8Array,
} }
func getDecEnginePtr(wireId typeId, rt reflect.Type) (enginePtr **decEngine, err os.Error)
func getIgnoreEnginePtr(wireId typeId) (enginePtr **decEngine, err os.Error)
// Return the decoding op for the base type under rt and // Return the decoding op for the base type under rt and
// the indirection count to reach it. // the indirection count to reach it.
func decOpFor(wireId typeId, rt reflect.Type, name string) (decOp, int, os.Error) { func decOpFor(wireId typeId, rt reflect.Type, name string) (decOp, int, os.Error) {

View File

@ -6,7 +6,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"io"; "io";
"os"; "os";
"reflect"; "reflect";

View File

@ -6,7 +6,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"io"; "io";
"math"; "math";
"os"; "os";
@ -335,8 +334,6 @@ var encOpMap = map[reflect.Type] encOp {
valueKind("x"): encString, valueKind("x"): encString,
} }
func getEncEngine(rt reflect.Type) (*encEngine, os.Error)
// Return the encoding op for the base type under rt and // Return the encoding op for the base type under rt and
// the indirection count to reach it. // the indirection count to reach it.
func encOpFor(rt reflect.Type) (encOp, int, os.Error) { func encOpFor(rt reflect.Type) (encOp, int, os.Error) {

View File

@ -183,7 +183,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"io"; "io";
"os"; "os";
"reflect"; "reflect";

View File

@ -6,7 +6,6 @@ package gob
import ( import (
"bytes"; "bytes";
"gob";
"io"; "io";
"os"; "os";
"reflect"; "reflect";

View File

@ -104,16 +104,25 @@ func (t *commonType) Name() string {
return t.name return t.name
} }
// Basic type identifiers, predefined. // Create and check predefined types
var tBool typeId // The string for tBytes is "bytes" not "[]byte" to signify its specialness.
var tInt typeId
var tUint typeId var tBool = bootstrapType("bool", false, 1)
var tFloat typeId var tInt = bootstrapType("int", int(0), 2)
var tString typeId var tUint = bootstrapType("uint", uint(0), 3)
var tBytes typeId var tFloat = bootstrapType("float", float64(0), 4)
var tBytes = bootstrapType("bytes", make([]byte, 0), 5)
var tString = bootstrapType("string", "", 6)
// Predefined because it's needed by the Decoder // Predefined because it's needed by the Decoder
var tWireType typeId var tWireType = getTypeInfoNoError(reflect.Typeof(wireType{})).id
func init() {
checkId(7, tWireType);
checkId(8, getTypeInfoNoError(reflect.Typeof(structType{})).id);
checkId(9, getTypeInfoNoError(reflect.Typeof(commonType{})).id);
checkId(10, getTypeInfoNoError(reflect.Typeof(fieldType{})).id);
}
// Array type // Array type
type arrayType struct { type arrayType struct {
@ -201,9 +210,6 @@ func newStructType(name string) *structType {
return s; return s;
} }
// Construction
func getType(name string, rt reflect.Type) (gobType, os.Error)
// Step through the indirections on a type to discover the base type. // Step through the indirections on a type to discover the base type.
// Return the number of indirections. // Return the number of indirections.
func indirect(t reflect.Type) (rt reflect.Type, count int) { func indirect(t reflect.Type) (rt reflect.Type, count int) {
@ -367,8 +373,6 @@ func (w *wireType) name() string {
return w.s.name return w.s.name
} }
type decEngine struct // defined in decode.go
type encEngine struct // defined in encode.go
type typeInfo struct { type typeInfo struct {
id typeId; id typeId;
encoder *encEngine; encoder *encEngine;
@ -407,19 +411,3 @@ func getTypeInfoNoError(rt reflect.Type) *typeInfo {
} }
return t return t
} }
func init() {
// Create and check predefined types
tBool = bootstrapType("bool", false, 1);
tInt = bootstrapType("int", int(0), 2);
tUint = bootstrapType("uint", uint(0), 3);
tFloat = bootstrapType("float", float64(0), 4);
// The string for tBytes is "bytes" not "[]byte" to signify its specialness.
tBytes = bootstrapType("bytes", make([]byte, 0), 5);
tString= bootstrapType("string", "", 6);
tWireType = getTypeInfoNoError(reflect.Typeof(wireType{})).id;
checkId(7, tWireType);
checkId(8, getTypeInfoNoError(reflect.Typeof(structType{})).id);
checkId(9, getTypeInfoNoError(reflect.Typeof(commonType{})).id);
checkId(10, getTypeInfoNoError(reflect.Typeof(fieldType{})).id);
}

View File

@ -5,7 +5,6 @@
package gob package gob
import ( import (
"gob";
"os"; "os";
"reflect"; "reflect";
"testing"; "testing";