Documentation
¶
Index ¶
- func GlobalPkgSet() map[string]struct{}
- func GlobalSymPtr() map[string]uintptr
- func GoGet(goCmd, packagePath, workDir string, verbose bool) error
- func GoListStd(goCmd string) map[string]struct{}
- func GoModDownload(goCmd, workDir string, verbose bool, args ...string) error
- func PatchGC(goBinary string, debugLog bool) error
- func RegisterCGoSymbol(symNameC string, symNameGo string) bool
- func RegisterSymbols() error
- func RegisterTypes(types ...interface{})
- type BuildConfig
- type LoadableUnit
- func BuildGoFiles(config BuildConfig, pathToGoFile string, extraFiles ...string) (*LoadableUnit, error)
- func BuildGoPackage(config BuildConfig, pathToGoPackage string) (*LoadableUnit, error)
- func BuildGoPackageRemote(config BuildConfig, goPackage string, version string) (*LoadableUnit, error)
- func BuildGoText(config BuildConfig, goText string) (*LoadableUnit, error)
- type Module
- type ModuleError
- type Package
- type PackageError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GlobalPkgSet ¶
func GlobalPkgSet() map[string]struct{}
func GlobalSymPtr ¶
func PatchGC ¶
PatchGC checks whether the go compiler at a given GOROOT requires patching to emit export types and if so, applies a patch and rebuilds it and tests again
func RegisterCGoSymbol ¶
func RegisterSymbols ¶
func RegisterSymbols() error
func RegisterTypes ¶
func RegisterTypes(types ...interface{})
Types ¶
type BuildConfig ¶
type BuildConfig struct {
GoBinary string // Path to go binary, defaults to "go"
KeepTempFiles bool
ExtraBuildFlags []string
BuildEnv []string
TmpDir string
DebugLog bool
SymbolNameOrder []string // Control the layout of symbols in the linker's linear memory - useful for reproducing bugs
RandomSymbolNameOrder bool // Randomise the order of linker symbols (may identify linker bugs)
RelocationDebugWriter io.Writer
DumpTextBeforeAfterRelocation bool
SkipTypeDeduplicationForPackages []string
UnsafeBlindlyUseFirstmoduleTypes bool
Dynlink bool
}
type LoadableUnit ¶
type LoadableUnit struct {
Linker *goloader.Linker
ImportPath string
Module *goloader.CodeModule
Package *Package
}
func BuildGoFiles ¶
func BuildGoFiles(config BuildConfig, pathToGoFile string, extraFiles ...string) (*LoadableUnit, error)
func BuildGoPackage ¶
func BuildGoPackage(config BuildConfig, pathToGoPackage string) (*LoadableUnit, error)
func BuildGoPackageRemote ¶
func BuildGoPackageRemote(config BuildConfig, goPackage string, version string) (*LoadableUnit, error)
func BuildGoText ¶
func BuildGoText(config BuildConfig, goText string) (*LoadableUnit, error)
func (*LoadableUnit) Load ¶
func (l *LoadableUnit) Load() (module *goloader.CodeModule, err error)
type Module ¶
type Module struct {
Path string // module path
Query string // version query corresponding to this version
Version string // module version
Versions []string // available module versions
Replace *Module // replaced by this module
Time *time.Time // time version was created
Update *Module // available update (with -u)
Main bool // is this the main module?
Indirect bool // module is only indirectly needed by main module
Dir string // directory holding local copy of files, if any
GoMod string // path to go.mod file describing module, if any
GoVersion string // go version used in module
Retracted []string // retraction information, if any (with -retracted or -u)
Deprecated string // deprecation message, if any (with -u)
Error *ModuleError // error loading module
Origin interface{} // provenance of module
Reuse bool // reuse of old module info is safe
}
type ModuleError ¶
type ModuleError struct {
Err string // the error itself
}
type Package ¶
type Package struct {
Dir string // directory containing package sources
ImportPath string // import path of package in dir
ImportComment string // path in import comment on package statement
Name string // package name
Doc string // package documentation string
Target string // install path
Shlib string // the shared library that contains this package (only set when -linkshared)
Goroot bool // is this package in the Go root?
Standard bool // is this package part of the standard Go library?
Stale bool // would 'go install' do anything for this package?
StaleReason string // explanation for Stale==true
Root string // Go root or Go path dir containing this package
ConflictDir string // this directory shadows Dir in $GOPATH
BinaryOnly bool // binary-only package (no longer supported)
ForTest string // package is only for use in named test
Export string // file containing export data (when using -export)
BuildID string // build ID of the compiled package (when using -export)
Module *Module // info about package's containing module, if any (can be nil)
Match []string // command-line patterns matching this package
DepOnly bool // package is only a dependency, not explicitly listed
// Source files
GoFiles []string // .go source files (excluding CgoFiles, TestGoFiles, XTestGoFiles)
CgoFiles []string // .go source files that import "C"
CompiledGoFiles []string // .go files presented to compiler (when using -compiled)
IgnoredGoFiles []string // .go source files ignored due to build constraints
IgnoredOtherFiles []string // non-.go source files ignored due to build constraints
CFiles []string // .c source files
CXXFiles []string // .cc, .cxx and .cpp source files
MFiles []string // .m source files
HFiles []string // .h, .hh, .hpp and .hxx source files
FFiles []string // .f, .F, .for and .f90 Fortran source files
SFiles []string // .s source files
SwigFiles []string // .swig files
SwigCXXFiles []string // .swigcxx files
SysoFiles []string // .syso object files to add to archive
TestGoFiles []string // _test.go files in package
XTestGoFiles []string // _test.go files outside package
// Embedded files
EmbedPatterns []string // //go:embed patterns
EmbedFiles []string // files matched by EmbedPatterns
TestEmbedPatterns []string // //go:embed patterns in TestGoFiles
TestEmbedFiles []string // files matched by TestEmbedPatterns
XTestEmbedPatterns []string // //go:embed patterns in XTestGoFiles
XTestEmbedFiles []string // files matched by XTestEmbedPatterns
// Cgo directives
CgoCFLAGS []string // cgo: flags for C compiler
CgoCPPFLAGS []string // cgo: flags for C preprocessor
CgoCXXFLAGS []string // cgo: flags for C++ compiler
CgoFFLAGS []string // cgo: flags for Fortran compiler
CgoLDFLAGS []string // cgo: flags for linker
CgoPkgConfig []string // cgo: pkg-config names
// Dependency information
Imports []string // import paths used by this package
ImportMap map[string]string // map from source import to ImportPath (identity entries omitted)
Deps []string // all (recursively) imported dependencies
TestImports []string // imports from TestGoFiles
XTestImports []string // imports from XTestGoFiles
// Error information
Incomplete bool // this package or a dependency has an error
Error *PackageError // error loading package
DepsErrors []*PackageError // errors loading dependencies
}
type PackageError ¶
Click to show internal directories.
Click to hide internal directories.