Re: Proposal: Graphics2D rewrite branch

2005-12-12 Thread Mark Wielaard
On Sun, 2005-12-11 at 18:02 -0700, Tom Tromey wrote:
  Mark == Mark Wielaard [EMAIL PROTECTED] writes:
 Mark And you should not see it as private or may be broken at random
 Mark times. It should be as much as possible something that you work with a
 Mark team on (and if there is no team - yet - then there is nothing as bad as
 Mark having a completely broken build to get others to help out).
 
 Actually, I think it is reasonable to have a may be broken branch.
 In fact this is one of the main reasons for having a branch -- if you
 can keep stuff building and working, in many cases you won't need a
 branch at all.

Yeah, this may be a bit too strong. I meant it as a strong warning that
the branch cannot be a dumping ground for some code that isn't even
supposed to work. I'll reformulate that as:

@item A branch should not be seen as ``private'' or
``may be completely broken''. It should be as much as possible
something that you work on with a team (and if there is no team - yet
- then there is nothing as bad as having a completely broken build to
get others to help out). There can of course be occasional breakage, but
it should be planned and explained. And you can certainly have a rule
like ``please ask me before committing to this branch''.

Let me know if that still doesn't capture the spirit.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-11 Thread Mark Wielaard
Hi,

On Wed, 2005-12-07 at 12:05 -0700, Tom Tromey wrote:
  Tom == Thomas Fitzsimmons [EMAIL PROTECTED] writes:
 
 Tom I'd like to propose a new branch in the GNU Classpath CVS repository:
 Tom graphics2d-rewrite.  Patches to this branch should be sent to
 Tom classpath-patches@gnu.org with a subject line prefix of [g2d rewrite].
 Tom Commit policy is the same as GNU Classpath trunk.
 
 I say go for it.

Yes, if you think you need a branch for this rewrite please do (call it
something descriptive like cairo-graphics2d). I can see that if you want
to just phase out GdkGraphics and always use a new setup around
CairoGraphics2D that it might be nice to have a branch to not disturb
the work of others. But as said by some others if at all possible do the
work on the trunk. That does make it easier for others to follow/help
out.

 Furthermore I think we should adopt gcc-ish branch rules.  These are
 pretty reasonable and have proven to work well in practice.  Namely:
 
 * Any Classpath developer can make a branch for any purpose.
   All branches ought to be documented somewhere, so we can know which
   are live, who owns them, and when they die.  I don't know where we
   would put this though (suggestions?)

I'll create a page in the wiki
http://developer.classpath.org/mediation/ClasspathBranches

 * Some rules can be changed on a branch.  In particular the branch
   maintainer can change the review requirements, and the requirement
   of keeping things building, testing, etc, can also be lifted.
   (These should be documented along with the branch name and owner if
   they differ from the trunk.)

   Requirements for patch email to classpath-patches and for paperwork
   *cannot* be lifted.

And you should not see it as private or may be broken at random
times. It should be as much as possible something that you work with a
team on (and if there is no team - yet - then there is nothing as bad as
having a completely broken build to get others to help out).

 * Merges from the trunk to a branch are at the discretion of the
   branch maintainer.
 
 * A merge from a branch to the trunk is treated like any other patch.
   In particular, it has to go through review, it must satisfy all the
   trunk requirements (build, regression test, documentation).
 
   This rule prevents folks from working around trunk rules by making
   a branch :-)

These rules sound very good. I will add them to the Hacking Guide.

   There may be additional timing requirements on merging a branch to
   the trunk depending on the release schedule, etc.  For instance we
   may not want to do a branch merge just before a release.

Good point. I believe we do communicate very well on the mailing-lists.
So I don't think this will ever be a problem. But the release
master (which seems to be me atm, although we never officially created
that role) should have a veto in the last few weeks before a stable
release for any branch - trunk merges.

Cheers,

Mark


signature.asc
Description: This is a digitally signed message part
___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-11 Thread Tom Tromey
 Mark == Mark Wielaard [EMAIL PROTECTED] writes:

 Requirements for patch email to classpath-patches and for paperwork
 *cannot* be lifted.

Mark And you should not see it as private or may be broken at random
Mark times. It should be as much as possible something that you work with a
Mark team on (and if there is no team - yet - then there is nothing as bad as
Mark having a completely broken build to get others to help out).

Actually, I think it is reasonable to have a may be broken branch.
In fact this is one of the main reasons for having a branch -- if you
can keep stuff building and working, in many cases you won't need a
branch at all.

As for private, I think we should be careful.  Nothing in Classpath
can truly be private, the point is we're building something in common.
But it can be reasonable to have a rule like, 'please ask me before
committing to this branch'.

Tom


___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


[cp-patches] Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread Roman Kennke
Am Donnerstag, den 08.12.2005, 13:20 + schrieb theUser BL:
 On this branch I'd like to do several things:
 
 1) Make Graphics2D the default
 2) Remove Graphics
 
 What do you mean with this?
 Does this mean, that Graphics is based on Graphics2D and so for plain AWT or 
 Swing programs Cairo is needed?
 
 I don't hope so. I have the hope, that it goes in any time the other way 
 around, that Graphics2D is based on Graphics and created with the plain 
 AWT-Graphics.

This would indeed be cool to have, though I doubt this is what fitzsim
is going to do. As in other areas of Classpath it would be nice to have
a Java-only (easily portable) variant and a version that is backed by
some native lib.

What I don't understand, why do we need a new branch here? The
build-time and runtime-switches seem sufficient to me for now. And when
the impl is somewhat complete, these switches could be easily changed to
make Graphics2D the default.

/Roman


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: [cp-patches] Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread Anthony Green
On Thu, 2005-12-08 at 18:01 +0100, Roman Kennke wrote:
 What I don't understand, why do we need a new branch here? The
 build-time and runtime-switches seem sufficient to me for now. And when
 the impl is somewhat complete, these switches could be easily changed to
 make Graphics2D the default.

I was wondering the same thing.

We used to branch libgcj for advanced GUI hacking, but I think that was
because people were sensitive to breaking the GCC builds.   But now
we're just talking about the GNU Classpath repository, where people will
likely be more tolerant of breakage (not that it happened much in our
libgcj branch).

I guess I don't care much either way.  Just curious.

AG




___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: [cp-patches] Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread Thomas Fitzsimmons
On Thu, 2005-12-08 at 18:01 +0100, Roman Kennke wrote:
 Am Donnerstag, den 08.12.2005, 13:20 + schrieb theUser BL:
  On this branch I'd like to do several things:
  
  1) Make Graphics2D the default
  2) Remove Graphics
  
  What do you mean with this?
  Does this mean, that Graphics is based on Graphics2D and so for plain AWT 
  or 
  Swing programs Cairo is needed?
  
  I don't hope so. I have the hope, that it goes in any time the other way 
  around, that Graphics2D is based on Graphics and created with the plain 
  AWT-Graphics.
 
 This would indeed be cool to have, though I doubt this is what fitzsim
 is going to do. As in other areas of Classpath it would be nice to have
 a Java-only (easily portable) variant and a version that is backed by
 some native lib.
 
 What I don't understand, why do we need a new branch here? The
 build-time and runtime-switches seem sufficient to me for now. And when
 the impl is somewhat complete, these switches could be easily changed to
 make Graphics2D the default.

I just don't want to disrupt the progress of Swing and I don't want to
do all the work on my local machine either.  A branch seemed like a good
trade-off.  The changes I'll be making will likely be pretty invasive.
I'm not sure at this point that --disable-gtk-cairo will be enough
insulation so I thought a branch was safer.  It would also allow me to
make bigger/riskier changes that may not even build after a check-in (a
freedom that I like to have when doing rewrites like this).

All that said, I could try just working on mainline if people would
rather that and could put up with some transient breakage.

Tom




___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread theUser BL

On this branch I'd like to do several things:

1) Make Graphics2D the default
2) Remove Graphics


What do you mean with this?
Does this mean, that Graphics is based on Graphics2D and so for plain AWT or 
Swing programs Cairo is needed?


I don't hope so. I have the hope, that it goes in any time the other way 
around, that Graphics2D is based on Graphics and created with the plain 
AWT-Graphics.
So it would also be easier to port free Javas to Windows and MacOSX. 
Something like Sun does with its implementation. So that on Windows and 
MacOSX only the bindings to GTK+ are ported to the Windows-API and the 
Aqua-API.
But if Cairo is needed, it seems, that you also need later on Windows and 
MacOSX Cairo. And that is something what I don't like.


Greatings
theuserbl




___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread Thomas Fitzsimmons
On Thu, 2005-12-08 at 13:20 +, theUser BL wrote:
 On this branch I'd like to do several things:
 
 1) Make Graphics2D the default
 2) Remove Graphics
 
 What do you mean with this?

I meant remove GdkGraphics.

 Does this mean, that Graphics is based on Graphics2D and so for plain AWT or 
 Swing programs Cairo is needed?
 
 I don't hope so. I have the hope, that it goes in any time the other way 
 around, that Graphics2D is based on Graphics and created with the plain 
 AWT-Graphics.

Yes, inheritance in java.awt will work the same way, with Graphics2D
inheriting from Graphics.  It's just that we'll only have a peer that
wraps Cairo and not a peer that wraps GDK drawing primitives.  So the
inheritance graph will be:

Graphics - Graphics2D - CairoGraphics2D - ...

with the ... representing specialized graphics objects for different
surfaces.

 So it would also be easier to port free Javas to Windows and MacOSX. 
 Something like Sun does with its implementation. So that on Windows and 
 MacOSX only the bindings to GTK+ are ported to the Windows-API and the 
 Aqua-API.
 But if Cairo is needed, it seems, that you also need later on Windows and 
 MacOSX Cairo. And that is something what I don't like.

This rewrite will make the GTK AWT peers depend on GTK-2.8 which in turn
depends on Cairo so avoiding a Cairo dependency is impossible if we want
to move to newer GTK releases.

Tom




___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-08 Thread Clemens Eisserer
Hello,

Great that there is a rewrite of Graphics2D *yipie*
I would be interrested to hear some thoughts about a single threaded
rendering pipeline as Sun's OpenGL pipeline uses.
Is Cairo threadsafe itself or does Classpath take care?

lg Clemens


___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-07 Thread Tom Tromey
 Tom == Thomas Fitzsimmons [EMAIL PROTECTED] writes:

Tom I'd like to propose a new branch in the GNU Classpath CVS repository:
Tom graphics2d-rewrite.  Patches to this branch should be sent to
Tom classpath-patches@gnu.org with a subject line prefix of [g2d rewrite].
Tom Commit policy is the same as GNU Classpath trunk.

I say go for it.

Furthermore I think we should adopt gcc-ish branch rules.  These are
pretty reasonable and have proven to work well in practice.  Namely:

* Any Classpath developer can make a branch for any purpose.
  All branches ought to be documented somewhere, so we can know which
  are live, who owns them, and when they die.  I don't know where we
  would put this though (suggestions?)

* Some rules can be changed on a branch.  In particular the branch
  maintainer can change the review requirements, and the requirement
  of keeping things building, testing, etc, can also be lifted.
  (These should be documented along with the branch name and owner if
  they differ from the trunk.)

  Requirements for patch email to classpath-patches and for paperwork
  *cannot* be lifted.

* Merges from the trunk to a branch are at the discretion of the
  branch maintainer.

* A merge from a branch to the trunk is treated like any other patch.
  In particular, it has to go through review, it must satisfy all the
  trunk requirements (build, regression test, documentation).

  This rule prevents folks from working around trunk rules by making
  a branch :-)

  There may be additional timing requirements on merging a branch to
  the trunk depending on the release schedule, etc.  For instance we
  may not want to do a branch merge just before a release.

Tom


___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-07 Thread David Gilbert

Thomas Fitzsimmons wrote:


Hi,

I'd like to propose a new branch in the GNU Classpath CVS repository:
graphics2d-rewrite.  Patches to this branch should be sent to
classpath-patches@gnu.org with a subject line prefix of [g2d rewrite].
Commit policy is the same as GNU Classpath trunk.

On this branch I'd like to do several things:

1) Make Graphics2D the default
2) Remove Graphics
3) Split Graphics2D according to
http://developer.classpath.org/mediation/ClasspathGraphicsImagesText

Once these items are done and tested to work as well or better than the
current Graphics/Graphics2D implementations, I'll merge the branch into
trunk and continue development there.

Any objections?

Tom
 

I'm looking forward to seeing this work proceed.  I can certainly help 
with testing, but I'm not likely to be much help with the actual 
implementation (I know so little about the non-Java bits of GNU Classpath).


Regarding 3) and BufferedImages, I think I recall Sven saying he was 
mistaken about the DataBuffer classes.  As far as I could tell (from 
writing some Mauve tests for them) they use real Java arrays.  And that 
makes using Cairo for BufferedImages more difficult, doesn't it?


Regards,

Dave


___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: Proposal: Graphics2D rewrite branch

2005-12-07 Thread Per Bothner

David Gilbert wrote:
Regarding 3) and BufferedImages, I think I recall Sven saying he was 
mistaken about the DataBuffer classes.  As far as I could tell (from 
writing some Mauve tests for them) they use real Java arrays.


It should be possible to have a hybrid implementation that can use
native buffers or Java arrays.  If constructed using (say)
  DataBufferInt(int size, int numBanks)
then it can allocated a native buffer.
The complicatation is getData and getBankData.  If using native buffers,
these would have to allocate new buffers, copy the data of of the
native buffers, release the native buffers, and switch to using the
Java arrays for future references.

This isn't too bad if you're using CNI and a non-copying gc, since
you can use a native pointer in all cases, and just have the
natve pointer point into the Java arrray in the Java case.
If using a copying GC, you can use a delta.  For simplicity, I
assume a single bank:

DataBufferInt {
  int[] array;
  native size_t offset;

  int getElem(int i) { return *(int*)((char*) array + offset + 4 * i); }

  DataBufferInt(int size) {
void* buf = allocate_native_buffer(size);
array = null;
offset = buf;
  }

  DataBufferInt(int[] arr) {
 array = arr;
 offset = SIZE_OF_ARRAY_HEADER;
  }

  int[] getData () {
int[] ar = new int[size];
copy_form_native_buffer_into(ar);
array = ar;
   offset = SIZE_OF_ARRAY_HEADER;
  }
}

This works even if the array is moved by the gc.
--
--Per Bothner
[EMAIL PROTECTED]   http://per.bothner.com/


___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath