From bourges.laurent at gmail.com Fri Mar 6 18:35:32 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 6 Mar 2015 19:35:32 +0100 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> Message-ID: Jim, Here is my first "official" webrev (vs graphics-rasterizer forest) concerning Path2D copy constructors: http://cr.openjdk.java.net/~lbourges/webrev_Path2D_0/ this is a simple Path2D patch to trim arrays (numTypes & float/double Coords) in copy constructors (Path2D.Float and Path2D.Double variants) with the requested test: Path2DTrimCopy. Please tell me if the test is correct as I do not run it with jtreg (annotations ?) > > 2015-02-25 2:05 GMT+01:00 Jim Graham : > >> Those changes were exactly what I was referring to. I don't see why we >> shouldn't make trimmed arrays when copying the shape. I'm pretty sure that >> the copy constructors are going to be overwhelmingly used to make a >> protected copy of an existing shape/path2d which is likely meant mostly for >> reading. In particular, in the case of the return value from >> createStrokedShape() I don't think the intention is to create the shape and >> then scribble on it, the intent is to treat the answer as if it were >> immutable - at least the 99.9% case - so I think a perfectly sized shape is >> OK. >> >> Be sure to add a test case that creates an empty Path2D, clones it, copy >> constructs it (to both .Double() and .Float() variants) and then tries to >> add new segments to it - to make sure that the array growth code doesn't >> get ArrayIndexOutOfBounds exceptions due to making assumptions about the >> lengths of the arrays (I eyeballed the makeRoom() code and it looks good, >> but we should test it if we are making arrays that are potentially zero >> length or very tiny)... >> >> Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Fri Mar 6 19:06:02 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 06 Mar 2015 11:06:02 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> Message-ID: <54F9FA9A.1060705@oracle.com> Hi, you placed the test in the java.awt.geom package. 25 package java.awt.geom; and are accessing internals of that package. In jigsaw/modular mode that won't even compile. So the test should go in the anonymous package and avoid accessing internals. It should be possible to use just public API to verify the arrays of a shape being cloned are trimmed . Why is it necessary to explicitly add the call to super(); ? 223 super(); -phil. On 3/6/2015 10:35 AM, Laurent Bourg?s wrote: > Jim, > > Here is my first "official" webrev (vs graphics-rasterizer forest) > concerning Path2D copy constructors: > http://cr.openjdk.java.net/~lbourges/webrev_Path2D_0/ > > > this is a simple Path2D patch to trim arrays (numTypes & float/double > Coords) in copy constructors (Path2D.Float and Path2D.Double variants) > with the requested test: Path2DTrimCopy. > > Please tell me if the test is correct as I do not run it with jtreg > (annotations ?) > > > 2015-02-25 2:05 GMT+01:00 Jim Graham >: > > Those changes were exactly what I was referring to. I don't > see why we shouldn't make trimmed arrays when copying the > shape. I'm pretty sure that the copy constructors are going > to be overwhelmingly used to make a protected copy of an > existing shape/path2d which is likely meant mostly for > reading. In particular, in the case of the return value from > createStrokedShape() I don't think the intention is to create > the shape and then scribble on it, the intent is to treat the > answer as if it were immutable - at least the 99.9% case - so > I think a perfectly sized shape is OK. > > Be sure to add a test case that creates an empty Path2D, > clones it, copy constructs it (to both .Double() and .Float() > variants) and then tries to add new segments to it - to make > sure that the array growth code doesn't get > ArrayIndexOutOfBounds exceptions due to making assumptions > about the lengths of the arrays (I eyeballed the makeRoom() > code and it looks good, but we should test it if we are making > arrays that are potentially zero length or very tiny)... > > > Laurent From bourges.laurent at gmail.com Fri Mar 6 20:37:03 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 6 Mar 2015 21:37:03 +0100 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: <54F9FA9A.1060705@oracle.com> References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> Message-ID: Phil, Thanks for your feedback ! 2015-03-06 20:06 GMT+01:00 Phil Race : > Hi, > > you placed the test in the java.awt.geom package. > > 25 package java.awt.geom; > > and are accessing internals of that package. > > In jigsaw/modular mode that won't even compile. > Ok it is annoying: as all Path2D fields are package protected, I designed the test using direct access to any fields ... > So the test should go in the anonymous package and avoid accessing > internals. > It should be possible to use just public API to verify the arrays of a > shape > being cloned are trimmed . > No, it is not possible to use Shape API to access arrays nor fields (numTypes ...): only getPathIterator() could give me data but it won't tell me if the underlying arrays or fields are correct. Maybe I could use introspection to getDeclaredField(name) and setAccessible(true) to get internal data. Any idea or utility class I could use ? > > Why is it necessary to explicitly add the call to super(); ? > > 223 super(); > I agree it is not necessary but it explicitely says that I use the empty constructor: /** * Constructs a new empty {@code Path2D} object. * It is assumed that the package sibling subclass that is * defaulting to this constructor will fill in all values. * * @since 1.6 */ /* private protected */ Path2D() { } Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Fri Mar 6 21:29:32 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 06 Mar 2015 13:29:32 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> Message-ID: <54FA1C3C.50104@oracle.com> Hi, On 03/06/2015 12:37 PM, Laurent Bourg?s wrote: > Phil, > > Thanks for your feedback ! > > 2015-03-06 20:06 GMT+01:00 Phil Race >: > > Hi, > > you placed the test in the java.awt.geom package. > > 25 package java.awt.geom; > > and are accessing internals of that package. > > In jigsaw/modular mode that won't even compile. > > > Ok it is annoying: > as all Path2D fields are package protected, I designed the test using > direct access to any fields ... > > > So the test should go in the anonymous package and avoid accessing > internals. > It should be possible to use just public API to verify the > arrays of a shape > being cloned are trimmed . > > > No, it is not possible to use Shape API to access arrays nor fields > (numTypes ...): > only getPathIterator() could give me data but it won't tell me if the > underlying arrays or fields are correct. That is true .. Well, if you need it to be in java.awt.geom, I think even today you'll find it won't work unless you jump through some jtreg hoops to install it on the bootclasspath. I think its something like "@run main/othervm -Xbootclasspath/a:. " And later in the modular JDK it will need to be modified again. I'd say either update the test to work with jtreg today - and test it to be sure, or provide the test without an @test tag, or with an @ignore tag, so people can still manually verify it but the harness won't run it. > > Maybe I could use introspection to getDeclaredField(name) and > setAccessible(true) to get internal data. That won't work either. So maybe this is a "noreg-hard" or "noreg-cleanup" bug. We add those labels to the JBS/JIRA bug when something isn't testable. > > Any idea or utility class I could use > > Why is it necessary to explicitly add the call to super(); ? > > 223 super(); > > > I agree it is not necessary but it explicitely says that I use the > empty constructor: > > /** > * Constructs a new empty {@code Path2D} object. > * It is assumed that the package sibling subclass that is > * defaulting to this constructor will fill in all values. > * > * @since 1.6 > */ > /* private protected */ > Path2D() { > } If we all did this, all of the time, there'd be a lot of extra lines in the code, that the compiler would fill in for us anyway. -phil. > > Laurent > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Fri Mar 6 22:03:16 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 6 Mar 2015 23:03:16 +0100 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: <54FA1C3C.50104@oracle.com> References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA1C3C.50104@oracle.com> Message-ID: Phil, Here is a new webrev: http://cr.openjdk.java.net/~lbourges/webrev_Path2D_1/ See my comments below: > you placed the test in the java.awt.geom package. >> >> 25 package java.awt.geom; >> >> and are accessing internals of that package. >> >> In jigsaw/modular mode that won't even compile. >> > > Ok it is annoying: > as all Path2D fields are package protected, I designed the test using > direct access to any fields ... > > >> So the test should go in the anonymous package and avoid accessing >> internals. >> It should be possible to use just public API to verify the arrays of a >> shape >> being cloned are trimmed . >> > > No, it is not possible to use Shape API to access arrays nor fields > (numTypes ...): > only getPathIterator() could give me data but it won't tell me if the > underlying arrays or fields are correct. > > > That is true .. > > Well, if you need it to be in java.awt.geom, I think even today you'll > find it won't work > unless you jump through some jtreg hoops to install it on the > bootclasspath. > I think its something like "@run main/othervm -Xbootclasspath/a:. " > And later in the modular JDK it will need to be modified again. > > I'd say either update the test to work with jtreg today - and test it to > be sure, > or provide the test without an @test tag, or with an @ignore tag, so > people can > still manually verify it but the harness won't run it. > I removed the @test tag but added comments indicating to run the test manually. > > > Maybe I could use introspection to getDeclaredField(name) and > setAccessible(true) to get internal data. > > > That won't work either. So maybe this is a "noreg-hard" or "noreg-cleanup" > bug. > We add those labels to the JBS/JIRA bug when something isn't testable. > Nevermind. > Any idea or utility class I could use > > > >> Why is it necessary to explicitly add the call to super(); ? >> >> 223 super(); >> > > I agree it is not necessary but it explicitely says that I use the empty > constructor: > > /** > * Constructs a new empty {@code Path2D} object. > * It is assumed that the package sibling subclass that is > * defaulting to this constructor will fill in all values. > * > * @since 1.6 > */ > /* private protected */ > Path2D() { > } > > > If we all did this, all of the time, there'd be a lot of extra lines in > the code, that the compiler > would fill in for us anyway. > I removed the superfluous super() calls. Thanks for your review, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Fri Mar 6 23:00:08 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 06 Mar 2015 15:00:08 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA1C3C.50104@oracle.com> Message-ID: <54FA3178.6020002@oracle.com> Hi, Two more things regarding the test 1. It was pointed out that you are using GPL+CP .. tests just use GPL 2. There's no @bug tag the test. In fact there's no bug ID here at all :-) A bug ID is needed in order to push. You have a JBS account now so could have created it yourself .. but by the time I remembered that I'd already created it for you :- https://bugs.openjdk.java.net/browse/JDK-8074587 But I did assign it to you :-) -phil. On 03/06/2015 02:03 PM, Laurent Bourg?s wrote: > Phil, > > Here is a new webrev: > http://cr.openjdk.java.net/~lbourges/webrev_Path2D_1/ > > > See my comments below: > >> you placed the test in the java.awt.geom package. >> >> 25 package java.awt.geom; >> >> and are accessing internals of that package. >> >> In jigsaw/modular mode that won't even compile. >> >> >> Ok it is annoying: >> as all Path2D fields are package protected, I designed the test >> using direct access to any fields ... >> >> >> So the test should go in the anonymous package and avoid >> accessing internals. >> It should be possible to use just public API to verify the >> arrays of a shape >> being cloned are trimmed . >> >> >> No, it is not possible to use Shape API to access arrays nor >> fields (numTypes ...): >> only getPathIterator() could give me data but it won't tell me if >> the underlying arrays or fields are correct. > > That is true .. > > Well, if you need it to be in java.awt.geom, I think even today > you'll find it won't work > unless you jump through some jtreg hoops to install it on the > bootclasspath. > I think its something like "@run main/othervm -Xbootclasspath/a:. " > And later in the modular JDK it will need to be modified again. > > I'd say either update the test to work with jtreg today - and test > it to be sure, > or provide the test without an @test tag, or with an @ignore tag, > so people can > still manually verify it but the harness won't run it. > > > I removed the @test tag but added comments indicating to run the test > manually. > > >> >> Maybe I could use introspection to getDeclaredField(name) and >> setAccessible(true) to get internal data. > > That won't work either. So maybe this is a "noreg-hard" or > "noreg-cleanup" bug. > We add those labels to the JBS/JIRA bug when something isn't testable. > > > Nevermind. > > >> Any idea or utility class I could use > >> >> Why is it necessary to explicitly add the call to super(); ? >> >> 223 super(); >> >> >> I agree it is not necessary but it explicitely says that I use >> the empty constructor: >> >> /** >> * Constructs a new empty {@code Path2D} object. >> * It is assumed that the package sibling subclass that is >> * defaulting to this constructor will fill in all values. >> * >> * @since 1.6 >> */ >> /* private protected */ >> Path2D() { >> } > > If we all did this, all of the time, there'd be a lot of extra > lines in the code, that the compiler > would fill in for us anyway. > > > I removed the superfluous super() calls. > > Thanks for your review, > > Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Fri Mar 6 23:21:47 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Sat, 7 Mar 2015 00:21:47 +0100 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: <54FA3178.6020002@oracle.com> References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA1C3C.50104@oracle.com> <54FA3178.6020002@oracle.com> Message-ID: Phil, > Two more things regarding the test > 1. It was pointed out that you are using GPL+CP .. tests just use GPL You mean I must fix the test file header ? > 2. There's no @bug tag the test. In fact there's no bug ID here at all :-) > > A bug ID is needed in order to push. > You have a JBS account now so could have created it yourself .. but > by the time I remembered that I'd already created it for you :- > https://bugs.openjdk.java.net/browse/JDK-8074587 > > But I did assign it to you :-) You're right, I got it. It seems it is not affected to the graphics rasterizer project, isn't it ? I am still not familiar with JBS nor pushing changes... I will read again the doc about pushing changesets ... tomorrow as it is late. Could you give some hints ? Do you need another webrev with the correct bug id ? Thanks, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Fri Mar 6 23:32:00 2015 From: philip.race at oracle.com (Phil Race) Date: Fri, 06 Mar 2015 15:32:00 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA1C3C.50104@oracle.com> <54FA3178.6020002@oracle.com> Message-ID: <54FA38F0.10907@oracle.com> On 03/06/2015 03:21 PM, Laurent Bourg?s wrote: > > Phil, > > > Two more things regarding the test > > 1. It was pointed out that you are using GPL+CP .. tests just use GPL > > You mean I must fix the test file header ? > Yes, please. > > 2. There's no @bug tag the test. In fact there's no bug ID here at > all :-) > > > > A bug ID is needed in order to push. > > You have a JBS account now so could have created it yourself .. but > > by the time I remembered that I'd already created it for you :- > >https://bugs.openjdk.java.net/browse/JDK-8074587 > > > > > But I did assign it to you :-) > > You're right, I got it. > It seems it is not affected to the graphics rasterizer project, isn't it ? > You can push to graphics rasterizer of course, and no bug ID is needed. But I assume this to be one that we'd want to push sooner rather than later to the JDK 9 client forest here :- http://hg.openjdk.java.net/jdk9/client/jdk since its not directly related to marlin > I am still not familiar with JBS nor pushing changes... > > I will read again the doc about pushing changesets ... tomorrow as it > is late. Could you give some hints ? > Jim or I will have to push it there (jdk9/client) for you of course, but the more such fixes you contribute, the sooner we can ask for JDK 9 committer rights as well. > Do you need another webrev with the correct bug id ? > Yes, in order to push it for you, but I'd suggest to hold off to see if Jim points out anything first .. -phil. > Thanks, > Laurent > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Sat Mar 7 01:28:05 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Mar 2015 17:28:05 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> Message-ID: <54FA5425.2090007@oracle.com> We should probably focus on a single Mailing List for code reviews. This particular review is not necessarily specific to the rasterizer, so it should probably have only been sent to the 2d-dev list (Path2D is owned by 2D). Also, please start a new thread for code reviews (and new topics). This code review will now be forever threaded with the long discussion about rasterizer optimizations because it shares too many headers with the other thread... :( ...jim On 3/6/15 10:35 AM, Laurent Bourg?s wrote: > Jim, > > Here is my first "official" webrev (vs graphics-rasterizer forest) > concerning Path2D copy constructors: > http://cr.openjdk.java.net/~lbourges/webrev_Path2D_0/ > > this is a simple Path2D patch to trim arrays (numTypes & float/double > Coords) in copy constructors (Path2D.Float and Path2D.Double variants) > with the requested test: Path2DTrimCopy. > > Please tell me if the test is correct as I do not run it with jtreg > (annotations ?) > > > 2015-02-25 2:05 GMT+01:00 Jim Graham >: > > Those changes were exactly what I was referring to. I don't see > why we shouldn't make trimmed arrays when copying the shape. > I'm pretty sure that the copy constructors are going to be > overwhelmingly used to make a protected copy of an existing > shape/path2d which is likely meant mostly for reading. In > particular, in the case of the return value from > createStrokedShape() I don't think the intention is to create > the shape and then scribble on it, the intent is to treat the > answer as if it were immutable - at least the 99.9% case - so I > think a perfectly sized shape is OK. > > Be sure to add a test case that creates an empty Path2D, clones > it, copy constructs it (to both .Double() and .Float() variants) > and then tries to add new segments to it - to make sure that the > array growth code doesn't get ArrayIndexOutOfBounds exceptions > due to making assumptions about the lengths of the arrays (I > eyeballed the makeRoom() code and it looks good, but we should > test it if we are making arrays that are potentially zero length > or very tiny)... > > > Laurent From james.graham at oracle.com Sat Mar 7 01:43:20 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Mar 2015 17:43:20 -0800 Subject: [OpenJDK Rasterizer] Path2D optimizations In-Reply-To: <54F9FA9A.1060705@oracle.com> References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> Message-ID: <54FA57B8.60201@oracle.com> First, the test cases that I asked for were to verify that a path that was cloned was still operational. I see no tests that verify that the returned objects will still function, only tests that examine internal data structures for a metric that may not be appropriate in the future. On 3/6/15 11:06 AM, Phil Race wrote: > So the test should go in the anonymous package and avoid accessing > internals. > It should be possible to use just public API to verify the arrays of a > shape > being cloned are trimmed . We should not be testing if the cloned arrays are trimmed. We don't care from a testing standpoint. It is an implementation detail of a performance feature and we should not write any test that says "Object A should do its work by doing X, Y, and Z". If we want to test performance then we should write a benchmark that tests how long it takes to do an operation. That will likely be a manual test, though. It should not be examining internals to take its measurements, though. Benchmarks tend to only use public APIs as they should be benchmarking operations that Java programs encounter. If we want to test if your fix will break something, then we need to test that. Currently your tests do not do that. We only need public APIs to do that. What I would like to see in the test: - Delete all of the existing tests in there. None of them are appropriate to our testing goals. - Write tests that create paths in various forms and run them through the following sub-tests: - each of the following should be tested on a fresh clone... - get a PathIterator and iterate it through until it is done (optional - compare to the expected segments that were in the original) - get a flattened PathIterator using "getPathIterator(flatness,)" and make sure it works (optional - compare to original path if the original was already flat) (but, also run it on a path with curves to make sure flattening engine didn't break) - add various kinds of segments to the cloned path - get the bounds of the cloned path - use the transform() method on the cloned path - call intersects(point), intersects(rect) and contains(rect) on a cloned path - call getCurrentPoint() on the cloned path - Perform each of the above tests on a (set of) clone(s) of the following paths: - each of the following executed on both a Float and a Double instance... - an empty path - a path with just a moveto - a path with a moveto+some lines - a path with a moveto+some curves The way I tend to write tests like this is to use cascading methods like: void testEqual(Path2D pathA, Path2D path2D pathB) { // Grab 2 path iterators and test for equality with float coords[] } void test(Path2D p2d, boolean isEmpty) { testEqual(new Path2D.Float(p2d), p2d); testEqual(new Path2D.Double(p2d), p2d); testEqual(new GeneralPath(p2d), p2d); testIterator(new Path2D.Float(p2d)); testIterator(new Path2D.Double(p2d)); testIterator((Path2D) p2d.clone()); testFlattening(... 3 clone variants ...); testAddMove(... 3 clone variants ...); // These should expect exception if empty testAddLine(... 3 clone variants ..., isEmpty); testAddQuad(... 3 clone variants ..., isEmpty); } interface PathFactory { Path2D makePath(); } void test(PathFactory pf) { test(pf.makePath(), true); test(addMove(pf.makePath()), false); test(addLines(pf.makePath()), false); test(addCurves(pf.makePath())), false); } @Test void testFloatPaths() { test(() -> new Path2D.Float()); } @Test void testDoublePaths() { test(() -> new Path2D.Double()); } @Test void testGeneralPath() { test(() -> new GeneralPath()); } ...jim From james.graham at oracle.com Sat Mar 7 01:45:29 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 06 Mar 2015 17:45:29 -0800 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Openjdk java2d rasterizer JEP for pisces (marlin) enhancements ? In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA1C3C.50104@oracle.com> Message-ID: <54FA5839.9030200@oracle.com> On lines 228 and 1069 you should not mix p2d and this. I would go with both p2d.pointTypes and p2d.numTypes in both cases... ...jim On 3/6/15 2:03 PM, Laurent Bourg?s wrote: > Phil, > > Here is a new webrev: > http://cr.openjdk.java.net/~lbourges/webrev_Path2D_1/ > > See my comments below: > >> you placed the test in the java.awt.geom package. >> >> 25 package java.awt.geom; >> >> and are accessing internals of that package. >> >> In jigsaw/modular mode that won't even compile. >> >> >> Ok it is annoying: >> as all Path2D fields are package protected, I designed the test >> using direct access to any fields ... >> >> >> So the test should go in the anonymous package and avoid >> accessing internals. >> It should be possible to use just public API to verify the >> arrays of a shape >> being cloned are trimmed . >> >> >> No, it is not possible to use Shape API to access arrays nor >> fields (numTypes ...): >> only getPathIterator() could give me data but it won't tell me if >> the underlying arrays or fields are correct. > > That is true .. > > Well, if you need it to be in java.awt.geom, I think even today > you'll find it won't work > unless you jump through some jtreg hoops to install it on the > bootclasspath. > I think its something like "@run main/othervm -Xbootclasspath/a:. " > And later in the modular JDK it will need to be modified again. > > I'd say either update the test to work with jtreg today - and test > it to be sure, > or provide the test without an @test tag, or with an @ignore tag, so > people can > still manually verify it but the harness won't run it. > > > I removed the @test tag but added comments indicating to run the test > manually. > > >> >> Maybe I could use introspection to getDeclaredField(name) and >> setAccessible(true) to get internal data. > > That won't work either. So maybe this is a "noreg-hard" or > "noreg-cleanup" bug. > We add those labels to the JBS/JIRA bug when something isn't testable. > > > Nevermind. > > >> Any idea or utility class I could use > >> >> Why is it necessary to explicitly add the call to super(); ? >> >> 223 super(); >> >> >> I agree it is not necessary but it explicitely says that I use the >> empty constructor: >> >> /** >> * Constructs a new empty {@code Path2D} object. >> * It is assumed that the package sibling subclass that is >> * defaulting to this constructor will fill in all values. >> * >> * @since 1.6 >> */ >> /* private protected */ >> Path2D() { >> } > > If we all did this, all of the time, there'd be a lot of extra lines > in the code, that the compiler > would fill in for us anyway. > > > I removed the superfluous super() calls. > > Thanks for your review, > > Laurent From bourges.laurent at gmail.com Sat Mar 7 23:18:33 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Sun, 8 Mar 2015 00:18:33 +0100 Subject: [OpenJDK Rasterizer] Path2D optimizations In-Reply-To: <54FA57B8.60201@oracle.com> References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> Message-ID: Jim, Ok, I will totally rewrite the Path2D test soon. I was busy on marlin optimizing its merge sort variant based on my mapbench's array data (stats...). I will publish soon a new release with an up-to-date report between pisces, marlin & ductus. Cheers, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Thu Mar 12 22:19:47 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 12 Mar 2015 23:19:47 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review Message-ID: Dear Andrea, Clemens, Dalibor, Jim & Phil, As discussed recently, I am glad to contribute the Marlin renderer to the OpenJDK project as a new standalone Java2D rasterizer. This work is derived from OpenJDK's pisces rasterizer started since march 2013 (OpenJDK 8) and evolved a lot to become more and more efficient into my github repository: https://github.com/bourgesl/marlin-renderer I am the principal author of the code (OpenJDK's license = GPL2+CP) and got help from Andr?a Aim?e. Andrea Aim? contributed to on some marlin parts (CollinearSimpifier, optional) and provided the initial MapBench tool, a generic java2d benchmark based on serialized java2d command batches: https://github.com/bourgesl/mapbench This tool helped me a lot to run tons of benchmarks comparing rasterizers on several GIS Map workloads, but also to test rendering regressions... Andr?a, could you confirm you want to contribute your marlin code to the the OpenJDK project too and have signed an OCA ? I made some code cleanup (line length ~ 80) but tried to keep it as close as the latest and fastest Marlin release 0.5.6 (yesterday) using sun.misc.Unsafe. I tested it with a full jdk9 build using the MapBench tool: it is working well except a bit slower than jdk8 (few percents). Maybe hotspot / JIT changed a lot ! openjdk version "1.9.0-internal" OpenJDK Runtime Environment (build 1.9.0-internal-bourgesl_2015_02_24_22_39-b00) OpenJDK 64-Bit Server VM (build 1.9.0-internal-bourgesl_2015_02_24_22_39-b00, mixed mode) To use it, just add the following argument: java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine ... If marlin is working, your should see the following lines in the standard output: INFO: =============================================================================== INFO: Marlin software rasterizer = ENABLED INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] INFO: sun.java2d.renderer = sun.java2d.marlin.MarlinRenderingEngine INFO: sun.java2d.renderer.useThreadLocal = true INFO: sun.java2d.renderer.useRef = soft INFO: sun.java2d.renderer.pixelsize = 2048 INFO: sun.java2d.renderer.subPixel_log2_X = 3 INFO: sun.java2d.renderer.subPixel_log2_Y = 3 INFO: sun.java2d.renderer.tileSize_log2 = 5 INFO: sun.java2d.renderer.useFastMath = true INFO: sun.java2d.renderer.useSimplifier = false INFO: sun.java2d.renderer.doStats = false INFO: sun.java2d.renderer.doMonitors = false INFO: sun.java2d.renderer.doChecks = false INFO: sun.java2d.renderer.useJul = false INFO: sun.java2d.renderer.logCreateContext = false INFO: sun.java2d.renderer.logUnsafeMalloc = false INFO: =============================================================================== INFO: AAShapePipe: overriding JDK implementation: marlin-renderer TILE patch enabled. As you can see, Marlin has many tuning parameters but also debugging flags: see https://github.com/bourgesl/marlin-renderer/wiki/Tuning-options Here is the initial webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.0/ note: I included the AAShapePipe tile patch but it can be another one. Thanks for your review & testing this patch, PS: I plan to publish soon an up-to-date complete benchmark report comparing ductus, pisces & marlin (JDK8) and also several marlin settings (ThreadLocal vs ConcurrentLinkedQueue storage, with / without AAShapePipe tile patch ...) Laurent -- Laurent Bourg?s -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Thu Mar 12 22:37:26 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 12 Mar 2015 15:37:26 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: Message-ID: <55021526.4030203@oracle.com> Hi Laurent, Thanks for sending this out! One helpful suggestion for generating the webrev would be to generate diffs against the previous renderer (for those files that are largely carried over). To do that, you need to supply a filename full of "filenames to diff", where there is a notation for "this file, which appears to be new, is actually moved from (or based on) this other file over there", as in: % cat webrev.files blah/blah/difffile1 blah/blah/difffile2 blah/blah/diffnewfile3 oldblah/oldblah/oldfile3 blah/blah/diffnewfile4 oldblah/oldblah/oldfile4 % webrev.ksh webrev.files This will generate a similar webrev as before, but when it comes to diffnewfile3 and diffnewfile4 it will use the indicated "oldfile" paths as the previous version to diff against. For example: src/java.desktop/share/classes/sun/java2d/marlin/Stroker.java src/java.desktop/share/classes/sun/java2d/pisces/Stroker.java And, while I'm suggesting creating a new webrev I might also point out that all of your copyrights are still 2014. You should probably add/substitute 2015 (depending on the history of the file)... ...jim On 3/12/15 3:19 PM, Laurent Bourg?s wrote: > Dear Andrea, Clemens, Dalibor, Jim & Phil, > > > As discussed recently, I am glad to contribute the Marlin renderer to > the OpenJDK project as a new standalone Java2D rasterizer. > > > This work is derived from OpenJDK's pisces rasterizer started since > march 2013 (OpenJDK 8) and evolved a lot to become more and more > efficient into my github repository: > https://github.com/bourgesl/marlin-renderer > > > I am the principal author of the code (OpenJDK's license = GPL2+CP) and > got help from Andr?a Aim?e. > > Andrea Aim? contributed to on some marlin parts (CollinearSimpifier, > optional) and provided the initial MapBench tool, a generic java2d > benchmark based on serialized java2d command batches: > https://github.com/bourgesl/mapbench > > This tool helped me a lot to run tons of benchmarks comparing > rasterizers on several GIS Map workloads, but also to test rendering > regressions... > > Andr?a, could you confirm you want to contribute your marlin code to the > the OpenJDK project too and have signed an OCA ? > > > I made some code cleanup (line length ~ 80) but tried to keep it as > close as the latest and fastest Marlin release 0.5.6 (yesterday) using > sun.misc.Unsafe. > > > I tested it with a full jdk9 build using the MapBench tool: it is > working well except a bit slower than jdk8 (few percents). Maybe hotspot > / JIT changed a lot ! > > openjdk version "1.9.0-internal" > OpenJDK Runtime Environment (build > 1.9.0-internal-bourgesl_2015_02_24_22_39-b00) > OpenJDK 64-Bit Server VM (build > 1.9.0-internal-bourgesl_2015_02_24_22_39-b00, mixed mode) > > > To use it, just add the following argument: > java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine ... > > > If marlin is working, your should see the following lines in the > standard output: > INFO: > =============================================================================== > INFO: Marlin software rasterizer = ENABLED > INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] > INFO: sun.java2d.renderer = > sun.java2d.marlin.MarlinRenderingEngine > INFO: sun.java2d.renderer.useThreadLocal = true > INFO: sun.java2d.renderer.useRef = soft > INFO: sun.java2d.renderer.pixelsize = 2048 > INFO: sun.java2d.renderer.subPixel_log2_X = 3 > INFO: sun.java2d.renderer.subPixel_log2_Y = 3 > INFO: sun.java2d.renderer.tileSize_log2 = 5 > INFO: sun.java2d.renderer.useFastMath = true > INFO: sun.java2d.renderer.useSimplifier = false > INFO: sun.java2d.renderer.doStats = false > INFO: sun.java2d.renderer.doMonitors = false > INFO: sun.java2d.renderer.doChecks = false > INFO: sun.java2d.renderer.useJul = false > INFO: sun.java2d.renderer.logCreateContext = false > INFO: sun.java2d.renderer.logUnsafeMalloc = false > INFO: > =============================================================================== > INFO: AAShapePipe: overriding JDK implementation: marlin-renderer TILE > patch enabled. > > As you can see, Marlin has many tuning parameters but also debugging > flags: see https://github.com/bourgesl/marlin-renderer/wiki/Tuning-options > > > Here is the initial webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.0/ > > note: I included the AAShapePipe tile patch but it can be another one. > > > Thanks for your review & testing this patch, > > > PS: I plan to publish soon an up-to-date complete benchmark report > comparing ductus, pisces & marlin (JDK8) and also several marlin > settings (ThreadLocal vs ConcurrentLinkedQueue storage, with / without > AAShapePipe tile patch ...) > > > Laurent > > -- > Laurent Bourg?s From philip.race at oracle.com Thu Mar 12 22:41:53 2015 From: philip.race at oracle.com (Phil Race) Date: Thu, 12 Mar 2015 15:41:53 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: Message-ID: <55021631.7060302@oracle.com> On 3/12/2015 3:19 PM, Laurent Bourg?s wrote: > Andr?a, could you confirm you want to contribute your marlin code to > the the OpenJDK project too and have signed an OCA ? Andr?a is listed as having signed the OCA :- http://www.oracle.com/technetwork/community/oca-486395.html#a "andrea Aime - OpenJDK - aaime" -phil. From james.graham at oracle.com Thu Mar 12 22:43:53 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 12 Mar 2015 15:43:53 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <55021526.4030203@oracle.com> References: <55021526.4030203@oracle.com> Message-ID: <550216A9.4050409@oracle.com> Just to be clear - I'm not suggesting that the files be moved anywhere, they are fine in the new marlin package directory as they are presented here. I'm just describing a technique for getting webrev.ksh to provide context diffs of the files against other (older) versions of those files that are in a different part of the repo (so that reviewers can see what was changed to make the new versions)... ...jim On 3/12/15 3:37 PM, Jim Graham wrote: > Hi Laurent, > > Thanks for sending this out! One helpful suggestion for generating the > webrev would be to generate diffs against the previous renderer (for > those files that are largely carried over). To do that, you need to > supply a filename full of "filenames to diff", where there is a notation > for "this file, which appears to be new, is actually moved from (or > based on) this other file over there", as in: > > % cat webrev.files > blah/blah/difffile1 > blah/blah/difffile2 > blah/blah/diffnewfile3 oldblah/oldblah/oldfile3 > blah/blah/diffnewfile4 oldblah/oldblah/oldfile4 > % webrev.ksh webrev.files > > This will generate a similar webrev as before, but when it comes to > diffnewfile3 and diffnewfile4 it will use the indicated "oldfile" paths > as the previous version to diff against. For example: > > src/java.desktop/share/classes/sun/java2d/marlin/Stroker.java > src/java.desktop/share/classes/sun/java2d/pisces/Stroker.java > > And, while I'm suggesting creating a new webrev I might also point out > that all of your copyrights are still 2014. You should probably > add/substitute 2015 (depending on the history of the file)... > > ...jim > > On 3/12/15 3:19 PM, Laurent Bourg?s wrote: >> Dear Andrea, Clemens, Dalibor, Jim & Phil, >> >> >> As discussed recently, I am glad to contribute the Marlin renderer to >> the OpenJDK project as a new standalone Java2D rasterizer. >> >> >> This work is derived from OpenJDK's pisces rasterizer started since >> march 2013 (OpenJDK 8) and evolved a lot to become more and more >> efficient into my github repository: >> https://github.com/bourgesl/marlin-renderer >> >> >> I am the principal author of the code (OpenJDK's license = GPL2+CP) and >> got help from Andr?a Aim?e. >> >> Andrea Aim? contributed to on some marlin parts (CollinearSimpifier, >> optional) and provided the initial MapBench tool, a generic java2d >> benchmark based on serialized java2d command batches: >> https://github.com/bourgesl/mapbench >> >> This tool helped me a lot to run tons of benchmarks comparing >> rasterizers on several GIS Map workloads, but also to test rendering >> regressions... >> >> Andr?a, could you confirm you want to contribute your marlin code to the >> the OpenJDK project too and have signed an OCA ? >> >> >> I made some code cleanup (line length ~ 80) but tried to keep it as >> close as the latest and fastest Marlin release 0.5.6 (yesterday) using >> sun.misc.Unsafe. >> >> >> I tested it with a full jdk9 build using the MapBench tool: it is >> working well except a bit slower than jdk8 (few percents). Maybe hotspot >> / JIT changed a lot ! >> >> openjdk version "1.9.0-internal" >> OpenJDK Runtime Environment (build >> 1.9.0-internal-bourgesl_2015_02_24_22_39-b00) >> OpenJDK 64-Bit Server VM (build >> 1.9.0-internal-bourgesl_2015_02_24_22_39-b00, mixed mode) >> >> >> To use it, just add the following argument: >> java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine ... >> >> >> If marlin is working, your should see the following lines in the >> standard output: >> INFO: >> =============================================================================== >> >> INFO: Marlin software rasterizer = ENABLED >> INFO: Version = >> [marlin-0.5.6-Unsafe-OpenJDK] >> INFO: sun.java2d.renderer = >> sun.java2d.marlin.MarlinRenderingEngine >> INFO: sun.java2d.renderer.useThreadLocal = true >> INFO: sun.java2d.renderer.useRef = soft >> INFO: sun.java2d.renderer.pixelsize = 2048 >> INFO: sun.java2d.renderer.subPixel_log2_X = 3 >> INFO: sun.java2d.renderer.subPixel_log2_Y = 3 >> INFO: sun.java2d.renderer.tileSize_log2 = 5 >> INFO: sun.java2d.renderer.useFastMath = true >> INFO: sun.java2d.renderer.useSimplifier = false >> INFO: sun.java2d.renderer.doStats = false >> INFO: sun.java2d.renderer.doMonitors = false >> INFO: sun.java2d.renderer.doChecks = false >> INFO: sun.java2d.renderer.useJul = false >> INFO: sun.java2d.renderer.logCreateContext = false >> INFO: sun.java2d.renderer.logUnsafeMalloc = false >> INFO: >> =============================================================================== >> >> INFO: AAShapePipe: overriding JDK implementation: marlin-renderer TILE >> patch enabled. >> >> As you can see, Marlin has many tuning parameters but also debugging >> flags: see >> https://github.com/bourgesl/marlin-renderer/wiki/Tuning-options >> >> >> Here is the initial webrev: >> http://cr.openjdk.java.net/~lbourges/marlin/marlin.0/ >> >> note: I included the AAShapePipe tile patch but it can be another one. >> >> >> Thanks for your review & testing this patch, >> >> >> PS: I plan to publish soon an up-to-date complete benchmark report >> comparing ductus, pisces & marlin (JDK8) and also several marlin >> settings (ThreadLocal vs ConcurrentLinkedQueue storage, with / without >> AAShapePipe tile patch ...) >> >> >> Laurent >> >> -- >> Laurent Bourg?s From bourges.laurent at gmail.com Fri Mar 13 09:04:13 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 13 Mar 2015 10:04:13 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <550216A9.4050409@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> Message-ID: Jim, thanks for your advice, I agree the webrev is now against pisces: http://cr.openjdk.java.net/~lbourges/marlin/marlin.1/ I did not check if pisces evolved since march 2013 ! Could someone give me the pisces changelog (from mercurial) ? Here is the performance summary: http://cr.openjdk.java.net/~lbourges/marlin/report/perf_summary.htm *Threads* *4* *1* *2* *4* *Renderer* *Test count* *27* *9* *9* *9* *ductus* *Pct95* 355,442 157,616 263,145 645,566 *pisces* *Pct95* 398,576 345,619 373,08 477,03 *Marlin 0.5.6* *Pct95* 130,718 129,718 130,557 131,877 *Marlin JDK9* *Pct95* 137,709 134,898 138,736 139,494 All details (benchmark log files) are published: http://cr.openjdk.java.net/~lbourges/marlin/report/ PS: do you know if hotspot or JVM flags changed a lot that could explain the small slowdown with OpenJDK9 ? I may check JVM flags using -XX:+PrintCommandLineFlags -XX:+PrintFlagsFinal ... Cheers, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Fri Mar 13 23:50:11 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 13 Mar 2015 16:50:11 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> Message-ID: <550377B3.1070902@oracle.com> On 3/13/15 2:04 AM, Laurent Bourg?s wrote: > I did not check if pisces evolved since march 2013 ! > > Could someone give me the pisces changelog (from mercurial) ? There is one change that was pushed to the jdk9 master in the past couple of weeks that we don't have yet in the GR-team repo. I'm working on synchronizing the two. You can see the changelog here so you can get a head start on making similar fixes on the Marlin renderer while I work on the synch. http://hg.openjdk.java.net/jdk9/client/jdk/rev/3850097b0fe9 ...jim From bourges.laurent at gmail.com Sat Mar 14 09:02:15 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Sat, 14 Mar 2015 10:02:15 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <550377B3.1070902@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> Message-ID: Jim, > There is one change that was pushed to the jdk9 master in the past couple of weeks that we don't have yet in the GR-team repo. I'm working on synchronizing the two. You can see the changelog here so you can get a head start on making similar fixes on the Marlin renderer while I work on the synch. Do you mean I will have to submit another webrev based on the merged forrest ? > http://hg.openjdk.java.net/jdk9/client/jdk/rev/3850097b0fe9 Ok. As Andrea mentioned several times, Marlin does not have the fill bug with custom composite. I fixed it a long time ago when I reworked the clipping boundaries (half-open intervals) and optimized the corresponding rendering boundaries... If it is the only change since march 2013, the submitted patch is up to date. I can still spend some time verifying clip / bounds again soon. Clemens, are you listening ? Could you give me your feedback on the webrev ? As I said, I did not respect some coding convention, notably the max line length = 80 in the Renderer class because it would make the code totally unreadable due to the many loops / if blocks... Andrea, could you confirm you agree contributing your work to OpenJDK ? Dalibor, could you give your opinion on that process ? Could anybody test the given Marlin patch with jtreg tests ? And j2dBench ? Regards, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From andrea.aime at geo-solutions.it Sat Mar 14 14:54:14 2015 From: andrea.aime at geo-solutions.it (Andrea Aime) Date: Sat, 14 Mar 2015 15:54:14 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> Message-ID: On Sat, Mar 14, 2015 at 10:02 AM, Laurent Bourg?s wrote: > Andrea, could you confirm you agree contributing your work to OpenJDK ? > Hi Laurent, sorry for the late reply, been busy all week with a conference in San Francisco. Yes, I confirm all the code I provided to Marlin is meant to be included in OpenJDK Cheers Andrea -- == GeoServer Professional Services from the experts! Visit http://goo.gl/NWWaa2 for more information. == Ing. Andrea Aime @geowolf Technical Lead GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549 http://www.geo-solutions.it http://twitter.com/geosolutions_it *AVVERTENZE AI SENSI DEL D.Lgs. 196/2003* Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo ? consentito esclusivamente al destinatario del messaggio, per le finalit? indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalit? diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003. The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc. ------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Mon Mar 16 19:16:51 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 16 Mar 2015 12:16:51 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> Message-ID: <55072C23.7060204@oracle.com> On 3/14/2015 2:02 AM, Laurent Bourg?s wrote: > Jim, > > > There is one change that was pushed to the jdk9 master in the past > couple of weeks that we don't have yet in the GR-team repo. I'm working > on synchronizing the two. You can see the changelog here so you can get > a head start on making similar fixes on the Marlin renderer while I work > on the synch. > > Do you mean I will have to submit another webrev based on the merged > forrest ? > > > http://hg.openjdk.java.net/jdk9/client/jdk/rev/3850097b0fe9 > > Ok. As Andrea mentioned several times, Marlin does not have the fill bug > with custom composite. > > I fixed it a long time ago when I reworked the clipping boundaries > (half-open intervals) and optimized the corresponding rendering > boundaries... > > If it is the only change since march 2013, the submitted patch is up to > date. Sorry, I missed that claim in all of the emails. If you've reworked the way the boundaries work, then all is good. I'm still going to get us merged and up to date sometime today and then check that we've dotted the i's and crossed the t's on getting the initial Marlin patch in... ...jim From james.graham at oracle.com Tue Mar 17 18:08:22 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:08:22 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9: 46 new changesets Message-ID: <201503171808.t2HI8NTW023294@aojmv0008> Changeset: 381c5a34a4af Author: serb Date: 2015-02-16 20:02 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/381c5a34a4af 8039269: images/cursors should not be in ${java.home}/lib Reviewed-by: mchung, alanb, erikj ! make/CompileJavaModules.gmk Changeset: b082971efc21 Author: ddehaven Date: 2015-02-17 11:50 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/b082971efc21 Merge Changeset: 9e33546e9aab Author: erikj Date: 2015-02-23 11:37 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/9e33546e9aab 8073498: Enhance GensrcProperties.gmk to allow an alternative source root Reviewed-by: tbell, mchung, ihse ! make/MakeHelpers.gmk Changeset: a7f523a9c2f5 Author: chegar Date: 2015-02-23 15:51 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/a7f523a9c2f5 8064924: Update java.net.URL to work with modules Reviewed-by: alanb, plevart, psandoz ! make/common/CORE_PKGS.gmk Changeset: 3c3299ceeddd Author: prr Date: 2015-02-23 10:47 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/3c3299ceeddd Merge Changeset: 0c6ab35a9db4 Author: juh Date: 2015-02-23 11:42 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/0c6ab35a9db4 8072663: Remove the sun.security.acl package which is not used in the JDK Reviewed-by: mullan, alanb, mchung ! common/bin/unshuffle_list.txt Changeset: 1e62ebf45f79 Author: ihse Date: 2015-02-25 11:04 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/1e62ebf45f79 8073231: Add convenient way of adding custom configure options to jprt Reviewed-by: erikj, tbell Contributed-by: ingemar.aberg at oracle.com ! make/jprt.properties Changeset: 6fcde8f7bf77 Author: ihse Date: 2015-02-25 14:48 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/6fcde8f7bf77 8073862: BASIC_FIXUP_EXECUTABLE should not fail on empty path Reviewed-by: erikj ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh Changeset: 46e8332cefba Author: ihse Date: 2015-02-25 14:50 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/46e8332cefba 8073864: Configure must handle invalid elements on INCLUDE/LIB for visualstudio Reviewed-by: erikj ! common/autoconf/generated-configure.sh ! common/autoconf/toolchain_windows.m4 Changeset: 218fbcc39b4b Author: katleman Date: 2015-02-26 15:57 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/218fbcc39b4b Added tag jdk9-b52 for changeset 1822e59f1712 ! .hgtags Changeset: d6ed47125a76 Author: lana Date: 2015-02-26 20:16 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/d6ed47125a76 Merge Changeset: 23e62d3d9be0 Author: ihse Date: 2015-02-27 11:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/23e62d3d9be0 8072842: Add support for building native JTReg tests Reviewed-by: erikj, sla ! make/Main.gmk ! make/MakeHelpers.gmk ! make/common/MakeBase.gmk + make/common/TestFilesCompilation.gmk ! make/jprt.properties Changeset: cc1ab909baf7 Author: erikj Date: 2015-02-27 17:27 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/cc1ab909baf7 8073965: Bring compare.sh up to date with JDK 9 Reviewed-by: tbell, ihse ! common/bin/compare.sh ! common/bin/compare_exceptions.sh.incl Changeset: bd0b85405732 Author: ihse Date: 2015-03-02 13:45 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/bd0b85405732 8074055: Improvements in compare.sh from build-infra Reviewed-by: erikj ! common/bin/compare.sh Changeset: bbc8c8d00b7b Author: erikj Date: 2015-03-02 14:18 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/bbc8c8d00b7b 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris Reviewed-by: ihse ! make/Main.gmk Changeset: 1be5ec71bc7c Author: bchristi Date: 2015-03-02 13:35 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/1be5ec71bc7c 8073596: Add jdk.management.cmm in boot.modules that needs sun.management.spi be exported to it Reviewed-by: alanb, erikj, ihse, mchung ! modules.xml Changeset: 0282b3f5f749 Author: aph Date: 2014-11-21 11:24 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/0282b3f5f749 8064357: AARCH64: Top-level JDK changes Reviewed-by: ihse, twisti + common/autoconf/build-aux/autoconf-config.sub ! common/autoconf/build-aux/config.sub ! common/autoconf/generated-configure.sh ! common/autoconf/jdk-options.m4 ! common/autoconf/platform.m4 Changeset: df8fda9c150e Author: kvn Date: 2014-11-21 14:55 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/df8fda9c150e Merge ! common/autoconf/generated-configure.sh ! common/autoconf/jdk-options.m4 ! common/autoconf/platform.m4 Changeset: b052cb38b985 Author: kvn Date: 2014-12-11 15:05 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/b052cb38b985 Merge ! common/autoconf/generated-configure.sh Changeset: c360aeb77273 Author: dlong Date: 2015-01-15 15:12 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/c360aeb77273 8068927: AARCH64: better handling of aarch64- triples Summary: convert aarch64- to arm-, let upstream code do the work, then convert back to aarch64- Reviewed-by: ihse ! common/autoconf/build-aux/config.sub Changeset: 8b84d584d52b Author: kvn Date: 2015-01-20 15:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/8b84d584d52b Merge ! common/autoconf/generated-configure.sh ! common/autoconf/platform.m4 Changeset: 62137d84ff9c Author: kvn Date: 2015-02-26 10:56 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/62137d84ff9c Merge ! common/autoconf/generated-configure.sh Changeset: 6b8047426035 Author: kvn Date: 2015-03-02 10:08 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/6b8047426035 Merge Changeset: 905c8779acc5 Author: kvn Date: 2015-03-02 15:15 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/905c8779acc5 Merge Changeset: 60f674776534 Author: prr Date: 2015-03-03 08:48 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/60f674776534 Merge Changeset: 8b9bd5ba445e Author: ihse Date: 2015-03-06 14:53 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/8b9bd5ba445e 8074554: Create custom hook for running after AC_OUTPUT Reviewed-by: erikj ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh Changeset: fa6d6b488442 Author: ihse Date: 2015-03-04 10:47 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/fa6d6b488442 8074099: Even with toolchain type clang, OBJC is set to gcc Reviewed-by: erikj, ddehaven ! common/autoconf/generated-configure.sh ! common/autoconf/spec.gmk.in ! common/autoconf/toolchain.m4 ! make/common/NativeCompilation.gmk Changeset: 1f526efef765 Author: erikj Date: 2015-03-04 11:00 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/1f526efef765 8074091: Remove dead code from merge mistake in JavaCompilation.gmk Reviewed-by: ihse ! make/common/JavaCompilation.gmk Changeset: d140b51ac9bb Author: srl Date: 2015-03-04 09:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/d140b51ac9bb 8074048: ccache 1.3.10 still not detected properly Summary: Fix configure to detect ccache 1.3.10 properly Reviewed-by: erikj Contributed-by: steven.loomis at oracle.com ! common/autoconf/build-performance.m4 ! common/autoconf/generated-configure.sh Changeset: c802785ba3a7 Author: erikj Date: 2015-03-05 10:29 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/c802785ba3a7 8074395: Random build failures in javadoc on Solaris Reviewed-by: tbell ! make/Javadoc.gmk Changeset: c83b132d6f51 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/c83b132d6f51 Added tag jdk9-b53 for changeset d6ed47125a76 ! .hgtags Changeset: cb7367141e91 Author: lana Date: 2015-03-05 15:21 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/cb7367141e91 Merge Changeset: eaa3ab0ea346 Author: mchung Date: 2015-03-06 09:02 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/eaa3ab0ea346 8074428: Move pack200, unpack200, libpack200 to jdk.pack200 Reviewed-by: alanb, weijun, erikj, ihse ! common/bin/unshuffle_list.txt ! make/Images.gmk ! modules.xml Changeset: e15f4f47d00e Author: mchung Date: 2015-03-06 09:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/e15f4f47d00e 8074429: Move jar, jarsigner tool to jdk.jartool module Reviewed-by: alanb, weijun, erikj, ihse ! common/bin/unshuffle_list.txt ! make/Images.gmk ! modules.xml Changeset: e4ac72088e21 Author: mchung Date: 2015-03-06 11:00 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/e4ac72088e21 8074430: Move policytool to jdk.policytool module Reviewed-by: alanb, weijun, erikj, ihse ! common/bin/unshuffle_list.txt ! make/Images.gmk ! modules.xml Changeset: 895d48a23a86 Author: ihse Date: 2015-03-09 10:39 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/895d48a23a86 8074096: Disable (most) native warnings in JDK on a per-library basis Reviewed-by: erikj, tbell ! common/autoconf/flags.m4 ! common/autoconf/generated-configure.sh ! common/autoconf/spec.gmk.in ! make/common/MakeBase.gmk ! make/common/NativeCompilation.gmk Changeset: c97a8eb28fd5 Author: prr Date: 2015-03-09 09:49 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/c97a8eb28fd5 Merge ! common/autoconf/generated-configure.sh Changeset: 09e4660d7815 Author: erikj Date: 2015-03-10 14:36 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/09e4660d7815 8073021: add native code coverage target into makefiles Reviewed-by: ihse, tbell, iignatyev ! common/autoconf/configure.ac ! common/autoconf/flags.m4 ! common/autoconf/generated-configure.sh ! common/autoconf/jdk-options.m4 ! common/autoconf/spec.gmk.in ! make/Images.gmk ! make/Jprt.gmk ! make/Main.gmk ! make/common/TestFilesCompilation.gmk Changeset: c053f9a0aa72 Author: thartmann Date: 2015-02-23 08:48 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/c053f9a0aa72 8072774: bigapps/Weblogic+medrec/nowarnings fails due to CodeHeap 'profiled nmethods' exhaustion Summary: Store profiled code in the non-profiled code heap (and vice versa) if the code cache is really full. Reviewed-by: kvn, iveresov ! test/lib/sun/hotspot/code/BlobType.java Changeset: 2caf1c113570 Author: vlivanov Date: 2015-02-24 07:38 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/2caf1c113570 Merge Changeset: 13edab552bd0 Author: vlivanov Date: 2015-03-02 07:20 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/13edab552bd0 Merge Changeset: 0152071ab1ba Author: amurillo Date: 2015-03-06 04:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/0152071ab1ba Merge Changeset: 6c3aad0bbc08 Author: amurillo Date: 2015-03-10 14:09 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/6c3aad0bbc08 Merge Changeset: 6ad4e1ab9bc4 Author: prr Date: 2015-03-11 08:25 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/6ad4e1ab9bc4 8074910: hgforest.sh needs an option to bring over a smaller set of extra repos Reviewed-by: erikj, chegar ! common/bin/hgforest.sh Changeset: dc3a27524b39 Author: prr Date: 2015-03-11 08:30 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/dc3a27524b39 Merge ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh Changeset: 570b03b47e28 Author: tbell Date: 2015-03-16 17:59 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/rev/570b03b47e28 8061346: Source changes needed to build JDK 9 with Mac OS9 'Maverics' and clang/Xcode 5.1.1 Reviewed-by: dholmes, erikj ! make/jprt.properties From james.graham at oracle.com Tue Mar 17 18:08:27 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:08:27 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/corba: 4 new changesets Message-ID: <201503171808.t2HI8RFO023367@aojmv0008> Changeset: 47b9cf289a91 Author: mchung Date: 2015-02-24 12:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/corba/rev/47b9cf289a91 8073696: Remove unused imports in java.corba, java.jaxws, jdk.httpserver Reviewed-by: alanb, chegar ! src/java.corba/share/classes/javax/rmi/CORBA/GetORBPropertiesFileAction.java Changeset: ceb2f1639281 Author: katleman Date: 2015-02-26 15:57 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/corba/rev/ceb2f1639281 Added tag jdk9-b52 for changeset b8538bbb6f22 ! .hgtags Changeset: aadc16ca5ab7 Author: lana Date: 2015-02-26 20:19 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/corba/rev/aadc16ca5ab7 Merge Changeset: d469c5ad0c76 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/corba/rev/d469c5ad0c76 Added tag jdk9-b53 for changeset aadc16ca5ab7 ! .hgtags From james.graham at oracle.com Tue Mar 17 18:08:58 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:08:58 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/hotspot: 110 new changesets Message-ID: <201503171808.t2HI8xWp023793@aojmv0008> Changeset: b00d819e1fcc Author: dholmes Date: 2015-02-13 06:23 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b00d819e1fcc 8072935: Fix missing newline at end of file after 8067447 Reviewed-by: dholmes, dlong Contributed-by: Thomas Stuefe ! src/share/vm/services/writeableFlags.cpp Changeset: b14b199c0eaa Author: ykantser Date: 2015-02-13 13:17 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b14b199c0eaa 8073132: Eliminate ProcessTools.getProcessId dependency on sun.management.VMManagement Reviewed-by: jbachorik, dfuchs, mchung ! test/testlibrary/com/oracle/java/testlibrary/ProcessTools.java Changeset: 30137e7eef47 Author: dcubed Date: 2015-02-13 10:01 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/30137e7eef47 8061553: Contended Locking fast enter bucket Summary: JEP-143/JDK-8061553 Contended Locking fast enter bucket Reviewed-by: dholmes, acorn Contributed-by: dave.dice at oracle.com, karen.kinnear at oracle.com, daniel.daugherty at oracle.com ! src/cpu/sparc/vm/macroAssembler_sparc.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/share/vm/runtime/interfaceSupport.hpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/synchronizer.hpp Changeset: 034eb71ab7fd Author: cjplummer Date: 2015-02-11 15:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/034eb71ab7fd 8054888: Runtime: Add Diagnostic Command that prints the class hierarchy Summary: Added the VM.class_hierarhcy DCMD Reviewed-by: stefank, miauno ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/runtime/vm_operations.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp ! test/Makefile + test/serviceability/dcmd/vm/ClassHierarchyTest.java Changeset: 32e5c73978d0 Author: jiangli Date: 2015-02-13 20:33 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/32e5c73978d0 Merge Changeset: 1358c53c32f1 Author: ctornqvi Date: 2015-02-13 15:05 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/1358c53c32f1 Merge Changeset: b3ff7aa031d3 Author: ctornqvi Date: 2015-02-14 00:03 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b3ff7aa031d3 Merge ! src/share/vm/services/diagnosticCommand.cpp Changeset: 53bc5f5b8378 Author: cjplummer Date: 2015-02-14 08:53 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/53bc5f5b8378 8073167: Undo change to -retain argument in hotspot/test/Makefile Summary: -retain:all changed back to -retain:fail,error Reviewed-by: stefank ! test/Makefile Changeset: dd131cca9937 Author: hseigel Date: 2015-02-17 13:19 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/dd131cca9937 8068687: Remove meta-index support and cleanup hotspot code for rt.jar etc in non-modular jdk image Summary: Remove the meta-index code and rt.jar code and comments Reviewed-by: mchung, gtriantafill ! src/share/vm/classfile/classLoader.cpp ! src/share/vm/classfile/classLoader.hpp ! src/share/vm/opto/cfgnode.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/type.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/os.cpp Changeset: ff7fa523a873 Author: ctornqvi Date: 2015-02-18 19:27 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ff7fa523a873 Merge Changeset: e993a176f3d7 Author: mlarsson Date: 2015-02-13 09:48 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/e993a176f3d7 8072621: Clean up around VM_GC_Operations Reviewed-by: brutisso, jmasa ! src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.hpp ! src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/runtime/globals.hpp Changeset: ad8ac65b4d77 Author: mlarsson Date: 2015-02-13 10:31 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ad8ac65b4d77 8066771: Refactor VM GC operations caused by allocation failure Reviewed-by: brutisso, jmasa ! src/share/vm/gc_implementation/g1/vm_operations_g1.cpp ! src/share/vm/gc_implementation/g1/vm_operations_g1.hpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp ! src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp Changeset: 96fec51ac851 Author: stefank Date: 2015-02-10 17:16 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/96fec51ac851 8072910: Move the g1EvacFailure.hpp implementation to g1EvacFailure.cpp Reviewed-by: jwilhelm, tschatzl ! src/cpu/ppc/vm/interp_masm_ppc_64.cpp + src/share/vm/gc_implementation/g1/g1EvacFailure.cpp ! src/share/vm/gc_implementation/g1/g1EvacFailure.hpp Changeset: 6a5be7f00868 Author: stefank Date: 2015-02-13 14:37 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/6a5be7f00868 8072911: Remove includes of oop.inline.hpp from .hpp files Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes ! src/cpu/ppc/vm/icBuffer_ppc.cpp ! src/cpu/ppc/vm/methodHandles_ppc.cpp ! src/cpu/sparc/vm/c1_MacroAssembler_sparc.cpp ! src/cpu/sparc/vm/icBuffer_sparc.cpp ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/x86/vm/c1_MacroAssembler_x86.cpp ! src/cpu/x86/vm/icBuffer_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/zero/vm/icBuffer_zero.cpp ! src/share/vm/adlc/main.cpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/ci/bcEscapeAnalyzer.cpp ! src/share/vm/ci/ciArray.cpp ! src/share/vm/ci/ciBaseObject.cpp ! src/share/vm/ci/ciCallSite.cpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciField.cpp ! src/share/vm/ci/ciInstance.hpp ! src/share/vm/ci/ciMetadata.cpp ! src/share/vm/ci/ciMethodData.hpp ! src/share/vm/ci/ciObjArray.cpp ! src/share/vm/ci/ciObject.cpp ! src/share/vm/ci/ciObjectFactory.cpp ! src/share/vm/ci/ciReplay.cpp ! src/share/vm/ci/ciTypeFlow.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/classLoaderData.cpp ! src/share/vm/classfile/classLoaderStats.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp + src/share/vm/classfile/javaClasses.inline.hpp ! src/share/vm/classfile/stringTable.cpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/verificationType.hpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/code/icBuffer.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp ! src/share/vm/gc_implementation/g1/g1StringDedup.cpp ! src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp ! src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp ! src/share/vm/gc_implementation/g1/heapRegion.inline.hpp ! src/share/vm/gc_implementation/shared/gcTrace.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/interpreterRuntime.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/barrierSet.inline.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/cardTableModRefBS.hpp + src/share/vm/memory/cardTableModRefBS.inline.hpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/space.inline.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/compiledICHolder.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/methodData.cpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayOop.hpp + src/share/vm/oops/objArrayOop.inline.hpp ! src/share/vm/oops/oop.cpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp - src/share/vm/oops/oop.inline2.hpp ! src/share/vm/opto/callGenerator.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/convertnode.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/graphKit.hpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/memnode.cpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/opto/stringopts.cpp ! src/share/vm/precompiled/precompiled.hpp ! src/share/vm/prims/forte.cpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiEnter.xsl ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiGetLoadedClasses.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/prims/wbtestmethods/parserTests.cpp ! src/share/vm/runtime/biasedLocking.cpp ! src/share/vm/runtime/dtraceJSDT.cpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/fprofiler.cpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/reflection.cpp ! src/share/vm/runtime/serviceThread.cpp ! src/share/vm/runtime/vframe_hp.cpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticFramework.cpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/management.cpp Changeset: d8ded1e4465b Author: sangheki Date: 2015-02-16 08:38 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/d8ded1e4465b 8073115: assert(_covered_region.contains(p)) needs better error messages Summary: Changed to print out related values Reviewed-by: jwilhelm, brutisso, stefank ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.cpp ! src/share/vm/gc_implementation/parallelScavenge/objectStartArray.hpp Changeset: 759a167d2381 Author: jwilhelm Date: 2015-02-16 21:24 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/759a167d2381 Merge ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/disassembler.cpp - src/share/vm/oops/oop.inline2.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/graphKit.hpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/management.cpp Changeset: 2f392e90f258 Author: stefank Date: 2015-02-18 08:57 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/2f392e90f258 8073387: Move VerifyOopClosures out from genOopClosures.hpp Reviewed-by: brutisso, mgerdin, coleenp ! src/share/vm/code/codeCache.cpp ! src/share/vm/memory/genOopClosures.hpp ! src/share/vm/oops/oop.cpp + src/share/vm/oops/verifyOopClosure.hpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmThread.cpp Changeset: 9f95e0a7aeb9 Author: jwilhelm Date: 2015-02-19 12:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/9f95e0a7aeb9 Merge ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/services/diagnosticCommand.cpp Changeset: 840306ef66e4 Author: drchase Date: 2015-02-17 13:54 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/840306ef66e4 8069412: Locks need better debug-printing support Summary: Added better debug-printing support and enhanced LogCompilation tool Reviewed-by: kvn, roland, dholmes ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java ! src/share/vm/oops/markOop.cpp ! src/share/vm/opto/callnode.cpp ! src/share/vm/opto/callnode.hpp ! src/share/vm/opto/escape.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/macro.cpp ! src/share/vm/runtime/basicLock.cpp ! src/share/vm/runtime/vframe.cpp Changeset: f1b92b73e6aa Author: iveresov Date: 2015-02-17 11:00 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/f1b92b73e6aa 8072753: Nondeterministic wrong answer on arithmetic Summary: Check for overflow when inverting the loop during the counted loop conversion Reviewed-by: kvn ! src/share/vm/opto/loopnode.cpp + test/compiler/loopopts/CountedLoopProblem.java Changeset: cf7251f51459 Author: iveresov Date: 2015-02-17 21:46 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/cf7251f51459 Merge Changeset: fd5c69442b0b Author: vlivanov Date: 2015-02-19 11:12 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/fd5c69442b0b Merge ! src/share/vm/opto/graphKit.cpp Changeset: f717f8d3538c Author: amurillo Date: 2015-02-20 14:14 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/f717f8d3538c Merge - src/share/vm/oops/oop.inline2.hpp Changeset: 27f0413cbea3 Author: katleman Date: 2015-02-26 15:57 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/27f0413cbea3 Added tag jdk9-b52 for changeset 9fb7fdc554db ! .hgtags Changeset: effd5ef0c3eb Author: lana Date: 2015-02-26 20:17 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/effd5ef0c3eb Merge - src/share/vm/oops/oop.inline2.hpp Changeset: b25ffc981c65 Author: ihse Date: 2015-02-27 11:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b25ffc981c65 8072842: Add support for building native JTReg tests Reviewed-by: erikj, sla + make/test/JtregNative.gmk ! test/Makefile ! test/TEST.groups + test/native_sanity/JniVersion.java + test/native_sanity/libJniVersion.c Changeset: cc8363b030d5 Author: aph Date: 2014-12-11 13:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/cc8363b030d5 8064611: AARCH64: Changes to HotSpot shared code Summary: Everything except cpu/ and os_cpu/ Reviewed-by: dholmes, goetz, dlong, coleenp, kvn ! agent/src/os/linux/LinuxDebuggerLocal.c ! agent/src/os/linux/libproc.h ! agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java + agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionAArch64.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/PlatformInfo.java ! make/defs.make + make/linux/makefiles/aarch64.make ! make/linux/makefiles/buildtree.make ! make/linux/makefiles/defs.make ! make/linux/makefiles/gcc.make + make/linux/platform_aarch64 ! src/os/linux/vm/os_linux.cpp ! src/share/vm/asm/assembler.hpp ! src/share/vm/asm/assembler.inline.hpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/asm/macroAssembler.hpp ! src/share/vm/asm/macroAssembler.inline.hpp ! src/share/vm/asm/register.hpp ! src/share/vm/c1/c1_Defs.hpp ! src/share/vm/c1/c1_FpuStackSim.hpp ! src/share/vm/c1/c1_FrameMap.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LinearScan.hpp ! src/share/vm/c1/c1_MacroAssembler.hpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/c1/c1_globals.hpp ! src/share/vm/code/nativeInst.hpp ! src/share/vm/code/relocInfo.hpp ! src/share/vm/code/vmreg.hpp ! src/share/vm/code/vmreg.inline.hpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/compiler/disassembler.hpp ! src/share/vm/interpreter/bytecodeInterpreter.hpp ! src/share/vm/interpreter/bytecodeInterpreter.inline.hpp ! src/share/vm/interpreter/cppInterpreter.hpp ! src/share/vm/interpreter/cppInterpreterGenerator.hpp ! src/share/vm/interpreter/interp_masm.hpp ! src/share/vm/interpreter/interpreter.hpp ! src/share/vm/interpreter/interpreterGenerator.hpp ! src/share/vm/interpreter/interpreterRuntime.hpp ! src/share/vm/interpreter/templateInterpreter.hpp ! src/share/vm/interpreter/templateInterpreterGenerator.hpp ! src/share/vm/interpreter/templateTable.hpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/opto/ad.hpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/optoreg.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/prims/jni_md.h ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/atomic.inline.hpp ! src/share/vm/runtime/frame.hpp ! src/share/vm/runtime/frame.inline.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/icache.hpp ! src/share/vm/runtime/javaCalls.hpp ! src/share/vm/runtime/javaFrameAnchor.hpp ! src/share/vm/runtime/orderAccess.inline.hpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/prefetch.inline.hpp ! src/share/vm/runtime/registerMap.hpp ! src/share/vm/runtime/stubRoutines.hpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/threadLocalStorage.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vm_version.cpp ! src/share/vm/utilities/bytes.hpp ! src/share/vm/utilities/copy.hpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/macros.hpp Changeset: 7bce4e135976 Author: kvn Date: 2014-12-11 15:06 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/7bce4e135976 Merge - agent/src/share/classes/sun/jvm/hotspot/memory/OneContigSpaceCardGeneration.java ! make/linux/makefiles/gcc.make - make/solaris/makefiles/add_gnu_debuglink.make - make/solaris/makefiles/fix_empty_sec_hdr_flags.make ! src/os/linux/vm/os_linux.cpp - src/os/solaris/add_gnu_debuglink/add_gnu_debuglink.c - src/os/solaris/fix_empty_sec_hdr_flags/fix_empty_sec_hdr_flags.c - src/share/vm/memory/generation.inline.hpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/prims/methodHandles.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/atomic.inline.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/stubRoutines.hpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp - test/compiler/5057225/Test5057225.java - test/compiler/5091921/Test5091921.java - test/compiler/5091921/Test6186134.java - test/compiler/5091921/Test6196102.java - test/compiler/5091921/Test6357214.java - test/compiler/5091921/Test6559156.java - test/compiler/5091921/Test6753639.java - test/compiler/5091921/Test6850611.java - test/compiler/5091921/Test6890943.java - test/compiler/5091921/Test6897150.java - test/compiler/5091921/Test6905845.java - test/compiler/5091921/Test6931567.java - test/compiler/5091921/Test6935022.java - test/compiler/5091921/Test6959129.java - test/compiler/5091921/Test6985295.java - test/compiler/5091921/Test6992759.java - test/compiler/5091921/Test7005594.java - test/compiler/5091921/Test7005594.sh - test/compiler/5091921/Test7020614.java - test/compiler/5091921/input6890943.txt - test/compiler/5091921/output6890943.txt - test/compiler/6340864/TestByteVect.java - test/compiler/6340864/TestDoubleVect.java - test/compiler/6340864/TestFloatVect.java - test/compiler/6340864/TestIntVect.java - test/compiler/6340864/TestLongVect.java - test/compiler/6340864/TestShortVect.java - test/compiler/6378821/Test6378821.java - test/compiler/6431242/Test.java - test/compiler/6443505/Test6443505.java - test/compiler/6478991/NullCheckTest.java - test/compiler/6539464/Test.java - test/compiler/6579789/Test6579789.java - test/compiler/6589834/InlinedArrayCloneTestCase.java - test/compiler/6589834/Test_ia32.java - test/compiler/6603011/Test.java - test/compiler/6636138/Test1.java - test/compiler/6636138/Test2.java - test/compiler/6646019/Test.java - test/compiler/6646020/Tester.java - test/compiler/6659207/Test.java - test/compiler/6661247/Test.java - test/compiler/6663621/IVTest.java - test/compiler/6663848/Tester.java - test/compiler/6663854/Test6663854.java - test/compiler/6689060/Test.java - test/compiler/6695810/Test.java - test/compiler/6700047/Test6700047.java - test/compiler/6711100/Test.java - test/compiler/6711117/Test.java - test/compiler/6712835/Test6712835.java - test/compiler/6714694/Tester.java - test/compiler/6716441/Tester.java - test/compiler/6724218/Test.java - test/compiler/6726999/Test.java - test/compiler/6732154/Test6732154.java - test/compiler/6741738/Tester.java - test/compiler/6756768/Test6756768.java - test/compiler/6756768/Test6756768_2.java - test/compiler/6757316/Test6757316.java - test/compiler/6758234/Test6758234.java - test/compiler/6769124/TestArrayCopy6769124.java - test/compiler/6769124/TestDeoptInt6769124.java - test/compiler/6769124/TestUnalignedLoad6769124.java - test/compiler/6772683/InterruptedTest.java - test/compiler/6775880/Test.java - test/compiler/6778657/Test.java - test/compiler/6792161/Test6792161.java - test/compiler/6795161/Test.java - test/compiler/6795362/Test6795362.java - test/compiler/6795465/Test6795465.java - test/compiler/6796786/Test6796786.java - test/compiler/6797305/Test6797305.java - test/compiler/6799693/Test.java - test/compiler/6800154/Test6800154.java - test/compiler/6805724/Test6805724.java - test/compiler/6814842/Test6814842.java - test/compiler/6823354/Test6823354.java - test/compiler/6823453/Test.java - test/compiler/6826736/Test.java - test/compiler/6832293/Test.java - test/compiler/6833129/Test.java - test/compiler/6837011/Test6837011.java - test/compiler/6837094/Test.java - test/compiler/6843752/Test.java - test/compiler/6849574/Test.java - test/compiler/6851282/Test.java - test/compiler/6852078/Test6852078.java - test/compiler/6855164/Test.java - test/compiler/6855215/Test6855215.java - test/compiler/6857159/Test6857159.java - test/compiler/6857159/Test6857159.sh - test/compiler/6859338/Test6859338.java - test/compiler/6860469/Test.java - test/compiler/6863155/Test6863155.java - test/compiler/6863420/Test.java - test/compiler/6865031/Test.java - test/compiler/6865265/StackOverflowBug.java - test/compiler/6866651/Test.java - test/compiler/6875866/Test.java - test/compiler/6877254/Test.java - test/compiler/6879902/Test6879902.java - test/compiler/6880034/Test6880034.java - test/compiler/6885584/Test6885584.java - test/compiler/6891750/Test6891750.java - test/compiler/6892265/Test.java - test/compiler/6894807/IsInstanceTest.java - test/compiler/6894807/Test6894807.sh - test/compiler/6895383/Test.java - test/compiler/6896617/Test6896617.java - test/compiler/6896727/Test.java - test/compiler/6901572/Test.java - test/compiler/6909839/Test6909839.java - test/compiler/6910484/Test.java - test/compiler/6910605/Test.java - test/compiler/6910618/Test.java - test/compiler/6912517/Test.java - test/compiler/6916644/Test6916644.java - test/compiler/6921969/TestMultiplyLongHiZero.java - test/compiler/6930043/Test6930043.java - test/compiler/6932496/Test6932496.java - test/compiler/6934604/TestByteBoxing.java - test/compiler/6934604/TestDoubleBoxing.java - test/compiler/6934604/TestFloatBoxing.java - test/compiler/6934604/TestIntBoxing.java - test/compiler/6934604/TestLongBoxing.java - test/compiler/6934604/TestShortBoxing.java - test/compiler/6935535/Test.java - test/compiler/6942326/Test.java - test/compiler/6946040/TestCharShortByteSwap.java - test/compiler/6956668/Test6956668.java - test/compiler/6958485/Test.java - test/compiler/6968348/Test6968348.java - test/compiler/6973329/Test.java - test/compiler/6982370/Test6982370.java - test/compiler/6990212/Test6990212.java - test/compiler/7002666/Test7002666.java - test/compiler/7009231/Test7009231.java - test/compiler/7009359/Test7009359.java - test/compiler/7017746/Test.java - test/compiler/7024475/Test7024475.java - test/compiler/7029152/Test.java - test/compiler/7041100/Test7041100.java - test/compiler/7042153/Test7042153.java - test/compiler/7044738/Test7044738.java - test/compiler/7046096/Test7046096.java - test/compiler/7047069/Test7047069.java - test/compiler/7048332/Test7048332.java - test/compiler/7052494/Test7052494.java - test/compiler/7068051/Test7068051.java - test/compiler/7070134/Stemmer.java - test/compiler/7070134/Test7070134.sh - test/compiler/7070134/words - test/compiler/7082949/Test7082949.java - test/compiler/7088020/Test7088020.java - test/compiler/7088419/CRCTest.java - test/compiler/7090976/Test7090976.java - test/compiler/7100757/Test7100757.java - test/compiler/7103261/Test7103261.java - test/compiler/7110586/Test7110586.java - test/compiler/7116216/LargeFrame.java - test/compiler/7116216/StackOverflow.java - test/compiler/7119644/TestBooleanVect.java - test/compiler/7119644/TestByteDoubleVect.java - test/compiler/7119644/TestByteFloatVect.java - test/compiler/7119644/TestByteIntVect.java - test/compiler/7119644/TestByteLongVect.java - test/compiler/7119644/TestByteShortVect.java - test/compiler/7119644/TestByteVect.java - test/compiler/7119644/TestCharShortVect.java - test/compiler/7119644/TestCharVect.java - test/compiler/7119644/TestDoubleVect.java - test/compiler/7119644/TestFloatDoubleVect.java - test/compiler/7119644/TestFloatVect.java - test/compiler/7119644/TestIntDoubleVect.java - test/compiler/7119644/TestIntFloatVect.java - test/compiler/7119644/TestIntLongVect.java - test/compiler/7119644/TestIntVect.java - test/compiler/7119644/TestLongDoubleVect.java - test/compiler/7119644/TestLongFloatVect.java - test/compiler/7119644/TestLongVect.java - test/compiler/7119644/TestShortDoubleVect.java - test/compiler/7119644/TestShortFloatVect.java - test/compiler/7119644/TestShortIntVect.java - test/compiler/7119644/TestShortLongVect.java - test/compiler/7119644/TestShortVect.java - test/compiler/7123108/Test7123108.java - test/compiler/7125879/Test7125879.java - test/compiler/7141637/SpreadNullArg.java - test/compiler/7160610/Test7160610.java - test/compiler/7169782/Test7169782.java - test/compiler/7174363/Test7174363.java - test/compiler/7177917/Test7177917.java - test/compiler/7179138/Test7179138_1.java - test/compiler/7179138/Test7179138_2.java - test/compiler/7184394/TestAESBase.java - test/compiler/7184394/TestAESDecode.java - test/compiler/7184394/TestAESEncode.java - test/compiler/7184394/TestAESMain.java - test/compiler/7190310/Test7190310.java - test/compiler/7190310/Test7190310_unsafe.java - test/compiler/7192963/TestByteVect.java - test/compiler/7192963/TestDoubleVect.java - test/compiler/7192963/TestFloatVect.java - test/compiler/7192963/TestIntVect.java - test/compiler/7192963/TestLongVect.java - test/compiler/7192963/TestShortVect.java - test/compiler/7196199/Test7196199.java - test/compiler/7199742/Test7199742.java - test/compiler/7200264/Test7200264.sh - test/compiler/7200264/TestIntVect.java - test/compiler/8000805/Test8000805.java - test/compiler/8001183/TestCharVect.java - test/compiler/8002069/Test8002069.java - test/compiler/8004051/Test8004051.java - test/compiler/8004741/Test8004741.java - test/compiler/8004867/TestIntAtomicCAS.java - test/compiler/8004867/TestIntAtomicOrdered.java - test/compiler/8004867/TestIntAtomicVolatile.java - test/compiler/8004867/TestIntUnsafeCAS.java - test/compiler/8004867/TestIntUnsafeOrdered.java - test/compiler/8004867/TestIntUnsafeVolatile.java - test/compiler/8005033/Test8005033.java - test/compiler/8005419/Test8005419.java - test/compiler/8005956/PolynomialRoot.java - test/compiler/8007294/Test8007294.java - test/compiler/8007722/Test8007722.java - test/compiler/8009761/Test8009761.java - test/compiler/8010927/Test8010927.java - test/compiler/8011706/Test8011706.java - test/compiler/8011771/Test8011771.java - test/compiler/8011901/Test8011901.java - test/compiler/8015436/Test8015436.java - test/compiler/EliminateAutoBox/UnsignedLoads.java - test/compiler/EscapeAnalysis/Test8020215.java - test/compiler/EscapeAnalysis/TestAllocatedEscapesPtrComparison.java - test/compiler/EscapeAnalysis/TestUnsafePutAddressNullObjMustNotEscape.java - test/compiler/IntegerArithmetic/TestIntegerComparison.java - test/gc/concurrentMarkSweep/CheckAllocateAndSystemGC.java - test/gc/concurrentMarkSweep/SystemGCOnForegroundCollector.java - test/gc/startup_warnings/TestCMSForegroundFlags.java Changeset: 73d7851fa9f2 Author: aph Date: 2015-01-15 11:17 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/73d7851fa9f2 8068055: AARCH64: os_cpu Summary: add src/os_cpu/linux_aarch64/vm/* files Reviewed-by: kvn, roland, dholmes + src/os_cpu/linux_aarch64/vm/assembler_linux_aarch64.cpp + src/os_cpu/linux_aarch64/vm/atomic_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/bytes_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/copy_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/globals_linux_aarch64.hpp + src/os_cpu/linux_aarch64/vm/linux_aarch64.S + src/os_cpu/linux_aarch64/vm/linux_aarch64.ad + src/os_cpu/linux_aarch64/vm/orderAccess_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp + src/os_cpu/linux_aarch64/vm/os_linux_aarch64.hpp + src/os_cpu/linux_aarch64/vm/os_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/prefetch_linux_aarch64.inline.hpp + src/os_cpu/linux_aarch64/vm/threadLS_linux_aarch64.cpp + src/os_cpu/linux_aarch64/vm/threadLS_linux_aarch64.hpp + src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.cpp + src/os_cpu/linux_aarch64/vm/thread_linux_aarch64.hpp + src/os_cpu/linux_aarch64/vm/vmStructs_linux_aarch64.hpp + src/os_cpu/linux_aarch64/vm/vm_version_linux_aarch64.cpp Changeset: 647c8b619d80 Author: aph Date: 2015-01-20 11:34 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/647c8b619d80 8068054: AARCH64: Assembler interpreter, shared runtime Summary: add src/cpu/aarch64/vm/* interpreter, shared runtime files. Reviewed-by: kvn, roland, coleenp, twisti + src/cpu/aarch64/vm/aarch64Test.cpp + src/cpu/aarch64/vm/aarch64_call.cpp + src/cpu/aarch64/vm/aarch64_linkage.S + src/cpu/aarch64/vm/assembler_aarch64.cpp + src/cpu/aarch64/vm/assembler_aarch64.hpp + src/cpu/aarch64/vm/assembler_aarch64.inline.hpp + src/cpu/aarch64/vm/bytecodeInterpreter_aarch64.cpp + src/cpu/aarch64/vm/bytecodeInterpreter_aarch64.hpp + src/cpu/aarch64/vm/bytecodeInterpreter_aarch64.inline.hpp + src/cpu/aarch64/vm/bytecodes_aarch64.cpp + src/cpu/aarch64/vm/bytecodes_aarch64.hpp + src/cpu/aarch64/vm/bytes_aarch64.hpp + src/cpu/aarch64/vm/codeBuffer_aarch64.hpp + src/cpu/aarch64/vm/compiledIC_aarch64.cpp + src/cpu/aarch64/vm/copy_aarch64.hpp + src/cpu/aarch64/vm/cppInterpreterGenerator_aarch64.hpp + src/cpu/aarch64/vm/cpustate_aarch64.hpp + src/cpu/aarch64/vm/debug_aarch64.cpp + src/cpu/aarch64/vm/decode_aarch64.hpp + src/cpu/aarch64/vm/depChecker_aarch64.cpp + src/cpu/aarch64/vm/depChecker_aarch64.hpp + src/cpu/aarch64/vm/disassembler_aarch64.hpp + src/cpu/aarch64/vm/frame_aarch64.cpp + src/cpu/aarch64/vm/frame_aarch64.hpp + src/cpu/aarch64/vm/frame_aarch64.inline.hpp + src/cpu/aarch64/vm/globalDefinitions_aarch64.hpp + src/cpu/aarch64/vm/globals_aarch64.hpp + src/cpu/aarch64/vm/icBuffer_aarch64.cpp + src/cpu/aarch64/vm/icache_aarch64.cpp + src/cpu/aarch64/vm/icache_aarch64.hpp + src/cpu/aarch64/vm/immediate_aarch64.cpp + src/cpu/aarch64/vm/immediate_aarch64.hpp + src/cpu/aarch64/vm/interp_masm_aarch64.cpp + src/cpu/aarch64/vm/interp_masm_aarch64.hpp + src/cpu/aarch64/vm/interpreterGenerator_aarch64.hpp + src/cpu/aarch64/vm/interpreterRT_aarch64.cpp + src/cpu/aarch64/vm/interpreterRT_aarch64.hpp + src/cpu/aarch64/vm/interpreter_aarch64.cpp + src/cpu/aarch64/vm/interpreter_aarch64.hpp + src/cpu/aarch64/vm/javaFrameAnchor_aarch64.hpp + src/cpu/aarch64/vm/jniFastGetField_aarch64.cpp + src/cpu/aarch64/vm/jniTypes_aarch64.hpp + src/cpu/aarch64/vm/jni_aarch64.h + src/cpu/aarch64/vm/macroAssembler_aarch64.cpp + src/cpu/aarch64/vm/macroAssembler_aarch64.hpp + src/cpu/aarch64/vm/macroAssembler_aarch64.inline.hpp + src/cpu/aarch64/vm/metaspaceShared_aarch64.cpp + src/cpu/aarch64/vm/methodHandles_aarch64.cpp + src/cpu/aarch64/vm/methodHandles_aarch64.hpp + src/cpu/aarch64/vm/nativeInst_aarch64.cpp + src/cpu/aarch64/vm/nativeInst_aarch64.hpp + src/cpu/aarch64/vm/registerMap_aarch64.hpp + src/cpu/aarch64/vm/register_aarch64.cpp + src/cpu/aarch64/vm/register_aarch64.hpp + src/cpu/aarch64/vm/register_definitions_aarch64.cpp + src/cpu/aarch64/vm/relocInfo_aarch64.cpp + src/cpu/aarch64/vm/relocInfo_aarch64.hpp + src/cpu/aarch64/vm/runtime_aarch64.cpp + src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp + src/cpu/aarch64/vm/stubGenerator_aarch64.cpp + src/cpu/aarch64/vm/stubRoutines_aarch64.cpp + src/cpu/aarch64/vm/stubRoutines_aarch64.hpp + src/cpu/aarch64/vm/templateInterpreterGenerator_aarch64.hpp + src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp + src/cpu/aarch64/vm/templateInterpreter_aarch64.hpp + src/cpu/aarch64/vm/templateTable_aarch64.cpp + src/cpu/aarch64/vm/templateTable_aarch64.hpp + src/cpu/aarch64/vm/vmStructs_aarch64.hpp + src/cpu/aarch64/vm/vm_version_aarch64.cpp + src/cpu/aarch64/vm/vm_version_aarch64.hpp + src/cpu/aarch64/vm/vmreg_aarch64.cpp + src/cpu/aarch64/vm/vmreg_aarch64.hpp + src/cpu/aarch64/vm/vmreg_aarch64.inline.hpp + src/cpu/aarch64/vm/vtableStubs_aarch64.cpp Changeset: d498aba2c736 Author: aph Date: 2015-01-20 12:47 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/d498aba2c736 8068053: AARCH64: C1 and C2 compilers Summary: add src/cpu/aarch64/vm/* C1 and C2 files Reviewed-by: kvn, roland + src/cpu/aarch64/vm/aarch64.ad + src/cpu/aarch64/vm/aarch64_ad.m4 + src/cpu/aarch64/vm/ad_encode.m4 + src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp + src/cpu/aarch64/vm/c1_Defs_aarch64.hpp + src/cpu/aarch64/vm/c1_FpuStackSim_aarch64.cpp + src/cpu/aarch64/vm/c1_FpuStackSim_aarch64.hpp + src/cpu/aarch64/vm/c1_FrameMap_aarch64.cpp + src/cpu/aarch64/vm/c1_FrameMap_aarch64.hpp + src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp + src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.hpp + src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp + src/cpu/aarch64/vm/c1_LinearScan_aarch64.cpp + src/cpu/aarch64/vm/c1_LinearScan_aarch64.hpp + src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp + src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.hpp + src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp + src/cpu/aarch64/vm/c1_globals_aarch64.hpp + src/cpu/aarch64/vm/c2_globals_aarch64.hpp + src/cpu/aarch64/vm/c2_init_aarch64.cpp Changeset: 694f5e5bb982 Author: kvn Date: 2015-01-20 15:24 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/694f5e5bb982 Merge ! agent/src/os/linux/LinuxDebuggerLocal.c ! src/os/linux/vm/os_linux.cpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: c62971d23589 Author: aph Date: 2015-01-21 14:38 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/c62971d23589 8069593: Changes to JavaThread::_thread_state must use acquire and release Reviewed-by: kvn, dlong ! src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp ! src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/thread.inline.hpp Changeset: 0ab4623375c2 Author: enevill Date: 2015-01-26 09:50 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/0ab4623375c2 8071563: AARCH64 staging fail to build Summary: Fixed build problem after merge 8064457 changes. Reviewed-by: kvn, goetz ! src/share/vm/memory/metaspace.cpp Changeset: f624acc711e2 Author: aph Date: 2015-01-27 20:49 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/f624acc711e2 8071688: AARCH64: SIGSEGV in MethodData::next_data(ProfileData*) Summary: Apply the fix for 8039975 to the AArch64 sources. Reviewed-by: kvn, roland ! src/cpu/aarch64/vm/interp_masm_aarch64.cpp Changeset: 2b069b91bb98 Author: enevill Date: 2015-02-02 11:29 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/2b069b91bb98 8072129: [AARCH64] missing fix for 8066900 Summary: add 8066900 fix to arm64 code. Reviewed-by: kvn ! src/cpu/aarch64/vm/c1_Runtime1_aarch64.cpp Changeset: 55e58bfad598 Author: aph Date: 2015-02-05 11:47 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/55e58bfad598 8072483: AARCH64: aarch64.ad uses the wrong operand class for some operations Summary: Use iRegNoSp registers operands where required. Reviewed-by: kvn, adinn, enevill ! src/cpu/aarch64/vm/aarch64.ad ! src/cpu/aarch64/vm/aarch64_ad.m4 Changeset: ef43f5719e95 Author: aph Date: 2015-02-06 10:21 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ef43f5719e95 8072698: Add AArch64 support to hsdis Reviewed-by: kvn ! src/share/tools/hsdis/hsdis.c Changeset: 00f3abb1f174 Author: aph Date: 2015-02-06 10:36 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/00f3abb1f174 8071947: AARCH64: frame::safe_for_sender() computes incorrect sender_sp value for interpreted frames Summary: Apply the fix for 8068655 to the AArch64 sources. Reviewed-by: kvn ! src/cpu/aarch64/vm/frame_aarch64.cpp Changeset: f83851ae258e Author: kvn Date: 2015-02-26 10:56 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/f83851ae258e Merge - make/linux/makefiles/build_vm_def.sh - src/os/bsd/vm/dtraceJSDT_bsd.cpp - src/os/linux/vm/dtraceJSDT_linux.cpp ! src/os/linux/vm/os_linux.cpp - src/os/solaris/vm/dtraceJSDT_solaris.cpp - src/os/windows/vm/dtraceJSDT_windows.cpp ! src/share/vm/asm/codeBuffer.hpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/compiler/disassembler.cpp - src/share/vm/oops/oop.inline2.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/memnode.hpp ! src/share/vm/opto/parse2.cpp ! src/share/vm/runtime/arguments.cpp - src/share/vm/runtime/dtraceJSDT.cpp - src/share/vm/runtime/dtraceJSDT.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/os.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/globalDefinitions.hpp - test/serviceability/dcmd/ClassLoaderStatsTest.java - test/serviceability/dcmd/DcmdUtil.java - test/serviceability/dcmd/DynLibDcmdTest.java Changeset: 21f64f2bbdc8 Author: kvn Date: 2015-03-02 10:09 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/21f64f2bbdc8 Merge Changeset: 84c5d19d3a32 Author: adinn Date: 2015-03-02 10:31 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/84c5d19d3a32 8074119: [AARCH64] stage repo misses fixes from several Hotspot changes Summary: add shared code changes from 8059606, 8069230, 8068976, 8068977, 8072911 and 8071805 Reviewed-by: aph, kvn ! src/cpu/aarch64/vm/aarch64.ad ! src/cpu/aarch64/vm/c1_CodeStubs_aarch64.cpp ! src/cpu/aarch64/vm/c1_LIRAssembler_aarch64.cpp ! src/cpu/aarch64/vm/c1_MacroAssembler_aarch64.cpp ! src/cpu/aarch64/vm/icBuffer_aarch64.cpp ! src/cpu/aarch64/vm/interp_masm_aarch64.cpp ! src/cpu/aarch64/vm/interp_masm_aarch64.hpp ! src/cpu/aarch64/vm/methodHandles_aarch64.cpp ! src/cpu/aarch64/vm/nativeInst_aarch64.cpp ! src/cpu/aarch64/vm/nativeInst_aarch64.hpp ! src/cpu/aarch64/vm/sharedRuntime_aarch64.cpp ! src/cpu/aarch64/vm/templateInterpreter_aarch64.cpp ! src/cpu/aarch64/vm/templateTable_aarch64.cpp Changeset: 748bfdc032eb Author: erikj Date: 2015-02-18 11:25 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/748bfdc032eb 8072904: building jdk9 with jdk9 boot jdk can cause failure or incorrect results Reviewed-by: dholmes, dlong ! agent/src/share/classes/sun/jvm/hotspot/debugger/amd64/AMD64ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/ppc64/PPC64ThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/sparc/SPARCThreadContext.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/x86/X86ThreadContext.java ! make/aix/makefiles/sa.make ! make/bsd/makefiles/sa.make ! make/linux/makefiles/sa.make ! make/solaris/makefiles/sa.make ! make/windows/makefiles/sa.make Changeset: b042554105f7 Author: dholmes Date: 2015-02-18 22:19 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b042554105f7 8072055: Argument checking for SE Embedded and ARM should be moved out of arguments.cpp Reviewed-by: bdelsart, dlong, hseigel, coleenp ! src/share/vm/runtime/arguments.cpp Changeset: 301c5b48a95a Author: ctornqvi Date: 2015-02-23 05:01 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/301c5b48a95a Merge - src/share/vm/oops/oop.inline2.hpp Changeset: a1676462e072 Author: stefank Date: 2015-02-18 09:22 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/a1676462e072 8073388: Get rid of the depenecy from handles.hpp to oop.inline.hpp Reviewed-by: mgerdin, coleenp ! src/share/vm/ci/ciKlass.hpp ! src/share/vm/classfile/classLoaderExt.hpp ! src/share/vm/memory/genRemSet.cpp ! src/share/vm/runtime/handles.cpp ! src/share/vm/runtime/handles.hpp Changeset: 45dc3d4c5c24 Author: jwilhelm Date: 2014-08-22 10:10 +0200 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/45dc3d4c5c24 8061802: REDO - Remove the generations array Summary: The _gens array is removed and replaced by explicit _young_gen and _old_gen variables. Reviewed-by: kbarrett, mgerdin ! agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/memory/defNewGeneration.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/genCollectedHeap.hpp ! src/share/vm/memory/genMarkSweep.cpp ! src/share/vm/memory/generation.cpp ! src/share/vm/runtime/vmStructs.cpp ! test/gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Changeset: b8ef0ff7b28d Author: stefank Date: 2015-02-18 10:28 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b8ef0ff7b28d 8073389: Remove the include of resourceArea.hpp from classFileParser.hpp Reviewed-by: coleenp, dholmes ! src/share/vm/classfile/classFileError.cpp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/code/dependencies.hpp ! src/share/vm/interpreter/interpreter.hpp ! src/share/vm/services/nmtDCmd.cpp ! src/share/vm/services/runtimeService.cpp Changeset: ae3dbd31307f Author: mgerdin Date: 2015-02-20 12:43 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ae3dbd31307f 8073532: jmap -heap fails after generation array removal Summary: Fix field accessor code in the SA Reviewed-by: jwilhelm, brutisso ! agent/src/share/classes/sun/jvm/hotspot/memory/GenCollectedHeap.java Changeset: 01f6c1362694 Author: tschatzl Date: 2015-02-20 16:07 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/01f6c1362694 8058446: G1 Hot card cache should use ArrayAllocator to allocate the cache array Summary: Allocate large hot card caches using OS functions instead of the C heap to avoid native memory exhaustion. Reviewed-by: mgerdin, jwilhelm ! src/share/vm/gc_implementation/g1/g1HotCardCache.cpp ! src/share/vm/gc_implementation/g1/g1HotCardCache.hpp Changeset: 89aef9b18319 Author: stefank Date: 2015-02-20 15:23 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/89aef9b18319 8073554: Remove unnecessary includes of markSweep[.inline].hpp Reviewed-by: tschatzl, coleenp ! src/share/vm/code/codeCache.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/precompiled/precompiled.hpp ! src/share/vm/runtime/interfaceSupport.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/debug.cpp Changeset: 194b81937d60 Author: stefank Date: 2015-02-20 15:47 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/194b81937d60 Merge Changeset: 532bf0752bbc Author: stefank Date: 2015-02-20 17:08 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/532bf0752bbc Merge Changeset: eb2c3a5a454a Author: goetz Date: 2015-02-20 22:22 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/eb2c3a5a454a 8071822: [TEST_BUG] Adapt collectorPolicy internal tests to support 64K pages Summary: This fixes jtreg test ExecuteInternalVMTests.java for OSes with bigger default page sizes. Reviewed-by: jmasa ! src/share/vm/memory/collectorPolicy.cpp Changeset: 015fac83707e Author: stefank Date: 2015-02-20 13:54 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/015fac83707e 8073543: Circular include dependency between psScavenge.inline.hpp and psPromotionManager.inline.hpp Reviewed-by: brutisso, mgerdin ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp ! src/share/vm/oops/instanceClassLoaderKlass.cpp ! src/share/vm/oops/oop.pcgc.inline.hpp ! src/share/vm/oops/oop.psgc.inline.hpp ! src/share/vm/runtime/java.cpp Changeset: e2c2ec8ce1be Author: jwilhelm Date: 2015-02-23 18:40 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/e2c2ec8ce1be Merge Changeset: 36ea8ccb155c Author: sjohanss Date: 2014-12-11 09:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/36ea8ccb155c 8062672: JVM crashes during GC on various asserts which checks that HeapWord ptr is an oop Summary: Crashes were caused by not disabling UseMemSetInBOT as should be done on sparc. Added support for picking up blkinit as a platform feature if available on Linux sparc. This is needed to avoid enabling UseMemSetInBOT when running on this platform. Reviewed-by: jwilhelm, brutisso ! src/os_cpu/linux_sparc/vm/vm_version_linux_sparc.cpp Changeset: 6357f6686ca2 Author: jwilhelm Date: 2015-02-26 19:32 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/6357f6686ca2 Merge Changeset: cf4fda2ea188 Author: amurillo Date: 2015-02-27 07:34 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/cf4fda2ea188 Merge Changeset: ba828548b907 Author: amurillo Date: 2015-03-03 06:23 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ba828548b907 Merge ! src/share/vm/interpreter/interpreter.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 9a6515e858d5 Author: aph Date: 2015-03-03 17:56 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/9a6515e858d5 8074349: AARCH64: C2 generates poor code for some byte and character stores Summary: Use iRegIorL2I as src input for char and byte stores. Reviewed-by: kvn ! src/cpu/aarch64/vm/aarch64.ad Changeset: f8094b53203e Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/f8094b53203e Added tag jdk9-b53 for changeset effd5ef0c3eb ! .hgtags Changeset: c3b117fa5bde Author: lana Date: 2015-03-05 15:21 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/c3b117fa5bde Merge Changeset: a53f5508bf62 Author: sspitsyn Date: 2015-02-25 00:30 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/a53f5508bf62 8046246: the constantPoolCacheOopDesc::adjust_method_entries() used in RedefineClasses does not scale Summary: optimize the adjust_method_entries functions by using the orig_method_idnum() function Reviewed-by: coleenp, dcubed Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/oops/constMethod.hpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp Changeset: 8066a1720b02 Author: ctornqvi Date: 2015-02-26 06:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/8066a1720b02 8073718: [TESTBUG] Cleanup test output and skip creating mini dumps Reviewed-by: sla, ctornqvi Contributed-by: stefan.sarne at oracle.com ! test/runtime/Safepoint/AssertSafepointCheckConsistency1.java ! test/runtime/Safepoint/AssertSafepointCheckConsistency2.java ! test/runtime/Safepoint/AssertSafepointCheckConsistency3.java ! test/runtime/Safepoint/AssertSafepointCheckConsistency4.java Changeset: c9b16ad5dad9 Author: ctornqvi Date: 2015-02-26 06:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/c9b16ad5dad9 8069291: [TESTBUG] runtime/threads/Fibonacci: OutOfMemoryError: unable to create native thread Reviewed-by: dholmes, ctornqvi Contributed-by: dmitry.dmitriev at oracle.com + test/runtime/Thread/Fibonacci.java Changeset: ee9ab037aefb Author: hseigel Date: 2015-02-27 12:48 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ee9ab037aefb 8073908: Replace hotspot/testlibrary use of sun.management with public API Summary: use java.lang API's instead of sun.management API's. Reviewed-by: sla, iignatyev, gtriantafill, mchung ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/CompileTheWorld.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/Utils.java Changeset: 65f0b5b4a5cb Author: ctornqvi Date: 2015-03-02 05:32 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/65f0b5b4a5cb Merge ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/klassVtable.cpp Changeset: 15b8ca9c2885 Author: dcubed Date: 2015-03-02 16:31 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/15b8ca9c2885 8072439: fix for 8047720 may need more work Summary: Cleanup PeriodTask_lock usage. Also reviewed by varming at gmail.com. Reviewed-by: dholmes, dcubed, mgronlun, coleenp Contributed-by: varming at gmail.com, daniel.daugherty at oracle.com ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/task.cpp ! src/share/vm/runtime/task.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: 2c370642e2ed Author: mgronlun Date: 2015-03-03 20:17 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/2c370642e2ed 8073042: jcmd hangs until another jcmd is executed (which, in turn also hangs) Reviewed-by: jbachorik, dsamersoff, farvidsson ! src/os/windows/vm/attachListener_windows.cpp Changeset: da7523de6702 Author: jwilhelm Date: 2015-02-26 17:02 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/da7523de6702 8073950: Quarantine failing test: gc/TestSoftReferencesBehaviorOnOOME.java due to JDK-8073669 Summary: Quarantine gc/TestSoftReferencesBehaviorOnOOME.java Reviewed-by: mgerdin, tschatzl Contributed-by: andrey.x.zakharov at oracle.com ! test/gc/TestSoftReferencesBehaviorOnOOME.java Changeset: 57269e7bf812 Author: jwilhelm Date: 2015-02-26 21:00 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/57269e7bf812 8073883: serviceability/dcmd/gc/RunGCTest.java should not run with -XX:+ExplicitGCInvokesConcurrent Summary: Don't run test with -XX:+ExplicitGCInvokesConcurrent Reviewed-by: mgerdin ! test/serviceability/dcmd/gc/RunGCTest.java Changeset: 1573e72240b9 Author: kbarrett Date: 2015-02-27 19:52 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/1573e72240b9 8069016: Add BarrierSet downcast support Summary: Add FakeRttiSupport utility and use to provide barrier_set_cast. Reviewed-by: jmasa, sangheki ! src/cpu/ppc/vm/macroAssembler_ppc.cpp ! src/cpu/ppc/vm/stubGenerator_ppc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/macroAssembler_sparc.cpp ! src/cpu/sparc/vm/stubGenerator_sparc.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/cpu/x86/vm/stubGenerator_x86_32.cpp ! src/cpu/x86/vm/stubGenerator_x86_64.cpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp ! src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psOldGen.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp ! src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp ! src/share/vm/memory/barrierSet.hpp ! src/share/vm/memory/barrierSet.inline.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/cardTableModRefBS.hpp ! src/share/vm/memory/modRefBarrierSet.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/shark/sharkBuilder.cpp + src/share/vm/utilities/fakeRttiSupport.hpp Changeset: c22d211b6f36 Author: david Date: 2015-03-03 12:19 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/c22d211b6f36 8073464: GC workers do not have thread names Reviewed-by: brutisso, tschatzl ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepThread.cpp ! src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp ! src/share/vm/gc_implementation/shared/concurrentGCThread.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmThread.cpp ! src/share/vm/utilities/workgroup.cpp Changeset: 70d8700f9524 Author: tschatzl Date: 2015-03-03 12:38 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/70d8700f9524 8073466: Remove buffer retaining functionality and clean up in ParGCAllocBuffer Reviewed-by: jmasa, kbarrett ! src/share/vm/gc_implementation/g1/g1Allocator.cpp ! src/share/vm/gc_implementation/g1/g1Allocator.hpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/shared/parGCAllocBuffer.cpp ! src/share/vm/gc_implementation/shared/parGCAllocBuffer.hpp Changeset: 71f4ed3c627f Author: tschatzl Date: 2015-03-03 13:25 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/71f4ed3c627f Merge Changeset: 8006272eca39 Author: jwilhelm Date: 2015-03-02 16:19 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/8006272eca39 8071335: gc/TestSmallHeap.java throw OOM Summary: To avoid OOME, do not run with -Xcomp Reviewed-by: brutisso, tschatzl ! test/gc/TestSmallHeap.java Changeset: eb43e86b7100 Author: jwilhelm Date: 2015-03-03 19:21 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/eb43e86b7100 Merge Changeset: a3654e0e77f9 Author: jwilhelm Date: 2015-03-04 02:23 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/a3654e0e77f9 8074319: barrier_set_cast defined via friend injection Summary: Changed the in-class definition to a friend declaration and move the definition to namespace scope Reviewed-by: jwilhelm, simonis Contributed-by: kim.barrett at oracle.com ! src/share/vm/memory/barrierSet.hpp Changeset: a534c4d87ec8 Author: jwilhelm Date: 2015-03-05 17:27 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/a534c4d87ec8 Merge ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp Changeset: 1d306e84f829 Author: iignatyev Date: 2015-02-19 23:49 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/1d306e84f829 8073499: quarantine compiler/tiered/LevelTransitionTest Reviewed-by: kvn ! test/compiler/tiered/LevelTransitionTest.java Changeset: 796f5bb2dec5 Author: ppunegov Date: 2015-02-18 16:19 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/796f5bb2dec5 8067157: Closed compiler tests should not be in hotspot/test/TEST.groups Summary: Replace closed/compiler tests with sanity/ExecuteInternalVMTests.java to keep the hotspot_compiler_closed group Reviewed-by: kvn, zmajo ! test/TEST.groups Changeset: b79a5703e525 Author: ppunegov Date: 2015-02-18 16:59 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b79a5703e525 8067012: Don't create MDO for constant getters Summary: Add check if the method is constant getter Reviewed-by: kvn, iveresov ! src/share/vm/runtime/advancedThresholdPolicy.cpp Changeset: e48badb106e1 Author: dpochepk Date: 2015-02-19 23:47 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/e48badb106e1 8068461: compiler/codecache/jmx/UsageThresholdIncreasedTest.java failed: java.lang.RuntimeException: Usage threshold was hit: 1 times for CodeHeap 'non-nmethods' Summary: added filter for invalid testcase Reviewed-by: kvn, iignatyev ! test/compiler/codecache/jmx/UsageThresholdIncreasedTest.java Changeset: 54e0f8b411a8 Author: roland Date: 2015-02-18 18:14 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/54e0f8b411a8 6912521: System.arraycopy works slower than the simple loop for little lengths Summary: convert small array copies to series of loads and stores Reviewed-by: kvn, vlivanov + src/share/vm/opto/arraycopynode.cpp + src/share/vm/opto/arraycopynode.hpp ! src/share/vm/opto/callnode.cpp ! src/share/vm/opto/callnode.hpp ! src/share/vm/opto/classes.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/macroArrayCopy.cpp + test/compiler/arraycopy/TestArrayCopyAsLoadsStores.java Changeset: aa37799c0445 Author: thartmann Date: 2015-02-23 07:55 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/aa37799c0445 8072774: bigapps/Weblogic+medrec/nowarnings fails due to CodeHeap 'profiled nmethods' exhaustion Summary: Store profiled code in the non-profiled code heap (and vice versa) if the code cache is really full. Reviewed-by: kvn, iveresov ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp Changeset: 31d53895b2d6 Author: thartmann Date: 2015-02-23 10:38 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/31d53895b2d6 8073257: compiler/codecache/stress/RandomAllocationTest.java + fastdebug + -XX:+LogCompilation, "allocating without ResourceMark" Summary: Added two missing ResourceMarks to 'NMethodSweeper::log_sweep'. Reviewed-by: kvn, iignatyev ! src/share/vm/runtime/sweeper.cpp Changeset: 5cc8f720e18d Author: simonis Date: 2015-02-23 10:32 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/5cc8f720e18d 8073624: Fix waring "converting to non-pointer type 'bool' from NULL" in arraycopynode.cpp Reviewed-by: roland ! src/share/vm/opto/arraycopynode.cpp Changeset: ff87d12995da Author: vlivanov Date: 2015-02-24 07:39 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ff87d12995da Merge ! src/share/vm/code/codeCache.cpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/library_call.cpp Changeset: 29b91dd20de6 Author: vlivanov Date: 2015-02-24 17:14 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/29b91dd20de6 Merge - src/share/vm/oops/oop.inline2.hpp Changeset: 0a5f2750ef42 Author: iveresov Date: 2015-02-24 23:31 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/0a5f2750ef42 8073735: compiler/loopopts/CountedLoopProblem.java got OOME Summary: Ignore OOM in the test Reviewed-by: kvn ! test/compiler/loopopts/CountedLoopProblem.java Changeset: 0fd143632552 Author: roland Date: 2015-02-24 15:23 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/0fd143632552 8073184: Compile of java.lang.Integer::getChars fails with LoopLimitCheck = false after 8054478 Summary: CastII that guards counted loops confuses range check elimination with LoopLimitCheck off Reviewed-by: kvn, iveresov ! src/share/vm/opto/loopTransform.cpp + test/compiler/loopopts/TestCastIINoLoopLimitCheck.java Changeset: 50ac03d16c22 Author: roland Date: 2015-02-25 10:44 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/50ac03d16c22 8073792: assert((get_length_if_constant(phase) == -1) == !ary_src->size()->is_con()) failed: inconsistent Summary: assert in array copy code broken when array size becomes known during igvn Reviewed-by: kvn, vlivanov ! src/share/vm/opto/arraycopynode.cpp + test/compiler/arraycopy/TestArrayCloneBadAssert.java ! test/compiler/arraycopy/TestArrayCopyAsLoadsStores.java Changeset: fe7233679163 Author: zmajo Date: 2015-02-27 13:21 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/fe7233679163 8073670: TypeF::eq and TypeD::eq do not handle NaNs correctly Summary: Change TypeF:eq and TypeD:eq to compare NaN values using a bitwise comparison. Reviewed-by: kvn Contributed-by: Stefan Anzinger ! src/share/vm/opto/type.cpp + test/compiler/c2/FloatingPointFoldingTest.java Changeset: dacf878d4b46 Author: zmajo Date: 2015-02-28 12:33 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/dacf878d4b46 Merge Changeset: ec1ca81aefc6 Author: roland Date: 2015-02-25 12:33 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/ec1ca81aefc6 8073796: assert(check_obj_alignment(result)) failed: address not aligned: ... Summary: Arrays.copyOf intrinsic can deoptimize with uninitialized new array Reviewed-by: kvn ! src/share/vm/opto/library_call.cpp Changeset: 442d0a8b76cc Author: skovalev Date: 2015-02-24 16:08 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/442d0a8b76cc 8067162: [TESTBUG] runtime/SharedArchiveFile tests fail on compact profiles Summary: Modified TEST.groups file to exclude two tests from execution on compact profiles. Reviewed-by: mseledtsov, dholmes, iignatyev ! test/TEST.groups Changeset: b7326921c3f6 Author: skovalev Date: 2015-02-24 15:42 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b7326921c3f6 8067822: test/testlibrary_tests/RandomGeneratorTest.java failed on Assert Unexpected random number sequence for mode: NO_SEED Summary: On embedded platforms we have a message in std error. We should not take into account the message. Therefore only std out should be used fo verification. Reviewed-by: iignatyev, kvn ! test/testlibrary_tests/RandomGeneratorTest.java Changeset: 6235f6e82466 Author: fzhinkin Date: 2015-02-27 11:41 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/6235f6e82466 8073154: NULL-pointer dereferencing in LIR_OpProfileType::print_instr Reviewed-by: iveresov ! src/share/vm/c1/c1_LIR.cpp + test/compiler/print/TestProfileReturnTypePrinting.java Changeset: 063ec1611772 Author: iignatyev Date: 2015-03-02 11:15 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/063ec1611772 Merge Changeset: b7e464329497 Author: thartmann Date: 2015-03-02 13:16 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/b7e464329497 8073956: Escape analysis dump misses args information Summary: Fixed output of PrintEscapeAnalysis. Reviewed-by: kvn ! src/share/vm/ci/bcEscapeAnalyzer.cpp Changeset: c7e9c22ab919 Author: thartmann Date: 2015-03-02 13:28 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/c7e9c22ab919 Merge Changeset: 16a66b3338de Author: thartmann Date: 2015-03-02 13:40 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/16a66b3338de 8006960: hotspot, "impossible" assertion failure Summary: Escape state of allocated object should be always adjusted after it was passed to a method. Reviewed-by: kvn ! src/share/vm/ci/bcEscapeAnalyzer.cpp + test/compiler/escapeAnalysis/TestEscapeThroughInvoke.java Changeset: d319aa28b87f Author: thartmann Date: 2015-03-02 15:11 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/d319aa28b87f Merge Changeset: 9b9e7edc17ce Author: thartmann Date: 2015-03-02 15:20 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/9b9e7edc17ce Merge ! src/share/vm/ci/bcEscapeAnalyzer.cpp Changeset: be83b0955522 Author: vlivanov Date: 2015-03-02 07:20 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/be83b0955522 Merge ! src/share/vm/code/codeCache.cpp ! test/TEST.groups Changeset: 61edd5c7412e Author: vlivanov Date: 2015-03-02 18:12 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/61edd5c7412e Merge Changeset: d63ee67dbc90 Author: roland Date: 2015-03-03 12:30 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/d63ee67dbc90 8073957: assert(ary_src != 0) failed: not an array or instance? Summary: ArrayCopyNode going dead needs better validation of inputs Reviewed-by: kvn, vlivanov ! src/share/vm/opto/arraycopynode.cpp Changeset: 21dbad89e2dc Author: zmajo Date: 2015-03-06 08:53 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/21dbad89e2dc Merge ! src/share/vm/opto/graphKit.cpp Changeset: de7ca28f8b7d Author: amurillo Date: 2015-03-06 04:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/hotspot/rev/de7ca28f8b7d Merge ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/compiler/disassembler.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp From james.graham at oracle.com Tue Mar 17 18:09:04 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:09:04 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/jaxp: 3 new changesets Message-ID: <201503171809.t2HI9EIJ023844@aojmv0008> Changeset: d5b5a010a166 Author: katleman Date: 2015-02-26 15:57 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxp/rev/d5b5a010a166 Added tag jdk9-b52 for changeset 57b26c883d54 ! .hgtags Changeset: 542c0c855ad4 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxp/rev/542c0c855ad4 Added tag jdk9-b53 for changeset d5b5a010a166 ! .hgtags Changeset: cb455de08da8 Author: joehw Date: 2015-03-05 17:18 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxp/rev/cb455de08da8 8049378: Examine references to ${java.home}/lib in JAXP Reviewed-by: lancea, alanb ! src/java.xml/share/classes/javax/xml/XMLConstants.java ! src/java.xml/share/classes/javax/xml/datatype/DatatypeFactory.java ! src/java.xml/share/classes/javax/xml/parsers/DocumentBuilderFactory.java ! src/java.xml/share/classes/javax/xml/parsers/SAXParserFactory.java ! src/java.xml/share/classes/javax/xml/stream/XMLEventFactory.java ! src/java.xml/share/classes/javax/xml/stream/XMLInputFactory.java ! src/java.xml/share/classes/javax/xml/stream/XMLOutputFactory.java ! src/java.xml/share/classes/javax/xml/transform/TransformerFactory.java ! src/java.xml/share/classes/javax/xml/validation/SchemaFactory.java ! src/java.xml/share/classes/javax/xml/xpath/XPathFactory.java From james.graham at oracle.com Tue Mar 17 18:09:20 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:09:20 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/jaxws: 6 new changesets Message-ID: <201503171809.t2HI9KxC023896@aojmv0008> Changeset: 85b190e52036 Author: mchung Date: 2015-02-20 09:15 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/85b190e52036 8073374: Re-examine jdk.xml.ws dependency on java.xml.ws SOAPNamespaceConstants Reviewed-by: lancea, mkos ! src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/wsdl/document/soap/SOAPConstants.java Changeset: 3246e08d17a6 Author: mchung Date: 2015-02-24 12:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/3246e08d17a6 8073696: Remove unused imports in java.corba, java.jaxws, jdk.httpserver Reviewed-by: alanb, chegar ! src/java.xml.ws/share/classes/com/sun/xml/internal/ws/spi/db/BindingHelper.java Changeset: ba8cbdef7c26 Author: mchung Date: 2015-02-25 14:51 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/ba8cbdef7c26 8073361: Missing doPrivileged in com.sun.xml.internal.bind.v2.ClassFactory Reviewed-by: mullan, mkos ! src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ClassFactory.java Changeset: 7e9bcb35a487 Author: katleman Date: 2015-02-26 15:57 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/7e9bcb35a487 Added tag jdk9-b52 for changeset 1d1e7704eca9 ! .hgtags Changeset: b8fbe40efa97 Author: lana Date: 2015-02-26 20:17 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/b8fbe40efa97 Merge Changeset: 83a0cf0e0878 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jaxws/rev/83a0cf0e0878 Added tag jdk9-b53 for changeset b8fbe40efa97 ! .hgtags From james.graham at oracle.com Tue Mar 17 18:10:08 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:10:08 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/jdk: 139 new changesets Message-ID: <201503171810.t2HIAErO024153@aojmv0008> Changeset: 673538dfde29 Author: neugens Date: 2015-02-11 07:54 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/673538dfde29 8071705: Java application menu misbehaves when running multiple screen stacked vertically Summary: JMenu miscalculates the position of the Popup origin when on multiple monitors stacked vertically Reviewed-by: alexsch ! src/java.desktop/share/classes/javax/swing/JMenu.java + test/javax/swing/JMenu/8071705/bug8071705.java Changeset: 5586348d8eef Author: ssides Date: 2015-02-11 15:10 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/5586348d8eef 8044394: javadoc for BasicOptionPaneUI.addMessageComponents() has typo and grammar errors Summary: Fix typos in javadoc of BasicOptionPaneUI.addMessageComponents() Reviewed-by: alexsch, serb ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java Changeset: a8efddeaae3d Author: van Date: 2015-02-11 16:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a8efddeaae3d 8068518: IllegalArgumentException in JTree.AccessibleJTree Reviewed-by: alexsch, ptbrunet ! src/java.desktop/share/classes/javax/swing/JTree.java Changeset: 2a0a557dd1b1 Author: asaha Date: 2015-02-12 14:56 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/2a0a557dd1b1 Merge Changeset: 758eba588bd2 Author: serb Date: 2015-02-14 21:05 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/758eba588bd2 8072678: Wrong exception messages in java.awt.color.ICC_ColorSpace Reviewed-by: prr, serb Contributed-by: prasanta.sadhukhan at oracle.com ! src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java + test/java/awt/Color/GetMinMaxValue_ICC_ColorSpace.java Changeset: d1444efeaf6e Author: neugens Date: 2015-02-16 10:34 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d1444efeaf6e 8072905: Fix copyright year for test from JDK-8071705 Summary: Test was pushed with wrong copyright year Reviewed-by: alexsch ! test/javax/swing/JMenu/8071705/bug8071705.java Changeset: d768141965d7 Author: anashaty Date: 2015-02-16 19:10 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d768141965d7 8072676: [macosx] Jtree icon painted over label when scrollbars present in window Reviewed-by: serb, alexsch ! src/java.desktop/macosx/classes/com/apple/laf/AquaIcon.java + test/javax/swing/JTree/8072676/TreeClipTest.java Changeset: 7ac7956389c5 Author: serb Date: 2015-02-16 20:01 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/7ac7956389c5 8039269: images/cursors should not be in ${java.home}/lib Reviewed-by: mchung, alanb, erikj ! make/copy/Copy-java.desktop.gmk ! make/gensrc/Gensrc-java.desktop.gmk ! src/java.desktop/share/classes/java/awt/Cursor.java + src/java.desktop/share/classes/sun/awt/resources/cursors/CopyDrop32x32.gif + src/java.desktop/share/classes/sun/awt/resources/cursors/LinkDrop32x32.gif + src/java.desktop/share/classes/sun/awt/resources/cursors/MoveDrop32x32.gif + src/java.desktop/share/classes/sun/awt/resources/cursors/cursors.properties + src/java.desktop/share/classes/sun/awt/resources/cursors/invalid32x32.gif - src/java.desktop/share/conf/images/cursors/invalid32x32.gif - src/java.desktop/share/conf/images/cursors/motif_CopyDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_CopyNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_LinkDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_LinkNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_MoveDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_MoveNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_CopyDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_CopyNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_LinkDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_LinkNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_MoveDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_MoveNoDrop32x32.gif - src/java.desktop/unix/conf/images/cursors/cursors.properties + src/java.desktop/windows/classes/sun/awt/resources/cursors/CopyDrop32x32.gif + src/java.desktop/windows/classes/sun/awt/resources/cursors/LinkDrop32x32.gif + src/java.desktop/windows/classes/sun/awt/resources/cursors/MoveDrop32x32.gif - src/java.desktop/windows/conf/images/cursors/cursors.properties + test/java/awt/Cursor/GetSystemCustomCursor/GetSystemCustomCursor.java Changeset: 8b9c99ed1251 Author: anashaty Date: 2015-02-17 19:56 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/8b9c99ed1251 8072069: Toolkit.getScreenInsets() doesn't update if insets change Reviewed-by: serb, azvegint ! src/java.desktop/macosx/classes/sun/awt/CGraphicsDevice.java Changeset: e5945133da7c Author: ddehaven Date: 2015-02-17 11:50 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/e5945133da7c Merge - make/data/charsetmapping/dbcs - make/data/charsetmapping/extsbcs - make/data/charsetmapping/sbcs - make/data/charsetmapping/standard-charsets - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_Solaris.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DelegatableDecoder.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DoubleByte.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_LINUX.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_Open.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_TW.java Changeset: 5b2dc78c9536 Author: serb Date: 2015-02-18 16:59 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/5b2dc78c9536 8068412: [macosx] Initialization of Cocoa hangs if CoreAudio was initialized before Reviewed-by: azvegint, prr ! src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.h ! src/java.desktop/macosx/native/libjsound/PLATFORM_API_MacOSX_PCM.cpp + test/javax/sound/midi/Devices/InitializationHang.java Changeset: 8b1da71f5860 Author: van Date: 2015-02-18 11:15 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/8b1da71f5860 8069268: JComponent.AccessibleJComponent.addPropertyListeners adds exponential listeners Reviewed-by: ptbrunet, serb ! src/java.desktop/share/classes/javax/swing/JComponent.java + test/javax/accessibility/8069268/bug8069268.java Changeset: c867d4d46b58 Author: aivanov Date: 2015-02-19 12:50 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c867d4d46b58 8056915: Focus lost in applet when browser window is minimized and restored Reviewed-by: ant, dtitov, dcherepanov ! src/java.desktop/share/classes/sun/applet/AppletPanel.java ! src/java.desktop/share/classes/sun/awt/EmbeddedFrame.java ! src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFrame.java ! src/java.desktop/windows/classes/sun/awt/windows/WEmbeddedFramePeer.java ! src/java.desktop/windows/native/libawt/windows/awt_Frame.cpp ! src/java.desktop/windows/native/libawt/windows/awt_Frame.h Changeset: a159e5358e25 Author: serb Date: 2015-02-19 18:47 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a159e5358e25 8072665: SoundLibraries.gmk and SoundDefs.h: remove isSigned8() dead code Reviewed-by: erikj, ihse, alexsch ! make/lib/SoundLibraries.gmk ! make/mapfiles/libjsound/mapfile-vers ! src/java.desktop/share/classes/com/sun/media/sound/Platform.java ! src/java.desktop/share/native/libjsound/Platform.c ! src/java.desktop/share/native/libjsound/SoundDefs.h Changeset: 65de62d768a4 Author: shade Date: 2015-02-20 18:32 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/65de62d768a4 8073479: Replace obj.getClass hacks with Objects.requireNonNull Reviewed-by: dfuchs, plevart, vlivanov ! src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java ! src/java.base/share/classes/java/lang/invoke/MemberName.java ! src/java.base/share/classes/java/lang/invoke/MethodHandle.java ! src/java.base/share/classes/java/lang/invoke/MethodHandles.java ! src/java.base/share/classes/java/lang/invoke/MutableCallSite.java ! src/java.logging/share/classes/java/util/logging/Handler.java ! src/java.logging/share/classes/java/util/logging/LogRecord.java ! src/java.logging/share/classes/java/util/logging/Logger.java ! test/java/lang/invoke/8009222/Test8009222.java ! test/tools/pack200/pack200-verifier/src/xmlkit/XMLKit.java Changeset: effdf04cfcec Author: redestad Date: 2015-02-21 13:46 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/effdf04cfcec 8068790: ZipEntry/JarEntry.setCreation/LastAccessTime(null) don't throw NPE as specified Reviewed-by: coffeys, sherman ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! test/java/util/zip/TestExtraTime.java Changeset: dd80c38f6595 Author: erikj Date: 2015-02-23 11:37 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/dd80c38f6595 8073498: Enhance GensrcProperties.gmk to allow an alternative source root Reviewed-by: tbell, mchung, ihse ! make/gensrc/GensrcProperties.gmk Changeset: a4e47f145dda Author: chegar Date: 2015-02-23 15:48 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a4e47f145dda 8064924: Update java.net.URL to work with modules Reviewed-by: alanb, plevart, psandoz ! src/java.base/share/classes/java/net/URL.java ! src/java.base/share/classes/java/net/URLStreamHandlerFactory.java ! src/java.base/share/classes/java/net/package-info.java + src/java.base/share/classes/java/net/spi/URLStreamHandlerProvider.java + src/java.base/share/classes/java/net/spi/package-info.java + test/java/net/spi/URLStreamHandlerProvider/Basic.java + test/java/net/spi/URLStreamHandlerProvider/Child.java + test/java/net/spi/URLStreamHandlerProvider/bad.provider.template + test/java/net/spi/URLStreamHandlerProvider/basic.policy + test/java/net/spi/URLStreamHandlerProvider/provider.template ! test/javax/net/ssl/FixingJavadocs/ComURLNulls.java ! test/sun/net/www/protocol/https/NewImpl/ComHTTPSConnection.java ! test/sun/net/www/protocol/https/NewImpl/ComHostnameVerifier.java Changeset: bfc07fb616d9 Author: chegar Date: 2015-02-23 17:22 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/bfc07fb616d9 8073667: URL should not use service loader to lookup the jar protocol handler Reviewed-by: alanb ! src/java.base/share/classes/java/net/URL.java Changeset: 9a0e131ad6f8 Author: mchung Date: 2015-02-23 08:46 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/9a0e131ad6f8 8062750: Separate SNMP messages from sun.management.resources.agent Reviewed-by: alanb, dfuchs, erikj ! src/java.management/share/classes/sun/management/AgentConfigurationError.java ! src/java.management/share/classes/sun/management/resources/agent.properties ! test/sun/management/AgentCheckTest.java Changeset: c020e5199fa8 Author: prr Date: 2015-02-23 10:47 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c020e5199fa8 Merge - src/jdk.runtime/share/classes/com/sun/tracing/Probe.java - src/jdk.runtime/share/classes/com/sun/tracing/ProbeName.java - src/jdk.runtime/share/classes/com/sun/tracing/Provider.java - src/jdk.runtime/share/classes/com/sun/tracing/ProviderFactory.java - src/jdk.runtime/share/classes/com/sun/tracing/ProviderName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ArgsAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/Attributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/DependencyClass.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/FunctionAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/FunctionName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ModuleAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ModuleName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/NameAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ProviderAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/StabilityLevel.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/package-info.java - src/jdk.runtime/share/classes/com/sun/tracing/package-info.java - src/jdk.runtime/share/classes/sun/tracing/MultiplexProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/NullProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/PrintStreamProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/ProbeSkeleton.java - src/jdk.runtime/share/classes/sun/tracing/ProviderSkeleton.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/Activation.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProbe.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProvider.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/JVM.java - src/jdk.runtime/share/classes/sun/tracing/package-info.java - src/jdk.runtime/share/native/libjsdt/JVM.c - src/jdk.runtime/share/native/libjsdt/jvm_symbols.h - src/jdk.runtime/unix/native/libjsdt/jvm_symbols_md.c - src/jdk.runtime/windows/native/libjsdt/jvm_symbols_md.c - test/com/sun/tracing/BasicFunctionality.java - test/com/sun/tracing/BasicWithSecurityMgr.java Changeset: 95d83afafcb1 Author: serb Date: 2015-02-25 14:01 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/95d83afafcb1 8043393: NullPointerException and no event received when clipboard data flavor changes Reviewed-by: ant, azvegint ! src/java.desktop/share/classes/sun/awt/datatransfer/SunClipboard.java Changeset: b7e402c9b183 Author: prr Date: 2015-02-25 13:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b7e402c9b183 8073699: Memory leak in jdk/src/java/desktop/share/native/libjavajpeg/imageioJPEG.c Reviewed-by: bae, serb ! src/java.desktop/share/native/libjavajpeg/imageioJPEG.c Changeset: c0d81dd14d61 Author: serb Date: 2015-02-26 16:41 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c0d81dd14d61 8073795: JMenuBar looks bad under retina Reviewed-by: alexsch, azvegint ! src/java.desktop/macosx/classes/com/apple/laf/AquaMenuBarBorder.java ! src/java.desktop/share/classes/javax/swing/plaf/basic/BasicBorders.java ! src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java + test/javax/swing/JMenuBar/MisplacedBorder/MisplacedBorder.java Changeset: 1f68e092bd7f Author: serb Date: 2015-02-27 01:06 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/1f68e092bd7f 4958064: JPGWriter does not throw UnsupportedException when canWriteSequence retuns false Reviewed-by: prr, bae ! src/java.desktop/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java + test/javax/imageio/plugins/shared/CanWriteSequence.java Changeset: 3850097b0fe9 Author: serb Date: 2015-03-02 16:34 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3850097b0fe9 8048782: OpenJDK: PiscesCache : xmax/ymax rounding up can cause RasterFormatException Reviewed-by: prr, flar Contributed-by: prasanta.sadhukhan at oracle.com ! src/java.desktop/share/classes/sun/java2d/pisces/PiscesCache.java ! src/java.desktop/share/classes/sun/java2d/pisces/PiscesTileGenerator.java + test/sun/java2d/pisces/OpenJDKFillBug.java Changeset: aab14ad05c4f Author: serb Date: 2015-03-03 17:50 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/aab14ad05c4f 8039345: Strange behaviour of per-pixel translucency on linux Reviewed-by: prr, azvegint Contributed-by: prasanta.sadhukhan at oracle.com ! src/java.desktop/unix/classes/sun/java2d/xr/XRSurfaceData.java + test/sun/java2d/XRSurfaceData/ComponentResizeTest.java Changeset: 6c969d104de2 Author: serb Date: 2015-03-03 20:23 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/6c969d104de2 8073420: JFrame.EXIT_ON_CLOSE can be removed in favour of WindowConstants.EXIT_ON_CLOSE Reviewed-by: art, azvegint, alexsch ! src/demo/share/java2d/J2DBench/src/j2dbench/J2DBench.java ! src/demo/share/jfc/SampleTree/SampleTree.java ! src/demo/share/management/JTop/JTop.java ! src/java.desktop/share/classes/javax/swing/JFrame.java ! src/java.desktop/share/classes/javax/swing/JLayer.java Changeset: b869f40e0ccd Author: juh Date: 2015-02-23 11:40 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b869f40e0ccd 8072663: Remove the sun.security.acl package which is not used in the JDK Reviewed-by: mullan, alanb, mchung ! src/java.base/share/classes/java/security/acl/Acl.java - src/java.base/share/classes/sun/security/acl/AclEntryImpl.java - src/java.base/share/classes/sun/security/acl/AclImpl.java - src/java.base/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.base/share/classes/sun/security/acl/GroupImpl.java - src/java.base/share/classes/sun/security/acl/OwnerImpl.java - src/java.base/share/classes/sun/security/acl/PermissionImpl.java - src/java.base/share/classes/sun/security/acl/PrincipalImpl.java - src/java.base/share/classes/sun/security/acl/WorldGroupImpl.java ! test/TEST.groups - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: 03df711f2cab Author: jmanson Date: 2015-02-24 09:46 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/03df711f2cab 6588467: Add isDaemon() and getPriority() to ThreadInfo Reviewed-by: mchung, sla, dholmes, martin ! src/java.management/share/classes/java/lang/management/ThreadInfo.java ! src/java.management/share/classes/sun/management/ThreadInfoCompositeData.java ! test/java/lang/management/CompositeData/ThreadInfoCompositeData.java + test/java/lang/management/ThreadMXBean/ThreadDaemonTest.java ! test/java/lang/management/ThreadMXBean/ThreadDump.java Changeset: 31ba9c9a6b35 Author: sla Date: 2015-02-24 10:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/31ba9c9a6b35 8073713: javadoc warnings in serviceability code Reviewed-by: mgronlun, alanb, sspitsyn ! src/java.management/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ! src/jdk.attach/share/classes/com/sun/tools/attach/AttachOperationFailedException.java ! src/jdk.jdi/share/classes/com/sun/jdi/InterfaceType.java Changeset: 2d045ee4b2f3 Author: igerasim Date: 2015-02-24 19:50 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/2d045ee4b2f3 8073779: StackOverflowError called StackOverflowException in javadoc Reviewed-by: martin ! src/java.base/share/classes/java/util/stream/DoubleStream.java ! src/java.base/share/classes/java/util/stream/IntStream.java ! src/java.base/share/classes/java/util/stream/LongStream.java ! src/java.base/share/classes/java/util/stream/Stream.java Changeset: fea5c84f2bbc Author: jbachorik Date: 2015-02-16 10:53 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/fea5c84f2bbc 8072908: com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh fails on OS X with exit code 2 Reviewed-by: dholmes, sla - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java + test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh Changeset: cd278876ee60 Author: ctornqvi Date: 2015-02-18 19:28 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/cd278876ee60 Merge - src/jdk.runtime/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_TW.java Changeset: 80b3e02fdfce Author: amurillo Date: 2015-02-20 14:14 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/80b3e02fdfce Merge - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh Changeset: d5f7442dbd63 Author: amurillo Date: 2015-02-24 10:52 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d5f7442dbd63 Merge - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh Changeset: 13c749cb2edf Author: dfuchs Date: 2015-02-24 21:51 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/13c749cb2edf 8073394: Clock.systemUTC() should return a constant Summary: Clock.systemUTC() now returns SystemClock.UTC Reviewed-by: scolebourne, rriggs, plevart, lancea ! src/java.base/share/classes/java/time/Clock.java ! test/java/time/test/java/time/TestClock_System.java Changeset: f5a9533bd747 Author: mchung Date: 2015-02-24 12:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f5a9533bd747 8073696: Remove unused imports in java.corba, java.jaxws, jdk.httpserver Reviewed-by: alanb, chegar ! src/jdk.httpserver/share/classes/com/sun/net/httpserver/HttpExchange.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/AuthFilter.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/HttpExchangeImpl.java ! src/jdk.httpserver/share/classes/sun/net/httpserver/HttpsExchangeImpl.java Changeset: d278a05017eb Author: weijun Date: 2015-02-25 18:30 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d278a05017eb 8073181: keytool -ext honored not working correctly Reviewed-by: mullan ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! test/sun/security/tools/keytool/KeyToolTest.java Changeset: 895c085e15d4 Author: weijun Date: 2015-02-25 18:30 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/895c085e15d4 8073182: keytool may generate duplicate extensions Reviewed-by: mullan ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! test/sun/security/tools/keytool/KeyToolTest.java Changeset: edce622135bc Author: coffeys Date: 2015-02-25 11:44 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/edce622135bc 7178362: Socket impls should ignore unsupported proxy types rather than throwing Reviewed-by: chegar ! src/java.base/share/classes/java/net/SocksSocketImpl.java + test/java/net/Socks/BadProxySelector.java Changeset: b1d316f8656f Author: jfranck Date: 2015-02-25 14:30 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b1d316f8656f 8014678: Spurious AccessControlException thrown in java.lang.Class.getEnclosingMethod() Reviewed-by: ahgross, mchung, psandoz ! src/java.base/share/classes/java/lang/Class.java + test/java/lang/Class/getEnclosingConstructor/EnclosingConstructorWithSecurityManager.java + test/java/lang/Class/getEnclosingMethod/EnclosingMethodWithSecurityManager.java Changeset: 37d1442d53bc Author: ksrini Date: 2015-02-25 06:21 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/37d1442d53bc 8066185: VM crashed with SIGSEGV VirtualMemoryTracker::add_reserved_region Reviewed-by: coleenp, dholmes ! src/java.base/share/native/libjli/java.c ! test/tools/launcher/TestSpecialArgs.java Changeset: 14325c15583d Author: msheppar Date: 2015-02-25 17:05 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/14325c15583d 8046893: JNI exception pending in jdk/src/solaris/native/java/net: ExtendedOptionsImpl.c, PlainDatagramSocketImpl.c Reviewed-by: alanb, chegar ! src/java.base/unix/native/libnet/ExtendedOptionsImpl.c Changeset: 367cd3425a59 Author: msheppar Date: 2015-02-25 17:24 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/367cd3425a59 8055204: Memory leak in jdk/src/windows/native/java/lang/java_props_md.c Reviewed-by: rriggs ! src/java.base/windows/native/libjava/java_props_md.c Changeset: 710db3eff010 Author: dfuchs Date: 2015-02-25 18:41 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/710db3eff010 8072645: java.util.logging should use java.time to get more precise time stamps Summary: j.u.logging uses j.t.Instant to store LogRecord time stamps. XMLFormatter format is updated to allow for a new optional element containing a nano second adjustment. SimpleFormatter passes a ZonedDateTime object to String.format. LogRecord getMillis/setMillis are deprecated, replaced by getInstant/setInstant. Reviewed-by: scolebourne, plevart, rriggs Contributed-by: daniel.fuchs at oracle.com, peter.levart at gmail.com ! src/java.base/share/classes/sun/util/logging/LoggingSupport.java ! src/java.base/share/classes/sun/util/logging/PlatformLogger.java ! src/java.logging/share/classes/java/util/logging/LogRecord.java ! src/java.logging/share/classes/java/util/logging/SimpleFormatter.java ! src/java.logging/share/classes/java/util/logging/XMLFormatter.java ! test/java/lang/invoke/lambda/LogGeneratedClassesTest.java ! test/java/util/logging/FileHandlerLongLimit.java + test/java/util/logging/HigherResolutionTimeStamps/LogRecordWithNanos.java + test/java/util/logging/HigherResolutionTimeStamps/LogRecordWithNanosAPI.java + test/java/util/logging/HigherResolutionTimeStamps/SerializeLogRecord.java + test/java/util/logging/HigherResolutionTimeStamps/SimpleFormatterNanos.java + test/java/util/logging/HigherResolutionTimeStamps/XmlFormatterNanos.java Changeset: 7acbc61bf3fb Author: msheppar Date: 2015-02-25 19:36 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/7acbc61bf3fb 8046901: Check jdk/src/solaris/native/sun/nio for Parfait flagged uninitialized memory Reviewed-by: rriggs, alanb ! src/java.base/unix/native/libnio/ch/DatagramChannelImpl.c ! src/java.base/unix/native/libnio/ch/ServerSocketChannelImpl.c ! src/jdk.sctp/unix/native/libsctp/SctpNet.c Changeset: f7e46f7c75df Author: sherman Date: 2015-02-25 13:04 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f7e46f7c75df 8073893: Enable charsets build system to configure euc_tw into java.base module/sun.nio.cs Summary: to enable charsets build system to configure euc_tw into java.base module/sun.nio.cs Reviewed-by: alanb, mchung ! make/data/charsetmapping/charsets ! make/data/charsetmapping/stdcs-solaris ! make/gensrc/Gensrc-jdk.charsets.gmk ! make/gensrc/GensrcCharsetMapping.gmk ! make/src/classes/build/tools/charsetmapping/Charset.java ! make/src/classes/build/tools/charsetmapping/EUC_TW.java ! make/src/classes/build/tools/charsetmapping/HKSCS.java ! make/src/classes/build/tools/charsetmapping/Main.java ! make/src/classes/build/tools/charsetmapping/SPI.java ! src/java.desktop/unix/classes/sun/awt/motif/X11CNS11643.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java + src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java.template ! src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java.template ! src/jdk.charsets/share/classes/sun/nio/cs/ext/ISO2022_CN_CNS.java ! test/sun/nio/cs/X11CNS11643.java Changeset: f3e5c7d886a5 Author: weijun Date: 2015-02-26 08:08 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f3e5c7d886a5 8073853: KeyToolTest.java has too many too long lines Reviewed-by: mullan ! test/sun/security/tools/keytool/KeyToolTest.java Changeset: d4cc200fd4c9 Author: coffeys Date: 2015-02-26 09:36 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d4cc200fd4c9 8071447: IBM1166 Locale Request for Kazakh characters Reviewed-by: sherman + make/data/charsetmapping/IBM1166.c2b + make/data/charsetmapping/IBM1166.map + make/data/charsetmapping/IBM1166.nr ! make/data/charsetmapping/charsets ! make/data/charsetmapping/list_old ! test/java/nio/charset/Charset/RegisteredCharsets.java ! test/java/nio/charset/RemovingSunIO/SunioAlias.java ! test/sun/nio/cs/CheckHistoricalNames.java Changeset: a3d2a201d7b3 Author: vinnie Date: 2015-02-26 16:29 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a3d2a201d7b3 8073955: Update java.security.debug help text to reflect recent enhancements for debugging Reviewed-by: mullan ! src/java.base/share/classes/sun/security/util/Debug.java Changeset: 32af5df346f5 Author: sherman Date: 2015-02-26 14:40 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/32af5df346f5 8073924: Update test/java/nio/charset/Charset/NIOCharsetAvailability.java to work with module system Summary: to use module's runtime filesystem to iterate the class files Reviewed-by: alanb ! test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java Changeset: dde2405cdb0f Author: lpriima Date: 2015-02-26 18:50 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/dde2405cdb0f 8073354: TimSortStackSize2.java: test cleanup: make test run with single argument Reviewed-by: dholmes ! test/java/util/Arrays/TimSortStackSize2.java Changeset: 99dfa8d56fc6 Author: darcy Date: 2015-02-26 18:02 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/99dfa8d56fc6 8073952: Spec of j.l.r.Method.toString/toGenericString need to be clarified Reviewed-by: lancea ! src/java.base/share/classes/java/lang/reflect/Constructor.java ! src/java.base/share/classes/java/lang/reflect/Method.java Changeset: be681c3449ce Author: katleman Date: 2015-02-26 15:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/be681c3449ce Added tag jdk9-b52 for changeset 607ea68032cd ! .hgtags Changeset: 6cb5f5c34009 Author: lana Date: 2015-02-26 20:18 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/6cb5f5c34009 Merge - src/java.base/share/classes/sun/security/acl/AclEntryImpl.java - src/java.base/share/classes/sun/security/acl/AclImpl.java - src/java.base/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.base/share/classes/sun/security/acl/GroupImpl.java - src/java.base/share/classes/sun/security/acl/OwnerImpl.java - src/java.base/share/classes/sun/security/acl/PermissionImpl.java - src/java.base/share/classes/sun/security/acl/PrincipalImpl.java - src/java.base/share/classes/sun/security/acl/WorldGroupImpl.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: e97e909d3c31 Author: psandoz Date: 2015-02-27 09:58 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/e97e909d3c31 8071600: Add a flat-mapping collector Reviewed-by: smarks, chegar, briangoetz ! src/java.base/share/classes/java/util/stream/Collectors.java + test/java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorsTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java Changeset: f72c2ac7c69b Author: ihse Date: 2015-02-27 11:56 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f72c2ac7c69b 8072842: Add support for building native JTReg tests Reviewed-by: erikj, sla + make/test/JtregNative.gmk ! test/Makefile ! test/TEST.groups + test/native_sanity/simplenativelauncher/ProgramTest.java + test/native_sanity/simplenativelauncher/exesanity_SimpleNativeLauncher.c + test/native_sanity/simplenativelib/NativeLib.java + test/native_sanity/simplenativelib/libsanity_SimpleNativeLib.c + test/native_sanity/simplenativelib2/NativeLib.java + test/native_sanity/simplenativelib2/libsanity_SimpleNativeLib2.c Changeset: f121ce607f02 Author: chegar Date: 2015-02-27 11:45 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f121ce607f02 8074022: Serialization should issue a freeze action after reconstituting a graph that contains objects with final fields Reviewed-by: dholmes, plevart, psandoz ! src/java.base/share/classes/java/io/ObjectInputStream.java ! src/java.base/share/classes/java/math/BigDecimal.java ! src/java.base/share/classes/java/math/BigInteger.java Changeset: cf0720e8e76a Author: vlivanov Date: 2015-02-27 18:03 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/cf0720e8e76a 8073644: Assertion in LambdaFormEditor.bindArgumentType is too strict Reviewed-by: psandoz ! src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java + test/java/lang/invoke/CustomizedLambdaFormTest.java Changeset: 157b0a8bf65c Author: rriggs Date: 2015-02-27 10:09 -0500 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/157b0a8bf65c 8044051: Test jdk/lambda/vm/InterfaceAccessFlagsTest.java gets IOException during compilation Summary: create the gen-separate directory in the current directory to improve robustness Reviewed-by: darcy ! test/jdk/lambda/separate/Compiler.java Changeset: d2a4b295498e Author: chegar Date: 2015-02-27 18:12 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d2a4b295498e 8074043: java.util.Arrays setAll and parallelSetAll subrange note Reviewed-by: smarks ! src/java.base/share/classes/java/util/Arrays.java Changeset: 79bf08fed7eb Author: bpb Date: 2015-02-27 14:36 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/79bf08fed7eb 8071599: (so) Socket adapter sendUrgentData throws IllegalBlockingMode when channel configured non-blocking Summary: Remove restriction to blocking case Reviewed-by: alanb, chegar ! src/java.base/share/classes/sun/nio/ch/SocketAdaptor.java ! test/java/nio/channels/SocketChannel/OutOfBand.java + test/java/nio/channels/SocketChannel/SendUrgentData.java Changeset: 9ec28859cdd0 Author: weijun Date: 2015-02-28 10:47 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/9ec28859cdd0 8074018: Named extension not recognized in keytool -ext honored after 8073182 Reviewed-by: mullan ! src/java.base/share/classes/sun/security/tools/keytool/Main.java ! test/sun/security/tools/keytool/KeyToolTest.java Changeset: 162c4c958d78 Author: redestad Date: 2015-02-28 13:17 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/162c4c958d78 8073497: Lazy conversion of ZipEntry time Reviewed-by: sherman, plevart ! src/java.base/share/classes/java/util/zip/ZipEntry.java ! src/java.base/share/classes/java/util/zip/ZipFile.java ! src/java.base/share/classes/java/util/zip/ZipInputStream.java ! src/java.base/share/classes/java/util/zip/ZipOutputStream.java ! src/java.base/share/classes/java/util/zip/ZipUtils.java ! test/java/util/zip/TestExtraTime.java Changeset: e1f68774d811 Author: okutsu Date: 2015-03-02 11:48 +0900 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/e1f68774d811 8072602: Unpredictable timezone on Windows when OS's timezone is not found in tzmappings Reviewed-by: peytoia ! src/java.base/windows/native/libjava/TimeZone_md.c Changeset: 873915557654 Author: igerasim Date: 2015-03-02 11:07 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/873915557654 8055915: (ch) FileDispatcherImpl.truncate0 should use SetFileInformationByHandle [win] Reviewed-by: alanb ! src/java.base/windows/native/libnio/ch/FileDispatcherImpl.c Changeset: 3b216624c0c1 Author: erikj Date: 2015-03-02 14:18 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3b216624c0c1 8074072: Race condition in build since JDK-8072842 can cause failed builds on Solaris Reviewed-by: ihse ! make/Tools.gmk Changeset: 7c6d6f1b7a56 Author: dfuchs Date: 2015-03-02 14:46 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/7c6d6f1b7a56 8074032: Instant.ofEpochMilli(millis).toEpochMilli() can throw arithmetic overflow in toEpochMilli() Summary: Instant.toEpochMilli() now takes into account the sign of the 'seconds' field. Reviewed-by: rriggs, scolebourne ! src/java.base/share/classes/java/time/Instant.java ! test/java/time/test/java/time/TestInstant.java Changeset: c9257ce77b6f Author: bchristi Date: 2015-03-02 13:37 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c9257ce77b6f 8073596: Add jdk.management.cmm in boot.modules that needs sun.management.spi be exported to it Reviewed-by: alanb, erikj, ihse, mchung ! make/gensrc/Gensrc-java.management.gmk ! make/src/classes/build/tools/module/boot.modules Changeset: 02258ba2cf9d Author: darcy Date: 2015-03-02 16:06 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/02258ba2cf9d 8074126: Correct @see cross-refs to the JLS in java.lang[.annotation] Reviewed-by: lancea ! src/java.base/share/classes/java/lang/FunctionalInterface.java ! src/java.base/share/classes/java/lang/Override.java ! src/java.base/share/classes/java/lang/SafeVarargs.java ! src/java.base/share/classes/java/lang/SuppressWarnings.java ! src/java.base/share/classes/java/lang/annotation/Inherited.java ! src/java.base/share/classes/java/lang/annotation/Repeatable.java ! src/java.base/share/classes/java/lang/annotation/Retention.java ! src/java.base/share/classes/java/lang/annotation/Target.java Changeset: b0127cbb5446 Author: aph Date: 2014-11-13 15:45 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b0127cbb5446 8064594: AARCH64: JDK changes Reviewed-by: dholmes, twisti, kvn ! make/lib/SoundLibraries.gmk + src/java.base/unix/conf/aarch64/jvm.cfg + src/java.base/unix/native/libjli/aarch64/jvm.cfg ! src/java.desktop/share/native/libjsound/SoundDefs.h Changeset: fe8419bcff15 Author: kvn Date: 2014-11-21 14:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/fe8419bcff15 Merge ! make/lib/SoundLibraries.gmk - src/java.base/share/classes/java/util/zip/package.html Changeset: d9f7cd2c80f6 Author: kvn Date: 2014-12-11 15:05 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d9f7cd2c80f6 Merge - make/Bundles.gmk - make/CreateJars.gmk - make/CreatePolicyJars.gmk - make/CreateSecurityJars.gmk - make/Images.gmk - make/ProfileNames.gmk - make/Profiles.gmk ! make/lib/SoundLibraries.gmk - make/profile-includes.txt - make/profile-rtjar-includes.txt - src/java.base/share/native/libjli/version_comp.c - src/java.base/share/native/libjli/version_comp.h - src/java.desktop/share/classes/sun/awt/datatransfer/META-INF/services/sun.datatransfer.DesktopDatatransferService - src/jdk.dev/share/classes/com/sun/tools/script/shell/Main.java - src/jdk.dev/share/classes/com/sun/tools/script/shell/init.js - src/jdk.dev/share/classes/com/sun/tools/script/shell/messages.properties - src/jdk.localedata/META-INF/cldrdata-services/sun.util.locale.provider.LocaleDataMetaInfo - src/jdk.localedata/META-INF/localedata-services/sun.util.locale.provider.LocaleDataMetaInfo - test/javax/crypto/sanity/CheckManifestForRelease.java - test/lib/security/java.policy/Ext_AllPolicy.java - test/lib/security/java.policy/Ext_AllPolicy.sh - test/lib/security/java.policy/test.policy - test/sun/tools/jconsole/ResourceCheckTest.sh - test/sun/tools/jinfo/Basic.sh - test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh Changeset: 5922c0cd2a30 Author: kvn Date: 2015-01-20 15:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/5922c0cd2a30 Merge Changeset: c074923f28b2 Author: aph Date: 2015-02-06 10:14 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c074923f28b2 8072053: AARCH64: remove src/java.base/unix/native/libjli/aarch64/jvm.cfg Reviewed-by: kvn - src/java.base/unix/native/libjli/aarch64/jvm.cfg Changeset: 8a07f1204f5b Author: kvn Date: 2015-02-26 10:56 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/8a07f1204f5b Merge - make/data/charsetmapping/dbcs - make/data/charsetmapping/extsbcs - make/data/charsetmapping/sbcs - make/data/charsetmapping/standard-charsets - make/data/checkdeps/refs.allowed - make/src/classes/build/tools/deps/CheckDeps.java - src/java.base/aix/native/libnet/java/net/aix_close.c - src/java.base/unix/classes/java/lang/UNIXProcess.java - src/java.base/unix/native/libjava/UNIXProcess_md.c - src/java.base/unix/native/libjava/java_props_macosx.c - src/java.base/unix/native/libjava/java_props_macosx.h - src/java.base/unix/native/libnet/bsd_close.c - src/java.base/unix/native/libnet/linux_close.c - src/java.base/unix/native/libnet/solaris_close.c - src/java.desktop/macosx/classes/sun/datatransfer/resources/flavormap.properties - src/java.desktop/share/classes/java/awt/datatransfer/Clipboard.java - src/java.desktop/share/classes/java/awt/datatransfer/ClipboardOwner.java - src/java.desktop/share/classes/java/awt/datatransfer/DataFlavor.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorEvent.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorListener.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorMap.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorTable.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeType.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeTypeParameterList.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeTypeParseException.java - src/java.desktop/share/classes/java/awt/datatransfer/StringSelection.java - src/java.desktop/share/classes/java/awt/datatransfer/SystemFlavorMap.java - src/java.desktop/share/classes/java/awt/datatransfer/Transferable.java - src/java.desktop/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java - src/java.desktop/share/classes/java/awt/datatransfer/package.html - src/java.desktop/share/classes/sun/datatransfer/DataFlavorUtil.java - src/java.desktop/share/classes/sun/datatransfer/DesktopDatatransferService.java - src/java.desktop/unix/classes/sun/awt/X11/XAWTFormatter.java - src/java.desktop/unix/classes/sun/datatransfer/resources/flavormap.properties - src/java.desktop/windows/classes/sun/datatransfer/resources/flavormap.properties - src/java.management/share/classes/java/lang/management/PlatformComponent.java - src/java.management/share/classes/sun/management/ExtendedPlatformComponent.java - src/java.security.acl/share/classes/java/security/acl/Acl.java - src/java.security.acl/share/classes/java/security/acl/AclEntry.java - src/java.security.acl/share/classes/java/security/acl/AclNotFoundException.java - src/java.security.acl/share/classes/java/security/acl/Group.java - src/java.security.acl/share/classes/java/security/acl/LastOwnerException.java - src/java.security.acl/share/classes/java/security/acl/NotOwnerException.java - src/java.security.acl/share/classes/java/security/acl/Owner.java - src/java.security.acl/share/classes/java/security/acl/Permission.java - src/java.security.acl/share/classes/java/security/acl/package-info.java - src/java.security.acl/share/classes/sun/security/acl/AclEntryImpl.java - src/java.security.acl/share/classes/sun/security/acl/AclImpl.java - src/java.security.acl/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.security.acl/share/classes/sun/security/acl/GroupImpl.java - src/java.security.acl/share/classes/sun/security/acl/OwnerImpl.java - src/java.security.acl/share/classes/sun/security/acl/PermissionImpl.java - src/java.security.acl/share/classes/sun/security/acl/PrincipalImpl.java - src/java.security.acl/share/classes/sun/security/acl/WorldGroupImpl.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_Solaris.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DelegatableDecoder.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DoubleByte.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_LINUX.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_Open.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java - src/jdk.runtime/share/classes/com/sun/tracing/Probe.java - src/jdk.runtime/share/classes/com/sun/tracing/ProbeName.java - src/jdk.runtime/share/classes/com/sun/tracing/Provider.java - src/jdk.runtime/share/classes/com/sun/tracing/ProviderFactory.java - src/jdk.runtime/share/classes/com/sun/tracing/ProviderName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ArgsAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/Attributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/DependencyClass.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/FunctionAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/FunctionName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ModuleAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ModuleName.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/NameAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/ProviderAttributes.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/StabilityLevel.java - src/jdk.runtime/share/classes/com/sun/tracing/dtrace/package-info.java - src/jdk.runtime/share/classes/com/sun/tracing/package-info.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_TW.java - src/jdk.runtime/share/classes/sun/tracing/MultiplexProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/NullProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/PrintStreamProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/ProbeSkeleton.java - src/jdk.runtime/share/classes/sun/tracing/ProviderSkeleton.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/Activation.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProbe.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProvider.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/DTraceProviderFactory.java - src/jdk.runtime/share/classes/sun/tracing/dtrace/JVM.java - src/jdk.runtime/share/classes/sun/tracing/package-info.java - src/jdk.runtime/share/native/libjsdt/JVM.c - src/jdk.runtime/share/native/libjsdt/jvm_symbols.h - src/jdk.runtime/unix/native/libjsdt/jvm_symbols_md.c - src/jdk.runtime/windows/native/libjsdt/jvm_symbols_md.c - src/jdk.security.auth/unix/native/libjaas/Solaris.c - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh - test/com/sun/tracing/BasicFunctionality.java - test/com/sun/tracing/BasicWithSecurityMgr.java - test/java/awt/color/LoadProfileWithSM.java - test/java/awt/color/LoadStandardProfilesTest.java - test/java/lang/CharSequence/DefaultTest.java - test/java/util/ResourceBundle/Bug6287579.java - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: 11dfc712c44f Author: kvn Date: 2015-03-02 10:09 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/11dfc712c44f Merge - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java Changeset: c5ea253b6dc0 Author: kvn Date: 2015-03-02 15:15 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c5ea253b6dc0 Merge Changeset: 769e84968ef2 Author: kvn Date: 2015-03-02 17:36 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/769e84968ef2 Merge Changeset: ae7e32b84770 Author: igerasim Date: 2015-03-03 10:30 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/ae7e32b84770 8074066: Useless code in share/native/libjava/VM.c Reviewed-by: mchung ! src/java.base/share/native/libjava/VM.c Changeset: b68f6b84dc94 Author: psandoz Date: 2015-03-03 12:30 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b68f6b84dc94 8071479: Stream and lambdafication improvements to j.u.regex.Matcher Reviewed-by: smarks, briangoetz, sherman ! src/java.base/share/classes/java/util/regex/Matcher.java ! test/java/util/regex/PatternStreamTest.java ! test/java/util/regex/RegExTest.java Changeset: 9c769c3a2c60 Author: jbachorik Date: 2015-02-18 17:50 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/9c769c3a2c60 8071657: JDI ObjectReferenceImpl.invokeMethod() validation fails for virtual invocations of method with declaring type being an interface Reviewed-by: sspitsyn, sla ! src/jdk.jdi/share/classes/com/sun/tools/jdi/ObjectReferenceImpl.java ! test/com/sun/jdi/InterfaceMethodsTest.java Changeset: cbfdd9ba09f0 Author: ctornqvi Date: 2015-02-23 05:01 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/cbfdd9ba09f0 Merge - make/data/charsetmapping/dbcs - make/data/charsetmapping/extsbcs - make/data/charsetmapping/sbcs - make/data/charsetmapping/standard-charsets - src/java.desktop/macosx/classes/sun/datatransfer/resources/flavormap.properties - src/java.desktop/share/classes/java/awt/datatransfer/Clipboard.java - src/java.desktop/share/classes/java/awt/datatransfer/ClipboardOwner.java - src/java.desktop/share/classes/java/awt/datatransfer/DataFlavor.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorEvent.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorListener.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorMap.java - src/java.desktop/share/classes/java/awt/datatransfer/FlavorTable.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeType.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeTypeParameterList.java - src/java.desktop/share/classes/java/awt/datatransfer/MimeTypeParseException.java - src/java.desktop/share/classes/java/awt/datatransfer/StringSelection.java - src/java.desktop/share/classes/java/awt/datatransfer/SystemFlavorMap.java - src/java.desktop/share/classes/java/awt/datatransfer/Transferable.java - src/java.desktop/share/classes/java/awt/datatransfer/UnsupportedFlavorException.java - src/java.desktop/share/classes/java/awt/datatransfer/package.html - src/java.desktop/share/classes/sun/datatransfer/DataFlavorUtil.java - src/java.desktop/share/classes/sun/datatransfer/DesktopDatatransferService.java - src/java.desktop/unix/classes/sun/awt/X11/XAWTFormatter.java - src/java.desktop/unix/classes/sun/datatransfer/resources/flavormap.properties - src/java.desktop/windows/classes/sun/datatransfer/resources/flavormap.properties - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/Big5_Solaris.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DelegatableDecoder.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/DoubleByte.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_LINUX.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_JP_Open.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/ExtendedCharsets.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/HKSCS.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.runtime/share/classes/sun/security/tools/policytool/Resources_zh_TW.java - test/java/awt/color/LoadProfileWithSM.java - test/java/awt/color/LoadStandardProfilesTest.java Changeset: 40899e008df9 Author: amurillo Date: 2015-02-27 07:34 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/40899e008df9 Merge Changeset: bdb66e8883e2 Author: amurillo Date: 2015-03-03 06:23 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/bdb66e8883e2 Merge Changeset: c892d81d7bba Author: prr Date: 2015-03-03 08:49 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c892d81d7bba Merge ! make/lib/SoundLibraries.gmk - src/java.base/share/classes/sun/security/acl/AclEntryImpl.java - src/java.base/share/classes/sun/security/acl/AclImpl.java - src/java.base/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.base/share/classes/sun/security/acl/GroupImpl.java - src/java.base/share/classes/sun/security/acl/OwnerImpl.java - src/java.base/share/classes/sun/security/acl/PermissionImpl.java - src/java.base/share/classes/sun/security/acl/PrincipalImpl.java - src/java.base/share/classes/sun/security/acl/WorldGroupImpl.java ! src/java.desktop/share/native/libjsound/SoundDefs.h - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: 3b5ddf7e5003 Author: prr Date: 2015-03-03 10:39 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3b5ddf7e5003 Merge - src/java.base/share/classes/sun/security/acl/AclEntryImpl.java - src/java.base/share/classes/sun/security/acl/AclImpl.java - src/java.base/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.base/share/classes/sun/security/acl/GroupImpl.java - src/java.base/share/classes/sun/security/acl/OwnerImpl.java - src/java.base/share/classes/sun/security/acl/PermissionImpl.java - src/java.base/share/classes/sun/security/acl/PrincipalImpl.java - src/java.base/share/classes/sun/security/acl/WorldGroupImpl.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java - test/com/sun/management/OperatingSystemMXBean/GetTotalSwapSpaceSize.java - test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: a709a805e2a7 Author: rkennke Date: 2015-03-04 15:42 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a709a805e2a7 8072436: Refactor X11FontManager Summary: Factor fontconfig related code out of X11FontManager into its own superclass FcFontManager. Reviewed-by: prr, serb ! make/mapfiles/libawt/mapfile-mawt-vers ! make/mapfiles/libawt/mapfile-vers-linux ! make/mapfiles/libawt_headless/mapfile-vers ! make/mapfiles/libawt_xawt/mapfile-vers + src/java.desktop/unix/classes/sun/awt/FcFontManager.java ! src/java.desktop/unix/classes/sun/awt/X11FontManager.java ! src/java.desktop/unix/classes/sun/font/FcFontConfiguration.java ! src/java.desktop/unix/native/common/awt/fontpath.c Changeset: 87abef3a807b Author: yan Date: 2015-03-05 11:07 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/87abef3a807b 8074092: Newly introduced unnecessary dependencies on internal API in client regtests Reviewed-by: serb, azvegint ! test/java/awt/Choice/ItemStateChangeTest/ItemStateChangeTest.java ! test/java/awt/Desktop/8064934/bug8064934.java ! test/java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java ! test/java/awt/SplashScreen/FullscreenAfterSplash/FullScreenAfterSplash.java ! test/java/awt/event/KeyEvent/SwallowKeyEvents/SwallowKeyEvents.java ! test/javax/swing/JButton/4796987/bug4796987.java ! test/javax/swing/JFileChooser/8062561/bug8062561.java ! test/javax/swing/JPopupMenu/6827786/bug6827786.java Changeset: 1623d30c2621 Author: anashaty Date: 2015-03-06 16:38 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/1623d30c2621 8072900: Mouse events are captured by the wrong menu in OS X Reviewed-by: serb, alexp ! src/java.desktop/macosx/classes/com/apple/laf/AquaMenuUI.java + test/javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java Changeset: 5ba1fb03c750 Author: serb Date: 2015-03-09 08:53 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/5ba1fb03c750 4849595: Erroneous javadoc for TableColumn.addPropertyChangeListener Reviewed-by: azvegint, alexsch ! src/java.desktop/share/classes/javax/swing/table/TableColumn.java Changeset: f7352b8a3cbf Author: juh Date: 2015-03-03 14:16 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f7352b8a3cbf 8054037: Improve tracing for java.security.debug=certpath 8055207: keystore and truststore debug output could be much better Reviewed-by: mullan, coffeys, jnimeh ! src/java.base/share/classes/java/security/cert/X509CertSelector.java ! src/java.base/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java ! src/java.base/share/classes/sun/security/provider/certpath/Builder.java ! src/java.base/share/classes/sun/security/provider/certpath/ConstraintsChecker.java ! src/java.base/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java ! src/java.base/share/classes/sun/security/provider/certpath/ForwardBuilder.java ! src/java.base/share/classes/sun/security/provider/certpath/PKIXMasterCertPathValidator.java ! src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java ! src/java.base/share/classes/sun/security/provider/certpath/SunCertPathBuilder.java ! src/java.base/share/classes/sun/security/ssl/ClientHandshaker.java ! src/java.base/share/classes/sun/security/ssl/HandshakeMessage.java Changeset: 4503bd758762 Author: weijun Date: 2015-03-04 10:12 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/4503bd758762 8048360: Test signed jar files Reviewed-by: weijun Contributed-by: Amanda Jiang + test/java/security/Policy/SignedJar/SignedJarTest.java + test/java/security/Policy/SignedJar/SignedJarTest_1.policy + test/java/security/Policy/SignedJar/SignedJarTest_2.policy + test/java/security/Policy/SignedJar/keypass Changeset: 4223dabee9a3 Author: xuelei Date: 2015-03-04 08:10 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/4223dabee9a3 8050371: More MessageDigest tests Reviewed-by: xuelei Contributed-by: Zaiyao Liu ! src/java.base/share/classes/sun/security/ssl/ClientHandshaker.java + test/java/security/MessageDigest/TestSameLength.java + test/java/security/MessageDigest/TestSameValue.java Changeset: d5b1b2c14d3f Author: weijun Date: 2015-03-04 16:26 +0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/d5b1b2c14d3f 8048610: Implement regression test for bug fix of 4686632 in JCE Reviewed-by: weijun Contributed-by: Zaiyao Liu + test/com/sun/crypto/provider/Cipher/JCE/Bugs/4686632/Empty.java Changeset: 0c85e7c7adda Author: igerasim Date: 2015-03-04 13:44 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/0c85e7c7adda 8074067: (bf) Re-examine java.base/share/native/libjava/Bits.c Reviewed-by: alanb, martin ! src/java.base/share/native/libjava/Bits.c Changeset: 27c361a07e97 Author: smarks Date: 2015-03-04 13:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/27c361a07e97 8073923: Files.lines() documentation needs clarification Reviewed-by: darcy, alanb ! src/java.base/share/classes/java/nio/file/Files.java ! src/java.base/share/classes/java/util/stream/Stream.java Changeset: 0e1bb756145c Author: bpb Date: 2015-03-04 15:05 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/0e1bb756145c 8073445: (fs) FileSystem.getPathMatcher(...) should check syntax component without regard to case Summary: Change String equals() to equalsIgnoreCase() where needed. Reviewed-by: alanb ! src/java.base/share/classes/jdk/internal/jrtfs/JrtFileSystem.java ! src/java.base/unix/classes/sun/nio/fs/UnixFileSystem.java ! src/java.base/windows/classes/sun/nio/fs/WindowsFileSystem.java ! src/jdk.zipfs/share/classes/jdk/nio/zipfs/ZipFileSystem.java ! test/java/nio/file/PathMatcher/Basic.java Changeset: 8daf89cf0f4e Author: chegar Date: 2015-03-05 09:38 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/8daf89cf0f4e 8068260: java/io/Serializable/clearHandleTable/ClearHandleTable.java timed out Reviewed-by: rriggs, smarks ! test/java/io/Serializable/clearHandleTable/ClearHandleTable.java Changeset: f493132a7e7e Author: dsamersoff Date: 2015-03-05 05:06 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/f493132a7e7e 8030708: warnings from b119 for jdk/src/share/back: JNI exception pending Summary: Added some more checks for pending exception Reviewed-by: dholmes, sspitsyn ! src/jdk.jdwp.agent/share/native/libjdwp/StringReferenceImpl.c ! src/jdk.jdwp.agent/share/native/libjdwp/commonRef.c Changeset: dd67910c07f4 Author: sjiang Date: 2015-03-05 14:54 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/dd67910c07f4 8073148: "The server has decided to close this client connection" repeated continuously Reviewed-by: jbachorik ! src/java.management/share/classes/com/sun/jmx/remote/internal/ClientNotifForwarder.java ! src/java.management/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Changeset: 85b61f4eee66 Author: chegar Date: 2015-03-05 17:04 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/85b61f4eee66 8005226: java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java fails intermittently Reviewed-by: rriggs, smarks ! test/java/rmi/testlibrary/TestLibrary.java ! test/java/rmi/transport/pinClientSocketFactory/PinClientSocketFactory.java Changeset: c517009905c5 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c517009905c5 Added tag jdk9-b53 for changeset 6cb5f5c34009 ! .hgtags Changeset: 568a62ab7d76 Author: lana Date: 2015-03-05 15:23 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/568a62ab7d76 Merge - src/java.desktop/share/conf/images/cursors/invalid32x32.gif - src/java.desktop/share/conf/images/cursors/motif_CopyDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_CopyNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_LinkDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_LinkNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_MoveDrop32x32.gif - src/java.desktop/share/conf/images/cursors/motif_MoveNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_CopyDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_CopyNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_LinkDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_LinkNoDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_MoveDrop32x32.gif - src/java.desktop/share/conf/images/cursors/win32_MoveNoDrop32x32.gif - src/java.desktop/unix/conf/images/cursors/cursors.properties - src/java.desktop/windows/conf/images/cursors/cursors.properties - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java Changeset: 1ab727276fd0 Author: valeriep Date: 2015-03-06 00:49 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/1ab727276fd0 8044193: Need to add known answer tests for AES cipher Summary: Added more tests for AES cipher using known test vectors. Reviewed-by: valeriep Contributed-by: Zaiyao Liu + test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/Dynamic.java + test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithDefaultProvider.java + test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java + test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java + test/com/sun/crypto/provider/Cipher/AES/TestAESCiphers/testAES.policy Changeset: ce70f9bd29d2 Author: igerasim Date: 2015-03-06 13:30 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/ce70f9bd29d2 8073692: (cs) Inconsistent docs for CharsetDecoder.replaceWith and CharsetEncoder.replaceWith Reviewed-by: martin ! src/java.base/share/classes/java/nio/charset/Charset-X-Coder.java.template Changeset: 42ac03603daa Author: mchung Date: 2015-03-06 09:02 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/42ac03603daa 8074428: Move pack200, unpack200, libpack200 to jdk.pack200 Reviewed-by: alanb, weijun, erikj, ihse + make/launcher/Launcher-jdk.pack200.gmk - make/launcher/Launcher-jdk.runtime.gmk + make/lib/Lib-jdk.pack200.gmk - make/lib/Lib-jdk.runtime.gmk + src/jdk.pack200/share/native/common-unpack/bands.cpp + src/jdk.pack200/share/native/common-unpack/bands.h + src/jdk.pack200/share/native/common-unpack/bytes.cpp + src/jdk.pack200/share/native/common-unpack/bytes.h + src/jdk.pack200/share/native/common-unpack/coding.cpp + src/jdk.pack200/share/native/common-unpack/coding.h + src/jdk.pack200/share/native/common-unpack/constants.h + src/jdk.pack200/share/native/common-unpack/defines.h + src/jdk.pack200/share/native/common-unpack/unpack.cpp + src/jdk.pack200/share/native/common-unpack/unpack.h + src/jdk.pack200/share/native/common-unpack/utils.cpp + src/jdk.pack200/share/native/common-unpack/utils.h + src/jdk.pack200/share/native/common-unpack/zip.cpp + src/jdk.pack200/share/native/common-unpack/zip.h + src/jdk.pack200/share/native/libunpack/jni.cpp + src/jdk.pack200/share/native/unpack200/main.cpp + src/jdk.pack200/windows/native/unpack200/unpack200_proto.exe.manifest - src/jdk.runtime/share/native/common-unpack/bands.cpp - src/jdk.runtime/share/native/common-unpack/bands.h - src/jdk.runtime/share/native/common-unpack/bytes.cpp - src/jdk.runtime/share/native/common-unpack/bytes.h - src/jdk.runtime/share/native/common-unpack/coding.cpp - src/jdk.runtime/share/native/common-unpack/coding.h - src/jdk.runtime/share/native/common-unpack/constants.h - src/jdk.runtime/share/native/common-unpack/defines.h - src/jdk.runtime/share/native/common-unpack/unpack.cpp - src/jdk.runtime/share/native/common-unpack/unpack.h - src/jdk.runtime/share/native/common-unpack/utils.cpp - src/jdk.runtime/share/native/common-unpack/utils.h - src/jdk.runtime/share/native/common-unpack/zip.cpp - src/jdk.runtime/share/native/common-unpack/zip.h - src/jdk.runtime/share/native/libunpack/jni.cpp - src/jdk.runtime/share/native/unpack200/main.cpp - src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest Changeset: 8a75967dd856 Author: mchung Date: 2015-03-06 09:07 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/8a75967dd856 8074429: Move jar, jarsigner tool to jdk.jartool module Reviewed-by: alanb, weijun, erikj, ihse + make/gensrc/Gensrc-jdk.jartool.gmk ! make/launcher/Launcher-jdk.dev.gmk + make/launcher/Launcher-jdk.jartool.gmk - src/jdk.dev/share/classes/com/sun/jarsigner/ContentSigner.java - src/jdk.dev/share/classes/com/sun/jarsigner/ContentSignerParameters.java - src/jdk.dev/share/classes/com/sun/jarsigner/package-info.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Main.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources_ja.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/TimestampedSigner.java - src/jdk.dev/share/classes/sun/tools/jar/CommandLine.java - src/jdk.dev/share/classes/sun/tools/jar/JarException.java - src/jdk.dev/share/classes/sun/tools/jar/Main.java - src/jdk.dev/share/classes/sun/tools/jar/Manifest.java - src/jdk.dev/share/classes/sun/tools/jar/SignatureFile.java - src/jdk.dev/share/classes/sun/tools/jar/resources/jar.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_de.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_es.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_fr.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_it.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_ja.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_ko.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_pt_BR.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_sv.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_zh_CN.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_zh_TW.properties + src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSigner.java + src/jdk.jartool/share/classes/com/sun/jarsigner/ContentSignerParameters.java + src/jdk.jartool/share/classes/com/sun/jarsigner/package-info.java + src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java + src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources.java + src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java + src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java + src/jdk.jartool/share/classes/sun/security/tools/jarsigner/TimestampedSigner.java + src/jdk.jartool/share/classes/sun/tools/jar/CommandLine.java + src/jdk.jartool/share/classes/sun/tools/jar/JarException.java + src/jdk.jartool/share/classes/sun/tools/jar/Main.java + src/jdk.jartool/share/classes/sun/tools/jar/Manifest.java + src/jdk.jartool/share/classes/sun/tools/jar/SignatureFile.java + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_es.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_it.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ko.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_pt_BR.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_sv.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties + src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_TW.properties Changeset: 3415f1bba050 Author: mchung Date: 2015-03-06 09:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3415f1bba050 8074430: Move policytool to jdk.policytool module Reviewed-by: alanb, weijun, erikj, ihse ! make/launcher/Launcher-jdk.dev.gmk - src/jdk.dev/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_TW.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/PolicyTool.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_de.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_es.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_fr.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_it.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ja.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_ko.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_pt_BR.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_sv.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_CN.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_HK.java + src/jdk.policytool/share/classes/sun/security/tools/policytool/Resources_zh_TW.java Changeset: 50ccf30fafcd Author: bpb Date: 2015-03-06 16:00 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/50ccf30fafcd 8074460: Always print seeds used in [Splittable]Random instances in java.math tests Summary: Create a utility class which creates a pseudorandom number generator (PRNG) and retains the seed. Use this class in java.math tests which use a PRNG. Always print the seed value before the PRNG is used. Reviewed-by: darcy ! test/java/math/BigDecimal/StringConstructor.java ! test/java/math/BigInteger/BigIntegerTest.java ! test/java/math/BigInteger/ModPow65537.java ! test/java/math/BigInteger/PrimeTest.java ! test/java/math/BigInteger/SymmetricRangeTests.java + test/java/math/RandomSeed.java Changeset: 4adbc5971858 Author: sherman Date: 2015-03-07 10:11 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/4adbc5971858 8074406: DateTimeFormatter.appendZoneOrOffsetId() fails to resolve a ZoneOffset for OffsetDateTime Summary: to support resolve OffsetDateTime from DTF.appendZoneOrOffset() Reviewed-by: rriggs ! src/java.base/share/classes/java/time/format/Parsed.java ! test/java/time/tck/java/time/format/TCKZoneIdPrinterParser.java Changeset: 3cc28f4f1137 Author: ksrini Date: 2015-03-07 15:21 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3cc28f4f1137 8074373: NMT is not enabled if NMT option is specified after class path specifiers Reviewed-by: dholmes ! src/java.base/share/native/libjli/java.c ! test/tools/launcher/TestSpecialArgs.java Changeset: 676ec3e5cfc3 Author: ihse Date: 2015-03-09 10:39 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/676ec3e5cfc3 8074096: Disable (most) native warnings in JDK on a per-library basis Reviewed-by: erikj, tbell ! make/CompileDemos.gmk ! make/launcher/Launcher-jdk.pack200.gmk ! make/lib/Awt2dLibraries.gmk ! make/lib/CoreLibraries.gmk ! make/lib/Lib-java.security.jgss.gmk ! make/lib/Lib-jdk.crypto.ec.gmk ! make/lib/Lib-jdk.crypto.pkcs11.gmk ! make/lib/Lib-jdk.deploy.osx.gmk ! make/lib/Lib-jdk.pack200.gmk ! make/lib/NetworkingLibraries.gmk ! make/lib/NioLibraries.gmk ! make/lib/PlatformLibraries.gmk ! make/lib/SoundLibraries.gmk Changeset: ea4f6f76f694 Author: ihse Date: 2015-03-09 16:18 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/ea4f6f76f694 8074690: Fix for JDK-8074429 was not complete Reviewed-by: alanb, erikj ! make/gensrc/Gensrc-jdk.dev.gmk Changeset: 77ce079c8530 Author: prr Date: 2015-03-09 09:49 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/77ce079c8530 Merge - make/launcher/Launcher-jdk.runtime.gmk - make/lib/Lib-jdk.runtime.gmk - src/jdk.dev/share/classes/com/sun/jarsigner/ContentSigner.java - src/jdk.dev/share/classes/com/sun/jarsigner/ContentSignerParameters.java - src/jdk.dev/share/classes/com/sun/jarsigner/package-info.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Main.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources_ja.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java - src/jdk.dev/share/classes/sun/security/tools/jarsigner/TimestampedSigner.java - src/jdk.dev/share/classes/sun/security/tools/policytool/PolicyTool.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_de.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_es.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_fr.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_it.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_ja.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_ko.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_pt_BR.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_sv.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_CN.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_HK.java - src/jdk.dev/share/classes/sun/security/tools/policytool/Resources_zh_TW.java - src/jdk.dev/share/classes/sun/tools/jar/CommandLine.java - src/jdk.dev/share/classes/sun/tools/jar/JarException.java - src/jdk.dev/share/classes/sun/tools/jar/Main.java - src/jdk.dev/share/classes/sun/tools/jar/Manifest.java - src/jdk.dev/share/classes/sun/tools/jar/SignatureFile.java - src/jdk.dev/share/classes/sun/tools/jar/resources/jar.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_de.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_es.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_fr.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_it.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_ja.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_ko.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_pt_BR.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_sv.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_zh_CN.properties - src/jdk.dev/share/classes/sun/tools/jar/resources/jar_zh_TW.properties - src/jdk.runtime/share/native/common-unpack/bands.cpp - src/jdk.runtime/share/native/common-unpack/bands.h - src/jdk.runtime/share/native/common-unpack/bytes.cpp - src/jdk.runtime/share/native/common-unpack/bytes.h - src/jdk.runtime/share/native/common-unpack/coding.cpp - src/jdk.runtime/share/native/common-unpack/coding.h - src/jdk.runtime/share/native/common-unpack/constants.h - src/jdk.runtime/share/native/common-unpack/defines.h - src/jdk.runtime/share/native/common-unpack/unpack.cpp - src/jdk.runtime/share/native/common-unpack/unpack.h - src/jdk.runtime/share/native/common-unpack/utils.cpp - src/jdk.runtime/share/native/common-unpack/utils.h - src/jdk.runtime/share/native/common-unpack/zip.cpp - src/jdk.runtime/share/native/common-unpack/zip.h - src/jdk.runtime/share/native/libunpack/jni.cpp - src/jdk.runtime/share/native/unpack200/main.cpp - src/jdk.runtime/windows/native/unpack200/unpack200_proto.exe.manifest Changeset: b7739fc3663f Author: azvegint Date: 2015-03-10 15:39 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/b7739fc3663f 8056151: Switching to GTK L&F on-the-fly leads to X Window System error RenderBadPicture Reviewed-by: alexsch, serb ! src/java.desktop/unix/classes/sun/awt/UNIXToolkit.java + test/javax/swing/plaf/gtk/crash/RenderBadPictureCrash.java Changeset: ca0c52b14724 Author: alitvinov Date: 2015-03-10 21:48 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/ca0c52b14724 8066436: Minimize can cause window to disappear on osx Reviewed-by: serb, azvegint Contributed-by: nakul.natu at oracle.com ! src/java.desktop/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/java.desktop/macosx/classes/sun/lwawt/macosx/LWCToolkit.java + test/java/awt/Frame/MaximizedNormalBoundsUndecoratedTest/MaximizedNormalBoundsUndecoratedTest.java Changeset: c8156e81be2f Author: azvegint Date: 2015-03-11 16:48 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c8156e81be2f 8074921: OS X build broken by reference to XToolkit Reviewed-by: alexsch, serb ! src/java.desktop/unix/classes/sun/awt/UNIXToolkit.java ! src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c Changeset: c3b558249c32 Author: msheppar Date: 2015-03-09 18:48 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/c3b558249c32 8065078: NetworkInterface.getNetworkInterfaces() triggers intermittent test failures Reviewed-by: chegar ! src/java.base/windows/native/libnet/NetworkInterface_winXP.c Changeset: 7a4b6292286b Author: juh Date: 2015-03-09 17:21 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/7a4b6292286b 8073430: Deprecate security APIs that have been superseded Reviewed-by: mullan, weijun ! src/java.base/share/classes/com/sun/security/cert/internal/x509/X509V1CertImpl.java ! src/java.base/share/classes/java/security/acl/Acl.java ! src/java.base/share/classes/java/security/acl/AclEntry.java ! src/java.base/share/classes/java/security/acl/AclNotFoundException.java ! src/java.base/share/classes/java/security/acl/Group.java ! src/java.base/share/classes/java/security/acl/LastOwnerException.java ! src/java.base/share/classes/java/security/acl/NotOwnerException.java ! src/java.base/share/classes/java/security/acl/Owner.java ! src/java.base/share/classes/java/security/acl/Permission.java ! src/java.base/share/classes/java/security/acl/package-info.java ! src/java.base/share/classes/javax/net/ssl/HandshakeCompletedEvent.java ! src/java.base/share/classes/javax/net/ssl/SSLSession.java ! src/java.base/share/classes/javax/security/cert/Certificate.java ! src/java.base/share/classes/javax/security/cert/CertificateEncodingException.java ! src/java.base/share/classes/javax/security/cert/CertificateException.java ! src/java.base/share/classes/javax/security/cert/CertificateExpiredException.java ! src/java.base/share/classes/javax/security/cert/CertificateNotYetValidException.java ! src/java.base/share/classes/javax/security/cert/CertificateParsingException.java ! src/java.base/share/classes/javax/security/cert/X509Certificate.java ! src/java.base/share/classes/javax/security/cert/package-info.java ! src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java ! src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java ! src/java.base/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java ! src/java.base/share/classes/sun/security/ssl/SSLSessionImpl.java Changeset: 439cf0adaf29 Author: darcy Date: 2015-03-09 17:37 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/439cf0adaf29 8074714: Add javax/xml/jaxp/testng/validation to othervm.dirs in TEST.ROOT Reviewed-by: lancea ! test/TEST.ROOT Changeset: 6921c278b79e Author: darcy Date: 2015-03-09 18:16 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/6921c278b79e 8074788: Javadoc typo in PKCS8EncodedKeySpec Reviewed-by: xuelei ! src/java.base/share/classes/java/security/spec/PKCS8EncodedKeySpec.java Changeset: 861eac6cf4a6 Author: amlu Date: 2015-03-10 13:30 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/861eac6cf4a6 8074674: Doclint regression in java/util/regex/Matcher.java Reviewed-by: psandoz ! src/java.base/share/classes/java/util/regex/Matcher.java Changeset: 6182e044b781 Author: rriggs Date: 2015-03-10 16:44 -0400 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/6182e044b781 8058464: (process spec) ProcessBuilder.redirectXXX throws unspecified NPE Summary: Add a class level spec for null arguments throwing NPE in ProcessBuilder Reviewed-by: martin, alanb ! src/java.base/share/classes/java/lang/ProcessBuilder.java ! test/java/lang/ProcessBuilder/Basic.java Changeset: 3e1171c96a99 Author: darcy Date: 2015-03-10 13:55 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3e1171c96a99 8074870: Really add javax/xml/jaxp/testng/validation to othervm.dirs in TEST.ROOT Reviewed-by: rriggs ! test/TEST.ROOT Changeset: ca912b8b4cd5 Author: sspitsyn Date: 2015-02-25 01:02 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/ca912b8b4cd5 8046246: the constantPoolCacheOopDesc::adjust_method_entries() used in RedefineClasses does not scale Summary: add new test java/lang/instrument/ManyMethodsBenchmarkAgent.java Reviewed-by: coleenp, dcubed Contributed-by: serguei.spitsyn at oracle.com + test/java/lang/instrument/ManyMethodsBenchmarkAgent.java + test/java/lang/instrument/ManyMethodsBenchmarkApp.java Changeset: bc8de55c165e Author: ctornqvi Date: 2015-03-02 05:32 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/bc8de55c165e Merge - src/java.base/share/classes/sun/security/acl/AclEntryImpl.java - src/java.base/share/classes/sun/security/acl/AclImpl.java - src/java.base/share/classes/sun/security/acl/AllPermissionsImpl.java - src/java.base/share/classes/sun/security/acl/GroupImpl.java - src/java.base/share/classes/sun/security/acl/OwnerImpl.java - src/java.base/share/classes/sun/security/acl/PermissionImpl.java - src/java.base/share/classes/sun/security/acl/PrincipalImpl.java - src/java.base/share/classes/sun/security/acl/WorldGroupImpl.java - src/jdk.charsets/share/classes/sun/nio/cs/ext/EUC_TW.java - test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java - test/sun/security/acl/PermissionImpl/PermissionEqualsHashCode.java Changeset: a9ad4e5584b9 Author: amurillo Date: 2015-03-06 04:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/a9ad4e5584b9 Merge Changeset: 9b9fcc7a6500 Author: amurillo Date: 2015-03-10 14:09 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/9b9fcc7a6500 Merge Changeset: baff9dca0c0f Author: amurillo Date: 2015-03-10 14:20 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/baff9dca0c0f Merge Changeset: acdff3d19cab Author: martin Date: 2015-03-04 17:35 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/acdff3d19cab 8074577: Modernize Unsafe internal javadoc Summary: Use modern javadoc style Reviewed-by: jrose ! src/java.base/share/classes/sun/misc/Unsafe.java Changeset: 3dc7002c0d37 Author: martin Date: 2015-03-10 14:23 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/3dc7002c0d37 8074579: Use more efficient and readable way of checking PKZIP signatures Reviewed-by: sherman ! src/java.base/share/native/libjli/manifest_info.h ! src/java.base/share/native/libjli/parse_manifest.c ! src/java.base/share/native/libzip/zip_util.c ! src/java.base/share/native/libzip/zip_util.h ! src/java.base/unix/native/launcher/jexec.c Changeset: 996c947c3e50 Author: xuelei Date: 2015-03-11 04:52 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/996c947c3e50 8072385: Only the first DNSName entry is checked for endpoint identification Reviewed-by: weijun, jnimeh ! src/java.base/share/classes/sun/security/ssl/ClientHandshaker.java Changeset: bacdcdbf8c02 Author: okutsu Date: 2015-03-11 14:33 +0900 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/bacdcdbf8c02 8074791: Long-form date format incorrect month string for Finnish locale Reviewed-by: naoto ! src/jdk.localedata/share/classes/sun/text/resources/fi/FormatData_fi.java + test/sun/text/resources/Format/Bug8074791.java ! test/sun/text/resources/LocaleData ! test/sun/text/resources/LocaleDataTest.java Changeset: 93ca345cfcbb Author: sla Date: 2015-03-11 08:09 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/93ca345cfcbb 8074841: Resolve disabled warnings for the JVMTI demo compiledMethodLoad 8074842: Resolve disabled warnings for the JVMTI demo waiters Reviewed-by: alanb, ihse, dsamersoff ! make/CompileDemos.gmk ! src/demo/share/jvmti/compiledMethodLoad/compiledMethodLoad.c ! src/demo/share/jvmti/waiters/Agent.cpp Changeset: e36d81798e7d Author: prr Date: 2015-03-11 08:30 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/e36d81798e7d Merge Changeset: edb18ea158ff Author: serb Date: 2015-03-12 08:57 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/edb18ea158ff 8074668: [macosx] Mac 10.10: Application run with splash screen has focus issues Reviewed-by: prr, ant, alexsch ! src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m ! test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java Changeset: fc76d530de50 Author: anashaty Date: 2015-03-16 20:32 +0300 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/fc76d530de50 8073008: press-and-hold input method for accented characters works incorrectly on OS X Reviewed-by: azvegint, alexp ! src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m From james.graham at oracle.com Tue Mar 17 18:10:32 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:10:32 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/langtools: 16 new changesets Message-ID: <201503171810.t2HIAXIl024283@aojmv0008> Changeset: 414b82835861 Author: dlsmith Date: 2015-02-20 17:05 -0700 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/414b82835861 8039214: Inference should not map capture variables to their upper bounds Summary: Update to Types.containsType; related adjustment to most-specific test Reviewed-by: mcimadamore, vromero ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java + test/tools/javac/generics/inference/CaptureLowerBound.java + test/tools/javac/generics/inference/CaptureLowerBoundNeg.java + test/tools/javac/generics/inference/CaptureLowerBoundNeg.out + test/tools/javac/generics/inference/NestedCapture.java + test/tools/javac/generics/inference/NestedWildcards.java + test/tools/javac/generics/wildcards/SubtypeCaptureLeak.java Changeset: e29b25f6101f Author: mcimadamore Date: 2015-02-23 13:02 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/e29b25f6101f 8071291: Compiler crashes trying to cast UnionType to IntersectionClassType Summary: Compiler tests for .isCompound but then cast to a more specific Type subclass, resulting in CCE Reviewed-by: vromero, jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java + test/tools/javac/multicatch/8071291/T8071291.java Changeset: 59af0866b952 Author: juh Date: 2015-02-23 11:42 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/59af0866b952 8072663: Remove the sun.security.acl package which is not used in the JDK Reviewed-by: mullan, alanb, mchung ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/ct.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/legacy.properties Changeset: f683944ffa42 Author: jlahoda Date: 2015-02-24 16:11 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/f683944ffa42 8067886: Inaccessible nested classes can be incorrectly imported Summary: Check type accessibility at the point of import when importing the type using type-import-on-demand. Reviewed-by: mcimadamore, jfranck ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Scope.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java + test/tools/javac/importscope/ImportInaccessible.java + test/tools/javac/importscope/ImportInaccessible.out Changeset: d6ec687ad8fb Author: jjg Date: 2015-02-25 14:35 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/d6ec687ad8fb 8041628: Javadoc cross-compilation problem Reviewed-by: jjg Contributed-by: duboscq at ssw.jku.at ! src/jdk.javadoc/share/classes/com/sun/tools/javadoc/RootDocImpl.java Changeset: cdef738241cd Author: katleman Date: 2015-02-26 15:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/cdef738241cd Added tag jdk9-b52 for changeset ee20efe0255d ! .hgtags Changeset: 99ff00581f36 Author: lana Date: 2015-02-26 20:17 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/99ff00581f36 Merge Changeset: 1e3266d870d6 Author: mcimadamore Date: 2015-02-27 11:51 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/1e3266d870d6 8073550: java* tools: replace obj.getClass hacks with Assert.checkNonNull or Objects.requireNonNull Summary: replace getClass() with approapriate NPE checks Reviewed-by: jjg Contributed-by: aleksey.shipilev at oracle.com ! src/java.compiler/share/classes/javax/tools/DiagnosticCollector.java ! src/java.compiler/share/classes/javax/tools/ForwardingFileObject.java ! src/java.compiler/share/classes/javax/tools/ForwardingJavaFileManager.java ! src/java.compiler/share/classes/javax/tools/JavaFileObject.java ! src/java.compiler/share/classes/javax/tools/SimpleJavaFileObject.java ! src/jdk.compiler/share/classes/com/sun/source/util/DocTreePath.java ! src/jdk.compiler/share/classes/com/sun/source/util/TreePath.java ! src/jdk.compiler/share/classes/com/sun/tools/classfile/ClassReader.java ! src/jdk.compiler/share/classes/com/sun/tools/classfile/Dependencies.java ! src/jdk.compiler/share/classes/com/sun/tools/doclint/Checker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacScope.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTool.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/JavacFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/RegularFileObject.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/ZipArchive.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/nio/PathFileObject.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/BaseFileManager.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/ListBuffer.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Log.java ! src/jdk.compiler/share/classes/com/sun/tools/javah/JavahTask.java ! src/jdk.compiler/share/classes/com/sun/tools/javap/AttributeWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javap/JavapTask.java ! src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java ! src/jdk.javadoc/share/classes/com/sun/tools/javadoc/Start.java ! src/jdk.javadoc/share/classes/com/sun/tools/javadoc/api/JavadocTool.java Changeset: 218d589184d3 Author: mcimadamore Date: 2015-02-27 18:20 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/218d589184d3 8073842: Invalid method reference when referencing a method on a wildcard type Summary: Method rteference lookup logic doesn't skip type-variables as required by javac. Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java + test/tools/javac/lambda/8073842/T8073842.java Changeset: 592d64800143 Author: sadayapalam Date: 2015-03-02 10:41 +0530 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/592d64800143 8071453: Allow interface methods to be private Reviewed-by: mcimadamore Contributed-by: maurizio.cimadamore at oracle.com, srikanth.adayapalam at oracle.com ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/defaultMethods/private/Private01.java + test/tools/javac/defaultMethods/private/Private02.java + test/tools/javac/defaultMethods/private/Private02.out + test/tools/javac/defaultMethods/private/Private03.java + test/tools/javac/defaultMethods/private/Private03.out + test/tools/javac/defaultMethods/private/Private04.java + test/tools/javac/defaultMethods/private/Private05.java + test/tools/javac/defaultMethods/private/Private06.java + test/tools/javac/defaultMethods/private/Private06.out + test/tools/javac/defaultMethods/private/Private07.java + test/tools/javac/defaultMethods/private/Private07.out + test/tools/javac/defaultMethods/private/Private08.java + test/tools/javac/defaultMethods/private/Private08.out + test/tools/javac/defaultMethods/private/Private09.java + test/tools/javac/defaultMethods/private/Private09.out ! test/tools/javac/defaultMethods/syntax/TestDefaultMethodsSyntax.java + test/tools/javac/diags/examples/PrivateInterfaceMethodsNotSupported.java Changeset: 84849fdb360b Author: mcimadamore Date: 2015-03-05 13:10 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/84849fdb360b 8073645: Add lambda-based lazy eval versions of Assert.check methods Summary: Enhance Assert so that lazy string computation can occurr where needed; enhance static roding rule checkers to make sure the right version of the method is called. Reviewed-by: jlahoda ! make/intellij/build.xml ! make/intellij/workspace.xml ! make/test/crules/CodingRulesAnalyzerPlugin/Test.java ! make/test/crules/CodingRulesAnalyzerPlugin/Test.out ! make/tools/crules/AssertCheckAnalyzer.java ! make/tools/crules/resources/crules.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Assert.java Changeset: edf685b5d413 Author: mcimadamore Date: 2015-03-05 15:03 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/edf685b5d413 8073432: Object.getClass() throws stackless NPE, due to C2 intrinsic Summary: Javac should generate NPE checks using Objects.requireNonNull if -target >= 7 Reviewed-by: jlahoda Contributed-by: aleksey.shipilev at oracle.com ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java + test/tools/javac/8074306/TestSyntheticNullChecks.java Changeset: 01d8ed7079f1 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/01d8ed7079f1 Added tag jdk9-b53 for changeset 99ff00581f36 ! .hgtags Changeset: ed34864f3b43 Author: lana Date: 2015-03-05 15:24 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/ed34864f3b43 Merge Changeset: 41c021f885ac Author: mcimadamore Date: 2015-03-06 10:30 +0000 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/41c021f885ac 8074306: NULLCHK is emitted as Object.getClass 8074501: Javac fix for 8073432 is missing right test BugIDs Summary: Correct test bugIds Reviewed-by: jjg ! test/tools/javac/8074306/TestSyntheticNullChecks.java Changeset: cfe27a999212 Author: alundblad Date: 2015-03-11 12:25 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/langtools/rev/cfe27a999212 8071966: Bootcycle images build fails on Windows32/64 Summary: Added drive letter normalization in option decoding. Reviewed-by: jlahoda ! src/jdk.compiler/share/classes/com/sun/tools/sjavac/options/Options.java From james.graham at oracle.com Tue Mar 17 18:10:40 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:10:40 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/nashorn: 20 new changesets Message-ID: <201503171810.t2HIAevB024332@aojmv0008> Changeset: 2568a362d358 Author: attila Date: 2015-02-20 15:47 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/2568a362d358 8072426: Can't compare Java objects to strings or numbers Reviewed-by: hannesw, lagergren, sundar ! make/nbproject/project.xml + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/DefaultValueImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/JSObject.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/ScriptObjectMirror.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/AstDeserializer.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java ! test/script/basic/JDK-8023026.js.EXPECTED ! test/script/basic/JDK-8024847.js + test/script/basic/JDK-8072426.js Changeset: 7477f3456800 Author: attila Date: 2015-02-20 17:18 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/7477f3456800 8073560: Update BuildNashorn.gmk to require source/target 8 for jdk9 build Reviewed-by: sundar ! make/BuildNashorn.gmk Changeset: 5bef9d1de9ab Author: katleman Date: 2015-02-26 15:58 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/5bef9d1de9ab Added tag jdk9-b52 for changeset fada76c29db9 ! .hgtags Changeset: 6cd23482ca9b Author: lana Date: 2015-02-26 20:16 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/6cd23482ca9b Merge Changeset: bc79173a9e77 Author: sundar Date: 2015-02-27 18:03 +0530 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/bc79173a9e77 8074021: Indirect eval fails when used as an element of an array or as a property of an object Reviewed-by: attila, hannesw + samples/showenv.js + samples/showsysprops.js ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java + test/script/basic/JDK-8074021.js + test/script/basic/JDK-8074021.js.EXPECTED Changeset: 7939ae855d57 Author: hannesw Date: 2015-02-27 14:33 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/7939ae855d57 8073707: const re-assignment should not reported as a early error Reviewed-by: sundar, attila ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/resources/Messages.properties ! test/script/basic/es6/const-reassign.js ! test/script/basic/es6/const-reassign.js.EXPECTED ! test/script/basic/es6/let_const_reuse.js.EXPECTED Changeset: d0efd099521a Author: attila Date: 2015-03-02 14:33 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/d0efd099521a 8074031: Canonicalize is-a-JS-string tests Reviewed-by: hannesw, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/lookup/MethodHandleFactory.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/Global.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeDate.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeJSON.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/NativeString.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ConsString.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunctionData.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptingFunctions.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/BrowserJSObjectLinker.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JavaArgumentConverters.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornPrimitiveLinker.java Changeset: 20c3aef2b4cb Author: attila Date: 2015-03-05 15:43 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/20c3aef2b4cb 8035712: Restore some of the RuntimeCallSite specializations Reviewed-by: hannesw, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/BranchOptimizer.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/MethodEmitter.java - src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/RuntimeCallSite.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/BinaryNode.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/RuntimeNode.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/JSType.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/Bootstrap.java + test/script/basic/JDK-8035712.js Changeset: f46a048deb93 Author: katleman Date: 2015-03-05 11:26 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/f46a048deb93 Added tag jdk9-b53 for changeset 6cd23482ca9b ! .hgtags Changeset: 26460b897225 Author: lana Date: 2015-03-05 15:22 -0800 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/26460b897225 Merge - src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/RuntimeCallSite.java Changeset: 29945cf3274d Author: attila Date: 2015-03-06 09:59 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/29945cf3274d 8074491: run-nasgen in ant doesn't see the right Nashorn classes Reviewed-by: hannesw, lagergren ! make/build-nasgen.xml Changeset: 700f5e3f5ff2 Author: attila Date: 2015-03-06 10:18 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/700f5e3f5ff2 8074487: Static analysis of IfNode should consider terminating branches Reviewed-by: hannesw, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/LocalVariableTypesCalculator.java Changeset: c4ea1d87ab67 Author: hannesw Date: 2015-03-06 15:26 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/c4ea1d87ab67 8074545: Undefined object values in object literals with spill properties Reviewed-by: lagergren, attila ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/MapCreator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/JSONParser.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SpillProperty.java + test/script/basic/JDK-8074545.js Changeset: b4d62e7260a4 Author: hannesw Date: 2015-03-09 11:34 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/b4d62e7260a4 8074556: Functions should not share allocator maps Reviewed-by: lagergren, sundar ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/FindScopeDepths.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/ObjectClassGenerator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/AllocationStrategy.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java + test/script/basic/JDK-8074556.js Changeset: 9597425b6b38 Author: sundar Date: 2015-03-09 20:14 +0530 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/9597425b6b38 8074671: Nashorn Parser API Reviewed-by: darcy, forax, attila, hannesw ! make/build.xml ! make/nbproject/project.xml ! make/project.properties + samples/evalcheck.js + samples/withcheck.js + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayAccessTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayAccessTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayLiteralTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ArrayLiteralTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/AssignmentTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/AssignmentTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BinaryTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BinaryTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BlockTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BlockTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CaseTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CaseTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CatchTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CatchTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompilationUnitTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompilationUnitTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompoundAssignmentTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/CompoundAssignmentTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalExpressionTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalExpressionTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ConditionalLoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DebuggerTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DebuggerTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Diagnostic.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticListener.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DoWhileLoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DoWhileLoopTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/EmptyStatementTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/EmptyStatementTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ErroneousTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ErroneousTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionStatementTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionStatementTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ExpressionTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForInLoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForInLoopTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionCallTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionCallTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionDeclarationTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionDeclarationTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/FunctionExpressionTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/GotoTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IRTranslator.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IdentifierTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IdentifierTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IfTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/IfTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/InstanceOfTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/InstanceOfTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LabeledStatementTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LabeledStatementTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LineMap.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LineMapImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LiteralTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LiteralTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/LoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/MemberSelectTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/MemberSelectTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ObjectLiteralTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ObjectLiteralTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ParenthesizedTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Parser.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ParserImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/PropertyTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/PropertyTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/RegExpLiteralTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/RegExpLiteralTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ReturnTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ReturnTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SimpleTreeVisitorES5_1.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/StatementTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/StatementTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SwitchTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/SwitchTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ThrowTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ThrowTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Tree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TreeVisitor.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TryTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/TryTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnaryTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnaryTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/UnknownTreeException.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/VariableTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/VariableTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WhileLoopTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WhileLoopTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WithTree.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/WithTreeImpl.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/package-info.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/Lower.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/Block.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/BlockStatement.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/DebuggerNode.java + src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/ErrorNode.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/LiteralNode.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/debug/JSONWriter.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/visitor/NodeVisitor.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/parser/Parser.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Source.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/options/Options.java ! test/script/basic/parser/tryCatchStat.js.EXPECTED ! test/script/basic/parser/util.js + test/script/nosecurity/parserapi.js + test/script/nosecurity/parserapi.js.EXPECTED + test/script/nosecurity/parserapi_const_as_var.js + test/script/nosecurity/parserapi_const_as_var.js.EXPECTED + test/script/nosecurity/parserapi_empty_stat.js + test/script/nosecurity/parserapi_empty_stat.js.EXPECTED + test/script/nosecurity/parserapi_nse.js + test/script/nosecurity/parserapi_nse.js.EXPECTED + test/script/nosecurity/parserapi_scripting.js + test/script/nosecurity/parserapi_scripting.js.EXPECTED + test/script/nosecurity/parserapi_strict.js + test/script/nosecurity/parserapi_strict.js.EXPECTED + test/script/nosecurity/parsernegativetests/caseoutofswitch.js + test/script/nosecurity/parsernegativetests/illegalbreak.js + test/script/nosecurity/parsernegativetests/illegalcontinue.js + test/script/nosecurity/parsernegativetests/illegallvalue.js + test/script/nosecurity/parsernegativetests/illegaloperator.js + test/script/nosecurity/parsernegativetests/keywordident.js + test/script/nosecurity/parsernegativetests/parenmissing.js + test/script/nosecurity/parsernegativetests/repeatedproperty.js + test/script/nosecurity/parsernegativetests/strict_repeatedproperty.js + test/script/nosecurity/parsernegativetests/strict_repeatparam.js + test/script/nosecurity/parsernegativetests/strict_with.js + test/script/nosecurity/parsernegativetests/toplevelreturn.js + test/script/nosecurity/parsertests/array_literal.js + test/script/nosecurity/parsertests/assignmentExpr.js + test/script/nosecurity/parsertests/binaryExpr.js + test/script/nosecurity/parsertests/block.js + test/script/nosecurity/parsertests/breakStat.js + test/script/nosecurity/parsertests/condExpr.js + test/script/nosecurity/parsertests/continueStat.js + test/script/nosecurity/parsertests/debuggerStat.js + test/script/nosecurity/parsertests/functions.js + test/script/nosecurity/parsertests/ifStat.js + test/script/nosecurity/parsertests/labelledStat.js + test/script/nosecurity/parsertests/lhsExpr.js + test/script/nosecurity/parsertests/loopStat.js + test/script/nosecurity/parsertests/objectLitExpr.js + test/script/nosecurity/parsertests/parenExpr.js + test/script/nosecurity/parsertests/primaryExpr.js + test/script/nosecurity/parsertests/regexp_literal.js + test/script/nosecurity/parsertests/returnStat.js + test/script/nosecurity/parsertests/switchStat.js + test/script/nosecurity/parsertests/throwStat.js + test/script/nosecurity/parsertests/tryCatchStat.js + test/script/nosecurity/parsertests/unaryExpr.js + test/script/nosecurity/parsertests/useStrict.js + test/script/nosecurity/parsertests/varDecl.js + test/script/nosecurity/parsertests/withStat.js + test/script/nosecurity/parservisitor.js + test/script/nosecurity/parservisitor.js.EXPECTED + test/src/jdk/nashorn/api/tree/ParseAPITest.java ! test/src/jdk/nashorn/internal/codegen/CompilerTest.java ! test/src/jdk/nashorn/internal/parser/ParserTest.java Changeset: dec3faccd3de Author: hannesw Date: 2015-03-10 18:23 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/dec3faccd3de 8074687: Add tests for JSON parsing of numeric keys Reviewed-by: sundar, attila + test/script/basic/JDK-8074687.js Changeset: 829e3b95b319 Author: sundar Date: 2015-03-11 14:30 +0530 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/829e3b95b319 8074939: Add few sample scripts to demo nashorn parser API Reviewed-by: attila, hannesw + samples/breakcontinue_in_tryfinally.js + samples/cricket.js + samples/findproto.js + samples/findvardelete.js + samples/findwith.js + samples/nashornastviewer.js + samples/xmlviewer.js Changeset: 25109b6b055b Author: attila Date: 2015-03-11 11:03 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/25109b6b055b 8074484: More agressive value discarding Reviewed-by: hannesw, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGeneratorLexicalContext.java Changeset: 3b5da5474965 Author: hannesw Date: 2015-03-11 11:08 +0100 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/3b5da5474965 8074693: Different instances of same function use same allocator map Reviewed-by: attila, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/ObjectClassGenerator.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/objects/ScriptFunctionImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/AllocationStrategy.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java + test/script/basic/JDK-8074693.js + test/script/basic/JDK-8074693.js.EXPECTED Changeset: 36fbf759ab8d Author: sundar Date: 2015-03-11 16:58 +0530 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/nashorn/rev/36fbf759ab8d 8074972: Unused imports, a missing javadoc and a build warning Reviewed-by: hannesw, lagergren ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/scripting/AbstractJSObject.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTree.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/BreakTreeImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTree.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ContinueTreeImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/DiagnosticImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTree.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/ForLoopTreeImpl.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/NewTree.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/api/tree/Tree.java ! src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/ErrorNode.java From james.graham at oracle.com Tue Mar 17 18:29:31 2015 From: james.graham at oracle.com (james.graham at oracle.com) Date: Tue, 17 Mar 2015 18:29:31 +0000 Subject: [OpenJDK Rasterizer] hg: graphics-rasterizer/jdk9/jdk: 8040328: JSlider has wrong preferred size with Synth LAF Message-ID: <201503171829.t2HITVlx000509@aojmv0008> Changeset: 2b356bbb739a Author: alexsch Date: 2015-03-17 14:38 +0400 URL: http://hg.openjdk.java.net/graphics-rasterizer/jdk9/jdk/rev/2b356bbb739a 8040328: JSlider has wrong preferred size with Synth LAF Reviewed-by: alexsch, ant Contributed-by: Semyon Sadetsky ! src/java.desktop/share/classes/javax/swing/plaf/synth/SynthSliderUI.java + test/javax/swing/plaf/synth/8040328/bug8040328.java From james.graham at oracle.com Tue Mar 17 18:38:00 2015 From: james.graham at oracle.com (Jim Graham) Date: Tue, 17 Mar 2015 11:38:00 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <55072C23.7060204@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> <55072C23.7060204@oracle.com> Message-ID: <55087488.3040008@oracle.com> I just did a full synch with the client JDK9 repo. The only file you have changed is AAShapePipe.java and I just checked that it has not been updated since we switched to modular repos back in August so there should be no conflicts with the work you've done. There should be the new test case for the bug in Pisces getBbox mentioned below which will hopefully pass with Marlin... ...jim On 3/16/15 12:16 PM, Jim Graham wrote: > On 3/14/2015 2:02 AM, Laurent Bourg?s wrote: >> Jim, >> >> > There is one change that was pushed to the jdk9 master in the past >> couple of weeks that we don't have yet in the GR-team repo. I'm working >> on synchronizing the two. You can see the changelog here so you can get >> a head start on making similar fixes on the Marlin renderer while I work >> on the synch. >> >> Do you mean I will have to submit another webrev based on the merged >> forrest ? >> >> > http://hg.openjdk.java.net/jdk9/client/jdk/rev/3850097b0fe9 >> >> Ok. As Andrea mentioned several times, Marlin does not have the fill bug >> with custom composite. >> >> I fixed it a long time ago when I reworked the clipping boundaries >> (half-open intervals) and optimized the corresponding rendering >> boundaries... >> >> If it is the only change since march 2013, the submitted patch is up to >> date. > > Sorry, I missed that claim in all of the emails. If you've reworked the > way the boundaries work, then all is good. I'm still going to get us > merged and up to date sometime today and then check that we've dotted > the i's and crossed the t's on getting the initial Marlin patch in... > > ...jim > From bourges.laurent at gmail.com Tue Mar 17 19:07:54 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Tue, 17 Mar 2015 20:07:54 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <55087488.3040008@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> <55072C23.7060204@oracle.com> <55087488.3040008@oracle.com> Message-ID: Jim, Ok thanks for the merge. I will run the pisces test against marlin and let you know. Laurent Le 17 mars 2015 19:38, "Jim Graham" a ?crit : > I just did a full synch with the client JDK9 repo. The only file you have > changed is AAShapePipe.java and I just checked that it has not been updated > since we switched to modular repos back in August so there should be no > conflicts with the work you've done. > > There should be the new test case for the bug in Pisces getBbox mentioned > below which will hopefully pass with Marlin... > > ...jim > > On 3/16/15 12:16 PM, Jim Graham wrote: > >> On 3/14/2015 2:02 AM, Laurent Bourg?s wrote: >> >>> Jim, >>> >>> > There is one change that was pushed to the jdk9 master in the past >>> couple of weeks that we don't have yet in the GR-team repo. I'm working >>> on synchronizing the two. You can see the changelog here so you can get >>> a head start on making similar fixes on the Marlin renderer while I work >>> on the synch. >>> >>> Do you mean I will have to submit another webrev based on the merged >>> forrest ? >>> >>> > http://hg.openjdk.java.net/jdk9/client/jdk/rev/3850097b0fe9 >>> >>> Ok. As Andrea mentioned several times, Marlin does not have the fill bug >>> with custom composite. >>> >>> I fixed it a long time ago when I reworked the clipping boundaries >>> (half-open intervals) and optimized the corresponding rendering >>> boundaries... >>> >>> If it is the only change since march 2013, the submitted patch is up to >>> date. >>> >> >> Sorry, I missed that claim in all of the emails. If you've reworked the >> way the boundaries work, then all is good. I'm still going to get us >> merged and up to date sometime today and then check that we've dotted >> the i's and crossed the t's on getting the initial Marlin patch in... >> >> ...jim >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Tue Mar 17 21:47:55 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Tue, 17 Mar 2015 22:47:55 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <550377B3.1070902@oracle.com> <55072C23.7060204@oracle.com> <55087488.3040008@oracle.com> Message-ID: Jim, I updated my local copy and made a full clean & build. I fixed a bug at line 69 in MarlinRenderingEngine.java related to recent Path2D changes: + (rdrCtx.p2d = new Path2D.Float(Path2D.WIND_NON_ZERO, + INITIAL_MEDIUM_ARRAY)) Here is the new webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.2/ All pisces tests passed (manually run): bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces$ java -version openjdk version "1.9.0-internal" OpenJDK Runtime Environment (build 1.9.0-internal-bourgesl_2015_03_17_22_09-b00) OpenJDK 64-Bit Server VM (build 1.9.0-internal-bourgesl_2015_03_17_22_09-b00, mixed mode) bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces$ ls *.java OpenJDKFillBug.java Test7036754.java bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces$ java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine Test7036754 INFO: =============================================================================== INFO: Marlin software rasterizer = ENABLED INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] INFO: sun.java2d.renderer = sun.java2d.marlin.MarlinRenderingEngine INFO: sun.java2d.renderer.useThreadLocal = false INFO: sun.java2d.renderer.useRef = soft INFO: sun.java2d.renderer.pixelsize = 2048 INFO: sun.java2d.renderer.subPixel_log2_X = 3 INFO: sun.java2d.renderer.subPixel_log2_Y = 3 INFO: sun.java2d.renderer.tileSize_log2 = 5 INFO: sun.java2d.renderer.useFastMath = true INFO: sun.java2d.renderer.useSimplifier = false INFO: sun.java2d.renderer.doStats = false INFO: sun.java2d.renderer.doMonitors = false INFO: sun.java2d.renderer.doChecks = false INFO: sun.java2d.renderer.useJul = false INFO: sun.java2d.renderer.logCreateContext = false INFO: sun.java2d.renderer.logUnsafeMalloc = false INFO: =============================================================================== bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces$ java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine OpenJDKFillBug INFO: =============================================================================== INFO: Marlin software rasterizer = ENABLED INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] INFO: sun.java2d.renderer = sun.java2d.marlin.MarlinRenderingEngine INFO: sun.java2d.renderer.useThreadLocal = false INFO: sun.java2d.renderer.useRef = soft INFO: sun.java2d.renderer.pixelsize = 2048 INFO: sun.java2d.renderer.subPixel_log2_X = 3 INFO: sun.java2d.renderer.subPixel_log2_Y = 3 INFO: sun.java2d.renderer.tileSize_log2 = 5 INFO: sun.java2d.renderer.useFastMath = true INFO: sun.java2d.renderer.useSimplifier = false INFO: sun.java2d.renderer.doStats = false INFO: sun.java2d.renderer.doMonitors = false INFO: sun.java2d.renderer.doChecks = false INFO: sun.java2d.renderer.useJul = false INFO: sun.java2d.renderer.logCreateContext = false INFO: sun.java2d.renderer.logUnsafeMalloc = false INFO: =============================================================================== INFO: AAShapePipe: overriding JDK implementation: marlin-renderer TILE patch enabled. Test passed bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces/Renderer$ ls *.java Test7019861.java TestNPE.java bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces/Renderer$ java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine Test7019861 INFO: =============================================================================== INFO: Marlin software rasterizer = ENABLED INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] INFO: sun.java2d.renderer = sun.java2d.marlin.MarlinRenderingEngine INFO: sun.java2d.renderer.useThreadLocal = false INFO: sun.java2d.renderer.useRef = soft INFO: sun.java2d.renderer.pixelsize = 2048 INFO: sun.java2d.renderer.subPixel_log2_X = 3 INFO: sun.java2d.renderer.subPixel_log2_Y = 3 INFO: sun.java2d.renderer.tileSize_log2 = 5 INFO: sun.java2d.renderer.useFastMath = true INFO: sun.java2d.renderer.useSimplifier = false INFO: sun.java2d.renderer.doStats = false INFO: sun.java2d.renderer.doMonitors = false INFO: sun.java2d.renderer.doChecks = false INFO: sun.java2d.renderer.useJul = false INFO: sun.java2d.renderer.logCreateContext = false INFO: sun.java2d.renderer.logUnsafeMalloc = false INFO: =============================================================================== INFO: AAShapePipe: overriding JDK implementation: marlin-renderer TILE patch enabled. bourgesl at bourgesl-HP-ZBook-15:/home/graphics-rasterizer/jdk9/jdk/test/sun/java2d/pisces/Renderer$ java -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine TestNPE INFO: =============================================================================== INFO: Marlin software rasterizer = ENABLED INFO: Version = [marlin-0.5.6-Unsafe-OpenJDK] INFO: sun.java2d.renderer = sun.java2d.marlin.MarlinRenderingEngine INFO: sun.java2d.renderer.useThreadLocal = false INFO: sun.java2d.renderer.useRef = soft INFO: sun.java2d.renderer.pixelsize = 2048 INFO: sun.java2d.renderer.subPixel_log2_X = 3 INFO: sun.java2d.renderer.subPixel_log2_Y = 3 INFO: sun.java2d.renderer.tileSize_log2 = 5 INFO: sun.java2d.renderer.useFastMath = true INFO: sun.java2d.renderer.useSimplifier = false INFO: sun.java2d.renderer.doStats = false INFO: sun.java2d.renderer.doMonitors = false INFO: sun.java2d.renderer.doChecks = false INFO: sun.java2d.renderer.useJul = false INFO: sun.java2d.renderer.logCreateContext = false INFO: sun.java2d.renderer.logUnsafeMalloc = false INFO: =============================================================================== PS: I will implement soon the discussed Path2D Test for the trimmed copy constructor ! Regards, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Wed Mar 18 01:13:48 2015 From: james.graham at oracle.com (Jim Graham) Date: Tue, 17 Mar 2015 18:13:48 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> Message-ID: <5508D14C.9040604@oracle.com> Hi Laurent, I'm now looking at your webrev. There are a number of things that I think we should look at once it goes in, and I'll mention those in subsequent emails, but I want to just deal with basic issues that we should deal with before the first commit here... AAShapePipe - the static println in TileState should probably be removed (for one thing, it will now be run regardless of whether or not Marlin is selected). Is there anything about the patch to AAShapePipe that is specific to Marlin? Perhaps it should have its own bugid? Even though doCleanDirty is turned off, Dasher.java line 153 looks like it may overflow if you've ever had to widen the firstSegs array with it turned on. Stroker.java, 312 - indent looks off. Use of "fluent API". In general I think that is a nice way to do thing in a builder-style API where a whole chain of related methods all return "this" to facilitate the chaining, but identifying isolated methods that happen to often be used just prior to a return of the object they were executing on seems to me to be more of a break in object encapsulation. It adds a burden to the called method to deal with a return value so that we can eliminate a line of code in the caller. But, in reality the caller still has to return something - it just returns a different value (the value saved in a local variable instead of the value returned by the called method) so you are actually adding code to the interface to make things appear simpler. This isn't a veto of those cases here, but I wanted to point out that their value in isolated cases is questionable unlike the "chained setter methods" case for which they were initially targeted. TransformingPathConsumer2D (and any other new code) - All methods should have a blank line between them. This notably applies to the Path2D wrapper. Also, a common style point throughout 2D is that when there is a continuation line in an argument list declaration, we place the "{" brace on a new line all by itself so that the eye has a good landmark for where the body of the method begins. (See how the old "curveTo()" methods differ from the new one created in Path2DWrapper.) TransformingPathConsumer2D - the if/else style being replaced here was actually intentional. The lack of a trailing "return" statement ensures that all cases were specifically handled above in either an if, or its associated else block, and that none of the cases ended up falling through to a subsequent "catch-all" operation by accident. Nothing is broken here, I just wanted to point out the "whys" of the original code style. In the new code, there are still some bare "} else {" lines left which raises the question - what was the specific style goal in whether an "} else {" was eliminated or left intact? The prior style goal was "no fallthrough cases anywhere" - the new style seems to be "usually fallthrough, but sometimes explicit alternate return values in an else clause". -------- Here are some "things to consider later" --------- Is there ever a reason to use doCleanDirty? It might matter for arrays of objects to null out old references so as to not interfere with GC, but don't most growable arrays get filled in as they are used so old data isn't really processed? I notice that it is turned off right now so perhaps that's an argument in favor of my comment, but it seems to me that having to clean out a primitive array would be an odd rare exception and so simply adding in a clear where it is needed in the unlikely case that it is needed would be fine (and get rid of a lot of cruft in the code). I just realized the main case where we want to deal with cleaning out dirty arrays and it would be the crossings accumulation arrays. It seems to me that those are special cases and so we should concentrate the cleaning code on those explicitly and not have a global "lets clean all arrays everywhere" setting. Isn't declaring flatLeafCoefficients as final enough to not need to cache it's reference in a local variable? Also, I would think you would gain more by simply deleting the array and storing the coefficients in fields instead? An array index lookup should be no simpler than a local field access. I was also skeptical of these Iterators that Denis created and thought that it may be better to just manually iterate the subdivisions instead of creating (or even keeping) an object around to hide the simple job of iterating a curve. I now wonder if inlining the actions of the BreakPoint iterator might not improve performance for complex paths and leave less state that we need to manage. FastMath - In general, if we use "(int) ceil()" a lot, we might want to consider offsetting the math so that all values are negative and then use a cast to (int). In particular, if crossings are going to use "ceil(v - 0.5)" which is the proper way to do half-open intervals with centers included on top and left sides, then simply shifting everything once so that the entire range of interesting X,Y are negative would mean that all crossings calculations could be done by casting to integer, especially if we also offset them all by 0.5 as well. FastMath - if we can prove that no values <0 are interesting (as in, the only interesting property about them is that they are less than 0), then we can just use a cast to integer. This is particular true if we clamp a value to >= 0 after we convert it to an integer - in that case we might as well have used an int cast rather than a floor() computation. Eventually we will need to make a decision on all LBO and TODO comments. Either make a call and change the code and delete the comment, or submit the issue as a new bugid and reference the bugid rather than TODO or LBO. Those were just a few thoughts/questions that came to mind as I was reviewing it, but I didn't want to get bogged down too much in the specifics that we can tweak later until we can get an implementation published for people to test on so I tried to back off and keep my review at a higher level. I may have more comments as I continue to look through the code... ...jim From bourges.laurent at gmail.com Wed Mar 18 16:17:40 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Wed, 18 Mar 2015 17:17:40 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5508D14C.9040604@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> Message-ID: Jim, thanks for your review. Please read my comments below: 2015-03-18 2:13 GMT+01:00 Jim Graham : > Hi Laurent, > > I'm now looking at your webrev. There are a number of things that I think > we should look at once it goes in, and I'll mention those in subsequent > emails, but I want to just deal with basic issues that we should deal with > before the first commit here... > Ok, I agree that many things can be improved, corrected and fixed after the marlin patch is committed into the graphics rasterizer repository (sandbox ?) > > AAShapePipe - the static println in TileState should probably be removed > (for one thing, it will now be run regardless of whether or not Marlin is > selected). > OK. > > Is there anything about the patch to AAShapePipe that is specific to > Marlin? Perhaps it should have its own bugid? > Not anymore: previously I preallocated the tile array according to the PiscesCache.TILE_SIZE. I agree the AAShapePipe concurrency patch should be considered on its own (bugId, review ...) as it concerns any renderer. FYI here are MapBench benchmark synthetic results with marlin 0.5.6 (JDK 1.8) with / without the AAShapePipe: Marlin 0.5.6 TL AAShapePipe Pct95 132.498 131.176 132.641 133.677 Marlin 0.5.6 TL NoAAShapePipe Pct95 137.443 132.805 136.462 143.062 As you can see, this patch is important for the scalability (concurrent rendering threads) : up to 10% faster with 4threads. I think it is related to both synchronization and GC impact. > Even though doCleanDirty is turned off, Dasher.java line 153 looks like it > may overflow if you've ever had to widen the firstSegs array with it turned > on. > Good catch: I will fix it by clearing the all array and not [0... firstSegUsed) ! > > Stroker.java, 312 - indent looks off. > OK, I will also move all constants at the beginning of the class: private final static float C = 0.5522847498307933f; Use of "fluent API". In general I think that is a nice way to do thing in > a builder-style API where a whole chain of related methods all return > "this" to facilitate the chaining, but identifying isolated methods that > happen to often be used just prior to a return of the object they were > executing on seems to me to be more of a break in object encapsulation. It > adds a burden to the called method to deal with a return value so that we > can eliminate a line of code in the caller. But, in reality the caller > still has to return something - it just returns a different value (the > value saved in a local variable instead of the value returned by the called > method) so you are actually adding code to the interface to make things > appear simpler. This isn't a veto of those cases here, but I wanted to > point out that their value in isolated cases is questionable unlike the > "chained setter methods" case for which they were initially targeted. > I advocate I used the "fluent"-like approach to modify less lines and avoid too much changes. In Pisces, several instances were created like "r = new Renderer(params)" then I replaced by "r = rdrCtx.renderer.init(params)": - r = new Renderer(3, 3,- clip.getLoX(), clip.getLoY(), + r = rdrCtx.renderer.init(clip.getLoX(), clip.getLoY(), clip.getWidth(), clip.getHeight(), pi.getWindingRule()); I could rewrite it like: "r = rdrCtx.renderer; r.init(params)" but it costs one line more and it is less "fluent" ! I prefer using local variables for performance and avoid using class members when possible ! > > TransformingPathConsumer2D (and any other new code) - All methods should > have a blank line between them. This notably applies to the Path2D > wrapper. Also, a common style point throughout 2D is that when there is a > continuation line in an argument list declaration, we place the "{" brace > on a new line all by itself so that the eye has a good landmark for where > the body of the method begins. (See how the old "curveTo()" methods differ > from the new one created in Path2DWrapper.) > OK, I will follow that syntax rule and fix the Path2DWrapper class. > > TransformingPathConsumer2D - the if/else style being replaced here was > actually intentional. The lack of a trailing "return" statement ensures > that all cases were specifically handled above in either an if, or its > associated else block, and that none of the cases ended up falling through > to a subsequent "catch-all" operation by accident. Nothing is broken here, > I just wanted to point out the "whys" of the original code style. In the > new code, there are still some bare "} else {" lines left which raises the > question - what was the specific style goal in whether an "} else {" was > eliminated or left intact? The prior style goal was "no fallthrough cases > anywhere" - the new style seems to be "usually fallthrough, but sometimes > explicit alternate return values in an else clause". > Ok I will revert such changes even if I like the fallthrough approach (more obvious and readable). > -------- Here are some "things to consider later" --------- > > Is there ever a reason to use doCleanDirty? It might matter for arrays of > objects to null out old references so as to not interfere with GC, but > don't most growable arrays get filled in as they are used so old data isn't > really processed? I notice that it is turned off right now so perhaps > that's an argument in favor of my comment, but it seems to me that having > to clean out a primitive array would be an odd rare exception and so simply > adding in a clear where it is needed in the unlikely case that it is needed > would be fine (and get rid of a lot of cruft in the code). > The doCleanDirty is only useful for debugging reasons: dirty arrays (int, byte, float) are never filled with zero and always contain junk / old data; when I want to look at (netbeans debugger) or log an array, I need to use that flag to ensure it is clean (zero filled) before usage. > I just realized the main case where we want to deal with cleaning out > dirty arrays and it would be the crossings accumulation arrays. It seems > to me that those are special cases and so we should concentrate the > cleaning code on those explicitly and not have a global "lets clean all > arrays everywhere" setting. > Agreed. Let's clarify my approach in marlin: it uses mainly reused arrays (int, byte, float) => no allocation (GC overhead). To achieve the best performance, it only clears dirty parts ie used ones (see the many used mark fields). Dirty arrays are named "dirty" to indicate that these arrays are used in a "unsafe" manner ie never zero-filled (always junk). It means the code must be good enough to always set values and get those that have be set. The memory footprint of one RendererContext is ~ 512Kb (small enough) that is stored in either ThreadLocal (few rendering threads case) or ConcurrentLinkedQueue (web server case, by default) using SoftRereference. If arrays are too small, then marlin use an ArrayCache (Int, Float, Dirty) to get larger arrays but also recycle them (and zero-filled). These caches belong to each RendererContext and may represent a larger memory footprint (~ few megabytes ?) but it will depend on the drawing complexity (image size, shape segments, curves, pixel coverage map ...) I think these cache should use WeakReferences to avoid wasting too much memory (more volatile), but it remains to do. > Isn't declaring flatLeafCoefficients as final enough to not need to cache > it's reference in a local variable? Also, I would think you would gain > more by simply deleting the array and storing the coefficients in fields > instead? An array index lookup should be no simpler than a local field > access. > In Dasher ? maybe it is minor optimisation but I prefer using local variables instead of field access for performance reason. > I was also skeptical of these Iterators that Denis created and thought > that it may be better to just manually iterate the subdivisions instead of > creating (or even keeping) an object around to hide the simple job of > iterating a curve. I now wonder if inlining the actions of the BreakPoint > iterator might not improve performance for complex paths and leave less > state that we need to manage. > To be discussed. > FastMath - In general, if we use "(int) ceil()" a lot, we might want to > consider offsetting the math so that all values are negative and then use a > cast to (int). In particular, if crossings are going to use "ceil(v - > 0.5)" which is the proper way to do half-open intervals with centers > included on top and left sides, then simply shifting everything once so > that the entire range of interesting X,Y are negative would mean that all > crossings calculations could be done by casting to integer, especially if > we also offset them all by 0.5 as well. > Only normalization does the ceil(v - 0.5) but the crossings are directly casted to int: + // update crossing ( x-coordinate + last bit = orientation):+ cross = (((int) f_curx) << 1) | _unsafe.getInt(addr + _OFF_YMAX_OR) & 0x1; /* last bit contains orientation (0 or 1) */ I noted several times to improve that rounding issue with subpixel centers ! But it is less important than improving quality for nearly vertical or horizontal lines (large subpixel steps): I have ideas related to span interpolation or using adaptive scanline steps... (in future) I use FastMath mainly to handle boundaries and coordinates can be either positive or negative ... so I do not have the choice to deal with negative values ! Renderer addLine 316: final int firstCrossing = Math.max(FastMath.ceil(y1), _boundsMinY); 319: final int lastCrossing = Math.min(FastMath.ceil(y2), boundsMaxY); dispose 546: final int iminY = Math.max(FastMath.ceil(edgeMinY), _boundsMinY) 548: final int imaxY = 1 + Math.min(FastMath.ceil(edgeMaxY), boundsMaxY) endRendering 1133: final int spminX = Math.max(FastMath.ceil(edgeMinX), boundsMinX); 1134: final int spmaxX = Math.min(FastMath.ceil(edgeMaxX), boundsMaxX - 1); 1135: final int spminY = Math.max(FastMath.ceil(edgeMinY), boundsMinY); 1136: final int spmaxY = Math.min(FastMath.ceil(edgeMaxY), boundsMaxY - 1); MarlinRenderingEngine NormalizingPathIterator currentSegment 512: x_adjust = (float)FastMath.floor(coord) + rval - coord; 516: y_adjust = (float)FastMath.floor(coord) + rval - coord; 520: x_adjust = (float)FastMath.floor(coord + lval) + rval - coord; 524: y_adjust = (float)FastMath.floor(coord + lval) + rval - coord; FastMath is optional (use -Dsun.java2d.renderer.useFastMath=false) but is ~ 5% faster ! > FastMath - if we can prove that no values <0 are interesting (as in, the > only interesting property about them is that they are less than 0), then we > can just use a cast to integer. This is particular true if we clamp a > value to >= 0 after we convert it to an integer - in that case we might as > well have used an int cast rather than a floor() computation. > Ok let's discuss that later. > Eventually we will need to make a decision on all LBO and TODO comments. > Either make a call and change the code and delete the comment, or submit > the issue as a new bugid and reference the bugid rather than TODO or LBO. > Agreed. > Those were just a few thoughts/questions that came to mind as I was > reviewing it, but I didn't want to get bogged down too much in the > specifics that we can tweak later until we can get an implementation > published for people to test on so I tried to back off and keep my review > at a higher level. I may have more comments as I continue to look through > the code... > Thanks for your time and your comments, I will prepare soon another webrev, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Wed Mar 18 21:24:39 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 18 Mar 2015 14:24:39 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> Message-ID: <5509ED17.8070801@oracle.com> Hi Laurent, On 3/18/15 9:17 AM, Laurent Bourg?s wrote: > I advocate I used the "fluent"-like approach to modify less lines and > avoid too much changes. > In Pisces, several instances were created like "r = new > Renderer(params)" then I replaced by "r = rdrCtx.renderer.init(params)": > > - r = new Renderer(3, 3, > - clip.getLoX(), clip.getLoY(), > > + r = rdrCtx.renderer.init(clip.getLoX(), clip.getLoY(), > clip.getWidth(), clip.getHeight(), > pi.getWindingRule()); > > I could rewrite it like: > "r = rdrCtx.renderer; > r.init(params)" I would have solved this by having a RenderContext.getRenderer(clip, rule) method in which case you would write: r = rdrCtx.getRenderer(clip.getLoX(), ..., pi.getWindingRule()); RenderContext.getRenderer() would initialize the renderer and return it. In the general case, that leaves the RenderContext object open to new ways to manage cached instances in the future should our needs change since the cache management logic is internal to the object... ...jim From james.graham at oracle.com Wed Mar 18 21:26:48 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 18 Mar 2015 14:26:48 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> Message-ID: <5509ED98.2010305@oracle.com> Hi Laurent, On 3/18/15 9:17 AM, Laurent Bourg?s wrote: > TransformingPathConsumer2D - the if/else style being replaced here > was actually intentional. The lack of a trailing "return" statement > ensures that all cases were specifically handled above in either an > if, or its associated else block, and that none of the cases ended > up falling through to a subsequent "catch-all" operation by > accident. Nothing is broken here, I just wanted to point out the > "whys" of the original code style. In the new code, there are still > some bare "} else {" lines left which raises the question - what was > the specific style goal in whether an "} else {" was eliminated or > left intact? The prior style goal was "no fallthrough cases > anywhere" - the new style seems to be "usually fallthrough, but > sometimes explicit alternate return values in an else clause". > > Ok I will revert such changes even if I like the fallthrough approach > (more obvious and readable). If you like the new style better that's fine. As I said "Nothing is broken here, I just wanted to point out the whys of the original"... ...jim From james.graham at oracle.com Wed Mar 18 21:50:03 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 18 Mar 2015 14:50:03 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> Message-ID: <5509F30B.5060506@oracle.com> Hi Laurent, Keep in mind that the "things to consider later" parts of the review shouldn't hold up the process, but if you see something you want to fix now, feel free to address them sooner or later. On 3/18/15 9:17 AM, Laurent Bourg?s wrote: > -------- Here are some "things to consider later" --------- > > I just realized the main case where we want to deal with cleaning > out dirty arrays and it would be the crossings accumulation arrays. > It seems to me that those are special cases and so we should > concentrate the cleaning code on those explicitly and not have a > global "lets clean all arrays everywhere" setting. > > Agreed. > Let's clarify my approach in marlin: it uses mainly reused arrays (int, > byte, float) => no allocation (GC overhead). > To achieve the best performance, it only clears dirty parts ie used ones > (see the many used mark fields). > > Dirty arrays are named "dirty" to indicate that these arrays are used in > a "unsafe" manner ie never zero-filled (always junk). It means the code > must be good enough to always set values and get those that have be set. Perhaps a naming convention for the variable so that we can spot code that might rely on cleared data being used on an array that isn't necessarily cleared then? > I think these cache should use WeakReferences to avoid wasting too much > memory (more volatile), but it remains to do. That sounds like a good refinement. We could also just make the ThreadLocal store a ref as well. Is there such a thing as a WeakThreadLocal? > Isn't declaring flatLeafCoefficients as final enough to not need to > cache it's reference in a local variable? Also, I would think you > would gain more by simply deleting the array and storing the > coefficients in fields instead? An array index lookup should be no > simpler than a local field access. > > In Dasher ? maybe it is minor optimisation but I prefer using local > variables instead of field access for performance reason. I don't think you understood what I was getting at. I realize the use of a local variable avoids field fetches. I was wondering if it matters for this particular case since the field is final which means the compiler should be able to assume that the value doesn't change and load it into a local variable on its own (in the compiled code). In addition to that concern I point out that indexing into the fLC array to get the 4 values is identical to a field fetch anyway. So, we used to have potentially double-fetches to access the values (fetch the array, fetch the value from the array). You made it final which could potentially reduce the first fetch of the array field to just one fetch for all of the values in the compiled code. You also copied the value into a local variable which forced the issue, but we still have that extra field reference to load the array reference into a local variable. My second point there was that if we just stored 4 values instead of an array of 4 values, then we'd reduce this all down to just a field reference for each of the 4 values, and that is roughly equivalent to an array fetch anyway. So, we went from: get array, get item 0 get array, get item 1 get array, get item 2 get array, get item 3 to: get array, get item 0 get item 1 get item 2 get item 3 but why not eliminate the array altogether and end up with: get item 0 get item 1 get item 2 get item 3 (and making that change would probably recommend running more benchmarks which means we should hold off on that until we get a stable stake in the ground in the gr-dev repo...) Also note that an array of 4 floats costs 4x32 bits for the floats, plus array object overhead, plus 32 or 64 bits to store the reference to the array. For cases where we pass such an array around a lot it might be OK to have that overhead to reduce method parameter passing, or for cases where we want to iterate over the values one by one it may also make sense. But in this case we are storing 4 related, but separate, coefficients which means we are just using it as a bundle of 4 values. > FastMath - In general, if we use "(int) ceil()" a lot, we might want > to consider offsetting the math so that all values are negative and > then use a cast to (int). In particular, if crossings are going to > use "ceil(v - 0.5)" which is the proper way to do half-open > intervals with centers included on top and left sides, then simply > shifting everything once so that the entire range of interesting X,Y > are negative would mean that all crossings calculations could be > done by casting to integer, especially if we also offset them all by > 0.5 as well. > > Only normalization does the ceil(v - 0.5) but the crossings are directly > casted to int: > > + // update crossing ( x-coordinate + last bit = orientation): > + cross = (((int) f_curx) << 1) | _unsafe.getInt(addr + _OFF_YMAX_OR) & 0x1; /* last bit contains orientation (0 or 1) */ Note that cast is theoretically in error. > I noted several times to improve that rounding issue with subpixel centers ! > But it is less important than improving quality for nearly vertical or > horizontal lines (large subpixel steps): I have ideas related to span > interpolation or using adaptive scanline steps... (in future) Understood. BTW, when we adapted Pisces for FX we had to add a ceil(curx - 0.5) to the crossing calculation here because we instantiate the Pisces renderer optionally with 1x1 sampling for non-AA rendering and the renderings were all off by a pixel if we didn't make that change. It hasn't been noticed when this renderer is used only in AA mode in the JDK (or when we use it optionally for AA in FX) because it would only be off by 1/64th of a coverage value. > I use FastMath mainly to handle boundaries and coordinates can be either > positive or negative ... so I do not have the choice to deal with > negative values ! That's probably true for normalization then. For the rendering part, we could carefully constrain our values so that they are always positive or negative since we have a target clip to render relative to. > FastMath - if we can prove that no values <0 are interesting (as in, > the only interesting property about them is that they are less than > 0), then we can just use a cast to integer. This is particular true > if we clamp a value to >= 0 after we convert it to an integer - in > that case we might as well have used an int cast rather than a > floor() computation. > > Ok let's discuss that later. As is true for all of these issues "after the line"... ;) ...jim From james.graham at oracle.com Wed Mar 18 22:03:36 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 18 Mar 2015 15:03:36 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5509F30B.5060506@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> Message-ID: <5509F638.1070605@oracle.com> On 3/18/15 2:50 PM, Jim Graham wrote: > On 3/18/15 9:17 AM, Laurent Bourg?s wrote: >> -------- Here are some "things to consider later" --------- >> >> I just realized the main case where we want to deal with cleaning >> out dirty arrays and it would be the crossings accumulation arrays. >> It seems to me that those are special cases and so we should >> concentrate the cleaning code on those explicitly and not have a >> global "lets clean all arrays everywhere" setting. >> >> Agreed. >> Let's clarify my approach in marlin: it uses mainly reused arrays (int, >> byte, float) => no allocation (GC overhead). >> To achieve the best performance, it only clears dirty parts ie used ones >> (see the many used mark fields). >> >> Dirty arrays are named "dirty" to indicate that these arrays are used in >> a "unsafe" manner ie never zero-filled (always junk). It means the code >> must be good enough to always set values and get those that have be set. > > Perhaps a naming convention for the variable so that we can spot code > that might rely on cleared data being used on an array that isn't > necessarily cleared then? Thinking more about this - actually all arrays are (potentially) used in a dirty manner. Some arrays naturally wouldn't care if the data is dirty because they are filled from the start and only access the part that is filled. Others like the coverage accumulation arrays may be more randomly accessed and so having a predefined start state is important to them. So, all arrays would qualify as "dirty" as per your description unless I'm missing something...? ...jim From bourges.laurent at gmail.com Wed Mar 18 22:41:15 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Wed, 18 Mar 2015 23:41:15 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5509F638.1070605@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> Message-ID: Jim, 2015-03-18 23:03 GMT+01:00 Jim Graham : > > > On 3/18/15 2:50 PM, Jim Graham wrote: > >> On 3/18/15 9:17 AM, Laurent Bourg?s wrote: >> >>> -------- Here are some "things to consider later" --------- >>> >>> I just realized the main case where we want to deal with cleaning >>> out dirty arrays and it would be the crossings accumulation arrays. >>> It seems to me that those are special cases and so we should >>> concentrate the cleaning code on those explicitly and not have a >>> global "lets clean all arrays everywhere" setting. >>> >>> Agreed. >>> Let's clarify my approach in marlin: it uses mainly reused arrays (int, >>> byte, float) => no allocation (GC overhead). >>> To achieve the best performance, it only clears dirty parts ie used ones >>> (see the many used mark fields). >>> >>> Dirty arrays are named "dirty" to indicate that these arrays are used in >>> a "unsafe" manner ie never zero-filled (always junk). It means the code >>> must be good enough to always set values and get those that have be set. >>> >> >> Perhaps a naming convention for the variable so that we can spot code >> that might rely on cleared data being used on an array that isn't >> necessarily cleared then? >> > > Thinking more about this - actually all arrays are (potentially) used in a > dirty manner. Some arrays naturally wouldn't care if the data is dirty > because they are filled from the start and only access the part that is > filled. Others like the coverage accumulation arrays may be more randomly > accessed and so having a predefined start state is important to them. > > So, all arrays would qualify as "dirty" as per your description unless I'm > missing something...? As you pointed, 90% arrays can be considered "dirty" and I tried to add a comment like "// dirty" (maybe I forgot some of them): I think it is a very good idea to adopt a convention like array_d ... However, there are zero-filled arrays (of course) for important reasons: - coverage / tile accumulator (alpharow, touchedTile) - growable arrays that need to be zero-filled (edgeBuckets, edgeBucketCounts) - growable arrays can exceed their initial array capacity => they use ...ArrayCache and these must stay "clean": zero-filled in put() for the dirty range [from, usedMark] I advocate it is a bit tricky and looks like C (unsafe) than java code. To conclude, it is maybe more important to indicate "clean" arrays than dirty ones... Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Wed Mar 18 23:25:32 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 19 Mar 2015 00:25:32 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> Message-ID: Jim, Here is the new webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/ Changes: - discussed changes in Dasher, Stroker, TransformingPathConsumer2D - indentation, line breaks (continuation lines) - revert many float suffix in math operations (useless ? does the compiler make conversions ?) Hope it looks better ... Good night, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Thu Mar 19 17:09:32 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 19 Mar 2015 18:09:32 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5509ED17.8070801@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509ED17.8070801@oracle.com> Message-ID: Jim, > I would have solved this by having a RenderContext.getRenderer(clip, rule) method in which case you would write: > > r = rdrCtx.getRenderer(clip.getLoX(), ..., pi.getWindingRule()); > > RenderContext.getRenderer() would initialize the renderer and return it. In the general case, that leaves the RenderContext object open to new ways to manage cached instances in the future should our needs change since the cache management logic is internal to the object... It looks better but in practice there are many other reused instances in a RendererContext that need initialization too. For performance my current approach make a single call to getRendererContext () that uses TL or CLQ for context storage and handles once the liveness check: Hard / Soft / Weak references. I wonder if your approach would lead to many calls to TL.get () ... I agree it is not very clean but just efficient. Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Thu Mar 19 17:21:14 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 19 Mar 2015 18:21:14 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5509F30B.5060506@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> Message-ID: Jim, >> I use FastMath mainly to handle boundaries and coordinates can be either >> positive or negative ... so I do not have the choice to deal with >> negative values ! > > > That's probably true for normalization then. For the rendering part, we could carefully constrain our values so that they are always positive or negative since we have a target clip to render relative to. Good catch: I will test using int cast in the renderer code : only positive ! Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Thu Mar 19 20:10:24 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 19 Mar 2015 13:10:24 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509ED17.8070801@oracle.com> Message-ID: <550B2D30.6050401@oracle.com> Hi Laurent, I'm not sure how my approach would impact the number of calls to TL.get(). TL.get() is used to get the RC instance. That must be done before either code can be executed. After TL.get() you then either do one of the following: Renderer r = rdrCtx.renderer.init(...); or: Renderer r = rdrCtx.getRenderer(......); In both cases, rdrCtx came from somewhere prior and I see no call to TL.get() in either calling sequence. The distinction is that in the first case rdrCtx is just used to hold a bare field which exposes the specific mechanism of caching (i.e. we cache a single reference and there it is), and we add an init call to Renderer that returns a value even though the typical design of an "init()" call tends to not return a value. In the second case, the RenderContext class takes a more active role in how cached Renderers are managed internally (even if it really is just a single cached reference for now) and the RenderContext object supplies a getRenderer() method whose return value makes sense because it is a getter method... ...jim On 3/19/15 10:09 AM, Laurent Bourg?s wrote: > Jim, > >> I would have solved this by having a RenderContext.getRenderer(clip, rule) method in which case you would write: >> >> r = rdrCtx.getRenderer(clip.getLoX(), ..., pi.getWindingRule()); >> >> RenderContext.getRenderer() would initialize the renderer and return it. In the general case, that leaves the RenderContext object open to new ways to manage cached instances in the future should our needs change since the cache management logic is internal to the object... > > It looks better but in practice there are many other reused instances in > a RendererContext that need initialization too. > > For performance my current approach make a single call to > getRendererContext () that uses TL or CLQ for context storage and > handles once the liveness check: Hard / Soft / Weak references. > > I wonder if your approach would lead to many calls to TL.get () ... > > I agree it is not very clean but just efficient. > > Laurent > From james.graham at oracle.com Thu Mar 19 20:16:21 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 19 Mar 2015 13:16:21 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> Message-ID: <550B2E95.8060500@oracle.com> The only "gotcha" with this technique is that the rendering inner loop should really use "ceil(x,y - 0.5)" to properly compute the shape insideness rule and that would mean that using an integer cast would require negative values to get the ceil() effect... ...jim On 3/19/15 10:21 AM, Laurent Bourg?s wrote: > Jim, > >>> I use FastMath mainly to handle boundaries and coordinates can be either >>> positive or negative ... so I do not have the choice to deal with >>> negative values ! >> >> >> That's probably true for normalization then. For the rendering part, we could carefully constrain our values so that they are always positive or negative since we have a target clip to render relative to. > > Good catch: I will test using int cast in the renderer code : only > positive ! > > Laurent > From bourges.laurent at gmail.com Thu Mar 19 20:28:30 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 19 Mar 2015 21:28:30 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <550B2E95.8060500@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <550B2E95.8060500@oracle.com> Message-ID: Jim, I looked quickly the Renderer code and it is not obvious to ensure values are positive. Let's keep it as it is now as it is tested and fast enough. However I would like to improve quality too and you have the experience and knowledge to help me when I am lost in the details. Thanks a lot Laurent Le 19 mars 2015 21:16, "Jim Graham" a ?crit : > > The only "gotcha" with this technique is that the rendering inner loop should really use "ceil(x,y - 0.5)" to properly compute the shape insideness rule and that would mean that using an integer cast would require negative values to get the ceil() effect... > > ...jim > > > On 3/19/15 10:21 AM, Laurent Bourg?s wrote: >> >> Jim, >> >>>> I use FastMath mainly to handle boundaries and coordinates can be either >>>> positive or negative ... so I do not have the choice to deal with >>>> negative values ! >>> >>> >>> >>> That's probably true for normalization then. For the rendering part, we could carefully constrain our values so that they are always positive or negative since we have a target clip to render relative to. >> >> >> Good catch: I will test using int cast in the renderer code : only >> positive ! >> >> Laurent >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Thu Mar 19 21:33:19 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 19 Mar 2015 14:33:19 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> Message-ID: <550B409F.30305@oracle.com> Hi Laurent, I think it's time to get this in. But, please keep these "Marlin vs Pisces" diffs around for future reference (typically I never delete any webrevs once I publish them to cr.openjdk anyway, but these initial diffs in particular are going to be important as I start looking at the specific changes in more depth). One important functional issue that I think we should address early on is that there are a number of property references in MarlinRenderingEngine and MarlinConst that I don't think are protected by AccessController doPrivileged blocks. These pieces of code cannot be run inside an applet or any context managed by a SecurityManager as access to arbitrary system properties is one of the first things to be disabled by security managers. I'd recommend addressing that early on - your call as to whether you want to address it before the first push. Here are some additional minor style things I noticed which I'll add here just to get them listed: - There are a number of single-line "/** short comment */" style comments sprinkled around. They aren't really doc comments since they don't contain all of the parts that one would expect in a doc comment. They should probably just be shortened to a regular comment (/* ... */), and any that are embedded in a class talking about a field could just as easily be a single-line comment format (// ...), but having them pretend to be doc comments (with the "/**") seems to be overkill. - Also a few places where I would move an open brace starting a method after a continued argument list to a new line as per Java2D coding style, but none of them were jarring enough that my eye had trouble distinguishing method body from argument list so I'll just note it as a general comment to keep in mind. MarlinTileGenerator, line 119 (only noticed because it was changed) - when I have multi-line continuations for ?: operations I usually line them up as: (condition ? true-clause : false-clause) for readability. MarlineTileGenerator, line 192 (not sure why this caught my eye in skimming) - 2 open square brackets looks odd, and a semicolon? Not sure what the notation is supposed to mean there. Renderer.java - still some fairly long lines in there. (I don't think our jcheck will reject those, but checking with Phil just in case) RendererStats.java - also some pretty long lines ...jim On 3/18/15 4:25 PM, Laurent Bourg?s wrote: > Jim, > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/ > > Changes: > - discussed changes in Dasher, Stroker, TransformingPathConsumer2D > - indentation, line breaks (continuation lines) > - revert many float suffix in math operations (useless ? does the > compiler make conversions ?) > > Hope it looks better ... > > Good night, > Laurent From bourges.laurent at gmail.com Thu Mar 19 22:53:07 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Thu, 19 Mar 2015 23:53:07 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <550B409F.30305@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> Message-ID: Jim, > I think it's time to get this in. Excellent news: marlin is going to be alive in openjdk ! But, please keep these "Marlin vs Pisces" diffs around for future reference (typically I never delete any webrevs once I publish them to cr.openjdk anyway, but these initial diffs in particular are going to be important as I start looking at the specific changes in more depth). Allright, I will left intact my workdir on cr.ojn. > One important functional issue that I think we should address early on is that there are a number of property references in MarlinRenderingEngine and MarlinConst that I don't think are protected by AccessController doPrivileged blocks. These pieces of code cannot be run inside an applet or any context managed by a SecurityManager as access to arbitrary system properties is one of the first things to be disabled by security managers. I'd recommend addressing that early on - your call as to whether you want to address it before the first push. I understand it can be a problem but for me applets are legacy... Anyway could you give me a code pattern to use... to properly get System properties in that secure environment. > > Here are some additional minor style things I noticed which I'll add here just to get them listed: > > - There are a number of single-line "/** short comment */" style comments sprinkled around. They aren't really doc comments since they don't contain all of the parts that one would expect in a doc comment. They should probably just be shortened to a regular comment (/* ... */), and any that are embedded in a class talking about a field could just as easily be a single-line comment format (// ...), but having them pretend to be doc comments (with the "/**") seems to be overkill. Ok I will take care. Could you indicate some of them? > - Also a few places where I would move an open brace starting a method after a continued argument list to a new line as per Java2D coding style, but none of them were jarring enough that my eye had trouble distinguishing method body from argument list so I'll just note it as a general comment to keep in mind. I tried last night to fix the more visible to me! > MarlinTileGenerator, line 119 (only noticed because it was changed) - when I have multi-line continuations for ?: operations I usually line them up as: > > (condition > ? true-clause > : false-clause) > > for readability. > > MarlineTileGenerator, line 192 (not sure why this caught my eye in skimming) - 2 open square brackets looks odd, and a semicolon? Not sure what the notation is supposed to mean there. > > Renderer.java - still some fairly long lines in there. (I don't think our jcheck will reject those, but checking with Phil just in case) > > RendererStats.java - also some pretty long lines I agree some long lines remain but we have very large displays in 2015, don't you ? Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Fri Mar 20 20:11:39 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 20 Mar 2015 13:11:39 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> Message-ID: <550C7EFB.8020104@oracle.com> On 3/19/2015 3:53 PM, Laurent Bourg?s wrote: > > One important functional issue that I think we should address early > on is that there are a number of property references in > MarlinRenderingEngine and MarlinConst that I don't think are protected > by AccessController doPrivileged blocks. These pieces of code cannot be > run inside an applet or any context managed by a SecurityManager as > access to arbitrary system properties is one of the first things to be > disabled by security managers. I'd recommend addressing that early on - > your call as to whether you want to address it before the first push. > > I understand it can be a problem but for me applets are legacy... Anyway > could you give me a code pattern to use... to properly get System > properties in that secure environment. Look at the source for java.awt.GraphicsEnvironment.getHeadlessProperty(). It's much more complicated than your needs, but it shows the way to wrap some code in a doPrivileged block. I'd recommend moving all of the getProperty() calls into a single static initialization block (in the Const class for instance), wrapped in a single doPrivileged() block which then sets static booleans to the indicated values so that you don't have to fire up a doPrivileged() block every time anyone calls any of those methods. The methods in the Const class then just become getters for the saved booleans. > > - There are a number of single-line "/** short comment */" style > comments sprinkled around. They aren't really doc comments since they > don't contain all of the parts that one would expect in a doc comment. > They should probably just be shortened to a regular comment (/* ... */), > and any that are embedded in a class talking about a field could just as > easily be a single-line comment format (// ...), but having them pretend > to be doc comments (with the "/**") seems to be overkill. > > Ok I will take care. Could you indicate some of them? I pulled up the patch file (from the top of the webrev index page) and just used a regex search for "[/][*][*].*[*][/]". Lots of lines, but they appear to be grouped in just a few new blocks of new code. > I agree some long lines remain but we have very large displays in 2015, > don't you ? Yes, but they aren't all large enough to hold 2 pages of text side by side if the lines get too long. Pull up the sdiffs of the webrev and notice that you have to scroll side to side to review the changes on some of your files (unless you have a really wide screen, but many of us work on laptops so 2x80 characters is comfortable and as you get much wider then you need to start scrolling side to side - 2x100 is iffy). In particular, the sdiff of Renderer.java in your last patch overflows the width of my retina MBP screen by about 25-30% mostly because of long lines in the "new" version. (I'll note that with your changes, Dasher.java was actually improved - it just barely doesn't overflow that same screen because you shortened some of the old lines that were in there from previous fixes - thanks!) ...jim From bourges.laurent at gmail.com Fri Mar 20 21:39:33 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 20 Mar 2015 22:39:33 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <550C7EFB.8020104@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> Message-ID: Jim, > Look at the source for java.awt.GraphicsEnvironment.getHeadlessProperty(). It's much more complicated than your needs, but it shows the way to wrap some code in a doPrivileged block. > > I'd recommend moving all of the getProperty() calls into a single static initialization block (in the Const class for instance), wrapped in a single doPrivileged() block which then sets static booleans to the indicated values so that you don't have to fire up a doPrivileged() block every time anyone calls any of those methods. The methods in the Const class then just become getters for the saved booleans. Good idea: will do it but will try keeping MarlinConst an interface and of course ensure constants are still final and static to let the compiler do its magic = constant inlining... > >> > - There are a number of single-line "/** short comment */" style >> comments sprinkled around. They aren't really doc comments since they >> don't contain all of the parts that one would expect in a doc comment. >> They should probably just be shortened to a regular comment (/* ... */), >> and any that are embedded in a class talking about a field could just as >> easily be a single-line comment format (// ...), but having them pretend >> to be doc comments (with the "/**") seems to be overkill. >> >> Ok I will take care. Could you indicate some of them? > > > I pulled up the patch file (from the top of the webrev index page) and just used a regex search for "[/][*][*].*[*][/]". Lots of lines, but they appear to be grouped in just a few new blocks of new code. Thanks, I will check using that regexp. > >> I agree some long lines remain but we have very large displays in 2015, >> don't you ? > > > Yes, but they aren't all large enough to hold 2 pages of text side by side if the lines get too long. Pull up the sdiffs of the webrev and notice that you have to scroll side to side to review the changes on some of your files (unless you have a really wide screen, but many of us work on laptops so 2x80 characters is comfortable and as you get much wider then you need to start scrolling side to side - 2x100 is iffy). In particular, the sdiff of Renderer.java in your last patch overflows the width of my retina MBP screen by about 25-30% mostly because of long lines in the "new" version. As I said previously, I shortened lines except in the Renderer class ! It is the most critical code with so many loops and conditional blocks... I will that effort also to shorten lines while keeping readability but it will take me some time and require running tests and benchmarks again. > (I'll note that with your changes, Dasher.java was actually improved - it just barely doesn't overflow that same screen because you shortened some of the old lines that were in there from previous fixes - thanks!) Thanks too ! I need rest: busy week + marlin work. I hope to release the new webrev early next week. Good week end, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From dalibor.topic at oracle.com Mon Mar 23 16:14:04 2015 From: dalibor.topic at oracle.com (dalibor topic) Date: Mon, 23 Mar 2015 17:14:04 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> Message-ID: <55103BCC.4010704@oracle.com> I took a look at the webrev, and I have no objections, other than that src/java.desktop/share/classes/sun/java2d/marlin/FastMath.java seems to be based off third party code with an unknown license. So that class should be removed in the next iteration. It may be worth filing a bug to optimize Math.* performance in general with respect to known classes of inputs instead. Alternatively, StrictMath versions of these methods should be in pure Java, and avoid the JNI invocation penalty, so could be worth a try as well. cheers, dalibor topic On 19.03.2015 00:25, Laurent Bourg?s wrote: > Jim, > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/ > > Changes: > - discussed changes in Dasher, Stroker, TransformingPathConsumer2D > - indentation, line breaks (continuation lines) > - revert many float suffix in math operations (useless ? does the > compiler make conversions ?) > > Hope it looks better ... > > Good night, > Laurent -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Gesch?ftsf?hrer: J?rgen Kunz Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Astrid Kepper, Val Maher Oracle is committed to developing practices and products that help protect the environment From bourges.laurent at gmail.com Mon Mar 23 16:18:51 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Mon, 23 Mar 2015 17:18:51 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> Message-ID: Jim, Here is the new webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.4/ Changes: - Fixed line lengths to 80 chars - Fixed / removed single-line "/** short comment */" - Fixed Unsafe access - Use PhantomReference / ReferenceQueue and the new OffHeapDisposer thread to free off-heap memory to avoid finalization in Renderer - added the ArrayCachesHolder class in RendererContext to gather all ArrayCache instances: use it wrapped using a WeakReference to reduce the memory footprint of large array caches - Use AccessController.doPrivileged(new GetPropertyAction(key)) to properly get System properties in a secure environment in MarlinRenderingEngine I hope this patch is now good enough to be pushed into the graphics rasterizer project. PS: I tested again using weak references for RendererContext (TL storage) using -Dsun.java2d.renderer.useRef=weak and it is working well: maybe I should use this mode by default instead of SoftReferences (better memory footprint): to be benchmarked and discussed... First results (JDK8) with WeakReference seems as good as using SoftReference (very minimal GC overhead): Tests 27 9 9 9 Threads 4 1 2 4 Pct95 132.155 130.149 130.757 135.558 Regards, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Tue Mar 24 18:43:20 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Tue, 24 Mar 2015 19:43:20 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> Message-ID: Jim, Did you have a look to the latest webrev? Or you expect me to send a new one without FastMath ? Dalibor, I tested quickly and StrictMath is not fast enough. I will find another solution to efficiently ceil (float)... Cheers, Laurent Le 23 mars 2015 17:18, "Laurent Bourg?s" a ?crit : > Jim, > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.4/ > > Changes: > - Fixed line lengths to 80 chars > - Fixed / removed single-line "/** short comment */" > - Fixed Unsafe access > - Use PhantomReference / ReferenceQueue and the new OffHeapDisposer thread > to free off-heap memory to avoid finalization in Renderer > - added the ArrayCachesHolder class in RendererContext to gather all > ArrayCache instances: use it wrapped using a WeakReference to reduce the > memory footprint of large array caches > - Use AccessController.doPrivileged(new GetPropertyAction(key)) to > properly get System properties in a secure environment in > MarlinRenderingEngine > > I hope this patch is now good enough to be pushed into the graphics > rasterizer project. > > PS: I tested again using weak references for RendererContext (TL storage) > using -Dsun.java2d.renderer.useRef=weak and it is working well: maybe I > should use this mode by default instead of SoftReferences (better memory > footprint): to be benchmarked and discussed... > > First results (JDK8) with WeakReference seems as good as using > SoftReference (very minimal GC overhead): > Tests 27 9 9 9 > Threads 4 1 2 4 > Pct95 132.155 130.149 130.757 135.558 > > Regards, > Laurent > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Wed Mar 25 20:17:14 2015 From: james.graham at oracle.com (Jim Graham) Date: Wed, 25 Mar 2015 13:17:14 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> Message-ID: <551317CA.8070003@oracle.com> Hi Laurent, Briefly I checked out the line lengths only in Renderer.java and they seem good now. But you changed a number of other things that I'm now going to have to review. Can you summarize not just the "what changed", but also the "where it changed" so I don't have to look over all parts of all files trying to find the changes? Also, if we can hold off on further development work until we get a stake in the ground it would avoid this "having to review a huge changeset over again from scratch" due to ancillary fixes. Also, the very first file I brought up still had /** */ single line faux-doc comments (AAShapePipe, on private fields no less). That was the second thing you said that you fixed below...? ...jim On 3/24/15 11:43 AM, Laurent Bourg?s wrote: > Jim, > Did you have a look to the latest webrev? > > Or you expect me to send a new one without FastMath ? > > Dalibor, I tested quickly and StrictMath is not fast enough. > > I will find another solution to efficiently ceil (float)... > > Cheers, > Laurent > > Le 23 mars 2015 17:18, "Laurent Bourg?s" > a ?crit : > > Jim, > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.4/ > > Changes: > - Fixed line lengths to 80 chars > - Fixed / removed single-line "/** short comment */" > - Fixed Unsafe access > - Use PhantomReference / ReferenceQueue and the new OffHeapDisposer > thread to free off-heap memory to avoid finalizationin Renderer > - added the ArrayCachesHolder class in RendererContext to gather all > ArrayCache instances: use it wrapped using a WeakReference to reduce > the memory footprint of large array caches > - Use AccessController.doPrivileged(new GetPropertyAction(key)) to > properly get System properties in a secure environment in > MarlinRenderingEngine > > I hope this patch is now good enough to be pushed into the graphics > rasterizer project. > > PS: I tested again using weak references for RendererContext (TL > storage) using -Dsun.java2d.renderer.useRef=weak and it is working > well: maybe I should use this mode by default instead of > SoftReferences (better memory footprint): to be benchmarked and > discussed... > > First results (JDK8) with WeakReference seems as good as using > SoftReference (very minimal GC overhead): > Tests 27 9 9 9 > Threads 4 1 2 4 > Pct95 132.155 130.149 130.757 135.558 > > Regards, > Laurent > From bourges.laurent at gmail.com Wed Mar 25 21:39:59 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Wed, 25 Mar 2015 22:39:59 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <551317CA.8070003@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> Message-ID: Hi Jim, > Briefly I checked out the line lengths only in Renderer.java and they seem good now. Ok, I fixed also MarlinConst / RendererStats you pointed out. > But you changed a number of other things that I'm now going to have to review. Can you summarize not just the "what changed", but also the "where it changed" so I don't have to look over all parts of all files trying to find the changes? Ok, sorry. I pushed also my changes onto github that has a nice diff tool... you can not use. You could maybe compare both marlin.x/jdk.patch files. > Also, if we can hold off on further development work until we get a stake in the ground it would avoid this "having to review a huge changeset over again from scratch" due to ancillary fixes. Agreed. It was minor changes compared to the huge marlin patch: I will give you hints below. > Also, the very first file I brought up still had /** */ single line faux-doc comments (AAShapePipe, on private fields no less). That was the second thing you said that you fixed below...? I disagree: this is a typical javadoc comment for a field (even private). Maybe you dislike javadoc for fields. What's clearly the problem ? Do you want me to remove all new comments / javadoc ? I said I removed many of them that were redundant or not appropriate javadoc: See RendererContext. I do my best to make it right and spent many hours on preparing & testing the latest webrev. I agree it can be painful on your side. >> - Fixed Unsafe access See Renderer lines 52 to 75. >> - Use PhantomReference / ReferenceQueue and the new OffHeapDisposer >> thread to free off-heap memory to avoid finalization in Renderer See Renderer lines 52 to 75 and lines 1379 to 1415. I forgot to remove lines 530 to 537 = deprecated finalize method. >> - added the ArrayCachesHolder class in RendererContext to gather all >> ArrayCache instances: use it wrapped using a WeakReference to reduce >> the memory footprint of large array caches In RendererContext lines 70 and 140-170 and 340 to eof. >> - Use AccessController.doPrivileged(new GetPropertyAction(key)) to >> properly get System properties in a secure environment in >> MarlinRenderingEngine MarlinRenderingEngine: Line 830 to eof. If you prefer, I can send a diff between webrevs or do more cleanup ? Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Wed Mar 25 21:44:07 2015 From: philip.race at oracle.com (Phil Race) Date: Wed, 25 Mar 2015 14:44:07 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <55103BCC.4010704@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> Message-ID: <55132C27.1070405@oracle.com> FastMath: http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/src/java.desktop/share/classes/sun/java2d/marlin/FastMath.java.html says its from here : http://www.java-gaming.org/index.php?topic=24194.0 but that in turn may be from somewhere else unknown .. Aside from the provenance of the code, and even though its a 'trick' rather than a body of code, other options are preferable, so it might be interesting to get Joe's input on what other options there are that maintain correctness and give better performance - I assume this gives a measurable benefit ? Is the limitation on the input range an issue ? There's no test here for that, and correctness-wise this does seem to break down if the input is NaN. -phil. On 03/23/2015 09:14 AM, dalibor topic wrote: > I took a look at the webrev, and I have no objections, other than that > src/java.desktop/share/classes/sun/java2d/marlin/FastMath.java seems > to be based off third party code with an unknown license. > > So that class should be removed in the next iteration. > > It may be worth filing a bug to optimize Math.* performance in general > with respect to known classes of inputs instead. Alternatively, > StrictMath versions of these methods should be in pure Java, and avoid > the JNI invocation penalty, so could be worth a try as well. > > cheers, > dalibor topic > > On 19.03.2015 00:25, Laurent Bourg?s wrote: >> Jim, >> >> Here is the new webrev: >> http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/ >> >> Changes: >> - discussed changes in Dasher, Stroker, TransformingPathConsumer2D >> - indentation, line breaks (continuation lines) >> - revert many float suffix in math operations (useless ? does the >> compiler make conversions ?) >> >> Hope it looks better ... >> >> Good night, >> Laurent > From philip.race at oracle.com Wed Mar 25 21:50:44 2015 From: philip.race at oracle.com (Phil Race) Date: Wed, 25 Mar 2015 14:50:44 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> Message-ID: <55132DB4.3010206@oracle.com> On 03/25/2015 02:39 PM, Laurent Bourg?s wrote: > > Hi Jim, > > > Briefly I checked out the line lengths only in Renderer.java and > they seem good now. > Ok, I fixed also MarlinConst / RendererStats you pointed out. > > > But you changed a number of other things that I'm now going to have > to review. Can you summarize not just the "what changed", but also > the "where it changed" so I don't have to look over all parts of all > files trying to find the changes? > Ok, sorry. I pushed also my changes onto github that has a nice diff > tool... you can not use. > > You could maybe compare both marlin.x/jdk.patch files. > > > Also, if we can hold off on further development work until we get a > stake in the ground it would avoid this "having to review a huge > changeset over again from scratch" due to ancillary fixes. > > Agreed. It was minor changes compared to the huge marlin patch: I will > give you hints below. > > > Also, the very first file I brought up still had /** */ single line > faux-doc comments (AAShapePipe, on private fields no less). That was > the second thing you said that you fixed below...? > > I disagree: this is a typical javadoc comment for a field (even > private). Maybe you dislike javadoc for fields. > What's clearly the problem ? Do you want me to remove all new comments > / javadoc ? > Javadoc actually has an option to generate the doc for private members ( -private) :- http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javadoc.html#javadocoptions so I suppose its not considered illegal and won't cause any problems that I know of, although its not the default. -phil. > I said I removed many of them that were redundant or not appropriate > javadoc: > See RendererContext. > > I do my best to make it right and spent many hours on preparing & > testing the latest webrev. > > I agree it can be painful on your side. > > >> - Fixed Unsafe access > > See Renderer lines 52 to 75. > > >> - Use PhantomReference / ReferenceQueue and the new OffHeapDisposer > >> thread to free off-heap memory to avoid finalization in Renderer > > See Renderer lines 52 to 75 and lines 1379 to 1415. > > I forgot to remove lines 530 to 537 = deprecated finalize method. > > >> - added the ArrayCachesHolder class in RendererContext to > gather all > >> ArrayCache instances: use it wrapped using a WeakReference to > reduce > >> the memory footprint of large array caches > In RendererContext lines 70 and 140-170 and 340 to eof. > > >> - Use AccessController.doPrivileged(new GetPropertyAction(key)) to > >> properly get System properties in a secure environment in > >> MarlinRenderingEngine > > MarlinRenderingEngine: Line 830 to eof. > > If you prefer, I can send a diff between webrevs or do more cleanup ? > > Laurent > From james.graham at oracle.com Thu Mar 26 22:19:03 2015 From: james.graham at oracle.com (Jim Graham) Date: Thu, 26 Mar 2015 15:19:03 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> Message-ID: <551485D7.3090708@oracle.com> On 3/25/15 2:39 PM, Laurent Bourg?s wrote: >> Also, the very first file I brought up still had /** */ single line faux-doc comments (AAShapePipe, on private fields no less). That was the second thing you said that you fixed below...? > > I disagree: this is a typical javadoc comment for a field (even > private). Maybe you dislike javadoc for fields. > What's clearly the problem ? Do you want me to remove all new comments / > javadoc ? I absolutely do not want you to delete the comments. The content of the comments are important. This is a minor style note and there is no functional flaw, but use of the "/**" format for these comments is inappropriate and out of place for internal code like this. "/**" implies: - we are going to run javadoc on this code (we aren't) - the output of javadoc will be published somewhere (it won't) - the comment adheres to much higher standards of content, including: - use of full sentences (most if all of these are sentence fragments) - use of recommended grammar and verb tenses as per the doc writer guidelines - proper annotations like @since and @see where appropriate - does the text of the comment promise something we don't want to guarantee? - does the text of the comment mention specific caveats we need to communicate? You may believe that these are "typical javadoc comments for a field", but "/** dirty aabox array */" would never pass muster if we were planning on actually publishing these comments. It's like talking to one of your siblings in a casual setting and yet using their full formal name and title. There's nothing wrong with it, but it takes one out of the context and for just a second they wonder "are they about to reprimand me? Oh, no, they're just being oddly formal..." I would just use the "//" notation for these comments... ...jim From bourges.laurent at gmail.com Fri Mar 27 09:19:37 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 27 Mar 2015 10:19:37 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <551490AA.4050103@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> <55132C27.1070405@oracle.com> <551490AA.4050103@oracle.com> Message-ID: Hi Phil & Joe, Thanks for your opinions, but let me explain the impact of ceil(float) in the Marlin renderer: - for every line, 2 ceil calls are performed => depends on the shape complexity - for every rendering pass, typically every 32 pixel stride, 4 ceil calls are performed => depends on the shape's vertical coverage => In my benchmarks, I experienced that the Math.ceil(float) method is called million times (I can gather numbers if you want). As I want to achieve the best possible performance, I used that "trick" to have a faster (but accurate enough) alternative which gives in my MapBench benchmarks ~ 3% performance. I advocate 3% is small but it will depend on the drawing complexity: the more complex your shapes are, the bigger is the speedup. Since JDK 7 the JDK has used a pure-Java implementation of floor and ceil: > > 6908131 Pure Java implementations of StrictMath.floor(double) & > StrictMath.ceil(doublele) > https://bugs.openjdk.java.net/browse/JDK-6908131 > Thanks for the pointer, I will look at the StrictMath.ceil code to see if I can optimize it for general use (any kind of inputs). > So in this case I would suggest we follow the implications of Knuth's > observation that "premature optimization is the root of all evil" and only > look to further speed up floor / ceil if there is some appreciable > performance problem with them today as shown in benchmarks, etc. > I know that principle, but I am pragmatic: ceil(float) has a noticeable impact on rendering performance according to my benchmarks which are based on real map use cases (geoserver). On 3/25/2015 2:44 PM, Phil Race wrote: > >> FastMath: http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/src/ >> java.desktop/share/classes/sun/java2d/marlin/FastMath.java.html >> >> says its from here : http://www.java-gaming.org/index.php?topic=24194.0 >> >> but that in turn may be from somewhere else unknown .. >> >> Aside from the provenance of the code, and even though its a 'trick' >> rather than a body of code, >> other options are preferable, so it might be interesting to get Joe's >> input on what other options >> there are that maintain correctness and give better performance - I >> assume this gives >> a measurable benefit ? >> > 1. I agree that trick comes from a java forum, but it is more an idea that a body of code: ceil = upper_bound_integer - (int) ( upper_bound_double - x_float) As I said, the code could be rewritten to ensure values are positive so a integer cast is enough. Of course, the floating-point precision can have tricky side-effects (and also overflow / NaN handling). 2. Yes, it gives speedup: here are the synthetic benchmark results with / without the trick enabled [-Dsun.java2d.renderer.useFastMath=true|false] : ==> marlin_TL_Tile_1.log <== Tests 27 9 9 9 Threads 4 1 2 4 Pct95 132.498 131.176 132.641 133.677 ==> marlin_TL_Tile_noFM_3.log <== Tests 27 9 9 9 Threads 4 1 2 4 Pct95 135.669 134.989 135.541 136.477 > >> Is the limitation on the input range an issue ? There's no test here for >> that, and >> correctness-wise this does seem to break down if the input is NaN. >> > 1. In Pisces / Marlin, ceil is used in a specific context to upper integer values: private void addLine(float x1, float y1, float x2, float y2) { ... /* convert subpixel coordinates (float) into pixel positions (int) */ // upper integer (inclusive) final int firstCrossing = Math.max(FastMath.ceil(y1), _boundsMinY); // upper integer (exclusive ?) final int lastCrossing = Math.min(FastMath.ceil(y2), _boundsMaxY); boolean endRendering() { ... /* bounds as inclusive intervals */ final int spminX = Math.max(Math.ceil(edgeMinX), boundsMinX); final int spmaxX = Math.min(Math.ceil(edgeMaxX), boundsMaxX - 1); final int spminY = Math.max(Math.ceil(edgeMinY), boundsMinY); final int spmaxY = Math.min(Math.ceil(edgeMaxY), boundsMaxY - 1); However, to improve the coordinate rounding arround subpixel centers, it should be rewritten (as jim pointed out): ceil(float) => ceil(x - 0.5f) or floor(x + 0.5f) Anway, the returned values are then clamped into [min | max] ranges. Do you know any faster alternative to do such rounding + boundary clipping ? 2. I agree it does not handle overflow or NaN but that is a real problem with Pisces in general: I think it should be tested and fixed in a second step. For example, I you draw a vertical or horizontal line with x / y = NaN then it fails ! Moreover, as coordinates are multiplied by 8, it can overflow float and integer maximum values !! I think clipping should be implemented to ensure all coordinates belongs to the clip boundaries. To conclude, I propose to remove the FastMath utility class now and later use a new Renderer utility method to perform both rounding and bound checks at the same time with your help. Cheers, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From joe.darcy at oracle.com Thu Mar 26 23:05:14 2015 From: joe.darcy at oracle.com (Joseph D. Darcy) Date: Thu, 26 Mar 2015 16:05:14 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <55132C27.1070405@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> <55132C27.1070405@oracle.com> Message-ID: <551490AA.4050103@oracle.com> Hello, Since JDK 7 the JDK has used a pure-Java implementation of floor and ceil: 6908131 Pure Java implementations of StrictMath.floor(double) & StrictMath.ceil(double) https://bugs.openjdk.java.net/browse/JDK-6908131 So in this case I would suggest we follow the implications of Knuth's observation that "premature optimization is the root of all evil" and only look to further speed up floor / ceil if there is some appreciable performance problem with them today as shown in benchmarks, etc. Cheers, -Joe On 3/25/2015 2:44 PM, Phil Race wrote: > FastMath: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/src/java.desktop/share/classes/sun/java2d/marlin/FastMath.java.html > > > says its from here : http://www.java-gaming.org/index.php?topic=24194.0 > > but that in turn may be from somewhere else unknown .. > > Aside from the provenance of the code, and even though its a 'trick' > rather than a body of code, > other options are preferable, so it might be interesting to get Joe's > input on what other options > there are that maintain correctness and give better performance - I > assume this gives > a measurable benefit ? > > Is the limitation on the input range an issue ? There's no test here > for that, and > correctness-wise this does seem to break down if the input is NaN. > > -phil. > > On 03/23/2015 09:14 AM, dalibor topic wrote: >> I took a look at the webrev, and I have no objections, other than >> that src/java.desktop/share/classes/sun/java2d/marlin/FastMath.java >> seems to be based off third party code with an unknown license. >> >> So that class should be removed in the next iteration. >> >> It may be worth filing a bug to optimize Math.* performance in >> general with respect to known classes of inputs instead. >> Alternatively, StrictMath versions of these methods should be in pure >> Java, and avoid the JNI invocation penalty, so could be worth a try >> as well. >> >> cheers, >> dalibor topic >> >> On 19.03.2015 00:25, Laurent Bourg?s wrote: >>> Jim, >>> >>> Here is the new webrev: >>> http://cr.openjdk.java.net/~lbourges/marlin/marlin.3/ >>> >>> Changes: >>> - discussed changes in Dasher, Stroker, TransformingPathConsumer2D >>> - indentation, line breaks (continuation lines) >>> - revert many float suffix in math operations (useless ? does the >>> compiler make conversions ?) >>> >>> Hope it looks better ... >>> >>> Good night, >>> Laurent >> > From bourges.laurent at gmail.com Fri Mar 27 16:33:40 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 27 Mar 2015 17:33:40 +0100 Subject: [OpenJDK Rasterizer] Path2D optimizations In-Reply-To: <54FA57B8.60201@oracle.com> References: <54DF8F7F.5040700@redhat.com> <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> Message-ID: Jim, Here is a new Path2d patch: http://cr.openjdk.java.net/~lbourges/path2D/Path2D.2/ Changes: - Fix ArrayIndexOutOfBounds in ptCrossing / rectCrossing when coords array is zero-sized (0 capacity constructor): bug present in jdk8 - new tests: Path2dEmpty to test this bug Path2dCopyConstructor to test my changes on the copy constructor following your instructions Maybe we should create a new bug and split this patch in 2 separated ones ? Laurent Le 7 mars 2015 02:43, "Jim Graham" a ?crit : > > First, the test cases that I asked for were to verify that a path that was cloned was still operational. I see no tests that verify that the returned objects will still function, only tests that examine internal data structures for a metric that may not be appropriate in the future. > > On 3/6/15 11:06 AM, Phil Race wrote: >> >> So the test should go in the anonymous package and avoid accessing >> internals. >> It should be possible to use just public API to verify the arrays of a >> shape >> being cloned are trimmed . > > > We should not be testing if the cloned arrays are trimmed. We don't care from a testing standpoint. It is an implementation detail of a performance feature and we should not write any test that says "Object A should do its work by doing X, Y, and Z". > > If we want to test performance then we should write a benchmark that tests how long it takes to do an operation. That will likely be a manual test, though. It should not be examining internals to take its measurements, though. Benchmarks tend to only use public APIs as they should be benchmarking operations that Java programs encounter. > > If we want to test if your fix will break something, then we need to test that. Currently your tests do not do that. We only need public APIs to do that. > > What I would like to see in the test: > > - Delete all of the existing tests in there. None of them are appropriate to our testing goals. > > - Write tests that create paths in various forms and run them through the following sub-tests: > - each of the following should be tested on a fresh clone... > - get a PathIterator and iterate it through until it is done > (optional - compare to the expected segments that were in the original) > - get a flattened PathIterator using "getPathIterator(flatness,)" and make sure it works > (optional - compare to original path if the original was already flat) > (but, also run it on a path with curves to make sure flattening engine didn't break) > - add various kinds of segments to the cloned path > - get the bounds of the cloned path > - use the transform() method on the cloned path > - call intersects(point), intersects(rect) and contains(rect) on a cloned path > - call getCurrentPoint() on the cloned path > > - Perform each of the above tests on a (set of) clone(s) of the following paths: > - each of the following executed on both a Float and a Double instance... > - an empty path > - a path with just a moveto > - a path with a moveto+some lines > - a path with a moveto+some curves > > The way I tend to write tests like this is to use cascading methods like: > > void testEqual(Path2D pathA, Path2D path2D pathB) { > // Grab 2 path iterators and test for equality with float coords[] > } > > void test(Path2D p2d, boolean isEmpty) { > testEqual(new Path2D.Float(p2d), p2d); > testEqual(new Path2D.Double(p2d), p2d); > testEqual(new GeneralPath(p2d), p2d); > > testIterator(new Path2D.Float(p2d)); > testIterator(new Path2D.Double(p2d)); > testIterator((Path2D) p2d.clone()); > > testFlattening(... 3 clone variants ...); > > testAddMove(... 3 clone variants ...); > // These should expect exception if empty > testAddLine(... 3 clone variants ..., isEmpty); > testAddQuad(... 3 clone variants ..., isEmpty); > } > > interface PathFactory { > Path2D makePath(); > } > > void test(PathFactory pf) { > test(pf.makePath(), true); > test(addMove(pf.makePath()), false); > test(addLines(pf.makePath()), false); > test(addCurves(pf.makePath())), false); > } > > @Test > void testFloatPaths() { > test(() -> new Path2D.Float()); > } > > @Test > void testDoublePaths() { > test(() -> new Path2D.Double()); > } > > @Test > void testGeneralPath() { > test(() -> new GeneralPath()); > } > > ...jim -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Fri Mar 27 17:17:50 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Fri, 27 Mar 2015 18:17:50 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <551485D7.3090708@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> Message-ID: Jim, Here is a new webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.5/ Changes: - Fixed all single line comments to use // (no javadoc) in all files - removed Renderer.finalize () - renamed FastMath to FloatMath that use optimized ceil / floor methods for float values derived from StrictMath methods Joe, could you have a look to FloatMath ? I adapted the code based on double values to float values + ceil returns directly an int. It seems a bit faster in my benchmarks but not as much as the previous trick. Note: there is no more copyright issue. Cheers, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Fri Mar 27 21:04:46 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 27 Mar 2015 14:04:46 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> <55132C27.1070405@oracle.com> <551490AA.4050103@oracle.com> Message-ID: <5515C5EE.9060001@oracle.com> One thing I'd like to hear from Joe or Phil or Dalibor is if it is OK for us to check in the current version to the graphics-rasterizer-dev java.net repo as long as we resolve this before we push to the client or master repos? I'd like to get Laurent's current work in so that we can start tweaking it and right now it is a huge webrev to slog through for even simple changes. I'm guessing that since every changeset in the master repo requires a bug id that we'll end up collapsing this initial push and a number of subsequent tweaks into a single changeset for the eventual integration so any files that we obsolete during that process may never make it to the main repos. Or do we want "due diligence" of contributing sources on any change that gets hosted on any repo (even sandboxes) on java.net? ...jim On 3/27/15 2:19 AM, Laurent Bourg?s wrote: > Hi Phil & Joe, > > Thanks for your opinions, but let me explain the impact of ceil(float) > in the Marlin renderer: > - for every line, 2 ceil calls are performed => depends on the shape > complexity > - for every rendering pass, typically every 32 pixel stride, 4 ceil > calls are performed => depends on the shape's vertical coverage > > => In my benchmarks, I experienced that the Math.ceil(float) method is > called million times (I can gather numbers if you want). > > As I want to achieve the best possible performance, I used that "trick" > to have a faster (but accurate enough) alternative which gives in my > MapBench benchmarks ~ 3% performance. > > I advocate 3% is small but it will depend on the drawing complexity: the > more complex your shapes are, the bigger is the speedup. > > Since JDK 7 the JDK has used a pure-Java implementation of floor and > ceil: > > 6908131 Pure Java implementations of StrictMath.floor(double) & > StrictMath.ceil(doublele) > https://bugs.openjdk.java.net/__browse/JDK-6908131 > > > > Thanks for the pointer, I will look at the StrictMath.ceil code to see > if I can optimize it for general use (any kind of inputs). > > So in this case I would suggest we follow the implications of > Knuth's observation that "premature optimization is the root of all > evil" and only look to further speed up floor / ceil if there is > some appreciable performance problem with them today as shown in > benchmarks, etc. > > > I know that principle, but I am pragmatic: ceil(float) has a noticeable > impact on rendering performance according to my benchmarks which are > based on real map use cases (geoserver). > > On 3/25/2015 2:44 PM, Phil Race wrote: > > FastMath: > http://cr.openjdk.java.net/~__lbourges/marlin/marlin.3/src/__java.desktop/share/classes/__sun/java2d/marlin/FastMath.__java.html > > > > says its from here : > http://www.java-gaming.org/__index.php?topic=24194.0 > > > but that in turn may be from somewhere else unknown .. > > Aside from the provenance of the code, and even though its a > 'trick' rather than a body of code, > other options are preferable, so it might be interesting to get > Joe's input on what other options > there are that maintain correctness and give better performance > - I assume this gives > a measurable benefit ? > > > 1. I agree that trick comes from a java forum, but it is more an idea > that a body of code: > ceil = upper_bound_integer - (int) ( upper_bound_double - x_float) > > As I said, the code could be rewritten to ensure values are positive so > a integer cast is enough. Of course, the floating-point precision can > have tricky side-effects (and also overflow / NaN handling). > > 2. Yes, it gives speedup: here are the synthetic benchmark results with > / without the trick enabled [-Dsun.java2d.renderer.useFastMath=true|false] : > > ==> marlin_TL_Tile_1.log <== > > Tests 27 9 9 9 > Threads 4 1 2 4 > Pct95 132.498 131.176 132.641 133.677 > > ==> marlin_TL_Tile_noFM_3.log <== > > Tests 27 9 9 9 > Threads 4 1 2 4 > Pct95 135.669 134.989 135.541 136.477 > > > Is the limitation on the input range an issue ? There's no test > here for that, and > correctness-wise this does seem to break down if the input is NaN. > > > 1. In Pisces / Marlin, ceil is used in a specific context to upper > integer values: > > private void addLine(float x1, float y1, float x2, float y2) { > ... > /* convert subpixel coordinates (float) into pixel positions > (int) */ > // upper integer (inclusive) > > final int firstCrossing = Math.max(FastMath.ceil(y1), > _boundsMinY); > > // upper integer (exclusive ?) > final int lastCrossing = Math.min(FastMath.ceil(y2), > _boundsMaxY); > > > boolean endRendering() { > ... > > /* bounds as inclusive intervals */ > final int spminX = Math.max(Math.ceil(edgeMinX), boundsMinX); > final int spmaxX = Math.min(Math.ceil(edgeMaxX), boundsMaxX - 1); > final int spminY = Math.max(Math.ceil(edgeMinY), boundsMinY); > final int spmaxY = Math.min(Math.ceil(edgeMaxY), boundsMaxY - 1); > > However, to improve the coordinate rounding arround subpixel centers, it > should be rewritten (as jim pointed out): > ceil(float) => ceil(x - 0.5f) or floor(x + 0.5f) > > Anway, the returned values are then clamped into [min | max] ranges. > > Do you know any faster alternative to do such rounding + boundary clipping ? > > > 2. I agree it does not handle overflow or NaN but that is a real problem > with Pisces in general: I think it should be tested and fixed in a > second step. > > For example, I you draw a vertical or horizontal line with x / y = NaN > then it fails ! > Moreover, as coordinates are multiplied by 8, it can overflow float and > integer maximum values !! > > I think clipping should be implemented to ensure all coordinates belongs > to the clip boundaries. > > > To conclude, I propose to remove the FastMath utility class now and > later use a new Renderer utility method to perform both rounding and > bound checks at the same time with your help. > > Cheers, > Laurent From dalibor.topic at oracle.com Fri Mar 27 22:03:28 2015 From: dalibor.topic at oracle.com (dalibor topic) Date: Fri, 27 Mar 2015 23:03:28 +0100 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5515C5EE.9060001@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> <55132C27.1070405@oracle.com> <551490AA.4050103@oracle.com> <5515C5EE.9060001@oracle.com> Message-ID: <5515D3B0.8020907@oracle.com> On 27.03.2015 22:04, Jim Graham wrote: > One thing I'd like to hear from Joe or Phil or Dalibor is if it is OK > for us to check in the current version to the graphics-rasterizer-dev > java.net repo The best time and place for due diligence around contributions is before they hit a repository. As long as it includes code of unknown pedigree/license, a proposed changeset can't go into an OpenJDK Project repository. My understanding is that Laurent has been working on an improved version without the questionable code. I'll take a look at his latest webrev on Monday morning my time. cheers, dalibor topic -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Gesch?ftsf?hrer: J?rgen Kunz Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Astrid Kepper, Val Maher Oracle is committed to developing practices and products that help protect the environment From james.graham at oracle.com Fri Mar 27 22:38:31 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 27 Mar 2015 15:38:31 -0700 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> Message-ID: <5515DBE7.9000207@oracle.com> Hi Laurent, Looks great. Some comments on the test: - A couple of methods have "/**" even though the comment is just informational to the programmer and not representing an API. It looks like "/**" is the standard practice for the @test comment at the top of the class even though jtreg isn't spec'd to require it, but elsewhere it's just noise. - In general tests shouldn't print out a lot of noise (see "verbosity" in http://openjdk.java.net/jtreg/writetests.html). Ideally an automated test would produce no output if it is successful, but some of our automated tests do print out a short summary (mostly if they were stress-bashers). Some of them can be run in "verbose mode" to print out details in case an engineer is diagnosing a failure and wants to know what failed and why - I saw a few in the AffineTransform directory that had a static boolean verbose that was set if there was an argument handed to main() for instance. A verbose option can help when running the test in manual mode for debugging. - I'd add a testAddCubic() and testAddClose() to the tests. It looks like the "testAddQuad" method does add both types of curve, but the cubic curve is added after the quad so we don't get a case that adds a cubic to a freshly cloned path - which is the main state in question to be tested here. - equalsArray has some tests in it that don't make a lot of sense since you created the arrays and so you know that they aren't == or null or the wrong length. I'd rather see a "number of coords" parameter added to the method, get rid of the ==/null/length tests and only test the number of coords that were appropriate to the segment type. Technically you are testing entries in the arrays that weren't required to be equal by the PathIterator contract, but in practice it would be odd for the iterator to scribble random values into the unused entries (not disallowed, but odd). - What am I missing on the difference between the two test files? Can they be combined into a single test file? ...jim On 3/27/15 9:33 AM, Laurent Bourg?s wrote: > Jim, > > Here is a new Path2d patch: > http://cr.openjdk.java.net/~lbourges/path2D/Path2D.2/ > > Changes: > - Fix ArrayIndexOutOfBounds in ptCrossing / rectCrossing when coords > array is zero-sized (0 capacity constructor): bug present in jdk8 > - new tests: > Path2dEmpty to test this bug > Path2dCopyConstructor to test my changes on the copy constructor > following your instructions > > Maybe we should create a new bug and split this patch in 2 separated ones ? > > Laurent > > Le 7 mars 2015 02:43, "Jim Graham" > a ?crit : >> >> First, the test cases that I asked for were to verify that a path that was cloned was still operational. I see no tests that verify that the returned objects will still function, only tests that examine internal data structures for a metric that may not be appropriate in the future. >> >> On 3/6/15 11:06 AM, Phil Race wrote: >>> >>> So the test should go in the anonymous package and avoid accessing >>> internals. >>> It should be possible to use just public API to verify the arrays of a >>> shape >>> being cloned are trimmed . >> >> >> We should not be testing if the cloned arrays are trimmed. We don't care from a testing standpoint. It is an implementation detail of a performance feature and we should not write any test that says "Object A should do its work by doing X, Y, and Z". >> >> If we want to test performance then we should write a benchmark that tests how long it takes to do an operation. That will likely be a manual test, though. It should not be examining internals to take its measurements, though. Benchmarks tend to only use public APIs as they should be benchmarking operations that Java programs encounter. >> >> If we want to test if your fix will break something, then we need to test that. Currently your tests do not do that. We only need public APIs to do that. >> >> What I would like to see in the test: >> >> - Delete all of the existing tests in there. None of them are appropriate to our testing goals. >> >> - Write tests that create paths in various forms and run them through the following sub-tests: >> - each of the following should be tested on a fresh clone... >> - get a PathIterator and iterate it through until it is done >> (optional - compare to the expected segments that were in the original) >> - get a flattened PathIterator using "getPathIterator(flatness,)" and make sure it works >> (optional - compare to original path if the original was already flat) >> (but, also run it on a path with curves to make sure flattening engine didn't break) >> - add various kinds of segments to the cloned path >> - get the bounds of the cloned path >> - use the transform() method on the cloned path >> - call intersects(point), intersects(rect) and contains(rect) on a cloned path >> - call getCurrentPoint() on the cloned path >> >> - Perform each of the above tests on a (set of) clone(s) of the following paths: >> - each of the following executed on both a Float and a Double instance... >> - an empty path >> - a path with just a moveto >> - a path with a moveto+some lines >> - a path with a moveto+some curves >> >> The way I tend to write tests like this is to use cascading methods like: >> >> void testEqual(Path2D pathA, Path2D path2D pathB) { >> // Grab 2 path iterators and test for equality with float coords[] >> } >> >> void test(Path2D p2d, boolean isEmpty) { >> testEqual(new Path2D.Float(p2d), p2d); >> testEqual(new Path2D.Double(p2d), p2d); >> testEqual(new GeneralPath(p2d), p2d); >> >> testIterator(new Path2D.Float(p2d)); >> testIterator(new Path2D.Double(p2d)); >> testIterator((Path2D) p2d.clone()); >> >> testFlattening(... 3 clone variants ...); >> >> testAddMove(... 3 clone variants ...); >> // These should expect exception if empty >> testAddLine(... 3 clone variants ..., isEmpty); >> testAddQuad(... 3 clone variants ..., isEmpty); >> } >> >> interface PathFactory { >> Path2D makePath(); >> } >> >> void test(PathFactory pf) { >> test(pf.makePath(), true); >> test(addMove(pf.makePath()), false); >> test(addLines(pf.makePath()), false); >> test(addCurves(pf.makePath())), false); >> } >> >> @Test >> void testFloatPaths() { >> test(() -> new Path2D.Float()); >> } >> >> @Test >> void testDoublePaths() { >> test(() -> new Path2D.Double()); >> } >> >> @Test >> void testGeneralPath() { >> test(() -> new GeneralPath()); >> } >> >> ...jim > From james.graham at oracle.com Fri Mar 27 23:00:20 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 27 Mar 2015 16:00:20 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5515D3B0.8020907@oracle.com> References: <55021526.4030203@oracle.com> <550216A9.4050409@oracle.com> <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <55103BCC.4010704@oracle.com> <55132C27.1070405@oracle.com> <551490AA.4050103@oracle.com> <5515C5EE.9060001@oracle.com> <5515D3B0.8020907@oracle.com> Message-ID: <5515E104.5020300@oracle.com> On 3/27/15 3:03 PM, dalibor topic wrote: > My understanding is that Laurent has been working on an improved version > without the questionable code. I'll take a look at his latest webrev on > Monday morning my time. Yes, I just noticed that. The "hacks" that were removed boil down to very small one-line pieces of code (wrapped in a configurable framework to enable/disable them) so this would be easy enough to add back in later if testing shows that there is just no way to live without them. Personally, I'm hoping to have some time to brainstorm some ways to make an even bigger difference if I can get time to get this first pass reviewed and pushed. (Turning to the latest webrevs as we speak...) ...jim From james.graham at oracle.com Sat Mar 28 01:08:52 2015 From: james.graham at oracle.com (Jim Graham) Date: Fri, 27 Mar 2015 18:08:52 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> Message-ID: <5515FF24.1000503@oracle.com> Hi Laurent, Just some minor stuff this time... MarlinRenderingEngine.java: line 378 - my eye just caught this. "between the stroker and Dasher"? It looks like this is going between the stroking engine and the Renderer, no? MarlinUtils.java: the getCallerInfo stuff may eventually need to be in a doPrivileged context, but we don't need to deal with that now. Renderer.java: lines 46-50 - something looks off on the indentation there line 53 - I believe that getUnsafe() would need a doPrivileged as well lines 1385-1400 - lots of indentation issues ...jim On 3/27/15 10:17 AM, Laurent Bourg?s wrote: > Jim, > > Here is a new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.5/ > > Changes: > - Fixed all single line comments to use // (no javadoc) in all files > - removed Renderer.finalize () > - renamed FastMath to FloatMath that use optimized ceil / floor methods > for float values derived from StrictMath methods > > Joe, could you have a look to FloatMath ? I adapted the code based on > double values to float values + ceil returns directly an int. > > It seems a bit faster in my benchmarks but not as much as the previous > trick. > > Note: there is no more copyright issue. > > Cheers, > Laurent > From bourges.laurent at gmail.com Sun Mar 29 14:40:29 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Sun, 29 Mar 2015 16:40:29 +0200 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: <5515DBE7.9000207@oracle.com> References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> Message-ID: Dear Jim, Here is the new webrev: http://cr.openjdk.java.net/~lbourges/path2D/Path2D.3/ > Looks great. Thanks, I hope this patch is ready to go in. > - A couple of methods have "/**" even though the comment is just informational to the programmer and not representing an API. It looks like "/**" is the standard practice for the @test comment at the top of the class even though jtreg isn't spec'd to require it, but elsewhere it's just noise. I removed javadoc and superfluous comments. > - In general tests shouldn't print out a lot of noise (see "verbosity" in http://openjdk.java.net/jtreg/writetests.html). Ideally an automated test would produce no output if it is successful, but some of our automated tests do print out a short summary (mostly if they were stress-bashers). Some of them can be run in "verbose mode" to print out details in case an engineer is diagnosing a failure and wants to know what failed and why - I saw a few in the AffineTransform directory that had a static boolean verbose that was set if there was an argument handed to main() for instance. A verbose option can help when running the test in manual mode for debugging. Ok, I added the verbose flag as indicated. > - I'd add a testAddCubic() and testAddClose() to the tests. It looks like the "testAddQuad" method does add both types of curve, but the cubic curve is added after the quad so we don't get a case that adds a cubic to a freshly cloned path - which is the main state in question to be tested here. Done. > - equalsArray has some tests in it that don't make a lot of sense since you created the arrays and so you know that they aren't == or null or the wrong length. I'd rather see a "number of coords" parameter added to the method, get rid of the ==/null/length tests and only test the number of coords that were appropriate to the segment type. Technically you are testing entries in the arrays that weren't required to be equal by the PathIterator contract, but in practice it would be odd for the iterator to scribble random values into the unused entries (not disallowed, but odd). Fixed: I only check the correct subpart according to the segment type. > - What am I missing on the difference between the two test files? Can they be combined into a single test file? Big one: I figured out a bug in Path2d happening with 0 capacity: rectCrossing and ptCrossing fail. Finally I merged both tests into the same bugid that may be backported later to jdk8... Regards, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Sun Mar 29 14:45:41 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Sun, 29 Mar 2015 16:45:41 +0200 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5515FF24.1000503@oracle.com> References: <5508D14C.9040604@oracle.com> <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> Message-ID: Hi Jim, Here is the new webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin.6/ > Just some minor stuff this time... Great news ! > MarlinRenderingEngine.java: > > line 378 - my eye just caught this. "between the stroker and Dasher"? It looks like this is going between the stroking engine and the Renderer, no? Right, I fixed that comment. > MarlinUtils.java: > > the getCallerInfo stuff may eventually need to be in a doPrivileged context, but we don't need to deal with that now. No need like other jdk classes I looked at. > Renderer.java: > > lines 46-50 - something looks off on the indentation there Fixed. > line 53 - I believe that getUnsafe() would need a doPrivileged as well No need neither. > lines 1385-1400 - lots of indentation issues Done. I spent a lot of my spare time up to now and I expect it is now time to let marlin go into the graphics repository ... Cheers, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From dalibor.topic at oracle.com Mon Mar 30 12:23:26 2015 From: dalibor.topic at oracle.com (dalibor topic) Date: Mon, 30 Mar 2015 14:23:26 +0200 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> Message-ID: <5519403E.4000506@oracle.com> On 29.03.2015 16:45, Laurent Bourg?s wrote: > Hi Jim, > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/marlin/marlin.6/ Thanks, Laurent, my concerns on FloatMath have been resolved in this version. cheers, dalibor topic -- Dalibor Topic | Principal Product Manager Phone: +494089091214 | Mobile: +491737185961 ORACLE Deutschland B.V. & Co. KG | K?hneh?fe 5 | 22761 Hamburg ORACLE Deutschland B.V. & Co. KG Hauptverwaltung: Riesstr. 25, D-80992 M?nchen Registergericht: Amtsgericht M?nchen, HRA 95603 Gesch?ftsf?hrer: J?rgen Kunz Komplement?rin: ORACLE Deutschland Verwaltung B.V. Hertogswetering 163/167, 3543 AS Utrecht, Niederlande Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697 Gesch?ftsf?hrer: Alexander van der Ven, Astrid Kepper, Val Maher Oracle is committed to developing practices and products that help protect the environment From james.graham at oracle.com Mon Mar 30 18:34:39 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 30 Mar 2015 11:34:39 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5519403E.4000506@oracle.com> References: <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> <5519403E.4000506@oracle.com> Message-ID: <5519973F.4050701@oracle.com> Looks like it is good to go into the graphics-rasterizer repo, then. Thanks for the hard work on the cleanup Laurent! We'll need to get people testing this with their programs and start looking into any additional cleanup. Did you have a list of things you were planning on working on? ...jim On 3/30/15 5:23 AM, dalibor topic wrote: > > > On 29.03.2015 16:45, Laurent Bourg?s wrote: >> Hi Jim, >> >> Here is the new webrev: >> http://cr.openjdk.java.net/~lbourges/marlin/marlin.6/ > > Thanks, Laurent, my concerns on FloatMath have been resolved in this > version. > > cheers, > dalibor topic > From james.graham at oracle.com Mon Mar 30 19:18:19 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 30 Mar 2015 12:18:19 -0700 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> Message-ID: <5519A17B.5000807@oracle.com> Hi Laurent, Test program, line 490 - MOVETO has 2 coordinates associated with it. Test program, line 492 - perhaps we should throw an exception on default since it indicates a problem with the iterator Other than that, it looks good... On 3/29/15 7:40 AM, Laurent Bourg?s wrote: >> - What am I missing on the difference between the two test files? Can they be combined into a single test file? > > Big one: I figured out a bug in Path2d happening with 0 capacity: > rectCrossing and ptCrossing fail. I'm guessing that is why there are the new shortcut returns on the intersects/contains methods in Path2D? I see it now... ...jim From bourges.laurent at gmail.com Mon Mar 30 21:24:15 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Mon, 30 Mar 2015 23:24:15 +0200 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5519973F.4050701@oracle.com> References: <5509F30B.5060506@oracle.com> <5509F638.1070605@oracle.com> <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> <5519403E.4000506@oracle.com> <5519973F.4050701@oracle.com> Message-ID: Jim, 2015-03-30 20:34 GMT+02:00 Jim Graham : > Looks like it is good to go into the graphics-rasterizer repo, then. > > Thanks for the hard work on the cleanup Laurent! > Thanks for your reviews too, but I am really happy that marlin goes in (back). What kind of performance / regression tests do you plan to run (j2dBench) ? I hope testers and then users will enjoy its performance and its scalability ! We'll need to get people testing this with their programs and start looking > into any additional cleanup. Excellent. Could you give how to properly commit this patch as I never did it before (hg push) ? FYI I have run all my regression tests last night and they passed (same output image as pisces) : createStrokedShape, very large dashed shape (spiral with 800k segments), winding rule (even odd / non zero) and many complex affine transforms (tx, shear, rotate ...). Did you have a list of things you were planning on working on? > Here is my list of ideas to be discussed: First: - improve coordinate rounding ie ceil(x - 0.5) or better ? Maybe ceil/floor(float) intrinsics could help but let's discuss that in the core-libs mailing list... I have found another trick about float rounding: http://stereopsis.com/sree/fpu2006.html Or you may have other ideas as you did in your JavaFX renderer ? - overflow handling: support NaN or very large coordinates => use subpixel offsets vs boundaries to avoid overflow ... - set reference to weak by default and maybe tune a bit initial array capacities ... - tweak tile size and x/y subpixels: it seems using 256 subpixel on x-axis is free (no performance penalty) - do some improvements to array caches (dirty vs clean caches): after your comments, it appears few int[] arrays could use a dirty cache => no need to zero-fill but it needs a new dirty IntArrayCache - improve array cache access according to the array length: use some bit magic tweak to avoid testing array length (in loop). Last (R&D): Improve rendering quality - adaptive scanline step to refine nearly horizontal edges up to 1/256 precision depending on the edge slope ~ adaptive resampling. - gaussian 1/2 filtering ie 1.5x1.5 pixels (ie mixing 3 scanlines) ~ use resampling filter better than the box filter - gamma correction in alpha & color coverage blending (as demonstrated a while ago) at least on buffered image output (or quality color rendering ie slow but more accurate) Of course, I would appreciate having some help from other contributors on these tasks. Regards, Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Mon Mar 30 21:31:51 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Mon, 30 Mar 2015 23:31:51 +0200 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: <5519A17B.5000807@oracle.com> References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> <5519A17B.5000807@oracle.com> Message-ID: Jim, Test program, line 490 - MOVETO has 2 coordinates associated with it. > Well spotted: I did it too quickly, sorry. Test program, line 492 - perhaps we should throw an exception on default > since it indicates a problem with the iterator > Ok. > Other than that, it looks good... > Thanks, I will tomorrow prepare a new webrev. - What am I missing on the difference between the two test files? Can >>> they be combined into a single test file? >>> >> >> Big one: I figured out a bug in Path2d happening with 0 capacity: >> rectCrossing and ptCrossing fail. >> > > I'm guessing that is why there are the new shortcut returns on the > intersects/contains methods in Path2D? I see it now... > Exactly: that test fails on JDK 1.8.0_60. Should we submit another bug to JDK8 ? Or at least, ask to backport this bug once fixed. Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From james.graham at oracle.com Mon Mar 30 22:15:44 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 30 Mar 2015 15:15:44 -0700 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: References: <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> <5519A17B.5000807@oracle.com> Message-ID: <5519CB10.7050800@oracle.com> Hi Laurent, On 3/30/15 2:31 PM, Laurent Bourg?s wrote: > Big one: I figured out a bug in Path2d happening with 0 capacity: > rectCrossing and ptCrossing fail. > > > I'm guessing that is why there are the new shortcut returns on the > intersects/contains methods in Path2D? I see it now... > > > Exactly: that test fails on JDK 1.8.0_60. > > Should we submit another bug to JDK8 ? > Or at least, ask to backport this bug once fixed. It should be a clean backport so that makes sense to get it fixed there too... ...jim From james.graham at oracle.com Mon Mar 30 22:45:54 2015 From: james.graham at oracle.com (Jim Graham) Date: Mon, 30 Mar 2015 15:45:54 -0700 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: References: <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> <5519403E.4000506@oracle.com> <5519973F.4050701@oracle.com> Message-ID: <5519D222.4090104@oracle.com> Hi Laurent, I'll defer to Phil on any instructions for pushing to the repo in case I make a mistake and give bad advice. On 3/30/15 2:24 PM, Laurent Bourg?s wrote: > Here is my list of ideas to be discussed: > > First: > - improve coordinate rounding ie ceil(x - 0.5) or better ? > Maybe ceil/floor(float) intrinsics could help but let's discuss that in > the core-libs mailing list... > I have found another trick about float rounding: > http://stereopsis.com/sree/fpu2006.html > Or you may have other ideas as you did in your JavaFX renderer ? We might want to consider fixed point in the inner loops and then we can bypass the issue entirely. It would also mean that we'd only need one kind of array for storing segments. The main advantage to using FP is if you have a lot of FP math and a lot of integer stuff, then the FP math can sometimes hide in the gaps between the integer and logic instructions since they can execute in parallel. But, if you run across an expensive FP operation then fixed point might be faster anyway. ...jim From bourges.laurent at gmail.com Tue Mar 31 14:33:24 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Tue, 31 Mar 2015 16:33:24 +0200 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: References: <54E5CA9A.3090801@oracle.com> <54E5F25F.2020303@oracle.com> <1424361976.4253.41.camel@localhost> <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> <5519A17B.5000807@oracle.com> Message-ID: Jim, > Test program, line 490 - MOVETO has 2 coordinates associated with it. >> > > Well spotted: I did it too quickly, sorry. > > Test program, line 492 - perhaps we should throw an exception on default >> since it indicates a problem with the iterator >> > > Ok. > Here is the new webrev: http://cr.openjdk.java.net/~lbourges/path2D/Path2D.4/ I fixed the getLength(type) method: 482 static int getLength(int type) { 483 switch(type) { 484 case PathIterator.SEG_CUBICTO: 485 return 6; 486 case PathIterator.SEG_QUADTO: 487 return 4;* 488 case PathIterator.SEG_LINETO: 489 case PathIterator.SEG_MOVETO: 490 return 2; * 491 case PathIterator.SEG_CLOSE: 492 return 0;* 493 default: 494 throw new IllegalStateException("Invalid type: " + type); * 495 } 496 } If it is good, could you push this patch in both graphics-rasterizer and java2d repositories ? or do you prefer I push this patch into graphics-rasterizer and later it will be merged into java2d and possibly backported to JDK8 ? Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From bourges.laurent at gmail.com Tue Mar 31 17:44:27 2015 From: bourges.laurent at gmail.com (=?ISO-8859-1?Q?Laurent_Bourg=E8s?=) Date: Tue, 31 Mar 2015 19:44:27 +0200 Subject: [OpenJDK Rasterizer] Marlin renderer contribution for review In-Reply-To: <5519D222.4090104@oracle.com> References: <550B409F.30305@oracle.com> <550C7EFB.8020104@oracle.com> <551317CA.8070003@oracle.com> <551485D7.3090708@oracle.com> <5515FF24.1000503@oracle.com> <5519403E.4000506@oracle.com> <5519973F.4050701@oracle.com> <5519D222.4090104@oracle.com> Message-ID: Jim, >> - improve coordinate rounding ie ceil(x - 0.5) or better ? >> Maybe ceil/floor(float) intrinsics could help but let's discuss that in >> the core-libs mailing list... >> I have found another trick about float rounding: >> http://stereopsis.com/sree/fpu2006.html >> Or you may have other ideas as you did in your JavaFX renderer ? > > > We might want to consider fixed point in the inner loops and then we can bypass the issue entirely. It would also mean that we'd only need one kind of array for storing segments. The main advantage to using FP is if you have a lot of FP math and a lot of integer stuff, then the FP math can sometimes hide in the gaps between the integer and logic instructions since they can execute in parallel. But, if you run across an expensive FP operation then fixed point might be faster anyway. There are 2 issues: - dasher, stroker, transformer and curve culling provide coordinates as float values that finally call Renderer.addLine (floats) which converts it to the subpixel grid => rounding to subpixel centers is necessary => fast floor / ceil functions are useful and also in endRendering() to adjust the shape area to subpixel clip bounds. It is then possible to convert coordinates to fixed point 24.8 format => edges as integer values (like agg). 2. Scanline processing Currently crossings as integer subpixel x coord are incrementally computed from previous crossing + slope (float) and casted to integer => rounding issue at x position. In this hot loop, using fixed point maths could help (= DDA) but its error should be properly propagated. It may be faster if dda is properly and efficiently implemented. Do you know some good books or readings on this topic ? Laurent -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Tue Mar 31 21:51:59 2015 From: philip.race at oracle.com (Phil Race) Date: Tue, 31 Mar 2015 14:51:59 -0700 Subject: [OpenJDK Rasterizer] [OpenJDK 2D-Dev] Path2D optimizations In-Reply-To: References: <54E67B0A.8080508@oracle.com> <54E7846E.6000703@oracle.com> <54ECB5CD.8080602@oracle.com> <54ECB8B8.2010806@oracle.com> <54ED1FF2.3040209@oracle.com> <54F9FA9A.1060705@oracle.com> <54FA57B8.60201@oracle.com> <5515DBE7.9000207@oracle.com> <5519A17B.5000807@oracle.com> Message-ID: <551B16FF.5040109@oracle.com> Hi, This looks like something it would be good to push to the http://hg.openjdk.java.net/jdk9/client/jdk repo first. That can then be backported to 8u60. Then we'll sync it into graphics-rasterizer as part of a normal JDK forest sync. The only catch is you aren't a JDK 9 committer so you can prepare a patch, or even a changeset, but can't do the actual push although preparing this patch will help get you there. So Jim, or I, or someone else who is a committer can push it for you. -phil. On 3/31/2015 7:33 AM, Laurent Bourg?s wrote: > Jim, > > > Test program, line 490 - MOVETO has 2 coordinates associated > with it. > > > Well spotted: I did it too quickly, sorry. > > Test program, line 492 - perhaps we should throw an exception > on default since it indicates a problem with the iterator > > > Ok. > > > Here is the new webrev: > http://cr.openjdk.java.net/~lbourges/path2D/Path2D.4/ > > > I fixed the getLength(type) method: > 482 static int getLength(int type) { > 483 switch(type) { > 484 case PathIterator.SEG_CUBICTO: > 485 return 6; > 486 case PathIterator.SEG_QUADTO: > 487 return 4; > * 488 case PathIterator.SEG_LINETO: > 489 case PathIterator.SEG_MOVETO: > 490 return 2; > * 491 case PathIterator.SEG_CLOSE: > 492 return 0; > * 493 default: > 494 throw new IllegalStateException("Invalid type: " + type); > * 495 } > 496 } > > If it is good, could you push this patch in both graphics-rasterizer and java2d repositories ? > > or do you prefer I push this patch intographics-rasterizer and later it will be merged into java2d and possibly backported to JDK8 ? > > Laurent