Re: sjavac always compiled?

2015-06-11 Thread Alan Bateman



On 10/06/2015 10:21, Andreas Lundblad wrote:

On Wed, Jun 10, 2015 at 11:02:19AM +0200, Andreas Lundblad wrote:

What's the approperiate procedure here? Should I submit a patch that adds the 
type arguments to avoid forcing people to update their boot jdks?

I have now pushed a patch that adds the type arguments.

http://hg.openjdk.java.net/jdk9/dev/langtools/rev/5021d414632a

Thanks for that. I should probably have tested with 8u40 as a boot JDK 
before bringing up this issue.


-Alan


Re: sjavac always compiled?

2015-06-10 Thread Andreas Lundblad
On Wed, Jun 10, 2015 at 11:02:19AM +0200, Andreas Lundblad wrote:
> What's the approperiate procedure here? Should I submit a patch that adds the 
> type arguments to avoid forcing people to update their boot jdks?

I have now pushed a patch that adds the type arguments.

http://hg.openjdk.java.net/jdk9/dev/langtools/rev/5021d414632a

-- Andreas


Re: sjavac always compiled?

2015-06-10 Thread Andreas Lundblad
On Wed, Jun 10, 2015 at 09:06:44AM +0100, Alan Bateman wrote:
> 
> 
> On 10/06/2015 09:00, Erik Joelsson wrote:
> >Hello,
> >
> >Sjavac has always been compiled in the interim langtools step, the
> >configure flag only affects using it to compile the rest of the
> >java classes.
> >
> >Has a bug been created for this?
> >
> I haven't created a bug for this as I wasn't sure if this was
> something in my environment or an issue with the sjavac patch and
> some interaction with the interim javac build.

I can reproduce this by compiling that method alone using 8u31. Seems to be a 
javac type inference bug, because changing

Collectors.toMap

to

Collectors.toMap

solves the issue. (It seems to have been fixed in 8u40.)

What's the approperiate procedure here? Should I submit a patch that adds the 
type arguments to avoid forcing people to update their boot jdks?

-- Andreas


Re: sjavac always compiled?

2015-06-10 Thread Alan Bateman



On 10/06/2015 09:00, Erik Joelsson wrote:

Hello,

Sjavac has always been compiled in the interim langtools step, the 
configure flag only affects using it to compile the rest of the java 
classes.


Has a bug been created for this?

I haven't created a bug for this as I wasn't sure if this was something 
in my environment or an issue with the sjavac patch and some interaction 
with the interim javac build.


-Alan



Re: sjavac always compiled?

2015-06-10 Thread Erik Joelsson

Hello,

Sjavac has always been compiled in the interim langtools step, the 
configure flag only affects using it to compile the rest of the java 
classes.


Has a bug been created for this?

/Erik

On 2015-06-10 09:53, Alan Bateman wrote:


There was a sjavac update pushed to jdk9/dev yesterday (JDK-8054717). 
I seem to be running into build issues on OS X since then (clean 
build, not a reconfigure). My boot JDK is 8u31. My configure command 
does not specify --enable-sjavac so I'm surprised this code is being 
compiled.


Anyone else seeing this?

-Alan

Building target 'default' in configuration 
'macosx-x86_64-normal-server-release'

Compiling 830 files for BUILD_INTERIM_LANGTOOLS
/ws/jdk9-dev/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Util.java:231: 
error: no suitable method found for 
collect(Collector>)
return c.stream().collect(Collectors.toMap(indexFunction, o -> 
o));

 ^
method Stream.collect(Supplier,BiConsumerCAP#2>,BiConsumer) is not applicable

  (cannot infer type-variable(s) R#1
(actual and formal argument lists differ in length))
method Stream.collect(Collector) is 
not applicable

  (cannot infer type-variable(s) R#2,A,CAP#3,T#3,K,U
(argument mismatch; Collector> 
cannot be converted to Collector>))

  where T#1,I,R#1,T#2,R#2,A,T#3,K,U are type-variables:
T#1 extends Object declared in method indexBy(Collectionextends T#1>,Function)
I extends Object declared in method indexBy(Collectionextends T#1>,Function)
R#1 extends Object declared in method 
collect(Supplier,BiConsumerT#2>,BiConsumer)

T#2 extends Object declared in interface Stream
R#2 extends Object declared in method collect(Collectorsuper T#2,A,R#2>)
A extends Object declared in method collect(Collectorsuper T#2,A,R#2>)
T#3 extends Object declared in method toMap(Functionsuper T#3,? extends K>,Function)
K extends Object declared in method toMap(Functionsuper T#3,? extends K>,Function)
U extends Object declared in method toMap(Functionsuper T#3,? extends K>,Function)

  where CAP#1,CAP#2,CAP#3,CAP#4 are fresh type-variables:
CAP#1 extends Object from capture of ?
CAP#2 extends T#1 from capture of ? extends T#1
CAP#3 extends Object from capture of ?
CAP#4 extends Object from capture of ?
1 error





sjavac always compiled?

2015-06-10 Thread Alan Bateman


There was a sjavac update pushed to jdk9/dev yesterday (JDK-8054717). I 
seem to be running into build issues on OS X since then (clean build, 
not a reconfigure). My boot JDK is 8u31. My configure command does not 
specify --enable-sjavac so I'm surprised this code is being compiled.


Anyone else seeing this?

-Alan

Building target 'default' in configuration 
'macosx-x86_64-normal-server-release'

Compiling 830 files for BUILD_INTERIM_LANGTOOLS
/ws/jdk9-dev/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/Util.java:231: 
error: no suitable method found for collect(Collector>)

return c.stream().collect(Collectors.toMap(indexFunction, o -> o));
 ^
method Stream.collect(Supplier,BiConsumerCAP#2>,BiConsumer) is not applicable

  (cannot infer type-variable(s) R#1
(actual and formal argument lists differ in length))
method Stream.collect(Collector) is not 
applicable

  (cannot infer type-variable(s) R#2,A,CAP#3,T#3,K,U
(argument mismatch; Collector> cannot 
be converted to Collector>))

  where T#1,I,R#1,T#2,R#2,A,T#3,K,U are type-variables:
T#1 extends Object declared in method indexBy(Collectionextends T#1>,Function)
I extends Object declared in method indexBy(Collectionextends T#1>,Function)
R#1 extends Object declared in method 
collect(Supplier,BiConsumer,BiConsumer)

T#2 extends Object declared in interface Stream
R#2 extends Object declared in method collect(Collectorsuper T#2,A,R#2>)
A extends Object declared in method collect(Collectorsuper T#2,A,R#2>)
T#3 extends Object declared in method toMap(Functionsuper T#3,? extends K>,Function)
K extends Object declared in method toMap(FunctionT#3,? extends K>,Function)
U extends Object declared in method toMap(FunctionT#3,? extends K>,Function)

  where CAP#1,CAP#2,CAP#3,CAP#4 are fresh type-variables:
CAP#1 extends Object from capture of ?
CAP#2 extends T#1 from capture of ? extends T#1
CAP#3 extends Object from capture of ?
CAP#4 extends Object from capture of ?
1 error