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]
>
>

Reply via email to