Requiring Java 1.7 for Mahout
As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
RE: Requiring Java 1.7 for Mahout
you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
RE: Requiring Java 1.7 for Mahout
oracle? Date: Wed, 6 Aug 2014 13:54:43 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
RE: Requiring Java 1.7 for Mahout
also sorry- btw- I assuming 1500 will be merged.. From: ap@outlook.com To: dev@mahout.apache.org Subject: RE: Requiring Java 1.7 for Mahout Date: Wed, 6 Aug 2014 16:56:39 -0400 oracle? Date: Wed, 6 Aug 2014 13:54:43 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
My own feeling is that 1.6 is finally dying out and officially moving to 1.7 allows some nice capabilities which assist in writing reliable code. Of the major changes, here are my reactions after about a year of using 1.7 seriously: IO and New IO - The nio package is significantly better and more coherent in 7. The differences creep up on you if you are not looking for them, but add up over time. It is hard to point at any single important change, however. Networking - The networking integrates IPV6 better. This probably has no impact on Mahout. Concurrency Utilities - concurrency has some much better capabilities in Java 7. Fork/Join and work-stealing both make significant differences in capabilities for threaded applications. Obviously, we don't benefit from these capabilities in existing code, but it would be nice to be free to use them in new code. Java XML - JAXP, JAXB, and JAX-WS - I don't know how much this matters given that Jackson works so very well. Strings in switch Statements - This really helps some codes The try-with-resources Statement - this is the biggest deal for me. Handling exceptions and closeable resources correctly is incredibly difficult without this (see the guava rationale for removing closeQuietly) Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking - this makes a lot of code much simpler. Exception handling code is verbose and difficult to get right with many branches doing nearly the same thing. Underscores in Numeric Literals - cute. Helps readability. Type Inference for Generic Instance Creation - For me this is a small issue since IntelliJ does the type inference for me and hides type parameters that I don't want to know about. Java Virtual Machine (JVM) - The Java7 JVM seems to me to be a bit more performant in a number of areas. These differences aren't night and day Java Virtual Machine Support for Non-Java Languages - This impacts the ability to integrate non-Java languages such as Jython and Javascript with programs. Little direct impact on Mahout given our recent focus on Scala and given the fact that Scala is reportedly jumping directly from Java6 to Java8 byte codes as of 2.12. Garbage-First Collector - the G1 collector is heaps better (pun intended) than previous collectors. I have had several programs that have long-lived data structures work much better with G1. Server configuration is vastly simpler. Java HotSpot Virtual Machine Performance Enhancements - these speak for themselves. On Wed, Aug 6, 2014 at 2:33 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
I am not sure if it actually would require 1.7 to build either, since my understanding dependencies are second-order and deeper, not immediate. Did you try to compile it yet? On Wed, Aug 6, 2014 at 2:01 PM, Andrew Palumbo ap@outlook.com wrote: also sorry- btw- I assuming 1500 will be merged.. From: ap@outlook.com To: dev@mahout.apache.org Subject: RE: Requiring Java 1.7 for Mahout Date: Wed, 6 Aug 2014 16:56:39 -0400 oracle? Date: Wed, 6 Aug 2014 13:54:43 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
RE: Requiring Java 1.7 for Mahout
It does not require 1.7 to build. I've been running 1.6 as well. I did compile m-1500. It builds fine with 1.6, but tests fail (only the h2o module- as you said due to the h2o artifact being built w 1.7). My thinking is that we don't want new Mahout users building with 1.6, having tests fail and walking away. Can we release with failing tests (even if its 1.6 specific)? As well if there were other issues with 1.6 holding us back, 1.6 is getting old and there's no real drawbacks, maybe we should consider 1.7 as an official version. Or as I said just make a quick fix on the building from source page. Date: Wed, 6 Aug 2014 14:21:36 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org I am not sure if it actually would require 1.7 to build either, since my understanding dependencies are second-order and deeper, not immediate. Did you try to compile it yet? On Wed, Aug 6, 2014 at 2:01 PM, Andrew Palumbo ap@outlook.com wrote: also sorry- btw- I assuming 1500 will be merged.. From: ap@outlook.com To: dev@mahout.apache.org Subject: RE: Requiring Java 1.7 for Mahout Date: Wed, 6 Aug 2014 16:56:39 -0400 oracle? Date: Wed, 6 Aug 2014 13:54:43 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7 as the official minimum Java version for building and running Mahout. Are there any objections to this or problems that I am missing? Andy
Re: Requiring Java 1.7 for Mahout
sorry if this is not adding to the discussion. Based on what you are saying, my feeling is that all that is false dilemma. (Assuming h20bindings also compile with 1.6 and we will find a way to iron out 1.6 test issue easily enough. If not, bummer then.) Requiring != supporting. Current master supports both things in terms of build/runtime compatibility. Requiring 1.7 means supporting only one thing. From where i come from, having two things is usually better than having one. Unless one of two things is given away in favor of something substantially better. The only such thing presumably worth the sacrifice would be new code contributions to Mahout that absolutely require 1.7 for semantic reasons. (since runtime 1.7 and i suspect even 1.8 are already supported). Some new dependencies that come only in 1.7 artifacts might be another one. As it stands, Mahout's master branch currently has exactly 0 semantically 1.7 or 1.8 java in its code base. Until such contribution appears, the issue seems moot (not sure about 1500, never tried to compile it, this might be a valid reason to move up.) And it is not terribly likely to appear because Mahout is leaning towards scala contributions now. So new substantial java contributions are not terribly likely. Also, in the community where i twit there's general sense that there's nothing in 1.7 or 1.8 that upends Scala in any meaningful way, so the tools around will likely see just more scala based stuff (scalding, spark, Mahout algebra, MLOptimizer, Breeze to name just a few examples of the newer an more popular scala stuff ). On java side, on the other hand, there's been practically no new projects introduced of similar scale in past couple years. On Wed, Aug 6, 2014 at 2:39 PM, Andrew Palumbo ap@outlook.com wrote: It does not require 1.7 to build. I've been running 1.6 as well. I did compile m-1500. It builds fine with 1.6, but tests fail (only the h2o module- as you said due to the h2o artifact being built w 1.7). My thinking is that we don't want new Mahout users building with 1.6, having tests fail and walking away. Can we release with failing tests (even if its 1.6 specific)? As well if there were other issues with 1.6 holding us back, 1.6 is getting old and there's no real drawbacks, maybe we should consider 1.7 as an official version. Or as I said just make a quick fix on the building from source page. Date: Wed, 6 Aug 2014 14:21:36 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org I am not sure if it actually would require 1.7 to build either, since my understanding dependencies are second-order and deeper, not immediate. Did you try to compile it yet? On Wed, Aug 6, 2014 at 2:01 PM, Andrew Palumbo ap@outlook.com wrote: also sorry- btw- I assuming 1500 will be merged.. From: ap@outlook.com To: dev@mahout.apache.org Subject: RE: Requiring Java 1.7 for Mahout Date: Wed, 6 Aug 2014 16:56:39 -0400 oracle? Date: Wed, 6 Aug 2014 13:54:43 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org or testing. On Wed, Aug 6, 2014 at 1:54 PM, Dmitriy Lyubimov dlie...@gmail.com wrote: My current java is 1.6.0_38, i have no problem building. On Wed, Aug 6, 2014 at 1:52 PM, Andrew Palumbo ap@outlook.com wrote: you're right- my big concern is that on our (probably outdated) building from source page we have 1.6 listed: http://mahout.apache.org/developers/buildingmahout.html The obvious simple fix here is to make the quick change on the webpage to 1.7 in order to build and test successfully. I do remember something about being limited to our current lucene version though by 1.6 so i am wondering if this is may be a good time to push or require 1.7. Just checking our bases, so I'll drop it if there's no problem here. Thanks Date: Wed, 6 Aug 2014 13:33:19 -0700 Subject: Re: Requiring Java 1.7 for Mahout From: dlie...@gmail.com To: dev@mahout.apache.org the only problem is that we are not really requiring it. We are not using anything of 1.7 functionality. If people compile (as i do) Mahout, they can compile any bytecode version they want. There are some 1.7 artifact dependencies in H20 but 1.7 would be required at run time only and only if the people are actually using h2obindings as dependency (which i expect majority would not care for). On Wed, Aug 6, 2014 at 1:28 PM, Andrew Palumbo ap@outlook.com wrote: As far as I can tell there should be no problems with declaring Java 1.7
Re: Requiring Java 1.7 for Mahout
On Wed, Aug 6, 2014 at 3:48 PM, Suneel Marthi suneel.mar...@gmail.com wrote: It should work fine with Java 1.7. Mahout's presently at Lucene 4.6.x and Lucene versions = 4.7 mandate JDK 1.7. For what it's worth, the current version of Lucene is 4.9.