On Fri, Feb 26, 2021 at 5:49 PM Ian Lance Taylor <i...@golang.org> wrote:
> On Fri, Feb 26, 2021 at 7:20 AM Than McIntosh <th...@google.com> wrote: > > > > > > 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. > > OK, but the reflect package generally does not allocate, so what is > the advantage of reflect2? Are there benchmarks showing where > reflect2 is significantly faster? > > (I'll note that while this may not be a good idea for the overall > ecosystem, I expect that it is possible to port reflect2 to support > gccgo/GoLLVM.) > > Ian > > > > 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/CANFCsz92c9OhnXzy%2BR0CdcVZ7yJVEFRcCmmE5FZLqeg%3D5LJO3A%40mail.gmail.com.