My sense is that developers are using packages like reflect2 for
performance reasons, very often to try to improve JSON
marshalling/unmarshalling speed. These packages tend to bypass the Go type
system using "unsafe" in order to provide reflect-like operations without
the overhead (e.g. allocation) that would be incurred if they used the
regular reflect package in the standard library.

Because these packages are "reaching under the hood" via unsafe, they tend
to be written against a specific implementation (and in fact against a
specific version of a specific implementation).  So probably not surprising
that they do not play well with gccgo/gollvm.

Than


On Fri, Feb 26, 2021 at 10:00 AM Ian Lance Taylor <i...@golang.org> wrote:

> On Fri, Feb 26, 2021 at 6:11 AM Yan Titarenko
> <local.tourist.k...@gmail.com> wrote:
> >
> > CC'ing to committers.
> >
> > Ian,
> > please provide some advise.
>
> I'm sorry, I don't have anything useful to add beyond what I've already
> said.
>
> I don't know why people are using the reflect2 package.  The package
> does not support gccgo/GoLLVM.  The first step is to understand why
> people use reflect2, and whether we can improve the standard reflect
> package to address whatever problems led to the creation of reflect2.
>
> Ian
>
>
> > On Wed, Feb 24, 2021 at 2:00 PM Yan Titarenko <
> local.tourist.k...@gmail.com> wrote:
> >>
> >> Hi.
> >>
> >> Since there where no comments on
> https://github.com/json-iterator/go/issues/501 - I decided that an open
> discussion (not necessarily on behalf of this project - there could be
> other projects/use cases, which could a cause for contributions, into the
> reflection library).
> >>
> >> I tried to test with Golang 1.15.8. I tried an old version of
> llvm-goc/gollvm - but can re-check, using the latest version of gollvm.
> >> Also hence that one of the checks was done on x86_64 Windows 10.
> >>
> >> It is not clear what kind of patch (and in favor of which engineering
> targets) would be required, yet - so we are not at the point where we could
> excavate OS/arch dependent issues.
> >>
> >> I see a lot of errors like
> >>
> >> ./any.go:259:15: undefined: "github.com/goccy/go-reflect".TypeOfPtr
> >> ./reflect_array.go:36:15: undefined: "github.com/goccy/go-reflect
> ".UnsafeArrayType
> >> .
> >> I tried to do two things: I tried to revert back from reflect2 to
> libgo's reflect - and I tried to use goccy's go-reflect, instead of
> reflect2.
> >> It is interesting that both attempts brought similar errors - but they
> also brought some unique errors.
> >> But nothing that would bring specific practical wage, just case of that.
> >>
> >> Yan
> >>
> >> --
> >> 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 golang-nuts+unsubscr...@googlegroups.com.
> >> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/ab44891f-eca6-47cb-a4b1-c6292d6015a7n%40googlegroups.com
> .
>
> --
> 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 golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/CAKOQZ8zbyemhzCd_1cEAkrc5FAwcdDOyo%3DxSBNafcA_mTpdYnQ%40mail.gmail.com
> .
>

-- 
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 golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CA%2BUr55F65SC1pztoWvsW3GjvCWuGd7vYa-Q7WfKpS1mop1LWwA%40mail.gmail.com.

Reply via email to