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