RE: NotYetImplementedError [Was: NYIException]

2003-09-29 Thread Jeroen Frijters
Etienne Gagnon wrote:
 So, my proposal is:
 (1) Throw NotYetImplementedError extends Error (or LinkageError?)
 (2) Document clearly that users of Classpath SHOULD NOT catch this 
 exception, but use 
 System.getProperty(gnu.classpath.version) instead.
 (3) Document, in the VM interface, that such property should 
 be set, of course.

I fully support this proposal and I like the idea of extending
LinkageError.

Regards,
Jeroen


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NotYetImplementedError [Was: NYIException]

2003-09-29 Thread Etienne Gagnon
Stephen,

Do as you like.  I do not want to fight on this.  I think that my
proposal is the best approach to (1) handle missing functionality in a
way that will make life easier to users trying to run Java
applications on classpath-based free vms amd (2) mimick the
LinkageError usually expected in case of *unexpected* missing
functionality (in contrast with *expected* missing functionality,
indicated by UnsupportedOperationExcaprion).  You seem to hold on your
vision very strongly, and I am not ready to spend the effort to
convince you.

Etienne


On Mon, Sep 29, 2003 at 02:32:49PM +1000, Stephen Crawley wrote:
  Stephen Crawley wrote:
   If no user is allowed to catch this new error/exception, why are we going
   to the bother of creating it in the first place??
  
  So that, when a user runs his application on top of a Free jvm using 
  Classpath, he can identify clearly missing functionality (at run time, 
  at least).
 
 This is equally satisfied by throwing UnsupportedOperationException
 with a stereotypical message; e.g.
 
   throw new UnsupportedOperationException(not implemented yet - details)
 
   If the only reason for creating the new exception is as a documentation 
   aid, then a better approach would be to throw UnsupportedOperationException
   with a stereotypical error message and or stereotypical javadoc description.
  
  No, because UnsupportedOperationException carries different semantics: 
  it implies that the application was expecting some operation could be 
  missing (as is the case with collections).
 
 I cannot see for the life of me where you are got this different
 semantics idea from.  The documentation for the exception defines its
 semantics as:
 
   Thrown to indicate that the requested operation is not supported.
 
 That is it.  
 
 Our usage would be entirely consistent with this.  An unimplemented
 operation is (by definition) not supported because it is not implemented
 yet!!  Even the Collections Framework javadocs say (typically) that the
 exception is thrown because (e.g.) xyz is not supported by this
 collection without necessarily saying why.
 
  See in my other message the example with JDK versions leading to 
  LinkageError (not LinkageException extends UnsupportedOperationException).
 
 What is happening here is that you are calling a method that does not
 exist in the older JDK. 
 
 If we want this effect, we should NOT provide skeleton implementations
 for missing methods at all.  This would give a compilation error when
 the application is compiled against Classpath, and a LinkageError if the
 end user ran it the Classpath platform.
 
 (Not that I think this would be a good idea ... )
 
   I think it is unreasonable to expect application developers to know
   which features where unimplemented / implemented in which versions
   of Classpath.  IMO, this far more awkward than catching an exception.
  
  Not at all.  A normal Java programmer should expect nothing.  He should 
  simply try to run his application, and if a NYIE happens, he should try 
  to either:
  (1) implement the missing functionality (and contribute to classpath)
  (2) try to circumvent the missing functionality by using equivalent, but 
  implemented, classes/methods.
 
 Huh?  A moment ago you were suggesting that the application programmer
 should use properties containing Classpath version numbers and god-like 
 awareness of which versions of Classpath implemented which methods.
 You were saying that this was easier to do than catching a NYIE.  My
 comment was addressing this.
 
 Now you seem to be saying (?) that the application programmer shouldn't
 be writing his application to be aware of missing functionality at all??
 Fine ... but then you've taken my remarks out of context. 
 
 -- Steve
 
 
 
 ___
 Classpath mailing list
 [EMAIL PROTECTED]
 http://mail.gnu.org/mailman/listinfo/classpath

-- 
Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NotYetImplementedError [Was: NYIException]

2003-09-29 Thread Dalibor Topic
Etienne Gagnon wrote:
Stephen,

Do as you like.  I do not want to fight on this.  I think that my
proposal is the best approach to (1) handle missing functionality in a
way that will make life easier to users trying to run Java
applications on classpath-based free vms amd (2) mimick the
LinkageError usually expected in case of *unexpected* missing
functionality (in contrast with *expected* missing functionality,
indicated by UnsupportedOperationExcaprion).  You seem to hold on your
vision very strongly, and I am not ready to spend the effort to
convince you.
I'd agree with Etienne, I think his proposal is the best so far, but if 
Stephen and Per don't like it at all, let it be 
UnsupportedOperationException.

I'd like to keep the 'please contribute to Classpath if this missing 
functionality' message though, so let's mandate using

throw new UnsupportedOperationException(not yet implemented:  + reason 
+ gnu.classpath.Recruiting.CONTRIBUTE_PLEASE_MESSAGE);

if that's o.k. with everyone.

cheers,
dalibor topic


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NotYetImplementedError [Was: NYIException]

2003-09-29 Thread Etienne Gagnon
Just a little note:

On Mon, Sep 29, 2003 at 02:32:49PM +1000, Stephen Crawley wrote:
 I cannot see for the life of me where you are got this different
 semantics idea from.  The documentation for the exception defines its
 semantics as:

The semantic difference comes from the inheritance hierarchy.
java.lang.Exception is documented as:

The class Exception and its subclasses are a form of Throwable that
indicates conditions that a reasonable application might want to
catch.

A reasonable application should not expect a standard method not to
be yet implemented, IMHO.

Etienne

-- 
Etienne M. Gagnon, Ph.D. http://www.info.uqam.ca/~egagnon/
SableVM:   http://www.sablevm.org/
SableCC:   http://www.sablecc.org/


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Ricky Clarkson
Hi,

I believe the functionality of @unimplemented would be adequately
replaced by @since and throw new UnsupportedOperationException.

To find out what methods of, e.g., JDK1.2 are unsupported, you can
simply search for methods that have @since 1.2 and throw
UnsupportedOperationException from their body.

I don't see how @unimplemented or NotYetImplementedException would give
extra information.

The reason for not implementing the method could be explained in normal
Javadoc comments, and this avoids generated documentation missing out
this information, as would happen if one ran Sun Javadoc over a method
with an @unimplemented tag, as far as I know.

Regards,

Ricky.

On Fri, Sep 26, 2003 at 02:38:30PM +0200, Sascha Brawer wrote:
 What would you say about defining a special Javadoc tag, such as the
 following?
 
 /**
  * @unimplemented 1.4 Here comes some explanation.
  */
 [class|method|field]
 
 It would not be too difficult to write a special doclet for the purpose
 of generating a document that summarizes the implementation status. Plus,
 it would be possible to document what exactly is not implemented, the
 reason, etc. The explanation text would also go into the generated
 documentation files.
 
 -- Sascha
 
 Sascha Brawer, [EMAIL PROTECTED], http://www.dandelis.ch/people/brawer/ 
 
 
 
 
 ___
 Classpath mailing list
 [EMAIL PROTECTED]
 http://mail.gnu.org/mailman/listinfo/classpath


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: [really patch] Re: HashMap putAll/putAllInternal bug

2003-09-29 Thread Stuart Ballard
Bryce McKinlay wrote:
size() is used here because, obviously, it is generally more efficient 
to call it once rather than calling hasNext() many times. I believe that 
the current implementation is within spec according to the collections 
documentation. If your collections are returning an inaccurate size() 
then I'd argue they are not valid implementations of Map.
Sure: as I noted, my argument is that Sun's implementation can handle 
such invalid implementations of Map, so people might rely on it, as I did.

I could fix up my implementation of Map to guarantee that size() is 
correct, but that would make this operation much *slower* than using 
hasNext() would. To get an accurate size() out of my data structure 
would require iterating across it fully every time size() is called.

Furthermore, I'd argue that the very existence of a hasNext() method 
suggests that Sun didn't intend people to make this optimization. If 
they expected that calling size() and maintaining your own counter would 
always be more efficient, why didn't they just leave hasNext() out and 
recommend coding that way?

Note too that our current implementations leave the collections in an 
invalid state if next() causes a ConcurrentModificationException (or 
other RuntimeException) part way through, because they set the size 
variable in advance without waiting to ensure that all those elements 
could in fact be added. It would be possible to fix this problem without 
using hasNext(), and even if my patch isn't accepted I still think we 
should at least fix that.

Of course, if there are real applications out there that rely on the way 
Sun implements it, then we may have to change to using hasNext(). But we 
should consider this carefully. If we must change it, then the 
addAll/putAll implementations should change throughout the collections 
classes for consistency - not just HashMap/Hashtable. As you noticed, in 
some cases this could make things significantly less efficient.
Firstly, there is at least one real application that relies on this :) 
If I could see a viable workaround, I'd modify nrdo to provide accurate 
size() information so that Classpath wouldn't need to change (although I 
still think that it's important to be bug-for-bug compatible with Sun's 
implementation, so I'd still be in favor of this change even if I wasn't 
personally relying on it). But in the case of my particular data 
structure it's impossible to do that without slowing everything down, 
and that isn't acceptable for my application.

I think it's perfectly possible to implement all our collections to give 
the correct behavior without making things less efficient in the case 
where size() is correct - at least, the only difference should be the 
cost of repeated calls to hasNext() versus a single call to size(), and 
the cost of hasNext() should *always* be small enough that that 
difference falls into the realm of micro-optimization.

The example I gave was ArrayList: the optimization is to pre-allocate 
space for size() worth of elements using ensureCapacity(), and then copy 
elements directly into the backing array. It would be perfectly possible 
to implement it something like this, which optimizes for when size() is 
correct but is robust if it's not:

int csize = c.size();
ensureCapacity(size() + csize);
for (Iterator i = c.iterator(); csize--  0  i.hasNext(); ) {
  // put i.next() directly into the array and increment size,
  // exactly as it's done now.
}
while (i.hasNext()) {
  add(i.next()); // use the standard add method which will
 // grow the array further if needed.
}
In this version, the for() loop checks i.hasNext() as well as csize so 
that it's robust against the actual size being smaller than csize. The 
while() loop uses a slower path for extra elements in case the actual 
size is larger than csize(). And the only additional cost of this 
algorithm is extra calls to hasNext(), which should always be cheap.

I don't think there are any ways where size() could be used as an 
optimization that aren't susceptible to a similar approach - optimize 
for the case where size() is correct, but still be prepared in case it's 
not.

Stuart.

--
Stuart Ballard, Senior Web Developer
FASTNET - Web Solutions
(215) 283-2300, ext. 126
www.fast.net


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


NYIException

2003-09-29 Thread Andy Walter
Hi all,

a surprising lot of emails have been sent about that matter. It seems that we 
all agree on that throwing *something* would be better than what we have 
currently. The attached class is a summary of what as far I understood from 
the emails most people here wanted.

Personally, I had preferred some standardised information about the JDK 
version that demands for the missing feature, but I didn't get the impression 
that many of you support that idea.

Is there anybody who can't live with the attached proposal?


Cheers,

Andy.

-- 
aicas GmbH  
Haid-und-Neu-Straße 18 * 76131 Karlsruhe
http://www.aicas.com
Tel: +49-721-663 968-24; Fax: +49-721-663 968-94
/* NotYetImplementedError.java -- Error signaling not yet implemented methods
   Copyright (C) 2003  Free Software Foundation

This file is part of GNU Classpath.

GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA.

Linking this library statically or dynamically with other modules is
making a combined work based on this library.  Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module.  An independent module is a module which is not derived from
or based on this library.  If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so.  If you do not wish to do so, delete this
exception statement from your version. */
package gnu.classpath;

/**
 * This Exception is used to signal that a particular method has not
 * been implemented yet. The use of a specific exception throught the
 * complete source code will help to localize and implement missing
 * functionality.p
 * Usage:
 * codepre
 *  public notYetImplementeMethod()
 *{
 *throw new gnu.classpath.NotYetImplementedError();
 *}
 *  /pre/code
 *
 */
public class NotYetImplementedError extends Error
{
	private static final String NYI =
		  This method has not yet been implemented in GNU Classpath.\n\n
		+  The GNU Classpath project would appreciate receiving
		+  an implementation for it.\n
		+  If you intend to contribute, please take a look at
		+  http://www.gnu.org/software/classpath/docs/hacking.html and
		+  get in touch with other developers on [EMAIL PROTECTED];

  /**
   * Create new NotYetImplementedError.
   */
  public NotYetImplementedError()
{
	super(NYI);
}

  /**
   * Create new NotYetImplementedError with detailed message.
   * @param message more detailed description.
   */
  public NotYetImplementedError(String message)
{
	super(message + \n + NYI);
}
}

___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


RE: NYIException

2003-09-29 Thread Jeroen Frijters
Andrew Haley wrote:
 Andy Walter writes:
   a surprising lot of emails have been sent about that 
 matter. It seems that we 
   all agree on that throwing *something* would be better 
 than what we have 
   currently. The attached class is a summary of what as far 
 I understood from 
   the emails most people here wanted.
 
 I'm utterly baffled why you think that the attached class is
 appropriate.  There was a disagreement as to whether a subclass of
 Error or of Exception is required.  Last I heard, the promoters of
 Error threw in the towel.  Howver, your class says Exception in the
 comments but Error in the code.

I'm certainly not throwing in the towel ;-) I think it should be an
error, but I can live with NYIException being an Exception, what I
cannot accept is (ab)using UnsupportedOperationException.

Regards,
Jeroen


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


RE: NYIException

2003-09-29 Thread Andrew Haley
Jeroen Frijters writes:
  Andrew Haley wrote:
   Andy Walter writes:
 a surprising lot of emails have been sent about that 
   matter. It seems that we 
 all agree on that throwing *something* would be better 
   than what we have 
 currently. The attached class is a summary of what as far 
   I understood from 
 the emails most people here wanted.
   
   I'm utterly baffled why you think that the attached class is
   appropriate.  There was a disagreement as to whether a subclass of
   Error or of Exception is required.  Last I heard, the promoters of
   Error threw in the towel.  Howver, your class says Exception in the
   comments but Error in the code.
  
  I'm certainly not throwing in the towel ;-) I think it should be an
  error, but I can live with NYIException being an Exception, what I
  cannot accept is (ab)using UnsupportedOperationException.

Out of interest (and please forgive me if this has already been
discussed at length) why have dummy methods at all?  Wouldn't it be
better to have a compile time failure for unimplemented methods?

Andrew.



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


RE: NYIException

2003-09-29 Thread Jeroen Frijters
Andrew Haley wrote:
 Out of interest (and please forgive me if this has already been
 discussed at length) why have dummy methods at all?  Wouldn't it be
 better to have a compile time failure for unimplemented methods?

I think so, but sometimes (e.g. when implementing interfaces or
extending abstract classes), you're required to provide the methods, but
I agree that not having the unimplemented method is the cleanest
solution.

Regards,
Jeroen


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Stuart Ballard
Andrew Haley wrote:
Out of interest (and please forgive me if this has already been
discussed at length) why have dummy methods at all?  Wouldn't it be
better to have a compile time failure for unimplemented methods?
One reason is that it makes it possible to compile code against 
Classpath that includes references to methods that Classpath hasn't yet 
implemented. This code might run just fine for the purpose you need it, 
because the unimplemented calls are in a codepath that you aren't taking.

Another reason to have NYIError[1] is that in some cases a method may be 
implemented for some cases and not others, depending on its arguments. 
For example, a method might not have the correct behavior implemented as 
fallback for when one of its arguments is null, or might only work for 
particular subclasses of the class it's supposed to take as an argument. 
In that case, throwing the Error can be done conditionally, which is 
something that couldn't be replicated at compile time.

Stuart.

[1] yes, I vote for Error, FWIW, but I could live with anything that's a 
distinct class - ie not 'new RuntimeException(NYI)' - wherever it's 
placed in the Exception hierarchy.

--
Stuart Ballard, Senior Web Developer
FASTNET - Web Solutions
(215) 283-2300, ext. 126
www.fast.net


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Dalibor Topic
Jeroen Frijters wrote:
Andrew Haley wrote:

Out of interest (and please forgive me if this has already been
discussed at length) why have dummy methods at all?  Wouldn't it be
better to have a compile time failure for unimplemented methods?


I think so, but sometimes (e.g. when implementing interfaces or
extending abstract classes), you're required to provide the methods, but
I agree that not having the unimplemented method is the cleanest
solution.
On the other hand, you can start writing the docs  'prototypes' for a 
class without having to fully implement everything. Depends on the point 
of view, I guess.

And of course, there is the 'you can at least compile it using 
classpath, even if you can't run it' aspect, that plays a big role for 
debian and similar 'free software buildable by free tools' efforts, afaik.

cheers,
dalibor topic


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Andy Walter
Hi Andrew,

On Monday 29 September 2003 19:40, Andrew Haley wrote:
 Throwing an appropriate message will help, of course, but one of the
 advantages of gcj is that you can pre-link and you know you won't get
 runtime linkage errors -- the linker has resolved everything.  Having
 dummy implementations loses this gcj advantage.

Dummy implementations that do nothing are a really bad thing, I agree. But a 
dummy implementation that either returns with the correct result or throws a 
NYIException makes it clear to the user what had happened.

Currently, we have those dummy methods anyway - and can't get rid of them, 
because some methods are partly, but not completely, implemented. With a new 
Exception class, the gcj linker could stop with an error message when such a 
method is instantiated and thrown. If we abuse any existing JDK Exeption for 
it, this would not be possible.


Cheers,

Andy.

-- 
aicas GmbH  
Haid-und-Neu-Straße 18 * 76131 Karlsruhe
http://www.aicas.com
Tel: +49-721-663 968-24; Fax: +49-721-663 968-94



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


RE: NYIException

2003-09-29 Thread Andrew Haley
Emile Snyder writes:
  On Mon, 2003-09-29 at 09:25, Andrew Haley wrote:
   Out of interest (and please forgive me if this has already been
   discussed at length) why have dummy methods at all?  Wouldn't it be
   better to have a compile time failure for unimplemented methods?
  
  If you go this route what happens when code which was compiled elsewhere
  is run using the classpath libraries?

I guess you'd get a LinkageError?

Andrew.


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Andrew Haley
Andy Walter writes:
  Hi Andrew,
  
  On Monday 29 September 2003 19:40, Andrew Haley wrote:
   Throwing an appropriate message will help, of course, but one of
   the advantages of gcj is that you can pre-link and you know you
   won't get runtime linkage errors -- the linker has resolved
   everything.  Having dummy implementations loses this gcj
   advantage.
  
  Dummy implementations that do nothing are a really bad thing, I
  agree. But a dummy implementation that either returns with the
  correct result or throws a NYIException makes it clear to the user
  what had happened.
  
  Currently, we have those dummy methods anyway - and can't get rid
  of them, because some methods are partly, but not completely,
  implemented. With a new Exception class, the gcj linker could stop
  with an error message when such a method is instantiated and
  thrown.

Err, no.  Linking happens at link time; throwing happens at runtime!
But this gives me an idea.  I can parse the class at compile time, and
if I see any references to a method that throws such an exception I
can warn the user about it.  That would be *much* better.  It wouldn't
be complete because there might be partly implemented subclasses that
aren't directly referenced, but it would be better than nothing.

  If we abuse any existing JDK Exeption for it, this would not be
  possible.

True.

Andrew.


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


RE: NYIException

2003-09-29 Thread Emile Snyder
On Mon, 2003-09-29 at 09:25, Andrew Haley wrote:
 Out of interest (and please forgive me if this has already been
 discussed at length) why have dummy methods at all?  Wouldn't it be
 better to have a compile time failure for unimplemented methods?

If you go this route what happens when code which was compiled elsewhere
is run using the classpath libraries?

lurkingly yours,
-emile

 Andrew.
 
 
 
 ___
 Classpath mailing list
 [EMAIL PROTECTED]
 http://mail.gnu.org/mailman/listinfo/classpath
 



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Per Bothner
Jeroen Frijters wrote:

I'm certainly not throwing in the towel ;-) I think it should be an
error, but I can live with NYIException being an Exception, what I
cannot accept is (ab)using UnsupportedOperationException.
I still don't see any real problem with UnsupportedOperationException,
but I don't care that much.
--
--Per Bothner
[EMAIL PROTECTED]   http://per.bothner.com/


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


About stub methods

2003-09-29 Thread Mark Wielaard
Hi,

Please Stop arguing about how the framework for handling unimplemented
classes and stub methods should work. I know it is the ideal What color
should the Bike Shed have discussion (*), but stub methods are a bad
thing to have and should just be treated as grave bugs.

Having those method because they allow people to compile against GNU
Classpath but not run against it really doesn't make much sense. Let
people fix either their code or help us implement the missing
functionality.

If you find such a method in the source please just remove it and file a
bug report about it (possibly with as bug message the partial
implementation). Or better just implement it! If there really is a
strong reason to have that particular method as a stub method then we
should do that in the simplest possible way that makes it easy to
quickly find those methods in the source. That means that it should be
some standard string that people can easily grep for all on one line.

Note that as said above making things compile, but not run with GNU
Classpath is not a strong reason. So you should really be able to point
to a free software program written in java that would just need one
little stub method to be completely usable with GNU Classpath to justify
having something as a stub method.

The first person to actually volunteer to go through more then a handful
of classes to remove (silent) stub methods gets to decide what the
actual Not Implemented line says (and whether it is an Exception or an
Error, an existing class or a new class). Who actually want to do this
work?

And if whole classes or packages are stubby then we are better off just
removing them or at least add them to the lib/standard.omit file so they
won't appear in our release till we can offer real functionality for
them.

Thanks,

Mark

(*)
http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/misc.html#BIKESHED-PAINTING


signature.asc
Description: This is a digitally signed message part
___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


About stub methods

2003-09-29 Thread Andrew Haley
Mark Wielaard writes:

  stub methods are a bad thing to have and should just be treated as
  grave bugs.

  Having those method because they allow people to compile against GNU
  Classpath but not run against it really doesn't make much sense. Let
  people fix either their code or help us implement the missing
  functionality.
  
  If you find such a method in the source please just remove it and file a
  bug report about it (possibly with as bug message the partial
  implementation).

Hey, hey.  I could not agree more.  I thought this would be a hard
thing for me to push, but it looks like I'd be pushing at an open
door.

No more stub methods!  A pox on them!

Andrew.


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: About stub methods

2003-09-29 Thread Michael Koch
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Montag, 29. September 2003 22:43 schrieb Andrew Haley:
 Mark Wielaard writes:
   stub methods are a bad thing to have and should just be treated
   as grave bugs.
  
   Having those method because they allow people to compile against
   GNU Classpath but not run against it really doesn't make much
   sense. Let people fix either their code or help us implement the
   missing functionality.
  
   If you find such a method in the source please just remove it
   and file a bug report about it (possibly with as bug message the
   partial implementation).

 Hey, hey.  I could not agree more.  I thought this would be a hard
 thing for me to push, but it looks like I'd be pushing at an open
 door.

 No more stub methods!  A pox on them!

Wow, I would have never thought that somebody could share my thoughts. 
In my beginnings of classpath and libgcj hacking I was a big fan of 
stubbed methods. But now I see that much methods can be stubbed 
easily and tools like japitools have a hard time to tell if the 
method is implemented or just a stub.

I vote for no more stubs too.


Michael
- -- 
Homepage: http://www.worldforge.org/
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/eKXVWSOgCCdjSDsRAkCJAJ9OXs27uAjFuiHfe+ojSETDd+WwPwCdEIeI
muRpbxM4xz5UKVMjOZE5Cg8=
=XRyM
-END PGP SIGNATURE-



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Stephen Crawley
 Jeroen Frijters wrote:
 
  I'm certainly not throwing in the towel ;-) I think it should be an
  error, but I can live with NYIException being an Exception, what I
  cannot accept is (ab)using UnsupportedOperationException.
 
 I still don't see any real problem with UnsupportedOperationException,
 but I don't care that much.

I also can't see anything wrong with using UnsupportedOperationException.
Could someone who thinks this would be abuse, please explain WHY they
think so ... preferably with supporting evidence from the Sun javadocs.

-- Steve



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: NYIException

2003-09-29 Thread Stephen Crawley
  Jeroen Frijters wrote:
  
   I'm certainly not throwing in the towel ;-) I think it should be an
   error, but I can live with NYIException being an Exception, what I
   cannot accept is (ab)using UnsupportedOperationException.
  
  I still don't see any real problem with UnsupportedOperationException,
  but I don't care that much.
 
 I also can't see anything wrong with using UnsupportedOperationException.
 Could someone who thinks this would be abuse, please explain WHY they
 think so ... preferably with supporting evidence from the Sun javadocs.

Please forget I wrote this.  I'm happy for the discussion to die ... as
per Mark's email.

-- Steve



___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath


Re: About stub methods

2003-09-29 Thread Brian Jones
Mark Wielaard [EMAIL PROTECTED] writes:

 If you find such a method in the source please just remove it and file a
 bug report about it (possibly with as bug message the partial
 implementation). 

Please leave the stub methods in java.awt.peer.*/gnu.java.awt/peer.*,
thanks.  Feel free to make them do whatever you'd like.  :)

Brian
-- 
Brian Jones [EMAIL PROTECTED]


___
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath