Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Alan Bateman

On 26/08/2014 05:29, Mandy Chung wrote:

Webrev:
   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/

This patch renames the class name of attach provider implementation class
to be the same for all platforms.  This simplifies the build logic and
removes the need for generating the service config file at build time.

This looks good, nice to see the benefits of the new layout.

-Alan.


Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Chris Hegarty

On 26 Aug 2014, at 08:26, Alan Bateman alan.bate...@oracle.com wrote:

 On 26/08/2014 05:29, Mandy Chung wrote:
 Webrev:
   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/
 
 This patch renames the class name of attach provider implementation class
 to be the same for all platforms.  This simplifies the build logic and
 removes the need for generating the service config file at build time.
 This looks good, nice to see the benefits of the new layout.

+1.  Wow this is nice, and the knock on simplification in the build logic is a 
bonus.

-Chris.

 -Alan.



Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Erik Joelsson

Nice!

/Erik

On 2014-08-26 06:29, Mandy Chung wrote:

Webrev:
   http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/

This patch renames the class name of attach provider implementation class
to be the same for all platforms.  This simplifies the build logic and
removes the need for generating the service config file at build time.

The files renamed are
   unix/classes/sun/tools/attach/${OS}VirtualMachine.java
 - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
   unix/classes/sun/tools/attach/${OS}AttachProvider.java
 - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

   ${OS}/classes/sun/tools/attach/${OS}VirtualMachine.java
 - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
   ${OS}/classes/sun/tools/attach/${OS}AttachProvider.java
 - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

and also corresponding native files.

Mandy






Re: RFR: JDK-8055922: Work around sjavac limitation with public api tracking cross modules

2014-08-26 Thread Erik Joelsson

Updated webrev: http://cr.openjdk.java.net/~erikj/8055922/webrev.root.02/

Some of the demos failed to compile because the javac_state file did not 
contain any public api and this caused grep to exit with code 1, which 
failed the build. I made exit code 1 for this grep line not fail the build.


/Erik

On 2014-08-25 16:50, Erik Joelsson wrote:

Hello,

Please review this little workaround for a current shortcoming in 
Sjavac. See bug for more details. With this change, Sjavac will start 
acting correctly again and not miss any files that need to be 
recompiled. The approximation is course however, we should still fix 
https://bugs.openjdk.java.net/browse/JDK-8054717 to properly only 
recompile what is really necessary. Still, this workaround does add 
value compared to running without sjavac. With this change and 
JDK-8014510 (also on review) I'm starting to feel confident enough to 
make sjavac default for building jdk9.


Bug: https://bugs.openjdk.java.net/browse/JDK-8055922
Webrev: http://cr.openjdk.java.net/~erikj/8055922/webrev.root.01/

/Erik




Re: RFR: JDK-8055922: Work around sjavac limitation with public api tracking cross modules

2014-08-26 Thread Magnus Ihse Bursie

On 2014-08-26 11:58, Erik Joelsson wrote:

Updated webrev: http://cr.openjdk.java.net/~erikj/8055922/webrev.root.02/

Some of the demos failed to compile because the javac_state file did 
not contain any public api and this caused grep to exit with code 1, 
which failed the build. I made exit code 1 for this grep line not fail 
the build.


Looks good to me.

/Magnus



Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Daniel Fuchs

Hi Mandy,

I'm seeing some small differences in the various VirtualMachineImpl.java
files, but if I'm not mistaken, all the new AttachProviderImpl.java look
all the same. I wonder if the patch could be further simplified by
moving AttachProviderImpl.java to jdk.attach/share/classes (unless
there's a reason to keep all the different copies)...

best regards,

-- daniel

On 8/26/14 6:29 AM, Mandy Chung wrote:

Webrev:
http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/

This patch renames the class name of attach provider implementation class
to be the same for all platforms.  This simplifies the build logic and
removes the need for generating the service config file at build time.

The files renamed are
unix/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
unix/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

${OS}/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
${OS}/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

and also corresponding native files.

Mandy






RFR: JDK-8056053: Disable HOTSPOT_BUILD_JOBS when building with configure

2014-08-26 Thread Erik Joelsson

Hello,

Please review this proposed fix for the Hotspot build.

In the new jdk9 build, we utilize the gnu make job server, which 
automatically makes sure the -j flag gets propagated and shared between 
all recursive make calls. In the hotspot build, this gets overridden by 
the HOTSPOT_BUILD_JOBS variable. Configure estimates a reasonable number 
of parallel make jobs into the JOBS variable, which gets propagated to 
the HOTSPOT_BUILD_JOBS variable. This used to work well enough, but in 
the new build, the hotspot build is happening concurrently with other 
parts of the build and the consequence is that the hotspot build gets 
JOBS number of jobs and the rest of the build also gets JOBS number of 
jobs, all of which are used at the same time. We would like the whole 
build to share in the same job pool.


To fix this, the setting of -j$(HOTSPOT_BUILD_JOBS) needs to be made 
conditional and we need to add .NOTPARALLEL: to a number of makefiles in 
hotspot that currently can't handle being executed in parallel. Lastly, 
the + sign must be added first to recipe lines that call make 
recursively but are not explicitly using the MAKE variable directly. The 
result will be that the active -j flag in the root makefiles will just 
automatically propagate down to the hotspot makefiles.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056053
Webrev: http://cr.openjdk.java.net/~erikj/8056053/webrev.01/

/Erik


Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Staffan Larsen
There are some differences in the AttachProvideImpl files. Most notably the 
windows version is very different. Linux, Bsd and Aix are the same. The Solaris 
version has a minor difference in the  “public String type()” implementation. 
The Linux, Bsd, Aix and Solaris versions could probably be unified.

/Staffan

On 26 aug 2014, at 12:40, Daniel Fuchs daniel.fu...@oracle.com wrote:

 Hi Mandy,
 
 I'm seeing some small differences in the various VirtualMachineImpl.java
 files, but if I'm not mistaken, all the new AttachProviderImpl.java look
 all the same. I wonder if the patch could be further simplified by
 moving AttachProviderImpl.java to jdk.attach/share/classes (unless
 there's a reason to keep all the different copies)...
 
 best regards,
 
 -- daniel
 
 On 8/26/14 6:29 AM, Mandy Chung wrote:
 Webrev:
http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/
 
 This patch renames the class name of attach provider implementation class
 to be the same for all platforms.  This simplifies the build logic and
 removes the need for generating the service config file at build time.
 
 The files renamed are
unix/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
unix/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
 
${OS}/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
${OS}/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
 
 and also corresponding native files.
 
 Mandy
 
 
 



Re: RFR[P1]: 8055744 - 8u-dev nightly solaris builds failed on 08/20

2014-08-26 Thread Jesper Wilhelmsson

Hi David,

The change was pushed on Friday so it included the change in the Makefile. I 
filed JDK-8056056 to remove it.


Thanks!
/Jesper

David Holmes skrev 25/8/14 02:50:

Sorry I'm late but had a long weekend and was off last Friday.

On 22/08/2014 3:04 AM, Jesper Wilhelmsson wrote:

Thank you for the quick reply Dan!

A new webrev with your suggested change is available here:

http://cr.openjdk.java.net/~jwilhelm/8055744/webrev.02/


The change in make/solaris/Makefile isn't necessary. buildtree.make already
includes defs.make which defines HS_ALT_MAKE.

If this is already pushed please follow up with a correction. But don't push
this part of 8u.

Thanks,
David


/Jesper


Daniel D. Daugherty skrev 21/8/14 18:42:

On 8/21/14 10:19 AM, Jesper Wilhelmsson wrote:

Hi,

On Solaris the HS_ALT_MAKE variable was not passed to vm.make when
creating
the mapfiles which lead to mapfile-ext not being found and later a
linker
error due to symbols declared in the extra mapfile not being found.

The hotspot makefiles are .. interesting .. yes.

The proposed solution is to include defs.make where HS_ALT_MAKE is
set up into
vm.make on Solaris.


Webrev:
http://cr.openjdk.java.net/~jwilhelm/8055744/webrev/


Unfortunately, including defs.make in make/solaris/makefiles/vm.make
isn't the right way to get a top-level variable down into the
HotSpot build system. I cannot remember what breaks when you do that,
but it doesn't work right in all the ways that we build HotSpot.

For the HotSpot build system, you'll want to:

- update make/solaris/Makefile and add HS_ALT_MAKE to
   the BUILDTREE_VARS list:

   BUILDTREE_VARS += HS_ALT_MAKE=$(HS_ALT_MAKE)

- update make/solaris/makefiles/buildtree.make and add
   HS_ALT_MAKE to the rule that creates flags.make:

   [ -n $(HS_ALT_MAKE) ]  \
 echo  echo HS_ALT_MAKE = $(HS_ALT_MAKE); \

The way I usually find all the right spots is I look for
where ZIPEXE is added to the above files and follow those
examples.

Dan






Bug:
https://bugs.openjdk.java.net/browse/JDK-8055744#comment-13542110

This is a P1 so if you feel comfortable with the hotspot makefiles,
please
have a look.

Thanks!
/Jesper




Re: Review request: 8055230: Rename attach provider implementation class

2014-08-26 Thread Daniel Fuchs

On 8/26/14 12:59 PM, Staffan Larsen wrote:

There are some differences in the AttachProvideImpl files. Most notably the 
windows version is very different. Linux, Bsd and Aix are the same. The Solaris 
version has a minor difference in the  “public String type()” implementation. 
The Linux, Bsd, Aix and Solaris versions could probably be unified.


Ah - right - I missed those. Forget my comment then!

Thanks Staffan!

-- daniel



/Staffan

On 26 aug 2014, at 12:40, Daniel Fuchs daniel.fu...@oracle.com wrote:


Hi Mandy,

I'm seeing some small differences in the various VirtualMachineImpl.java
files, but if I'm not mistaken, all the new AttachProviderImpl.java look
all the same. I wonder if the patch could be further simplified by
moving AttachProviderImpl.java to jdk.attach/share/classes (unless
there's a reason to keep all the different copies)...

best regards,

-- daniel

On 8/26/14 6:29 AM, Mandy Chung wrote:

Webrev:
http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8055230/

This patch renames the class name of attach provider implementation class
to be the same for all platforms.  This simplifies the build logic and
removes the need for generating the service config file at build time.

The files renamed are
unix/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
unix/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

${OS}/classes/sun/tools/attach/${OS}VirtualMachine.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java
${OS}/classes/sun/tools/attach/${OS}AttachProvider.java
  - ${OS}/classes/sun/tools/attach/VirtualMachineImpl.java

and also corresponding native files.

Mandy










Re: RFR: JDK-8056053: Disable HOTSPOT_BUILD_JOBS when building with configure

2014-08-26 Thread David Holmes

Hi Erik,

On 26/08/2014 8:53 PM, Erik Joelsson wrote:

Hello,

Please review this proposed fix for the Hotspot build.

In the new jdk9 build, we utilize the gnu make job server, which
automatically makes sure the -j flag gets propagated and shared between
all recursive make calls. In the hotspot build, this gets overridden by
the HOTSPOT_BUILD_JOBS variable. Configure estimates a reasonable number
of parallel make jobs into the JOBS variable, which gets propagated to
the HOTSPOT_BUILD_JOBS variable. This used to work well enough, but in
the new build, the hotspot build is happening concurrently with other
parts of the build and the consequence is that the hotspot build gets
JOBS number of jobs and the rest of the build also gets JOBS number of
jobs, all of which are used at the same time. We would like the whole
build to share in the same job pool.

To fix this, the setting of -j$(HOTSPOT_BUILD_JOBS) needs to be made
conditional and we need to add .NOTPARALLEL: to a number of makefiles in
hotspot that currently can't handle being executed in parallel. Lastly,
the + sign must be added first to recipe lines that call make
recursively but are not explicitly using the MAKE variable directly. The
result will be that the active -j flag in the root makefiles will just
automatically propagate down to the hotspot makefiles.


I don't know how make handles -j propagation but from your description 
it sounds like we will still generate too much concurrency as the 
submakes will be run with the same -j value as the top-level. ??


I'm also unclear how we used to pass HOTSPOT_BUILD_JOBS and didn't need 
.NOTPARALLEL, but now we pass -j from the top we do need .NOTPARALLEL ??


Thanks,
David


Bug: https://bugs.openjdk.java.net/browse/JDK-8056053
Webrev: http://cr.openjdk.java.net/~erikj/8056053/webrev.01/

/Erik


Re: RFR: JDK-8056053: Disable HOTSPOT_BUILD_JOBS when building with configure

2014-08-26 Thread Erik Joelsson

Hello David,

I realize my description was not very clear and will try to make a 
better one.


It used to be (before make 3.78), that recursive make calls and the -j 
flag were tricky to use together. The Hotspot makefiles solved this by 
asking people not to use -j, and instead set the variable 
HOTSPOT_BUILD_JOBS. The calls to the leaf make invocations would then 
set -j$(HOTSPOT_BUILD_JOBS) so that the bulk of the work would be run in 
parallel, but one makefile at a time.


Modern versions of gnu make has a solution to this problem called the 
Job Server. (Read more about it here: 
http://mad-scientist.net/make/jobserver.html) In short it enables 
multiple make processes to share a single pool of job tokens through a 
pipe, making sure that concurrency is kept within the limitations set by 
-j to the root process. Note that make never sends the -j flag on to sub 
invocations, but instead does a secret transfer of the Job Server pipe.


In the new jdk9 build, I introduced using the Job Server across the 
whole build. Unfortunately, this didn't work well for Hotspot because as 
soon as one sub make gets an explicit -j flag, or is invoked from a 
recipe line without either a + sign or explicit use of the $(MAKE) 
variable, that subtree is outside the job server sharing pool and will 
govern its own concurrency. The result of this is that while the rest of 
the build is sharing JOBS number of parallel jobs, vm.make will execute 
HOTSPOT_BUILD_NUMBER number of parallel jobs on its own.


The reason .NOTPARALLEL wasn't need before is that until this patch, 
HotspotWrapper.gmk and the user building Hotspot alone has always run 
make with -j1. In this patch, I removed that -j1 from HotspotWrapper.gmk 
so that the Job Server would get propagated into the Hotspot build. To 
protect the makefiles that aren't able to run in parallel, I had to add 
.NOTPARALLEL: in a couple of places.


/Erik

On 2014-08-26 14:09, David Holmes wrote:

Hi Erik,

On 26/08/2014 8:53 PM, Erik Joelsson wrote:

Hello,

Please review this proposed fix for the Hotspot build.

In the new jdk9 build, we utilize the gnu make job server, which
automatically makes sure the -j flag gets propagated and shared between
all recursive make calls. In the hotspot build, this gets overridden by
the HOTSPOT_BUILD_JOBS variable. Configure estimates a reasonable number
of parallel make jobs into the JOBS variable, which gets propagated to
the HOTSPOT_BUILD_JOBS variable. This used to work well enough, but in
the new build, the hotspot build is happening concurrently with other
parts of the build and the consequence is that the hotspot build gets
JOBS number of jobs and the rest of the build also gets JOBS number of
jobs, all of which are used at the same time. We would like the whole
build to share in the same job pool.

To fix this, the setting of -j$(HOTSPOT_BUILD_JOBS) needs to be made
conditional and we need to add .NOTPARALLEL: to a number of makefiles in
hotspot that currently can't handle being executed in parallel. Lastly,
the + sign must be added first to recipe lines that call make
recursively but are not explicitly using the MAKE variable directly. The
result will be that the active -j flag in the root makefiles will just
automatically propagate down to the hotspot makefiles.


I don't know how make handles -j propagation but from your description 
it sounds like we will still generate too much concurrency as the 
submakes will be run with the same -j value as the top-level. ??


I'm also unclear how we used to pass HOTSPOT_BUILD_JOBS and didn't 
need .NOTPARALLEL, but now we pass -j from the top we do need 
.NOTPARALLEL ??


Thanks,
David


Bug: https://bugs.openjdk.java.net/browse/JDK-8056053
Webrev: http://cr.openjdk.java.net/~erikj/8056053/webrev.01/

/Erik




RFR: JDK-8056062: Additional minor cleanups from source restructure build changes

2014-08-26 Thread Erik Joelsson

Hello,

Please review this small patch fixing a couple of issues that have been 
raised on this list following the source code restructure.


* Fix spelling error in make help (build-built)
* Readd the jdk target as an alias for exploded-image as people are used 
to the target and the error message when it's missing is confusing.
* Print a warning when clean targets and other targets are mixed on the 
command line as this won't work well. Also add a note about this in the 
help target.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056062
Webrev: http://cr.openjdk.java.net/~erikj/8056062/webrev.root.01/

/Erik


RFR: JDK-8056064: Fix corba locale build problem on windows

2014-08-26 Thread Erik Joelsson
Thanks for pointing this out. That is indeed a better and more portable 
solution. I took the liberty of creating a new bug and creating a patch 
reverting my earlier change and using this instead.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056064
Webrev: http://cr.openjdk.java.net/~erikj/8056064/webrev.01/

/Erik

On 2014-08-23 17:32, Ludovic HOCHET wrote:

Hello Erik,
This does not fix the issue for me on a Win 8.1 fr_FR. I still have
creation dates in French.
eg.:
Compiling 1478 files for java.corba
c:\dev\dev\build\windows-x86_64-normal-server-release\corba\gensrc\java.corba\com\sun\corba\se\spi\activation\Activator.java:8:
error: unmappable character for encoding ascii
* samedi 23 ao?t 2014 16 h 50 CEST

Forcing the en locale on the Java run of IDLJ fixes the issue for me:
diff -r 4d704afddadd make/GensrcCorba.gmk
--- a/make/GensrcCorba.gmkMon Aug 18 10:07:13 2014 +0100
+++ b/make/GensrcCorba.gmkSat Aug 23 15:41:15 2014 +0100
@@ -51,7 +51,7 @@
  EXCLUDE_FILES := ResourceBundleUtil.java))

  TOOL_IDLJ_CMD := $(JAVA) -cp $(CORBA_OUTPUTDIR)/idlj_classes \
-com.sun.tools.corba.se.idl.toJavaPortable.Compile
+-Duser.language=en com.sun.tools.corba.se.idl.toJavaPortable.Compile

  



Rgds,

On Wed, Aug 20, 2014 at 10:55 AM, Erik Joelsson
erik.joels...@oracle.com wrote:

Hello,

Please review this minor patch which makes the build work on a ja_JP locale.
Bug: https://bugs.openjdk.java.net/browse/JDK-8055405

diff -r c72d6edec4cf make/common/IdlCompilation.gmk
--- a/make/common/IdlCompilation.gmk
+++ b/make/common/IdlCompilation.gmk
@@ -60,7 +60,7 @@
  $(RM) -rf $3/$$($4_TMPDIR)
  $(MKDIR) -p $(dir $5)
  $(ECHO) $(LOG_INFO) Compiling IDL $(patsubst $2/%,%,$4)
-$8 -td $3/$$($4_TMPDIR) \
+LC_ALL=C $8 -td $3/$$($4_TMPDIR) \
  -i $2/org/omg/CORBA \
  -i $2/org/omg/PortableInterceptor \
  -i $2/org/omg/PortableServer \


/Erik








Re: RFR: JDK-8056062: Additional minor cleanups from source restructure build changes

2014-08-26 Thread Alan Bateman

On 26/08/2014 13:46, Erik Joelsson wrote:

Hello,

Please review this small patch fixing a couple of issues that have 
been raised on this list following the source code restructure.


* Fix spelling error in make help (build-built)
* Readd the jdk target as an alias for exploded-image as people are 
used to the target and the error message when it's missing is confusing.
* Print a warning when clean targets and other targets are mixed on 
the command line as this won't work well. Also add a note about this 
in the help target.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056062
Webrev: http://cr.openjdk.java.net/~erikj/8056062/webrev.root.01/
This looks okay to me, I'm just wondering whether an attempt to mix 
clean with other targets should be an error rather than a warning.


-Alan.


Re: RFR: JDK-8056064: Fix corba locale build problem on windows

2014-08-26 Thread Alan Bateman

On 26/08/2014 14:02, Erik Joelsson wrote:
Thanks for pointing this out. That is indeed a better and more 
portable solution. I took the liberty of creating a new bug and 
creating a patch reverting my earlier change and using this instead.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056064
Webrev: http://cr.openjdk.java.net/~erikj/8056064/webrev.01/

This looks okay to me, I just wonder if there are any other cases where 
we might also need to set user.language.


-Alan.



Re: RFR: JDK-8056062: Additional minor cleanups from source restructure build changes

2014-08-26 Thread Tim Bell

Erik:

Please review this small patch fixing a couple of issues that have 
been raised on this list following the source code restructure.


* Fix spelling error in make help (build-built)
* Readd the jdk target as an alias for exploded-image as people are 
used to the target and the error message when it's missing is confusing.
* Print a warning when clean targets and other targets are mixed on 
the command line as this won't work well. Also add a note about this 
in the help target.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056062
Webrev: http://cr.openjdk.java.net/~erikj/8056062/webrev.root.01


Looks good to me.  Approved.

Tim



Re: RFR: JDK-8056064: Fix corba locale build problem on windows

2014-08-26 Thread Tim Bell

Hi Erik

On 08/26/14 07:30, Alan Bateman wrote:

On 26/08/2014 14:02, Erik Joelsson wrote:
Thanks for pointing this out. That is indeed a better and more 
portable solution. I took the liberty of creating a new bug and 
creating a patch reverting my earlier change and using this instead.


Bug: https://bugs.openjdk.java.net/browse/JDK-8056064
Webrev: http://cr.openjdk.java.net/~erikj/8056064/webrev.01/

This looks okay to me, I just wonder if there are any other cases 
where we might also need to set user.language.


-Alan.


Looks good to me as well.

Tim




How to influence File Permission Mode

2014-08-26 Thread Medi Montaseri
Hi

I am seeing some files with permission 0600 (-rw --- --- ) in my build. Is 
there a way to influence the generated files' permission from the configure or 
do I need to run a chmod(1) on them myself.
Note that I have selected owner=root , group=root, so the net effect is that 
those files with 0600 only works for root. I need it to be readable by all. 
Unless there is some specific reason why these JARs are 0600.

mmontaseri@griffin:~/work/bug-91383/depot9 ls -1
bin/
jvm/
openjdk-1.8.0-jdk-20140822.debian.tgz
openjdk-1.8.0-jre-20140822.debian.tgz
mmontaseri@griffin:~/work/bug-91383/depot9 bin/javac -version
javac 1.8.0-20140822

mmontaseri@griffin:~/work/bug-91383/depot9/jvm/openjdk-1.8.0-20140822 find . 
-perm 600
./demo/scripting/jconsole-plugin/jconsole-plugin.jar
./demo/jfc/Metalworks/Metalworks.jar
./demo/jfc/FileChooserDemo/FileChooserDemo.jar
./demo/jfc/SwingApplet/SwingApplet.jar
./demo/jfc/Notepad/Notepad.jar
./demo/jfc/TransparentRuler/TransparentRuler.jar
./demo/jfc/TableExample/TableExample.jar
./demo/jfc/SampleTree/SampleTree.jar
./demo/jfc/Font2DTest/Font2DTest.jar
./demo/jfc/CodePointIM/CodePointIM.jar
./demo/jpda/examples.jar
./demo/management/MemoryMonitor/MemoryMonitor.jar
./demo/management/FullThreadDump/FullThreadDump.jar
./demo/management/VerboseGC/VerboseGC.jar
./demo/management/JTop/JTop.jar
./demo/nio/zipfs/zipfs.jar
./demo/applets/WireFrame/WireFrame.jar
./demo/applets/MoleculeViewer/MoleculeViewer.jar
./demo/jvmti/mtrace/mtrace.jar
./demo/jvmti/heapTracker/heapTracker.jar
./demo/jvmti/minst/minst.jar
./lib/ct.sym
./lib/tools.jar
./lib/sa-jdi.jar
./lib/jconsole.jar
./lib/dt.jar
./jre/lib/jsse.jar
./jre/lib/ext/sunjce_provider.jar
./jre/lib/ext/dnsns.jar
./jre/lib/ext/zipfs.jar
./jre/lib/ext/nashorn.jar
./jre/lib/ext/sunec.jar
./jre/lib/ext/sunpkcs11.jar
./jre/lib/ext/cldrdata.jar
./jre/lib/ext/localedata.jar
./jre/lib/security/US_export_policy.jar
./jre/lib/security/local_policy.jar
./jre/lib/jce.jar
./jre/lib/charsets.jar

mmontaseri@griffin:~/work/bug-91383/depot9/jvm/openjdk-1.8.0-20140822/jre/lib 
find . -perm 600  -ls
67241378  608 -rw---   1 mmontaseri software   617946 Aug 22 11:38 
./jsse.jar
67297842  260 -rw---   1 mmontaseri software   259148 Aug 22 11:38 
./ext/sunjce_provider.jar
67297843   12 -rw---   1 mmontaseri software 8286 Aug 22 11:38 
./ext/dnsns.jar
67297844   72 -rw---   1 mmontaseri software68844 Aug 22 11:38 
./ext/zipfs.jar
67297845 1560 -rw---   1 mmontaseri software  1589693 Aug 22 11:38 
./ext/nashorn.jar
67297846   36 -rw---   1 mmontaseri software35899 Aug 22 11:38 
./ext/sunec.jar
67297848  236 -rw---   1 mmontaseri software   235457 Aug 22 11:38 
./ext/sunpkcs11.jar
67297849 3776 -rw---   1 mmontaseri software  3860522 Aug 22 11:38 
./ext/cldrdata.jar
67297850 1156 -rw---   1 mmontaseri software  1178765 Aug 22 11:38 
./ext/localedata.jar
673464434 -rw---   1 mmontaseri software  620 Aug 22 11:38 
./security/US_export_policy.jar
673464444 -rw---   1 mmontaseri software 1040 Aug 22 11:38 
./security/local_policy.jar
67241387   96 -rw---   1 mmontaseri software93130 Aug 22 11:38 ./jce.jar
67241393 3064 -rw---   1 mmontaseri software  3131343 Aug 22 11:38 
./charsets.jar

Here is another way of showing thislets say I have my JRE packaged up in a 
tar file

tar -zvtf openjdk-1.8.0-jre-20140822.debian.tgz  | grep '^-rw---'
-rw--- root/root617946 2014-08-22 11:38 ./lib/jsse.jar
-rw--- root/root259148 2014-08-22 11:38 ./lib/ext/sunjce_provider.jar
-rw--- root/root  8286 2014-08-22 11:38 ./lib/ext/dnsns.jar
-rw--- root/root 68844 2014-08-22 11:38 ./lib/ext/zipfs.jar
-rw--- root/root   1589693 2014-08-22 11:38 ./lib/ext/nashorn.jar
-rw--- root/root 35899 2014-08-22 11:38 ./lib/ext/sunec.jar
-rw--- root/root235457 2014-08-22 11:38 ./lib/ext/sunpkcs11.jar
-rw--- root/root   3860522 2014-08-22 11:38 ./lib/ext/cldrdata.jar
-rw--- root/root   1178765 2014-08-22 11:38 ./lib/ext/localedata.jar
-rw--- root/root   620 2014-08-22 11:38 
./lib/security/US_export_policy.jar
-rw--- root/root  1040 2014-08-22 11:38 ./lib/security/local_policy.jar
-rw--- root/root 93130 2014-08-22 11:38 ./lib/jce.jar
-rw--- root/root   3131343 2014-08-22 11:38 ./lib/charsets.jar



Re: RFR 8054717: SJavac should track changes in the public apis of classpath classes!

2014-08-26 Thread Fredrik Öhrström
It seems like the development speed for sjavac needs to be increased
significantly, one JIRA bug, one 2 week review cycle, leads to one commit
is much too slow. I belive it would be good to have a separate repository
to do quicker development of sjavac, and test out all sorts of interesting
stuff, after which a larger more polished review can be published here. I
have now created such a high speed development repository and published my
changes that I made over two late night hacks:
https://bitbucket.org/jabberbeak/sjavac

I believe that now when the OpenJDK sources are modularized, we should move
sjavac to its own module perhaps jdk.sjavac. I also published a blog post
on the contents of the high speed development repository, called The Smart
Javac Wrapper JDK8 Backport with Extras and it can be found here:
http://fredrikohrstrom.blogspot.se/



On Fri, Aug 22, 2014 at 8:42 PM, Jonathan Gibbons 
jonathan.gibb...@oracle.com wrote:

  I think the path to a thin Java client is relatively quick and easy.

 Once you have located the server, you just have to change the protocol to
 send argv over the connection and accept stream output coming back.  The
 bulk of the code that currently lives in the fat client can equally well
 exist and be executed in the server.

 The bug that Eric described in his message of 08/21/2014 01:42 AM sounds
 as much like a bug in the build as in sjavac. If a file in a module is
 modified, in the worst case, all dependent modules should be recompiled.
 Yes, that is suboptimal, but at least it would give correct class files.
 sjavac may provide the means to reduce the set of modules that need to be
 recompiled, but the build should be capable of behaving reasonably even
 without sjavac.

 -- Jon



 On 08/22/2014 08:02 AM, Fredrik Öhrström wrote:

 The path to a super thin client is quite long with a lot of interesting
 technical problems (I suppose that is why the royal we has not authorized
 RFR:8044131 since that does not reach the thin client in one go, but is a
 mere first step) however classpath dependency tracking is needed now.



 2014-08-22 0:05 GMT+02:00 Jonathan Gibbons jonathan.gibb...@oracle.com:

 Fredrik,

 Can you please explain the following some more:

  It is important that this public api scanning does not require a javac
 server started though.


  This is /not/ the direction we want to take sjavac.  We want to change
 sjavac from its current client/server split to a (very) thin client, with
 most of the work happening in the server.   In some version of an ideal
 world, the client would be so simple it could be written in C and not
 invoke a JVM at all.   The client should just locate the server (starting
 it if necessary) and then dispatch its command line args to be processed in
 the server.

 Doing more and more work in a cold unshared JVM to avoid doing work in a
 hot shared JVM seems like a bad way to go.

 -- Jon




 On 08/21/2014 01:42 AM, Erik Joelsson wrote:

 I can't comment on the code quality of this patch, but I do think this
 feature is important. I can't recommend people to try sjavac with a
 straight face at the moment as it will no longer guarantee a correct
 incremental build. The current behavior when I add a public field to
 java/lang/Object is that all of java.base is recompiled, then the rest of
 the modules are sent to sjavac (as make thinks they need to be recompiled)
 and sjavac does nothing with them.

 /Erik

 On 2014-08-09 00:22, Fredrik Öhrström wrote:

 Here is very useful feature addition to sjavac, in fact it is required
 for a modularized OpenJDK build (Jigsawified), where not all sources are
 sent to sjavac at the same time.

 sjavac should track the public apis of the classes in the classpath,
 that the previous compile has linked to. If the public api of the linked to
 classes has changed, then this should trigger a recompile of the
 appropriate sources.

 This is a very useful feature. Currently sjavac must be fed all sources
 that belong to the product in a single huge compile. The OpenJDK is already
 at the limit of what fits in a reasonable (of today) sized Java heap. Other
 products are significantly larger and therefore cannot make use of the
 incremental compile in sjavac.

 With this feature, it is possible to compile the product as separate
 jar files, as long as the build dependencies for the jar files are a
 directed acyclic graph, then each succesive compile will detect if there
 were any changes in the public apis of the dependency jar files. If the
 public apis of the dependencies were not changed, and there were no other
 source changes for that jar, it will not be recompiled! But if there were
 changes in the public apis of the dependencies, then only the appropriate
 parts of the jar will be recompiled!

 This is the first draft of this large patch. In particular the new file
 Compile.java is a misnamer, it does NOT compile, it is used to extract the
 public apis of the classes on the classpath. Somehowe