Re: svn commit: r1442739 - /commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/ClassLoaderBuilder.java

2013-02-07 Thread Simone Tripodi
> But I feel a bit confused now regarding which changes require a a ticket
> and which don't.

Any modification that have impacts to our users, such as APIs change -
in that case - a bug, a new feature, an improvement, ... worths an
issue.

Any trivial modification such as typos, missing javadoc, if-then-else
optimization, internal static imports, ... you can commit directly.

Alles Gute!
-Simo

http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: svn commit: r1443186 - /commons/sandbox/beanutils2/trunk/src/changes/changes.xml

2013-02-07 Thread Simone Tripodi
> +
> +  Implement setMapped on DefaultBeanAccessor
> +

you can drop the `due-to` field in that case - I used the `due-to`
field when you provided patches and I took the task to review and
apply, since you worked on that  `due-to` in no longer needed. It is
like saying "Fixed by Benedikt, thanks to Benedikt that reported it"
:)

best,
-Simo

http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: svn commit: r1443186 - /commons/sandbox/beanutils2/trunk/src/changes/changes.xml

2013-02-07 Thread Benedikt Ritter
Ciao Simo,


2013/2/7 Simone Tripodi 

> > + due-to="Benedikt Ritter">
> > +  Implement setMapped on DefaultBeanAccessor
> > +
>
> you can drop the `due-to` field in that case - I used the `due-to`
> field when you provided patches and I took the task to review and
> apply, since you worked on that  `due-to` in no longer needed. It is
> like saying "Fixed by Benedikt, thanks to Benedikt that reported it"
> :)
>

Makes sense :) I'll change that tonight.
thanks!


>
> best,
> -Simo
>
> http://people.apache.org/~simonetripodi/
> http://simonetripodi.livejournal.com/
> http://twitter.com/simonetripodi
> http://www.99soft.org/
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


Re: mvn -Prelease deploy fails?

2013-02-07 Thread sebb
On 7 February 2013 05:24, Mladen Turk  wrote:
> On 02/06/2013 09:38 PM, sebb wrote:
>>
>> On 6 February 2013 20:15, Mladen Turk  wrote:
>>>
>>> On 02/06/2013 07:26 PM, Mladen Turk wrote:
>>
>>
>> Perhaps you managed to lock out your account?
>>
>
> OK, I was able to upload using .zip file made manually from
> my local ~/.m2.
> So given all seems there are some serious infra problems with nexus.
>

Well, I had no problems uploading a SNAPSHOT yesterday. However that
did not include any windows builds so the files were much smaller and
fewer.

>
> Regards
> --
> ^TM
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: mvn -Prelease deploy fails?

2013-02-07 Thread Mladen Turk

On 02/07/2013 12:04 PM, sebb wrote:

On 7 February 2013 05:24, Mladen Turk  wrote:


OK, I was able to upload using .zip file made manually from
my local ~/.m2.
So given all seems there are some serious infra problems with nexus.



Well, I had no problems uploading a SNAPSHOT yesterday. However that
did not include any windows builds so the files were much smaller and
fewer.



Yeah, I presume the size and quantity matters. It starts OK, uploads
bunch of files and then stalls after which it times out and continues.

Nevertheless our build system should break in case this happens.
Having just [WARNING] and stack trace leaves the repo in limbo state.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [cli] release 1.3?

2013-02-07 Thread Mairtin Keane
Hi all,

Just wondering if there was going to be a 1.3 release, is there any view 
on when this is likely to be?

I'm keen to get the fix for 
https://issues.apache.org/jira/browse/FILEUPLOAD-145


Thanks,

Máirtín



From:   Gilles 
To: , 
Date:   06/02/2013 16:36
Subject:Re: [cli] release 1.3?



On Wed, 06 Feb 2013 17:32:06 +0100, Thomas Neidhart wrote:
> On 02/06/2013 05:28 PM, Gilles wrote:
>> On Wed, 06 Feb 2013 15:48:43 +0100, Thomas Neidhart wrote:
>>> Hi,
>>>
>>> well, I did not work much on cli, but lately I have cleanup up 
>>> together
>>> with sebb the trunk, and I think it is in a state that could be 
>>> released
>>> soon:
>>>
>>>  * there are no open major issues (most issues are related to cli2)
>>
>> Well, there is this one:
>>   https://issues.apache.org/jira/browse/CLI-219
>>
>> No idea why its "fix version" is set to "1.4".
>
> looks like a new feature request to me and not a bug report.

To me, it looks like it is old enough that a reason should be given as
to why the patch is not accepted.

Gilles

> I would prefer to release 1.3 and then work on promoting cli2 to 
> proper.
>
> Thomas
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org




Re: [Math] Moving on or not?

2013-02-07 Thread Gilles

On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:

On 2/6/13 9:03 AM, Gilles wrote:

On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:

On 2/5/13 6:08 AM, Gilles wrote:

Hi.

In the thread about "static import", Stephen noted that decisions
on a
component's evolution are dependent on whether the future of the
Java
language is taken into account, or not.
A question on the same theme also arose after the presentation of
Commons
Math in FOSDEM 2013.

If we assume that efficiency is among the important qualities for
Commons
Math, the future is to allow usage of the tools provided by the
standard
Java library in order to ease the development of multi-threaded
algorithms.

Maintaining Java 1.5 source compatibility for the reason that we
may need
to support legacy applications will turn out to be self-defeating:
1. New users will not consider Commons Math's features that are
notably
   apt to parallel processing.
2. Current users might at some point simply switch to another
library if
   it proves more efficient (because it actually uses
multi-threading).
3. New Java developers will be turned away because they will want
to use
   the more convenient features of the language in order to 
provide

   potential contributions.

If maintaining 1.5 source compatibility is kept as a
requirement, the
consequence is that Commons Math will _become_ a legacy library.
In that perspective, implementing/improving algorithms for which a
parallel version is known to be more efficient is plainly a
waste of
development and maintenance time.

In order to mitigate the risks (both of upgrading and of not
upgrading
the source compatibility requirement), I would propose to create a
new
project (say, "Commons Math MT") where we could implement new
features[1]
without being encumbered with the 1.5 requirement.[2]
The "Commons Math MT" would depend on "Commons Math" where we 
would

continue developing single-thread (and thread-safe) "tasks", i.e.
independent units of processing that could be used in algorithms
located in "Commons Math MT".

In summary:
- Commons Math (as usual):
  * single-thread (sequential) algorithms,
  * (pure) Java 5,
  * no dependencies.
- Commons Math MT:
  * multi-thread (parallel) algorithms,
  * Java 7 and beyond,
  * JNI allowed,
  * dependencies allowed (jCuda).

What do you think?


There are several other possibilities to consider:

0) Implement multithreading using JDK 1.5 primitives
1) Set things up within [math] to support parallel execution in JDK
1.7, Hadoop or other frameworks
2) Instead of a new project, start a 4.x branch targeting JDK 1.7

I think we should maintain a version that has no dependencies and 
no

JNI in any case.

Starting a branch and getting concrete about how to parallelize 
some

algorithms would be a good way to start.  One thing I have not
really investigated and would be interested in details on is what
you actually get in efficiency gain (or loss?) using fork / join vs
just using 1.5+ concurrency for the kinds of problems we would end
up using this stuff for.

Thinking about specific parallelization problem instances would 
also

help decide whether 1) makes sense (i.e., whether it makes sense as
you mention above to maintain a single-threaded library that
provides task execution for a multithreaded version or 
multithreaded

frameworks).

One more thing to consider is that for at least some users of
[math], having the library internally spawn threads and/or peg
multiple processors may not be desirable.  It is a little 
misleading

to say that multithreading is the way to get "efficiency."  It is
really the way to *use* more compute resources and unless there are
real algorithmic improvements, the overall efficiency may  actually
be less, due to task coordination overhead.  What you get is faster
execution due to more greedy utilization of available cores.  
Actual
efficiency (how much overall compute resource it takes to complete 
a

job) partly depends on how efficiently the coordination itself is
done (which JDK 1.7 claims to do very well - I have just not seen
substantiation or any benchmarks demonstrating this) and how the
parallelization effects overall compute requirements.  In any case,
for environments where library thread-spawning is not desirable, I
think we should maintain a single-threaded version.



Unless I missed the point, those reasons are exactly why I propose 
to
have 2 projects/components. One, "Commons-Math", does not fiddle 
with

resources, while the other would provide a "parallelizationLevel"
setting for the algorithms written to possibly take advantage of the
Java 5+ "task framework".


OK, what about the 4.x option?


Yes, we could still be good by using only Java 5's concurrency
features
but the issue I raise is not only about concurrency but about
evolution/progress/maintenance, all things that require raising
interest
from new contributors (unless it's fine that Commons Math be
tagged as a
"library of the past"...).


+1 for experiment

Re: [cli] release 1.3?

2013-02-07 Thread Simone Tripodi
Hi Thomas!

> looks like a new feature request to me and not a bug report.
>
> I would prefer to release 1.3 and then work on promoting cli2 to proper.

I read the commit history and I think the component has matured
enough, so it's time to cut an RC and let it be voted by the PMC.

Thanks and congrats for the hard work!
-Simo

http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [Math] Moving on or not?

2013-02-07 Thread Phil Steitz
On 2/7/13 4:58 AM, Gilles wrote:
> On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:
>> On 2/6/13 9:03 AM, Gilles wrote:
>>> On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:
 On 2/5/13 6:08 AM, Gilles wrote:
> Hi.
>
> In the thread about "static import", Stephen noted that decisions
> on a
> component's evolution are dependent on whether the future of the
> Java
> language is taken into account, or not.
> A question on the same theme also arose after the presentation of
> Commons
> Math in FOSDEM 2013.
>
> If we assume that efficiency is among the important qualities for
> Commons
> Math, the future is to allow usage of the tools provided by the
> standard
> Java library in order to ease the development of multi-threaded
> algorithms.
>
> Maintaining Java 1.5 source compatibility for the reason that we
> may need
> to support legacy applications will turn out to be
> self-defeating:
> 1. New users will not consider Commons Math's features that are
> notably
>apt to parallel processing.
> 2. Current users might at some point simply switch to another
> library if
>it proves more efficient (because it actually uses
> multi-threading).
> 3. New Java developers will be turned away because they will want
> to use
>the more convenient features of the language in order to
> provide
>potential contributions.
>
> If maintaining 1.5 source compatibility is kept as a
> requirement, the
> consequence is that Commons Math will _become_ a legacy library.
> In that perspective, implementing/improving algorithms for
> which a
> parallel version is known to be more efficient is plainly a
> waste of
> development and maintenance time.
>
> In order to mitigate the risks (both of upgrading and of not
> upgrading
> the source compatibility requirement), I would propose to
> create a
> new
> project (say, "Commons Math MT") where we could implement new
> features[1]
> without being encumbered with the 1.5 requirement.[2]
> The "Commons Math MT" would depend on "Commons Math" where we
> would
> continue developing single-thread (and thread-safe) "tasks", i.e.
> independent units of processing that could be used in algorithms
> located in "Commons Math MT".
>
> In summary:
> - Commons Math (as usual):
>   * single-thread (sequential) algorithms,
>   * (pure) Java 5,
>   * no dependencies.
> - Commons Math MT:
>   * multi-thread (parallel) algorithms,
>   * Java 7 and beyond,
>   * JNI allowed,
>   * dependencies allowed (jCuda).
>
> What do you think?

 There are several other possibilities to consider:

 0) Implement multithreading using JDK 1.5 primitives
 1) Set things up within [math] to support parallel execution in
 JDK
 1.7, Hadoop or other frameworks
 2) Instead of a new project, start a 4.x branch targeting JDK 1.7

 I think we should maintain a version that has no dependencies
 and no
 JNI in any case.

 Starting a branch and getting concrete about how to parallelize
 some
 algorithms would be a good way to start.  One thing I have not
 really investigated and would be interested in details on is what
 you actually get in efficiency gain (or loss?) using fork /
 join vs
 just using 1.5+ concurrency for the kinds of problems we would end
 up using this stuff for.

 Thinking about specific parallelization problem instances would
 also
 help decide whether 1) makes sense (i.e., whether it makes
 sense as
 you mention above to maintain a single-threaded library that
 provides task execution for a multithreaded version or
 multithreaded
 frameworks).

 One more thing to consider is that for at least some users of
 [math], having the library internally spawn threads and/or peg
 multiple processors may not be desirable.  It is a little
 misleading
 to say that multithreading is the way to get "efficiency."  It is
 really the way to *use* more compute resources and unless there
 are
 real algorithmic improvements, the overall efficiency may 
 actually
 be less, due to task coordination overhead.  What you get is
 faster
 execution due to more greedy utilization of available cores. 
 Actual
 efficiency (how much overall compute resource it takes to
 complete a
 job) partly depends on how efficiently the coordination itself is
 done (which JDK 1.7 claims to do very well - I have just not seen
 substantiation or any benchmarks demonstrating this) and how the
 parallelization effects overall compute requirements.  In any
 case,
 for environments where library thread-spawning is not desirable, I
 think we should maintain

Re: [Math] Moving on or not?

2013-02-07 Thread Gilles

On Thu, 07 Feb 2013 07:01:42 -0800, Phil Steitz wrote:

On 2/7/13 4:58 AM, Gilles wrote:

On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:

On 2/6/13 9:03 AM, Gilles wrote:

On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:

On 2/5/13 6:08 AM, Gilles wrote:

Hi.

In the thread about "static import", Stephen noted that 
decisions

on a
component's evolution are dependent on whether the future of the
Java
language is taken into account, or not.
A question on the same theme also arose after the presentation 
of

Commons
Math in FOSDEM 2013.

If we assume that efficiency is among the important qualities 
for

Commons
Math, the future is to allow usage of the tools provided by the
standard
Java library in order to ease the development of multi-threaded
algorithms.

Maintaining Java 1.5 source compatibility for the reason that we
may need
to support legacy applications will turn out to be
self-defeating:
1. New users will not consider Commons Math's features that are
notably
   apt to parallel processing.
2. Current users might at some point simply switch to another
library if
   it proves more efficient (because it actually uses
multi-threading).
3. New Java developers will be turned away because they will 
want

to use
   the more convenient features of the language in order to
provide
   potential contributions.

If maintaining 1.5 source compatibility is kept as a
requirement, the
consequence is that Commons Math will _become_ a legacy library.
In that perspective, implementing/improving algorithms for
which a
parallel version is known to be more efficient is plainly a
waste of
development and maintenance time.

In order to mitigate the risks (both of upgrading and of not
upgrading
the source compatibility requirement), I would propose to
create a
new
project (say, "Commons Math MT") where we could implement new
features[1]
without being encumbered with the 1.5 requirement.[2]
The "Commons Math MT" would depend on "Commons Math" where we
would
continue developing single-thread (and thread-safe) "tasks", 
i.e.

independent units of processing that could be used in algorithms
located in "Commons Math MT".

In summary:
- Commons Math (as usual):
  * single-thread (sequential) algorithms,
  * (pure) Java 5,
  * no dependencies.
- Commons Math MT:
  * multi-thread (parallel) algorithms,
  * Java 7 and beyond,
  * JNI allowed,
  * dependencies allowed (jCuda).

What do you think?


There are several other possibilities to consider:

0) Implement multithreading using JDK 1.5 primitives
1) Set things up within [math] to support parallel execution in
JDK
1.7, Hadoop or other frameworks
2) Instead of a new project, start a 4.x branch targeting JDK 1.7

I think we should maintain a version that has no dependencies
and no
JNI in any case.

Starting a branch and getting concrete about how to parallelize
some
algorithms would be a good way to start.  One thing I have not
really investigated and would be interested in details on is what
you actually get in efficiency gain (or loss?) using fork /
join vs
just using 1.5+ concurrency for the kinds of problems we would 
end

up using this stuff for.

Thinking about specific parallelization problem instances would
also
help decide whether 1) makes sense (i.e., whether it makes
sense as
you mention above to maintain a single-threaded library that
provides task execution for a multithreaded version or
multithreaded
frameworks).

One more thing to consider is that for at least some users of
[math], having the library internally spawn threads and/or peg
multiple processors may not be desirable.  It is a little
misleading
to say that multithreading is the way to get "efficiency."  It is
really the way to *use* more compute resources and unless there
are
real algorithmic improvements, the overall efficiency may
actually
be less, due to task coordination overhead.  What you get is
faster
execution due to more greedy utilization of available cores.
Actual
efficiency (how much overall compute resource it takes to
complete a
job) partly depends on how efficiently the coordination itself is
done (which JDK 1.7 claims to do very well - I have just not seen
substantiation or any benchmarks demonstrating this) and how the
parallelization effects overall compute requirements.  In any
case,
for environments where library thread-spawning is not desirable, 
I

think we should maintain a single-threaded version.



Unless I missed the point, those reasons are exactly why I
propose to
have 2 projects/components. One, "Commons-Math", does not fiddle
with
resources, while the other would provide a "parallelizationLevel"
setting for the algorithms written to possibly take advantage of
the
Java 5+ "task framework".


OK, what about the 4.x option?


Yes, we could still be good by using only Java 5's concurrency
features
but the issue I raise is not only about concurrency but about
evolution/progress/maintenance, all things that require raising
interest
from new contributors (unless it's fi

Re: [Math] Moving on or not?

2013-02-07 Thread Phil Steitz
On 2/7/13 8:04 AM, Gilles wrote:
> On Thu, 07 Feb 2013 07:01:42 -0800, Phil Steitz wrote:
>> On 2/7/13 4:58 AM, Gilles wrote:
>>> On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:
 On 2/6/13 9:03 AM, Gilles wrote:
> On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:
>> On 2/5/13 6:08 AM, Gilles wrote:
>>> Hi.
>>>
>>> In the thread about "static import", Stephen noted that
>>> decisions
>>> on a
>>> component's evolution are dependent on whether the future of
>>> the
>>> Java
>>> language is taken into account, or not.
>>> A question on the same theme also arose after the
>>> presentation of
>>> Commons
>>> Math in FOSDEM 2013.
>>>
>>> If we assume that efficiency is among the important
>>> qualities for
>>> Commons
>>> Math, the future is to allow usage of the tools provided by the
>>> standard
>>> Java library in order to ease the development of multi-threaded
>>> algorithms.
>>>
>>> Maintaining Java 1.5 source compatibility for the reason
>>> that we
>>> may need
>>> to support legacy applications will turn out to be
>>> self-defeating:
>>> 1. New users will not consider Commons Math's features that are
>>> notably
>>>apt to parallel processing.
>>> 2. Current users might at some point simply switch to another
>>> library if
>>>it proves more efficient (because it actually uses
>>> multi-threading).
>>> 3. New Java developers will be turned away because they will
>>> want
>>> to use
>>>the more convenient features of the language in order to
>>> provide
>>>potential contributions.
>>>
>>> If maintaining 1.5 source compatibility is kept as a
>>> requirement, the
>>> consequence is that Commons Math will _become_ a legacy
>>> library.
>>> In that perspective, implementing/improving algorithms for
>>> which a
>>> parallel version is known to be more efficient is plainly a
>>> waste of
>>> development and maintenance time.
>>>
>>> In order to mitigate the risks (both of upgrading and of not
>>> upgrading
>>> the source compatibility requirement), I would propose to
>>> create a
>>> new
>>> project (say, "Commons Math MT") where we could implement new
>>> features[1]
>>> without being encumbered with the 1.5 requirement.[2]
>>> The "Commons Math MT" would depend on "Commons Math" where we
>>> would
>>> continue developing single-thread (and thread-safe) "tasks",
>>> i.e.
>>> independent units of processing that could be used in
>>> algorithms
>>> located in "Commons Math MT".
>>>
>>> In summary:
>>> - Commons Math (as usual):
>>>   * single-thread (sequential) algorithms,
>>>   * (pure) Java 5,
>>>   * no dependencies.
>>> - Commons Math MT:
>>>   * multi-thread (parallel) algorithms,
>>>   * Java 7 and beyond,
>>>   * JNI allowed,
>>>   * dependencies allowed (jCuda).
>>>
>>> What do you think?
>>
>> There are several other possibilities to consider:
>>
>> 0) Implement multithreading using JDK 1.5 primitives
>> 1) Set things up within [math] to support parallel execution in
>> JDK
>> 1.7, Hadoop or other frameworks
>> 2) Instead of a new project, start a 4.x branch targeting JDK
>> 1.7
>>
>> I think we should maintain a version that has no dependencies
>> and no
>> JNI in any case.
>>
>> Starting a branch and getting concrete about how to parallelize
>> some
>> algorithms would be a good way to start.  One thing I have not
>> really investigated and would be interested in details on is
>> what
>> you actually get in efficiency gain (or loss?) using fork /
>> join vs
>> just using 1.5+ concurrency for the kinds of problems we
>> would end
>> up using this stuff for.
>>
>> Thinking about specific parallelization problem instances would
>> also
>> help decide whether 1) makes sense (i.e., whether it makes
>> sense as
>> you mention above to maintain a single-threaded library that
>> provides task execution for a multithreaded version or
>> multithreaded
>> frameworks).
>>
>> One more thing to consider is that for at least some users of
>> [math], having the library internally spawn threads and/or peg
>> multiple processors may not be desirable.  It is a little
>> misleading
>> to say that multithreading is the way to get "efficiency." 
>> It is
>> really the way to *use* more compute resources and unless there
>> are
>> real algorithmic improvements, the overall efficiency may
>> actually
>> be less, due to task coordination overhead.  What you get is
>> faster
>> execution due to more greedy utilization of available cores.
>> Actual
>> efficiency (how much overall compute

Re: [Math] Moving on or not?

2013-02-07 Thread Konstantin Berlin
On Feb 7, 2013, at 11:05 AM, Gilles  wrote:

> On Thu, 07 Feb 2013 07:01:42 -0800, Phil Steitz wrote:
>> On 2/7/13 4:58 AM, Gilles wrote:
>>> On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:
 On 2/6/13 9:03 AM, Gilles wrote:
> On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:
>> On 2/5/13 6:08 AM, Gilles wrote:
>>> Hi.
>>>
>>> In the thread about "static import", Stephen noted that decisions
>>> on a
>>> component's evolution are dependent on whether the future of the
>>> Java
>>> language is taken into account, or not.
>>> A question on the same theme also arose after the presentation of
>>> Commons
>>> Math in FOSDEM 2013.
>>>
>>> If we assume that efficiency is among the important qualities for
>>> Commons
>>> Math, the future is to allow usage of the tools provided by the
>>> standard
>>> Java library in order to ease the development of multi-threaded
>>> algorithms.
>>>
>>> Maintaining Java 1.5 source compatibility for the reason that we
>>> may need
>>> to support legacy applications will turn out to be
>>> self-defeating:
>>> 1. New users will not consider Commons Math's features that are
>>> notably
>>>   apt to parallel processing.
>>> 2. Current users might at some point simply switch to another
>>> library if
>>>   it proves more efficient (because it actually uses
>>> multi-threading).
>>> 3. New Java developers will be turned away because they will want
>>> to use
>>>   the more convenient features of the language in order to
>>> provide
>>>   potential contributions.
>>>
>>> If maintaining 1.5 source compatibility is kept as a
>>> requirement, the
>>> consequence is that Commons Math will _become_ a legacy library.
>>> In that perspective, implementing/improving algorithms for
>>> which a
>>> parallel version is known to be more efficient is plainly a
>>> waste of
>>> development and maintenance time.
>>>
>>> In order to mitigate the risks (both of upgrading and of not
>>> upgrading
>>> the source compatibility requirement), I would propose to
>>> create a
>>> new
>>> project (say, "Commons Math MT") where we could implement new
>>> features[1]
>>> without being encumbered with the 1.5 requirement.[2]
>>> The "Commons Math MT" would depend on "Commons Math" where we
>>> would
>>> continue developing single-thread (and thread-safe) "tasks", i.e.
>>> independent units of processing that could be used in algorithms
>>> located in "Commons Math MT".
>>>
>>> In summary:
>>> - Commons Math (as usual):
>>>  * single-thread (sequential) algorithms,
>>>  * (pure) Java 5,
>>>  * no dependencies.
>>> - Commons Math MT:
>>>  * multi-thread (parallel) algorithms,
>>>  * Java 7 and beyond,
>>>  * JNI allowed,
>>>  * dependencies allowed (jCuda).
>>>
>>> What do you think?
>>
>> There are several other possibilities to consider:
>>
>> 0) Implement multithreading using JDK 1.5 primitives
>> 1) Set things up within [math] to support parallel execution in
>> JDK
>> 1.7, Hadoop or other frameworks
>> 2) Instead of a new project, start a 4.x branch targeting JDK 1.7
>>
>> I think we should maintain a version that has no dependencies
>> and no
>> JNI in any case.
>>
>> Starting a branch and getting concrete about how to parallelize
>> some
>> algorithms would be a good way to start.  One thing I have not
>> really investigated and would be interested in details on is what
>> you actually get in efficiency gain (or loss?) using fork /
>> join vs
>> just using 1.5+ concurrency for the kinds of problems we would end
>> up using this stuff for.
>>
>> Thinking about specific parallelization problem instances would
>> also
>> help decide whether 1) makes sense (i.e., whether it makes
>> sense as
>> you mention above to maintain a single-threaded library that
>> provides task execution for a multithreaded version or
>> multithreaded
>> frameworks).
>>
>> One more thing to consider is that for at least some users of
>> [math], having the library internally spawn threads and/or peg
>> multiple processors may not be desirable.  It is a little
>> misleading
>> to say that multithreading is the way to get "efficiency."  It is
>> really the way to *use* more compute resources and unless there
>> are
>> real algorithmic improvements, the overall efficiency may
>> actually
>> be less, due to task coordination overhead.  What you get is
>> faster
>> execution due to more greedy utilization of available cores.
>> Actual
>> efficiency (how much overall compute resource it takes to
>> complete a
>> job) partly depends on how efficiently the coordinat

Re: [Math] Moving on or not?

2013-02-07 Thread Ted Dunning
Indeed.

In fact, I have found threading of algorithms of very limited utility since
I generally have parallelism at a higher level of the system and threading
just gets in my way.

On Thu, Feb 7, 2013 at 10:45 AM, Konstantin Berlin wrote:

> ...
> Exactly. So why do this when cleaning up linear algebra and
> optimization seems like a much better use of time then trying to
> parallelize algorithms?
>
>


Re: svn commit: r1443696 - /commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java

2013-02-07 Thread Benedikt Ritter
2013/2/7 

> Author: britter
> Date: Thu Feb  7 20:13:23 2013
> New Revision: 1443696
>
> URL: http://svn.apache.org/r1443696
> Log:
> Fixed checkstyle issues - no functional changes
>
> Modified:
>
> commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java
>
> Modified:
> commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java
> URL:
> http://svn.apache.org/viewvc/commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java?rev=1443696&r1=1443695&r2=1443696&view=diff
>
> ==
> ---
> commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java
> (original)
> +++
> commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java
> Thu Feb  7 20:13:23 2013
> @@ -33,14 +33,12 @@ public final class Argument
>  {
>
>  /**
> - * Factory method for arguments. Creates an argument by taking a
> value and
> - * determining the type of the given value.
> + * Factory method for arguments. Creates an argument by taking a
> value and determining the type of the given value.
>   *
> - * @param value the value to be wrapped by the new argument object.
> Must not
> - *  be {@code null}! If you want to create a null
> argument use
> - *  {@link #nullArgument(Class)} instead.
> + * @param value the value to be wrapped by the new argument object.
> Must not be {@code null}! If you want to create
> + *a null argument use {@link #nullArgument(Class)}
> instead.
> + * @param  the type of the argument.
>   * @return a new argument of type {@code value.getClass()}
> - * @throws NullPointerException if {@code value} is null
>

How do you feel about this? Checkstyle complains about this, and I think it
is sufficient to tell users that an argument must not be null.

Regards,
Benedikt


>   */
>  public static  Argument argument( A value )
>  {
> @@ -51,11 +49,11 @@ public final class Argument
>  }
>
>  /**
> - * Creates a new null argument of the given type.
> + * Creates a new null argument of the given type. Shortcut for {@code
> argument( type, null )}.
>   *
> - * @param type the type of the new argument
> + * @param type the type of the new argument. Must not be {@code null}!
> + * @param  the type of argument.
>   * @return an argument with {@code value == null}.
> - * @throws NullPointerException if {@code type} is null.
>   */
>  public static  Argument nullArgument( Class type )
>  {
> @@ -67,8 +65,9 @@ public final class Argument
>   *
>   * @param type the type of the new argument. Must not be {@code null}!
>   * @param value the value of the new argument.
> + * @param  the type of the argument.
> + * @param  the type of the value of the argument.
>   * @return a new argument of the given type with the given value.
> - * @throws NullPointerException if {@code type} is null
>   */
>  public static  Argument argument( Class type, V
> value )
>  {
> @@ -130,11 +129,24 @@ public final class Argument
>  this.value = value;
>  }
>
> +/**
> + * Returns the argument's type. Note that the type returned maybe a
> super type of the actual type of the value
> + * returned by {@link #getValue()} depending on how the argument was
> created. For example:
> + * {@code argument( Number.class, Integer.valueOf( 4 ) );}
> + * will create an argument with an Integer as Value but Number.class
> as type.
> + *
> + * @return the argument's type
> + */
>  public Class getType()
>  {
>  return type;
>  }
>
> +/**
> + * Returns the value of the argument. Maybe {@code null} if this is a
> null argument.
> + *
> + * @return the value of the argument.
> + */
>  public T getValue()
>  {
>  return value;
>
>
>


Re: [Math] Moving on or not?

2013-02-07 Thread Gilles

On Thu, 07 Feb 2013 08:32:46 -0800, Phil Steitz wrote:

On 2/7/13 8:04 AM, Gilles wrote:

On Thu, 07 Feb 2013 07:01:42 -0800, Phil Steitz wrote:

On 2/7/13 4:58 AM, Gilles wrote:

On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:

On 2/6/13 9:03 AM, Gilles wrote:

On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:

On 2/5/13 6:08 AM, Gilles wrote:

Hi.

In the thread about "static import", Stephen noted that
decisions
on a
component's evolution are dependent on whether the future of
the
Java
language is taken into account, or not.
A question on the same theme also arose after the
presentation of
Commons
Math in FOSDEM 2013.

If we assume that efficiency is among the important
qualities for
Commons
Math, the future is to allow usage of the tools provided by 
the

standard
Java library in order to ease the development of 
multi-threaded

algorithms.

Maintaining Java 1.5 source compatibility for the reason
that we
may need
to support legacy applications will turn out to be
self-defeating:
1. New users will not consider Commons Math's features that 
are

notably
   apt to parallel processing.
2. Current users might at some point simply switch to another
library if
   it proves more efficient (because it actually uses
multi-threading).
3. New Java developers will be turned away because they will
want
to use
   the more convenient features of the language in order to
provide
   potential contributions.

If maintaining 1.5 source compatibility is kept as a
requirement, the
consequence is that Commons Math will _become_ a legacy
library.
In that perspective, implementing/improving algorithms for
which a
parallel version is known to be more efficient is plainly a
waste of
development and maintenance time.

In order to mitigate the risks (both of upgrading and of not
upgrading
the source compatibility requirement), I would propose to
create a
new
project (say, "Commons Math MT") where we could implement new
features[1]
without being encumbered with the 1.5 requirement.[2]
The "Commons Math MT" would depend on "Commons Math" where we
would
continue developing single-thread (and thread-safe) "tasks",
i.e.
independent units of processing that could be used in
algorithms
located in "Commons Math MT".

In summary:
- Commons Math (as usual):
  * single-thread (sequential) algorithms,
  * (pure) Java 5,
  * no dependencies.
- Commons Math MT:
  * multi-thread (parallel) algorithms,
  * Java 7 and beyond,
  * JNI allowed,
  * dependencies allowed (jCuda).

What do you think?


There are several other possibilities to consider:

0) Implement multithreading using JDK 1.5 primitives
1) Set things up within [math] to support parallel execution in
JDK
1.7, Hadoop or other frameworks
2) Instead of a new project, start a 4.x branch targeting JDK
1.7

I think we should maintain a version that has no dependencies
and no
JNI in any case.

Starting a branch and getting concrete about how to parallelize
some
algorithms would be a good way to start.  One thing I have not
really investigated and would be interested in details on is
what
you actually get in efficiency gain (or loss?) using fork /
join vs
just using 1.5+ concurrency for the kinds of problems we
would end
up using this stuff for.

Thinking about specific parallelization problem instances would
also
help decide whether 1) makes sense (i.e., whether it makes
sense as
you mention above to maintain a single-threaded library that
provides task execution for a multithreaded version or
multithreaded
frameworks).

One more thing to consider is that for at least some users of
[math], having the library internally spawn threads and/or peg
multiple processors may not be desirable.  It is a little
misleading
to say that multithreading is the way to get "efficiency."
It is
really the way to *use* more compute resources and unless there
are
real algorithmic improvements, the overall efficiency may
actually
be less, due to task coordination overhead.  What you get is
faster
execution due to more greedy utilization of available cores.
Actual
efficiency (how much overall compute resource it takes to
complete a
job) partly depends on how efficiently the coordination
itself is
done (which JDK 1.7 claims to do very well - I have just not
seen
substantiation or any benchmarks demonstrating this) and how 
the

parallelization effects overall compute requirements.  In any
case,
for environments where library thread-spawning is not
desirable, I
think we should maintain a single-threaded version.



Unless I missed the point, those reasons are exactly why I
propose to
have 2 projects/components. One, "Commons-Math", does not fiddle
with
resources, while the other would provide a 
"parallelizationLevel"

setting for the algorithms written to possibly take advantage of
the
Java 5+ "task framework".


OK, what about the 4.x option?


Yes, we could still be good by using only Java 5's concurrency
features
but the issue I raise is not only about concurrency but about
evolution/progress/mainte

Re: svn commit: r1443696 - /commons/sandbox/beanutils2/trunk/src/main/java/org/apache/commons/beanutils2/Argument.java

2013-02-07 Thread Simone Tripodi
> How do you feel about this? Checkstyle complains about this, and I think it
> is sufficient to tell users that an argument must not be null.

sorry, which one?

http://people.apache.org/~simonetripodi/
http://simonetripodi.livejournal.com/
http://twitter.com/simonetripodi
http://www.99soft.org/

-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org



Re: [Math] Moving on or not?

2013-02-07 Thread Konstantin Berlin
Sorry, but not of this is making sense to me. We had a long discussion
about how the library doesn't test for large scale problem
performance. A lot of algorithms probably do not scale well as the
result. There was talk of dropping sparse support in linear algebra.
So instead of fixing that, you jump to parallelization, which is
needed only for large scale problems, which this library does not
handle well even in single thread right now.

The most significant impact you can have is fixing the linear algebra
component.

On Feb 7, 2013, at 5:06 PM, Gilles  wrote:

> On Thu, 07 Feb 2013 08:32:46 -0800, Phil Steitz wrote:
>> On 2/7/13 8:04 AM, Gilles wrote:
>>> On Thu, 07 Feb 2013 07:01:42 -0800, Phil Steitz wrote:
 On 2/7/13 4:58 AM, Gilles wrote:
> On Wed, 06 Feb 2013 09:46:55 -0800, Phil Steitz wrote:
>> On 2/6/13 9:03 AM, Gilles wrote:
>>> On Wed, 06 Feb 2013 07:19:47 -0800, Phil Steitz wrote:
 On 2/5/13 6:08 AM, Gilles wrote:
> Hi.
>
> In the thread about "static import", Stephen noted that
> decisions
> on a
> component's evolution are dependent on whether the future of
> the
> Java
> language is taken into account, or not.
> A question on the same theme also arose after the
> presentation of
> Commons
> Math in FOSDEM 2013.
>
> If we assume that efficiency is among the important
> qualities for
> Commons
> Math, the future is to allow usage of the tools provided by the
> standard
> Java library in order to ease the development of multi-threaded
> algorithms.
>
> Maintaining Java 1.5 source compatibility for the reason
> that we
> may need
> to support legacy applications will turn out to be
> self-defeating:
> 1. New users will not consider Commons Math's features that are
> notably
>   apt to parallel processing.
> 2. Current users might at some point simply switch to another
> library if
>   it proves more efficient (because it actually uses
> multi-threading).
> 3. New Java developers will be turned away because they will
> want
> to use
>   the more convenient features of the language in order to
> provide
>   potential contributions.
>
> If maintaining 1.5 source compatibility is kept as a
> requirement, the
> consequence is that Commons Math will _become_ a legacy
> library.
> In that perspective, implementing/improving algorithms for
> which a
> parallel version is known to be more efficient is plainly a
> waste of
> development and maintenance time.
>
> In order to mitigate the risks (both of upgrading and of not
> upgrading
> the source compatibility requirement), I would propose to
> create a
> new
> project (say, "Commons Math MT") where we could implement new
> features[1]
> without being encumbered with the 1.5 requirement.[2]
> The "Commons Math MT" would depend on "Commons Math" where we
> would
> continue developing single-thread (and thread-safe) "tasks",
> i.e.
> independent units of processing that could be used in
> algorithms
> located in "Commons Math MT".
>
> In summary:
> - Commons Math (as usual):
>  * single-thread (sequential) algorithms,
>  * (pure) Java 5,
>  * no dependencies.
> - Commons Math MT:
>  * multi-thread (parallel) algorithms,
>  * Java 7 and beyond,
>  * JNI allowed,
>  * dependencies allowed (jCuda).
>
> What do you think?

 There are several other possibilities to consider:

 0) Implement multithreading using JDK 1.5 primitives
 1) Set things up within [math] to support parallel execution in
 JDK
 1.7, Hadoop or other frameworks
 2) Instead of a new project, start a 4.x branch targeting JDK
 1.7

 I think we should maintain a version that has no dependencies
 and no
 JNI in any case.

 Starting a branch and getting concrete about how to parallelize
 some
 algorithms would be a good way to start.  One thing I have not
 really investigated and would be interested in details on is
 what
 you actually get in efficiency gain (or loss?) using fork /
 join vs
 just using 1.5+ concurrency for the kinds of problems we
 would end
 up using this stuff for.

 Thinking about specific parallelization problem instances would
 also
 help decide whether 1) makes sense (i.e., whether it makes
 sense as

Re: [VOTE] Release Apache Commons Daemon 1.0.13

2013-02-07 Thread Luc Maisonobe
Le 07/02/2013 06:37, Mladen Turk a écrit :
> 
> Apache Commons Daemon 1.0.13 based on RC1 is ready.
> It contains a fix for regression found in previous release(s).
> 
> Binaries and sources for testing are at [1], dist layout is at [2],
> generated site can be found at [3]. Tag is [4] which will be renamed to
> COMMONS_DAEMON_1_0_13 if voted.
> 
> Please vote (vote will remain open for at least 72 hours).
> 
> Apache Commons Daemon 1.0.13 is
>   [X] +1 Release

Luc

>   [ ] +0 OK, but...
>   [ ] -0 OK, but really should fix...
>   [ ] -1 I oppose this release because...
> 
> 
> [1]
> https://repository.apache.org/content/repositories/orgapachecommons-214/
> [2] http://people.apache.org/~mturk/daemon-1.0.13/
> [3] http://people.apache.org/~mturk/daemon-1.0.13-site/
> [4]
> https://svn.apache.org/repos/asf/commons/proper/daemon/tags/COMMONS_DAEMON_1_0_13_RC1/
> 
> 
> 
> Regards


-
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org