I thought that is what I did. Isn't the DATASKETCHES-3 ticket I opened the same thing?
On Fri, Oct 18, 2019 at 5:42 PM Dave Fisher <[email protected]> wrote: > Hi Lee, > > DATASKETCHES Jira issues are for the project. > > If we want Infrastructure to do something of service to the community then > you need to open an INFRA ticket. Got it? > > Regards? > Dave > > Sent from my iPhone > > > On 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] > >
