Ah!  Thank you! I will file a request with INFRA.

Lee.

On Sat, Oct 19, 2019 at 9:23 AM Dave Fisher <[email protected]> wrote:

> Hi Lee,
>
> > On Oct 18, 2019, at 5:01 PM, leerho <[email protected]> wrote:
> >
> > Meanwhile, back to the topic of Migration to OpenJDK11 ...
> >
> > Unfortunately, the Apache email lists do not accommodate images or files.
>
> While true by default, Infra will enable images/files if the podling
> requests.
>
> Regards,
> Dave
>
> > So I am going to move this next discussion to our asf slack channel
> > "datasketches-dev".
> >
> > I have posted my study there. You can offer comments or suggestions
> > either here or there.
> >
> > Cheers,
> >
> > Lee.
> >
> > On Fri, Oct 18, 2019 at 3:53 PM leerho <[email protected]> wrote:
> >
> >> I opened a ticket (DATASKETCHES-3) with infra to see if we could add
> this
> >> capability to our slack channel.
> >>
> >> On Fri, Oct 18, 2019 at 12:29 PM Dave Fisher <[email protected]> wrote:
> >>
> >>> Hi -
> >>>
> >>> Apache Pulsar uses this:
> https://github.com/merlimat/slack-email-digest
> >>>
> >>> They don’t have their slack channels at the-asf.slack.com but it does
> >>> work. You can always ask for infra’s help.
> >>>
> >>> Regards,
> >>> Dave
> >>>
> >>>> On Oct 18, 2019, at 12:26 PM, leerho <[email protected]> wrote:
> >>>>
> >>>> 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 <[email protected]> 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 <[email protected]> 於 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 <[email protected]>
> >>> 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 <[email protected]>
> >>> 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 <[email protected]> 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 <[email protected]> wrote:
> >>>>>>>>>
> >>>>>>>>>> Holy Cow!  I have never seen such a complex travis config!
> >>>>>>>>>>
> >>>>>>>>>> On Mon, Oct 14, 2019 at 6:54 PM Gian Merlino <[email protected]>
> >>>>>>> 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 <[email protected]>
> >>>>>>> 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 <[email protected]>
> >>>>>> 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 <
> >>>>> [email protected]>
> >>>>>>>> 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 <
> >>>>>> [email protected]>
> >>>>>>>>>>> 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 <
> >>>>> [email protected]>
> >>>>>>>> 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 <
> >>>>>>> [email protected]
> >>>>>>>>>
> >>>>>>>>>>>>> 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 <
> >>>>>> [email protected]>
> >>>>>>>>>>> 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: [email protected]
> >>>>>>>> For additional commands, e-mail: [email protected]
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>> --
> >>>> From my cell phone.
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [email protected]
> >>> For additional commands, e-mail: [email protected]
> >>>
> >>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to