I wonder if there is a way to have slack auto-post to an email list?

On Fri, Oct 18, 2019 at 5:13 AM Evans Ye <evan...@apache.org> wrote:

> I don't have the expertise on jdk 11 but would love know more about
> datasketches and specifically the java lib. Would be great if you can bring
> back the result of what you have discussed in the slack dev channel. This
> helps other contributors easily to search and get to know what happened in
> the community and get involved :)
>
> Best
> Evans
>
> leerho <lee...@gmail.com> 於 2019年10月18日 週五 11:03 寫道:
>
> > Christopher,
> >
> > This would be fabulous.  I have tons of questions, whenever you are
> ready.
> > I might be easier to interact via the ASF slack channel "datasketches" or
> > "datasketches-dev".
> >
> > Lee.
> >
> > On Thu, Oct 17, 2019 at 5:07 PM Jon Malkin <jon.mal...@gmail.com> wrote:
> >
> > > The memory repository is the one that needs the most conversion help.
> > > Everything using Unsafe in datasketches-java runs through the memory
> > > package.
> > >
> > > I'm not sure off-hand if the characterization repo has low level tests
> of
> > > Memory (on my phone at the moment), but we'd be looking to minimize the
> > > speed impact in the process since it very directly impacts sketch
> speed.
> > >
> > >   jon
> > >
> > >
> > >
> > > On Thu, Oct 17, 2019, 4:43 PM Christopher <ctubb...@apache.org> wrote:
> > >
> > > > I've converted several other projects to using JDK 11, and can help
> > > > with this if there's still a need for help. I've actually been
> looking
> > > > at ways I can contribute to DataSketches since ApacheCon, and this
> > > > seems to be something I can probably do.
> > > >
> > > > On Wed, Oct 16, 2019 at 9:47 PM leerho <lee...@gmail.com> wrote:
> > > > >
> > > > > Gian,
> > > > >
> > > > > If I were to supply you with a link to a snapshot or a Release
> > > Candidate
> > > > > version of the datasketches jar (and Memory jar) could you test in
> > your
> > > > > environment under JDK 11 and see if it works?
> > > > >
> > > > > Lee
> > > > >
> > > > >
> > > > > On Mon, Oct 14, 2019 at 9:19 PM leerho <lee...@gmail.com> wrote:
> > > > >
> > > > > > Holy Cow!  I have never seen such a complex travis config!
> > > > > >
> > > > > > On Mon, Oct 14, 2019 at 6:54 PM Gian Merlino <g...@apache.org>
> > > wrote:
> > > > > >
> > > > > >> I should have linked Druid's Travis config file for reference.
> > Here
> > > > it is:
> > > > > >>
> https://github.com/apache/incubator-druid/blob/master/.travis.yml
> > > > > >>
> > > > > >> On Mon, Oct 14, 2019 at 6:53 PM Gian Merlino <g...@apache.org>
> > > wrote:
> > > > > >>
> > > > > >> > > So what exactly is the requirement?  Our DataSketches code
> > does
> > > > > >> compile
> > > > > >> > > under JDK8 and we have lots of customers and users using JDK
> > 8.
> > > > > >> >
> > > > > >> > It depends on who you ask, I guess :)
> > > > > >> >
> > > > > >> > From Druid's perspective, we aren't going to be compiling your
> > > code,
> > > > > >> only
> > > > > >> > running it. So the only requirement we would ask for is that
> the
> > > > code
> > > > > >> > _runs_ under a Java 11 runtime. Being able to compile under
> Java
> > > 11
> > > > is
> > > > > >> good
> > > > > >> > for future-proofing your code, though. It is starting to
> become
> > > more
> > > > > >> > prevalent.
> > > > > >> >
> > > > > >> > > It sounds like (as far as Unsafe is concerned) converting
> all
> > > the
> > > > > >> direct
> > > > > >> > > unsafe.blah() calls to static MethodHandle.invoke calls is
> > what
> > > is
> > > > > >> > required.
> > > > > >> > >
> > > > > >> > > Is this correct?
> > > > > >> >
> > > > > >> > That is certainly part of it, I'm not 100% sure if that's all
> > > that's
> > > > > >> > needed. Btw, CI can help verify. In Druid's Travis config, we
> > run
> > > > our
> > > > > >> tests
> > > > > >> > on both JDK 8 and JDK 11. In order to make this automated
> > testing
> > > > > >> easier,
> > > > > >> > we chose to do the work needed to compile Druid on JDK 11,
> even
> > > > though
> > > > > >> we
> > > > > >> > still compile release builds using JDK 8 only. (If we hadn't
> > done
> > > > this
> > > > > >> > work, then we'd have to compile on 8 and test on 11, which
> > Travis
> > > > > >> doesn't
> > > > > >> > easily support.)
> > > > > >> >
> > > > > >> > On Mon, Oct 14, 2019 at 5:51 PM leerho <lee...@gmail.com>
> > wrote:
> > > > > >> >
> > > > > >> >> Thanks, Gian, this is VERY helpful!
> > > > > >> >>
> > > > > >> >> From my cursory glance, it appears that UnsafeUtil acquires
> > > Unsafe
> > > > and
> > > > > >> >> Unsafe-class the usual way using reflection (I didn't think
> > this
> > > > would
> > > > > >> >> work
> > > > > >> >> with 9+ ), and then defines some method-handles that the
> other
> > > > classes
> > > > > >> >> use.
> > > > > >> >>
> > > > > >> >> Will this approach allow code to compile under JDK11 and
> JDK8?
> > > > > >> >>
> > > > > >> >> It also seems that compiling with JDK11 is still a work in
> > > > progress as
> > > > > >> the
> > > > > >> >> pom.xml clearly specifies JDK8.
> > > > > >> >>
> > > > > >> >> So what exactly is the requirement?  Our DataSketches code
> does
> > > > compile
> > > > > >> >> under JDK8 and we have lots of customers and users using JDK
> 8.
> > > > > >> >>
> > > > > >> >> It sounds like (as far as Unsafe is concerned) converting all
> > the
> > > > > >> direct
> > > > > >> >> unsafe.blah() calls to static MethodHandle.invoke calls is
> what
> > > is
> > > > > >> >> required.
> > > > > >> >>
> > > > > >> >> Is this correct?
> > > > > >> >>
> > > > > >> >> Lee.
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >>
> > > > > >> >> On Mon, Oct 14, 2019 at 2:07 PM Gian Merlino <
> g...@apache.org>
> > > > wrote:
> > > > > >> >>
> > > > > >> >> > And nobody should be using the Oracle JDK without a
> > commercial
> > > > > >> >> relationship
> > > > > >> >> > with Oracle, its license is a nightmare.
> > > > > >> >> >
> > > > > >> >> > On Mon, Oct 14, 2019 at 2:04 PM Gian Merlino <
> > g...@apache.org>
> > > > > >> wrote:
> > > > > >> >> >
> > > > > >> >> > > Oracle and OpenJDK builds behave the same as each other
> > now.
> > > > The
> > > > > >> >> > > differences are in terms of licensing, length of support,
> > and
> > > > > >> release
> > > > > >> >> > > cadence. IMO most Java devs should be using one of the
> > > > third-party
> > > > > >> >> > OpenJDK
> > > > > >> >> > > distributions (e.g. Corretto, Zulu, AdoptOpenJDK) rather
> > than
> > > > > >> vanilla
> > > > > >> >> > > OpenJDK these days, because of the new OpenJDK policy
> that
> > > > public
> > > > > >> >> updates
> > > > > >> >> > > will cease for major versions after 6 months.
> > > > > >> >> > >
> > > > > >> >> > > On Mon, Oct 14, 2019 at 11:07 AM leerho <
> lee...@gmail.com>
> > > > wrote:
> > > > > >> >> > >
> > > > > >> >> > >> Thanks, Gian,
> > > > > >> >> > >>
> > > > > >> >> > >> Your references are helpful and I am studying them.
> > > > > >> >> > >>
> > > > > >> >> > >> I didn't see any references to OpenJDK vs Oracle's JDKs.
> > > > > >> >> > >>
> > > > > >> >> > >> Are there any differences in the way Unsafe calls (or
> > other
> > > > hidden
> > > > > >> >> > >> classes)
> > > > > >> >> > >> are handled by OpenJDK?  Or is this a "don't care" as
> far
> > as
> > > > > >> Druid is
> > > > > >> >> > >> concerned?  Are the version numbers between Oracle and
> > > OpenJDK
> > > > > >> always
> > > > > >> >> > >> aligned?
> > > > > >> >> > >>
> > > > > >> >> > >>
> > > > > >> >> > >> Lee.
> > > > > >> >> > >>
> > > > > >> >> > >>
> > > > > >> >> > >>
> > > > > >> >> > >> On Fri, Oct 11, 2019 at 5:45 PM Gian Merlino <
> > > g...@apache.org
> > > > >
> > > > > >> >> wrote:
> > > > > >> >> > >>
> > > > > >> >> > >> > You didn't address this message to me, but in Druid
> most
> > > of
> > > > the
> > > > > >> >> work
> > > > > >> >> > for
> > > > > >> >> > >> > Java 9+ compatibility is mentioned in this master
> issue,
> > > > which
> > > > > >> you
> > > > > >> >> > might
> > > > > >> >> > >> > find helpful:
> > > > > >> >> https://github.com/apache/incubator-druid/issues/5589.
> > > > > >> >> > >> > Skimming the list, these might be particularly
> relevant
> > to
> > > > > >> >> > DataSketches:
> > > > > >> >> > >> >
> > > > > >> >> > >> > - https://github.com/apache/incubator-druid/pull/7487
> > > > (cleaner
> > > > > >> >> > >> operations)
> > > > > >> >> > >> > - https://github.com/apache/incubator-druid/pull/7466
> > > > > >> (ByteBuffer
> > > > > >> >> > unmap
> > > > > >> >> > >> > operation)
> > > > > >> >> > >> > - https://github.com/apache/incubator-druid/pull/7576
> > > > (Remove
> > > > > >> >> direct
> > > > > >> >> > >> > references to Unsafe)
> > > > > >> >> > >> >
> > > > > >> >> > >> > Btw, it would be better, I think, to address emails to
> > the
> > > > list
> > > > > >> at
> > > > > >> >> > >> large.
> > > > > >> >> > >> > It encourages more people to participate. If Roman is
> a
> > > > > >> subscriber
> > > > > >> >> he
> > > > > >> >> > >> would
> > > > > >> >> > >> > get a copy anyway. If not, you could encourage him to
> > > > subscribe.
> > > > > >> >> > >> >
> > > > > >> >> > >> > On Fri, Oct 11, 2019 at 3:13 PM leerho <
> > lee...@gmail.com>
> > > > > >> wrote:
> > > > > >> >> > >> >
> > > > > >> >> > >> > > Roman,
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > I hope you are doing well.
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > I really appreciate the contributions you made to
> our
> > > > Memory
> > > > > >> >> > >> component!
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > Given that Druid has made its code base compatible
> > with
> > > > > >> OpenJDK
> > > > > >> >> 11,
> > > > > >> >> > we
> > > > > >> >> > >> > > could use your help in what changes do we need to
> make
> > > to
> > > > make
> > > > > >> >> that
> > > > > >> >> > >> > happen
> > > > > >> >> > >> > > for DataSketches.  As I recall, our DataSketches
> > library
> > > > was
> > > > > >> not
> > > > > >> >> the
> > > > > >> >> > >> only
> > > > > >> >> > >> > > Druid dependency that took advantage of Unsafe.  So
> I
> > > > assume
> > > > > >> you
> > > > > >> >> > have
> > > > > >> >> > >> > been
> > > > > >> >> > >> > > down this path :)
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > Currently, I have a check in the static initializer
> in
> > > > > >> >> > >> Memory/UnsafeUtil:
> > > > > >> >> > >> > > parseJavaVersion(...) that checks the string
> returned
> > > from
> > > > > >> >> > >> > > System.getProperty("java.version").  If that string
> > does
> > > > not
> > > > > >> >> contain
> > > > > >> >> > >> > "1.8"
> > > > > >> >> > >> > > or "8" it will throw an error.  Given that we have
> not
> > > > tested
> > > > > >> >> with
> > > > > >> >> > >> JDK 9,
> > > > > >> >> > >> > > 10, 11 or 12, I felt it was safer to explicitly
> throw
> > > > rather
> > > > > >> than
> > > > > >> >> > >> having
> > > > > >> >> > >> > > the users experience some weird failure later that
> may
> > > be
> > > > > >> >> difficult
> > > > > >> >> > to
> > > > > >> >> > >> > > debug.
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > With only one minor exception (which we could easily
> > > fix)
> > > > the
> > > > > >> >> Memory
> > > > > >> >> > >> > > component is the only place where Unsafe is used.
> > > > However,
> > > > > >> we do
> > > > > >> >> > use
> > > > > >> >> > >> > > reflection to gain internal access to a number of
> > other
> > > > > >> classes
> > > > > >> >> > >> including
> > > > > >> >> > >> > > ByteBuffer, Cleaner, and Bits.
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > Looking forward to hearing from you.
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > Cheers,
> > > > > >> >> > >> > >
> > > > > >> >> > >> > > Lee.
> > > > > >> >> > >> > >
> > > > > >> >> > >> >
> > > > > >> >> > >>
> > > > > >> >> > >
> > > > > >> >> >
> > > > > >> >>
> > > > > >> >
> > > > > >>
> > > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscr...@datasketches.apache.org
> > > > For additional commands, e-mail: dev-h...@datasketches.apache.org
> > > >
> > > >
> > >
> >
>
-- 
>From my cell phone.

Reply via email to