igop icon indicating copy to clipboard operation
igop copied to clipboard

The Go/Go+ Interpreter

Results 12 igop issues
Sort by recently updated
recently updated
newest added

implement ``` runtime.Caller runtime.FuncForPC runtime.Callers (*runtime.Frames).Next (*runtime.Func).FileLine runtime.Stack * runtime.Stack(buf,false) runtime/debug.Stack runtime/debug.PrintStack (reflect.Value).Pointer ```

$GOROOT/test/unsafebuiltins.go ``` // sliced memory overflows address space last := (*byte)(unsafe.Pointer(^uintptr(0))) _ = unsafe.Slice(last, 1) mustPanic(func() { _ = unsafe.Slice(last, 2) }) ```

bug

- qexp use golang.org/x/tools/go/loader is very slow - support qexp pkg/... - igop export pkg

enhancement

$GOROOT/test/chan/select5 bug: golang.org/x/tools/go/ssa build order fp, fc ``` package main var c = make(chan int, 1) var nilch chan int var n = 1 var x int var i interface{}...

https://github.com/goplus/igop/blob/main/cmd/igoptest/main.go `igop run -exp-gc demo.go` ``` func init() { if runtime.GOARCH == "386" { gorootTestSkips["printbig.go"] = "load failed" gorootTestSkips["peano.go"] = "stack overflow" } gorootTestSkips["closure.go"] = "runtime.ReadMemStats" gorootTestSkips["divmod.go"] = "slow, 1m18s"...

``` package main import ( "fmt" ) func main() { type P struct{ i int } var m = map[int]int{} var p *P defer func() { recover() check(1, len(m)) check(3,...

在多线程调用 .RunFunc 发生错误。 ``` fatal error: concurrent map read and map write goroutine 308 [running]: github.com/goplus/reflectx.(*provider).Insert(0x2763ab0, 0xc006918700) github.com/goplus/[email protected]/icall_regabi.go:41 +0x6f github.com/goplus/reflectx.(*Context).registerMethod(0xc006f44330, 0x1668640?) github.com/goplus/[email protected]/methodof.go:115 +0xb7 github.com/goplus/reflectx.(*Context).setMethodSet(0xc006f44330, {0x1d9be18, 0xc006918620}, {0xc0084cb180, 0x2, 0x2}) github.com/goplus/[email protected]/methodof.go:272...

Now: mContext := igop.NewContext(0) pkg, err := mContext.LoadDir("./go/item", false) if err != nil { panic(err) } mInterp, _ := mContext.NewInterp(pkg) r, err := mInterp.RunFunc("NewStructure", nil) if err != nil {...