LLGoPackage: PkgPyModule
This commit is contained in:
@@ -123,6 +123,7 @@ type instrOrValue interface {
|
||||
const (
|
||||
PkgNormal = iota
|
||||
PkgLLGo
|
||||
PkgPyModule // py.<module>
|
||||
PkgNoInit // noinit: a package that don't need to be initialized
|
||||
PkgDeclOnly // decl: a package that only have declarations
|
||||
PkgLinkIR // link llvm ir (.ll)
|
||||
|
||||
@@ -101,6 +101,8 @@ func pkgKind(v string) (int, string) {
|
||||
// return PkgLinkBitCode
|
||||
if strings.HasPrefix(v, "link:") { // "link: <libpath>"
|
||||
return PkgLinkExtern, v[5:]
|
||||
} else if strings.HasPrefix(v, "py.") { // "py.<module>"
|
||||
return PkgPyModule, v[3:]
|
||||
}
|
||||
}
|
||||
return PkgLLGo, ""
|
||||
|
||||
@@ -172,7 +172,7 @@ func buildAllPkgs(prog llssa.Program, initial []*packages.Package, mode Mode, ve
|
||||
// skip packages that only contain declarations
|
||||
// and set no export file
|
||||
pkg.ExportFile = ""
|
||||
case cl.PkgLinkIR:
|
||||
case cl.PkgLinkIR, cl.PkgPyModule:
|
||||
// skip packages that don't need to be compiled but need to be linked
|
||||
pkgPath := pkg.PkgPath
|
||||
if isPkgInLLGo(pkgPath) {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// llgo:import py.math
|
||||
package math
|
||||
|
||||
import (
|
||||
@@ -23,5 +22,9 @@ import (
|
||||
"github.com/goplus/llgo/py"
|
||||
)
|
||||
|
||||
const (
|
||||
LLGoPackage = "py.math"
|
||||
)
|
||||
|
||||
//go:linkname Sqrt py.sqrt
|
||||
func Sqrt(x *py.Object) *py.Object
|
||||
|
||||
Reference in New Issue
Block a user