Slightly simplified version:
==> go.mod <==
module example.com
go 1.20
==> main.go <==
package main
import (
"plugin"
"regexp/syntax"
)
func main() {
if syntax.Perl != 212 {
panic("Unexpected flags")
}
p, err := plugin.Open("p1.so")
if err != nil {
panic(err)
}
s, err := p.Lookup("F")
if err != nil {
panic(err)
}
f := s.(func())
f()
}
==> p1/plugin.go <==
package main
import (
"regexp"
)
func F() {
_ = regexp.MustCompile(`\w+`)
}
func main() {}
FWIW, it also fails in the same way on macOS:
$ go build -buildmode=plugin ./p1 && go run main.go
panic: regexp: Compile(`\w+`): error parsing regexp: invalid escape
sequence: `\w`
goroutine 1 [running]:
regexp.MustCompile({0x107aa6eea, 0x3})
/usr/local/go/src/regexp/regexp.go:319 +0xb4
example.com/p1.F()
/Users/brian/tmp/go/62430/p1/plugin.go:8 +0x1f
main.main()
/Users/brian/tmp/go/62430/main.go:23 +0x103
exit status 2
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/e6767616-877e-4362-9c2f-21522646ccc9n%40googlegroups.com.