Requiring Java 1.7 for Mahout

2014-08-06 Thread Andrew Palumbo
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

2014-08-06 Thread Dmitriy Lyubimov
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

2014-08-06 Thread Andrew Palumbo
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

2014-08-06 Thread Dmitriy Lyubimov
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

2014-08-06 Thread Dmitriy Lyubimov
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

2014-08-06 Thread Andrew Palumbo
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

2014-08-06 Thread Andrew Palumbo
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

2014-08-06 Thread Ted Dunning
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

2014-08-06 Thread Dmitriy Lyubimov
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

2014-08-06 Thread Andrew Palumbo
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

2014-08-06 Thread Dmitriy Lyubimov
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

2014-08-06 Thread Ted Dunning
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.