go-lbfgsb icon indicating copy to clipboard operation
go-lbfgsb copied to clipboard

cgo argument has Go pointer to Go pointer with Go v1.6.1

Open idavydov opened this issue 8 years ago • 8 comments

It seems that the rules of passing pointer between C and Go changed golang/go#12416. Now example file generates a runtime error.

$ go run example.go 
----- Go L-BFGS-B Example Program -----

----- Sphere Function -----
expected: X: [0 0 0 0 0]
          F: 0
          G: [0 0 0 0 0]
 minimum: X: [-3.552713678800501e-15 4.440892098500626e-15 -2.6645352591003757e-15 8.881784197001252e-16 -1.7763568394002505e-15]
          F: 4.338734978715565e-29
          G: [-7.105427357601002e-15 8.881784197001252e-15 -5.329070518200751e-15 1.7763568394002505e-15 -3.552713678800501e-15]
  status: Exit status: SUCCESS; Message: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL;
   stats: iters: 2; F evals: 4; G evals: 4

----- Rosenbrock Function -----
panic: runtime error: cgo argument has Go pointer to Go pointer

goroutine 1 [running]:
panic(0x5054e0, 0xc82000a510)
    /usr/lib/go-1.6/src/runtime/panic.go:464 +0x3e6
github.com/afbarnard/go-lbfgsb._cgoCheckPointer0(0x4e10a0, 0xc82000a4d0, 0x0, 0x0, 0x0, 0x2)
    github.com/afbarnard/go-lbfgsb/_obj/_cgo_gotypes.go:46 +0x4d
github.com/afbarnard/go-lbfgsb.(*Lbfgsb).Minimize(0xc82008a000, 0x7f8654337358, 0xc82000a4a0, 0xc82000a490, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, ...)
    /home/idavydov/go/src/github.com/afbarnard/go-lbfgsb/lbfgsb.go:335 +0x89a
main.main()
    /home/idavydov/go/src/github.com/afbarnard/go-lbfgsb/example/example.go:103 +0x75c
exit status 2

idavydov avatar May 10 '16 11:05 idavydov