Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Hermanni Hyytiälä
On Tue, 2003-07-01 at 03:11, Ito Kazumitsu wrote:
 Hi,
 
 In message Re: [kaffe] Bug report (java.io.StreamTokenizer)
 on 03/06/30, Hermanni Hyytiälä [EMAIL PROTECTED] writes:
 
   (2) Comment characters must be checked before alphabetic characters
   and Sun's java.io.StreamTokenizer seems to do so.  Otherwise,
   NBIO you mentioned cannot run properly.
 
  Hm, have you tested and if so how? Or does literature mentions about
  this? After a quick thought, I don't see any problem in the lexical
  order which is defined in nextToken-method of java.io.StreamTokenizer
  (JLS, 1st edition).
 
 As I said before,  the program from NBIO defines '#' not only as
 a comment character but also as a word character.  So if
 java.io.StreamTokenizer follows the rule of JLS 1st ed.,
 as kaffe's does,  '#' is treated as the begining of a word
 before it is treated as the begining of a comment.

Yes. Exactly. I forgot that, and I apologize :).

 
 The fact that Sun's treats '#' as the begining of a comment
 shows that Sun's java.io.StreamTokenizer does not respect
 the rule of JLS 1st ed.

As said, this *is* very interesting. Btw, I decided to test IBM's JDK
1.4.1 also and it runs similary the original NBIO's install test as
Sun's JDK 1.4.

So, the fundamental question seems to be that do we want that Kaffe
respects JLS's (obsolete?) defintions, or non-open source implementions'
functionality (i.e. a standard functionality, not only Sun, IBM also)?

Also, I think it's a unfortunate that Java language doesn't have a
standard which would compel non-open source communities to respect the
standard. IMO, if there was a Java standard, it's possible that we never
had this discussion ;).

Finally, are you aware of this:
http://linuxtoday.com/it_management/2003062301226NWDTRH
?


-Hermanni




___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Hermanni Hyytiälä
Hi,

On Tue, 2003-07-01 at 04:12, Ito Kazumitsu wrote:
 In message Re: [kaffe] Bug report (java.io.StreamTokenizer)
 on 03/07/01, Ito Kazumitsu [EMAIL PROTECTED] writes:
 
  (From the API doc) Each byte read from the input stream is regarded
  as a character in the range '\u' through '\u00FF'. The character
  value is used to look up five possible attributes of the character:
  white space, alphabetic, numeric, string quote, and comment character.
  Each character can have zero or more of these attributes.
  (And I guess) BUT ONLY THE ATTRIBUTE MOST RECENTLY ASSIGNED IS EFFECTIVE.

 Having tested various cases,  I have had an impression
 that Sun's java.io.StreamTokenizer uses the following
 rule:
...
 (From the API doc) Each byte read from the input stream is regarded
 as a character in the range '\u' through '\u00FF'. The character
 value is used to look up five possible attributes of the character:
 white space, alphabetic, numeric, string quote, and comment character.
 Each character can have zero or more of these attributes.
 (And I guess) BUT ONLY THE ATTRIBUTE MOST RECENTLY ASSIGNED IS 
EFFECTIVE.
 
...
 And additionally,  THE NUMERIC ATTRIBUTE IS KEPT EFFECTIVE EVEN IF
 OTHER ATTIBUTES ARE ASSIGNED.
 

Very good research work Ito! :)

Heh...this case is going well beyond the very interesting concept... 


-Hermanni



___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Dalibor Topic

--- Ito Kazumitsu [EMAIL PROTECTED] wrote:
 
 In message Re: [kaffe] Bug report (java.io.StreamTokenizer)
 on 03/07/01, Ito Kazumitsu [EMAIL PROTECTED] writes:
 
  (From the API doc) Each byte read from the input stream is regarded
  as a character in the range '\u' through '\u00FF'. The character
  value is used to look up five possible attributes of the character:
  white space, alphabetic, numeric, string quote, and comment character.
  Each character can have zero or more of these attributes.
  (And I guess) BUT ONLY THE ATTRIBUTE MOST RECENTLY ASSIGNED IS EFFECTIVE.
 
 And additionally,  THE NUMERIC ATTRIBUTE IS KEPT EFFECTIVE EVEN IF
 OTHER ATTIBUTES ARE ASSIGNED.
 
 Applying the attached patch,  I am getting the same results as Sun's.

great work, Ito! please check it in.

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Dalibor Topic
Hei Hermanni,

--- Hermanni Hyytiälä [EMAIL PROTECTED] wrote:
 So, the fundamental question seems to be that do we want that Kaffe
 respects JLS's (obsolete?) defintions, or non-open source implementions'
 functionality (i.e. a standard functionality, not only Sun, IBM also)?

Respect latest JDK API specs where you can, and do as Sun does where you must
;)

 Also, I think it's a unfortunate that Java language doesn't have a
 standard which would compel non-open source communities to respect the
 standard. IMO, if there was a Java standard, it's possible that we never
 had this discussion ;).

An ISO or ECMA standard would be nice. I doubt though, that it would remove all
ambiguities from the language, or the class library. Take
http://www.kaffe.org/pipermail/kaffe/2003-May/042181.html for an example of how
important it is to know how methods use each other internally. If a standard
went down into that much detail, it might as well be published as source code
;)

 Finally, are you aware of this:
 http://linuxtoday.com/it_management/2003062301226NWDTRH

We had a vey short thread about it last week:
http://www.kaffe.org/pipermail/kaffe/2003-June/042780.html

Nothing on RedHat's site seems to confirm it, so I think it's just some JavaOne
fallout.

I wouldn't put too high hopes into it, since Sun has been burned once with
Java, and I doubt they will release their grip on the platform very soon.
Especially with Microsoft trying hard to push .net everywhere.

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] [patch] Re: Computing remainders

2003-07-01 Thread Marc Kleine-Budde
On Mon, Jun 30, 2003 at 01:09:39AM -0700, Dalibor Topic wrote:
 I've attached a patch for the interpreter that should fix this issue for
 gcc-compiled interpreter on all platforms. It works for me on mips-irix and
 i386-linux interpreters. 

 could you give it a try on m68k and powerpc?

It work on PPC Debian GNU/Linux.

regards - Marc

-- 
#!/bin/sh
set - `type $0` 'tr [a-zA-Z] [n-za-mN-ZA-M]';while [ $2 !=  ];do \
shift;done; echo 'frq -a -rc '`echo $0| $1 `'$UBZR/.`rpub signature|'`\
echo $1|$1`'`;rpub Jr ner fvtangher bs obet. Erfvfgnapr vf shgvyr!'|$1|sh

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] HAVE_move_float_const

2003-07-01 Thread Dalibor Topic
Ciao Gerlando,

--- Gerlando Falauto [EMAIL PROTECTED] wrote:

 Nope, it's perfectly clear but still I don't get your point. If you wanna
 be safe, shouldn't you just be CONSISTENT? Declare it as a float, and let
 the compiler decide what casts are appropriate. At this level, so long as
 I get what was meant to be passed (which is a *float*), I shouldn't really
 care what the compiler does. The point here is, I want a float constant

Different versions of C 'standards' (and thus different versions of compilers)
have had different interpretations of what you really meant to be passed when
you wrote 'float'. :)

See
http://groups.google.de/groups?q=float+parameter+functionhl=delr=ie=UTF-8oe=UTF-8selm=3D8EF8EB.2000809%40mchsi.comrnum=7
for another nice explanation of the pitfalls involved.

 (which is 32-bit wide) exactly as it was written in the classfile, so I
 can move it to a register (as a 32-bit chunk). If the compiler wants to
 promote it as an internal optimization, that is none of my business!

The C99 standard doesn't guarantee you'll have 32 bit wide floats. It doesn't
even guarantee the floats will be 'base 2'. But fortunately, kaffe hasn't been
ported to such a beast yet, AFAIK ;) 

On the other hand, we're talking about the jitter here, right? Then you of
course you know more about types and their representations in the hardware.

 If I get it as a double, I have to cast it back to a float. Apart from
 the waste of time, is that guaranteed to be non-destructive?

I don't think it's guaranteed to be non-destructive. NANs for example may not
get to be the same NANs they were before...

But anyway, if just using floats works for you, please port a patch and let
others evaluate it. That's much easier than trying to interpret the C standard
;)

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Ito Kazumitsu
 : == Dalibor Topic [EMAIL PROTECTED] writes:

: --- Ito Kazumitsu [EMAIL PROTECTED] wrote:

 In message Re: [kaffe] Bug report (java.io.StreamTokenizer)
 on 03/07/01, Ito Kazumitsu [EMAIL PROTECTED] writes:

  (And I guess) BUT ONLY THE ATTRIBUTE MOST RECENTLY ASSIGNED IS EFFECTIVE.
 
 And additionally,  THE NUMERIC ATTRIBUTE IS KEPT EFFECTIVE EVEN IF
 OTHER ATTIBUTES ARE ASSIGNED.
 
 Applying the attached patch,  I am getting the same results as Sun's.

: great work, Ito! please check it in.

I thought I was getting the same results as Sun's, but finally,
I could not get exactly the same result.

Attached is my new test program that generates various patterns
of test cases and prints the results of them.

And I put the results at:

   Sun's
 http://www.jsdi.or.jp/kaffe/StreamTokenizerTest2.out.Sun

   Kaffe's original java.io.StreamTokenizer
 http://www.jsdi.or.jp/kaffe/StreamTokenizerTest2.out.Kaffe

   Kaffe's patched java.io.StreamTokenizer
 http://www.jsdi.or.jp/kaffe/StreamTokenizerTest2.out.Kaffe2

Further guessing on how Sun's StreamTokenizer is working is needed.

bash-2.05b$ cat StreamTokenizerTest2.java
import java.io.*;
public class StreamTokenizerTest2 {

  public static void main(String[] args) throws Exception {
  String[] a = new String[] {S, C, Q, W, N};
  for (int i=1; i=5; i++) {
  Permutation.generate(a, i, new MainHandler());
  }
  }

  private static class MainHandler extends Permutation.Handler {
public void doit(Object[] array) {
String[] args = new String[array.length + 1];
System.arraycopy(array, 0, args, 1, array.length);
args[0] = 1;
try {
for (int i=0; iargs.length; i++) {
System.out.print(args[i] +  );
}
System.out.println();
test(args);
}
catch (Exception e) {}
}
  }

  private static void test(String[] args) throws Exception {
StreamTokenizer tok = new StreamTokenizer(new 
FileInputStream(StreamTokenizerTest2.txt));
tok.resetSyntax();
int c = args[0].charAt(0);
for (int i=1; iargs.length; i++) {
   if (args[i].equals(S)) tok.whitespaceChars(c, c);
   else if (args[i].equals(C)) tok.commentChar(c);
   else if (args[i].equals(Q)) tok.quoteChar(c);
   else if (args[i].equals(N)) tok.parseNumbers();
   else if (args[i].equals(W)) tok.wordChars(c, c);
}
while (true) {
  int t = tok.nextToken();
  if (t == StreamTokenizer.TT_NUMBER) {
  System.out.println(tok.nval + :  + t);
  }
  else {
  System.out.println(tok.sval + :  + t);
  }
  if (t == StreamTokenizer.TT_EOF) break;
}
  }
}
bash-2.05b$ cat Permutation.java
public class Permutation {

public static void generate(Object[] array, int n, Handler h) {
int l = array.length;
if (n == 1) {
for (int i = 0; i  l; i++) {
h.doit(new Object[] {array[i]});
}
return;
}
final int N = n;
final Handler H = h;
for (int i = 0; i  l; i++) {
final Object OBJ = array[i];
Object[] a1 = new Object[l - 1];
System.arraycopy(array, 0, a1, 0, i);
System.arraycopy(array, i+1, a1, i, l-i-1);
class Handler1 extends Handler {
public void doit(Object[] a2) {
Object[] a3 = new Object[N];
System.arraycopy(a2, 0, a3, 1, N-1);
a3[0] = OBJ;
H.doit(a3);
}
};
generate(a1, n-1, new Handler1());
}
return;
}

public static class Handler {
public void doit(Object[] array) {}
}

}
bash-2.05b$ cat StreamTokenizerTest2.txt 
121
bash-2.05b$

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] failed regression tests

2003-07-01 Thread Timothy Stack
 Hi all,

hi,

 *
 KaffeInternal.java:
 *
 /* Expected Output:
 java.lang.NoClassDefFoundError: kaffe/lang/ThreadStack
 */
 
 what i got:
 
 java.lang.SecurityException: Prohibited package: kaffe/lang/ThreadStack
 
 I believe that what I got is the expected behavior, only that between the
 writing of the regression test and now the exception thrown for a class
 attempting to access something that it should not be accessing has
 changed.  perhaps the expected output of the regression test should be
 updated?

The NoClassDefFoundError is correct, I think.  The SecurityException is 
because a non-primordial class loader has found the class file and is 
trying to define the class.  However, the class file should only be in the 
boot class path and not the regular class path.  So, you should make sure 
that rt.jar is not in CLASSPATH.

Also, the current CVS version doesn't work for me at all:

error compiling:
java.lang.VerifyError: final method printArgs declared in class 
at/dms/kjc/CReferenceType is overriden in class 
at/dms/kjc/CClassNameType
at at.dms.kjc.KjcTypeFactory.init(KjcTypeFactory.java:51)
at at.dms.kjc.Main.createEnvironment(Main.java:235)
at at.dms.kjc.Main.run(Main.java:116)
at at.dms.kjc.Main.compile(Main.java:69)
at at.dms.kjc.Main.main(Main.java:60)
FAIL: HelloWorldApp.java

 Rob

tim

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] failed regression tests

2003-07-01 Thread Rob Gonzalez
Hi Tim,


 The NoClassDefFoundError is correct, I think.  The SecurityException is 
 because a non-primordial class loader has found the class file and is 
 trying to define the class.  However, the class file should only be in the 
 boot class path and not the regular class path.  So, you should make sure 
 that rt.jar is not in CLASSPATH.

thanks :)  i had stuck the rt.jar in my CLASSPATH a couple months ago for
some side project i was working on and simply left it there.  i'm all set
now.


 Also, the current CVS version doesn't work for me at all:
 
 error compiling:
 java.lang.VerifyError: final method printArgs declared in class 
 at/dms/kjc/CReferenceType is overriden in class 
 at/dms/kjc/CClassNameType
 at at.dms.kjc.KjcTypeFactory.init(KjcTypeFactory.java:51)
 at at.dms.kjc.Main.createEnvironment(Main.java:235)
 at at.dms.kjc.Main.run(Main.java:116)
 at at.dms.kjc.Main.compile(Main.java:69)
 at at.dms.kjc.Main.main(Main.java:60)
 FAIL: HelloWorldApp.java


this actually means that my verifier is working correctly :)  i checked by
using BCEL's JustIce verifier on at.dms.kjc.CCClassNameType and it
rejected that class for the same reason.

i'm going to email the KJC folks about this and see what they think.  for
now, i could simply change the printArgs method in CReferenceType to not
be final so that we can run regression tests using KJC.  is it cool to
change the KJC source in kafe CVS's source tree?

for now, if you use jikes 1.18 you should pass all the regression tests.  
or you can use KJC but make sure you pass the -noverify flag to kaffe to
get over KJC's internal error.  or add KJC's jar to the bootclasspath.


cheers,
Rob


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] HAVE_move_float_const

2003-07-01 Thread Gerlando Falauto
On Tue, 1 Jul 2003, Dalibor Topic wrote:

 Ciao Gerlando,
 
 --- Gerlando Falauto [EMAIL PROTECTED] wrote:
 
  Nope, it's perfectly clear but still I don't get your point. If you wanna
  be safe, shouldn't you just be CONSISTENT? Declare it as a float, and let
  the compiler decide what casts are appropriate. At this level, so long as
  I get what was meant to be passed (which is a *float*), I shouldn't really
  care what the compiler does. The point here is, I want a float constant
 
 Different versions of C 'standards' (and thus different versions of compilers)
 have had different interpretations of what you really meant to be passed when
 you wrote 'float'. :)
 
 See
 http://groups.google.de/groups?q=float+parameter+functionhl=delr=ie=UTF-8oe=UTF-8selm=3D8EF8EB.2000809%40mchsi.comrnum=7
 for another nice explanation of the pitfalls involved.
 
  (which is 32-bit wide) exactly as it was written in the classfile, so I
  can move it to a register (as a 32-bit chunk). If the compiler wants to
  promote it as an internal optimization, that is none of my business!
 
 The C99 standard doesn't guarantee you'll have 32 bit wide floats. It doesn't
 even guarantee the floats will be 'base 2'. But fortunately, kaffe hasn't been
 ported to such a beast yet, AFAIK ;) 

Well but we have the guarantee that *java floats* are 32-bit wide right?
So shouldn't we use that, again, for consistency?
Shouldn't all the immediates be 'jint', 'jlong', whatever, for that 
matter?

 On the other hand, we're talking about the jitter here, right? Then you of
 course you know more about types and their representations in the hardware.

 
  If I get it as a double, I have to cast it back to a float. Apart from
  the waste of time, is that guaranteed to be non-destructive?
 
 I don't think it's guaranteed to be non-destructive. NANs for example may not
 get to be the same NANs they were before...

That's my point. If Kaffe read a jfloat constant from a .class file, I
want my back end to get *exactly* that jfloat, not some other converted
stuff! But hey, that is only an issue if I have any float immediate in the
instruction stream, otherwise that doesn't matter, at all.

 But anyway, if just using floats works for you, please port a patch
 and let others evaluate it. That's much easier than trying to
 interpret the C standard ;)

That contradicts a lot of good software engineering principles, but I got
to admit, that's the way it is. ;)

Gerlando


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] new machine-dependent source file

2003-07-01 Thread Gerlando Falauto

Hi Automake/autoconf experts,

is there any way to add a new machine-dependent assembler (.s) or C (.c)  
file to the build process, and put it my config/cpu or config/cpu/os
dir? 

I tried creating a cpu/os/Makefile.frag as its done in the
engines and threadsystems directories, but that didn't quite work... 

I know .c files I can #include in config/cpu/os/md.c, but I guess
that's not the case for .s files (though they get compiled by the same
command line).

Please don't tell me to write inline assembler in a .c file.  Argh, my
compiler doesn't support that.

Thank you all!
Gerlando


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] new machine-dependent source file

2003-07-01 Thread Timothy Stack
 
 
 Hi Automake/autoconf experts,
 
 is there any way to add a new machine-dependent assembler (.s) or C (.c)  
 file to the build process, and put it my config/cpu or config/cpu/os
 dir? 
 
 I tried creating a cpu/os/Makefile.frag as its done in the
 engines and threadsystems directories, but that didn't quite work... 

It appears that the configure script looks for Make.frag and not 
Makefile.frag.  Ah, gotta love the consistency...

 Thank you all!
 Gerlando

tim

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Bug report (java.io.StreamTokenizer)

2003-07-01 Thread Ito Kazumitsu
 * == Ito Kazumitsu [EMAIL PROTECTED] writes:

* Further guessing on how Sun's StreamTokenizer is working is needed.

Afer a lot of try-and-error testing,  I found that the following
patch gives the same result as Sun's.  I will commit it after
making a document about this change.

--- java/io/StreamTokenizer.java.orig   Tue Feb 19 09:48:11 2002
+++ java/io/StreamTokenizer.javaWed Jul  2 00:41:47 2003
@@ -74,7 +74,12 @@
 
 public void commentChar(int ch) {
if (ch = 0  ch = 255) {
-   lookup(ch).isComment = true;
+   TableEntry e = lookup(ch);
+   e.isComment = true;
+   e.isStringQuote = false;
+   e.isWhitespace = false;
+   e.isAlphabetic = false;
+   e.isNumeric = false;
}
 }
 
@@ -116,14 +121,6 @@
/* Skip whitespace and return nextTokenType */
parseWhitespaceChars(chr);
}
-   else if (e.isNumeric) {
-   /* Parse the number and return */
-   parseNumericChars(chr);
-   }
-   else if (e.isAlphabetic) {
-   /* Parse the word and return */
-   parseAlphabeticChars(chr);
-   }
/* Contrary to the description in JLS 1.ed,
   C  C++ comments seem to be checked
   before other comments. That actually
@@ -142,6 +139,14 @@
/* skip comment and return nextTokenType() */
parseCommentChars();
}
+   else if (e.isNumeric) {
+   /* Parse the number and return */
+   parseNumericChars(chr);
+   }
+   else if (e.isAlphabetic) {
+   /* Parse the word and return */
+   parseAlphabeticChars(chr);
+   }
else if (e.isStringQuote) {
/* Parse string and return word */
parseStringQuoteChars(chr);
@@ -231,7 +236,7 @@
buffer.append((char)chr);
chr = chrRead();
 
-   } while (lookup(chr).isNumeric
+   } while (lookup(chr).isAnywayNumeric
  chr != '-'
  !(chr == '.'  dotParsed));
 
@@ -411,6 +416,7 @@
e.isAlphabetic = false;
e.isStringQuote = false;
e.isNumeric = false;
+   e.isAnywayNumeric = false;
e.isComment = false;
e.isWhitespace = false;
}
@@ -432,10 +438,20 @@
 
 public void parseNumbers() {
for (int letter = '0'; letter = '9'; letter++) {
-   lookup(letter).isNumeric = true;
+   setNumeric(letter);
}
-   lookup('.').isNumeric = true;
-   lookup('-').isNumeric = true;
+   setNumeric('.');
+   setNumeric('-');
+}
+
+private void setNumeric(int letter) {
+   TableEntry e = lookup(letter);
+   e.isNumeric = true;
+   e.isAnywayNumeric = true;
+   // e.isWhitespace = false;
+   e.isStringQuote = false;
+   e.isComment = false;
+   e.isAlphabetic = false;
 }
 
 public void pushBack() {
@@ -444,7 +460,12 @@
 
 public void quoteChar(int ch) {
if (ch = 0  ch = 255) {
-   lookup(ch).isStringQuote = true;
+   TableEntry e = lookup(ch);
+   e.isComment = false;
+   e.isStringQuote = true;
+   e.isWhitespace = false;
+   e.isAlphabetic = false;
+   e.isNumeric = false;
}
 }
 
@@ -547,6 +568,8 @@
for (int letter = low; letter = hi; letter++) {
TableEntry e = lookup(letter);
e.isWhitespace = true;
+   e.isComment = false;
+   e.isStringQuote = false;
e.isAlphabetic = false;
e.isNumeric = false;
}
@@ -562,7 +585,12 @@
}
 
for (int letter = low; letter = hi; letter++) {
-   lookup(letter).isAlphabetic = true;
+   TableEntry e = lookup(letter);
+   e.isAlphabetic = true;
+   e.isComment = false;
+   e.isStringQuote = false;
+   // e.isWhitespace = false;
+   // e.isNumeric = false;
}
 }
 
@@ -576,6 +604,7 @@
 class TableEntry {
 
 private boolean isNumeric;
+private boolean isAnywayNumeric;
 private boolean isWhitespace;
 private boolean isAlphabetic;
 private boolean isStringQuote;

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] new machine-dependent source file

2003-07-01 Thread Gerlando Falauto
On Tue, 1 Jul 2003, Timothy Stack wrote:

  I tried creating a cpu/os/Makefile.frag as its done in the
  engines and threadsystems directories, but that didn't quite work... 
 
 It appears that the configure script looks for Make.frag and not 
 Makefile.frag.  Ah, gotta love the consistency...

Tried that, didn't work either. It said:

CPU_SOURCES = sysdepCallMethod.s

No other platform seems to do that so I am the only one with this problem 
I think... PLEASE HELP! ;-)

Gerlando


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] new machine-dependent source file

2003-07-01 Thread Timothy Stack
 
 On Tue, 1 Jul 2003, Timothy Stack wrote:
 
   I tried creating a cpu/os/Makefile.frag as its done in the
   engines and threadsystems directories, but that didn't quite work... 
  
  It appears that the configure script looks for Make.frag and not 
  Makefile.frag.  Ah, gotta love the consistency...
 
 Tried that, didn't work either. It said:
 
 CPU_SOURCES = sysdepCallMethod.s

Did you add $(CPU_SOURCES) to the libkaffevm_la_SOURCES variable in 
kaffe/kaffevm/Makefile.am and regenerate it?

 No other platform seems to do that so I am the only one with this problem 
 I think... PLEASE HELP! ;-)

see config/mips/ultrix4/Make.frag

 Gerlando

tim

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] HAVE_move_float_const

2003-07-01 Thread Timothy Stack
 Hi everyone,

hi,

 (especially the JIT back-end coders)
 
 does anyone have any idea why _slot_slot_fconst is declared
 
 void _slot_slot_fconst(SlotInfo*, SlotInfo*, double, ifunc, int)
  ^^
 
 shouldn't there be a float instead?

Can you update and try again.

 Gerlando

thanks,

tim

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] Kaffe CVS: kaffe stack

2003-07-01 Thread Kaffe CVS

CVSROOT:/cvs/kaffe
Module name:kaffe
Changes by: stack   03/07/01 08:56:57

Modified files:
.  : ChangeLog configure configure.in 
kaffe/kaffevm/jit3: basecode.c basecode.h icode.c registers.h 

Log message:
2003-07-01  Timothy S. Stack [EMAIL PROTECTED]

* configure.in:
Autoheader doesn't understand --localdir anymore.

* kaffe/kaffevm/jit3/basecode.c,
kaffe/kaffevm/jit3/basecode.h,
kaffe/kaffevm/jit3/icode.c,
kaffe/kaffevm/jit3/registers.h:
Load/Store float constants as floats and not doubles, otherwise
the jitted code will read floats from the constant pool that were
stored as doubles.

Reported by: Gerlando Falauto [EMAIL PROTECTED]


___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Kaffe Architecture Documentation

2003-07-01 Thread Rob Gonzalez
Hi Gerlando,

As someone who recently finished an undergraduate thesis involving
modifications to kaffe, I think such a document would be greatly
appreciated by anyone thinking about using the project for their work (and
anyone interested in jumping in to help out!).  The document would be most
useful if it would refer to specific FAQ's when appropriate or to specific
files and snippets of code.

As an example of such a work, the Jikes RVM people have some serious
documentation around about their project.  Actually, the two major reasons
I went with kaffe over the Jikes RVM for my work, despite the better
documentation of Jikes RVM, were the people on this list (who were _much_
more helpful in answering my initial questions) and the fact that kaffe
was GPL'd (I don't know how I feel about the IBM Open Source License).

LaTex is great, of course, and if you're including it in your thesis
that's probably the way you'd have to go.  But standard HTML docs might be
more user-friendly and would make it easier for others to contribute to
the document later on.  Maybe you could write it originally in LaTex for
your thesis export it as HTML for others to use, or vice versa.

Either way, it would definitely be a cool thing to have around.  kaffe is
an intimidating project for newbies to tackle without a good road map.

Rob


On Tue, 1 Jul 2003, Gerlando Falauto wrote:

 
 Hi folks,
 
 has there been an effort to write some organic documentation about the
 Kaffe Architecture? Something a newbie could read to get an idea of what
 kaffe's made of and how it works? 
 
 I was thinking of writing such a document and including it as a chapter of 
 my thesis. What do you guys think? Any suggestions? I was thinking of 
 using latex for the whole thing, is that a bad idea?
 
 Dalibor, you once sent me a pointer to a page linking to 
 documents people have written in the past (like Samuel Sanseri, Edouard 
 and other folks), but I can't find that link anymore. Could you help me 
 with that?
 
 Thanks everybody!
 Gerlando
 
 
 ___
 kaffe mailing list
 [EMAIL PROTECTED]
 http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
 



___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] Kaffe Architecture Documentation

2003-07-01 Thread Dalibor Topic
Ciao Gerlando,

--- Gerlando Falauto [EMAIL PROTECTED] wrote:
 
 Hi folks,
 
 has there been an effort to write some organic documentation about the
 Kaffe Architecture? Something a newbie could read to get an idea of what
 kaffe's made of and how it works? 

Nothing official, unfortunately. A couple of files here and there. But such an
effort would be very appreciated. 

 I was thinking of writing such a document and including it as a chapter of 
 my thesis. What do you guys think? Any suggestions? I was thinking of 
 using latex for the whole thing, is that a bad idea?

Latex is a good choice, since you want to incorporate the docs in your thesis.
I personally think in the long run using DocBook might be better. Unfortonately
the DocBook tools are not up to the level of reliability of LaTeX, from what
I've seen.

So just use whatever suits you best, as long it's an open format. MS Word DOC
files would be really, really bad ;)

 Dalibor, you once sent me a pointer to a page linking to 
 documents people have written in the past (like Samuel Sanseri, Edouard 
 and other folks), but I can't find that link anymore. Could you help me 
 with that?

Sure: http://www.kaffe.org/weeklynews/2002/1.html

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] HAVE_move_float_const

2003-07-01 Thread Dalibor Topic
Ciao Gerlando,

--- Gerlando Falauto [EMAIL PROTECTED] wrote:
 On Tue, 1 Jul 2003, Dalibor Topic wrote:

  --- Gerlando Falauto [EMAIL PROTECTED] wrote:

  The C99 standard doesn't guarantee you'll have 32 bit wide floats. It
 doesn't
  even guarantee the floats will be 'base 2'. But fortunately, kaffe hasn't
 been
  ported to such a beast yet, AFAIK ;) 
 
 Well but we have the guarantee that *java floats* are 32-bit wide right?
 So shouldn't we use that, again, for consistency?
 Shouldn't all the immediates be 'jint', 'jlong', whatever, for that 
 matter?

sounds reasonable to me. I'd like to hear what Tim  Helmer think about it.

  But anyway, if just using floats works for you, please port a patch
  and let others evaluate it. That's much easier than trying to
  interpret the C standard ;)
 
 That contradicts a lot of good software engineering principles, but I got
 to admit, that's the way it is. ;)

In my opinion working code beats proposals. I think that's how linux was
developed, and it was quite successful so far ;)

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


Re: [kaffe] failed regression tests

2003-07-01 Thread Dalibor Topic

--- Rob Gonzalez [EMAIL PROTECTED] wrote:
 Hi Tim,
 
 
  The NoClassDefFoundError is correct, I think.  The SecurityException is 
  because a non-primordial class loader has found the class file and is 
  trying to define the class.  However, the class file should only be in the 
  boot class path and not the regular class path.  So, you should make sure 
  that rt.jar is not in CLASSPATH.
 
 thanks :)  i had stuck the rt.jar in my CLASSPATH a couple months ago for
 some side project i was working on and simply left it there.  i'm all set
 now.

brief, helpful and up-to-the-point responses to weird issues ... that means Tim
must be back from holidays ;)

 this actually means that my verifier is working correctly :)  i checked by
 using BCEL's JustIce verifier on at.dms.kjc.CCClassNameType and it
 rejected that class for the same reason.
 
 i'm going to email the KJC folks about this and see what they think.  for
 now, i could simply change the printArgs method in CReferenceType to not
 be final so that we can run regression tests using KJC.  is it cool to
 change the KJC source in kafe CVS's source tree?

I think the right way is as you propose: to go ahead and fix kjc. But you
should check with jim first to see how far the effort to import kjc (and other
external jars) into kaffe's CVS has come. See
http://www.kaffe.org/pipermail/kaffe/2003-June/042806.html and please ignore
the following licensing discussion ;)

cheers,
dalibor topic

__
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe


[kaffe] locks patch

2003-07-01 Thread Helmer Krämer

Hi,

I've attached a small patch that fixes some issues
related to the handling of locks in kaffe. Review
and comments appreciated ;)

Stuff contained in the patch:

* the specialLocks array is removed; special locks whose heavyLock
  should not be gc_malloc'ed are now of type struct _iStaticLock,
  which contains a struct _iLock field. 
* _slowUnlockMutex correctly handles !STACK_GROWS_UP
* _slowUnlockMutexIfHeld no longer allocates a heavyLock if that's
  unnecessary
* _releaseLock and _acquireLock have been removed since they don't
  seem to be used anywhere
* _lockMutex uses jthread_on_current_stack to detect recursive
  invocations

Greetings,
Helmer

locks-patch
Description: Binary data


Re: [kaffe] Kaffe Architecture Documentation

2003-07-01 Thread Jim Pick
On Tue, 1 Jul 2003 09:48:02 -0700 (PDT)
Dalibor Topic [EMAIL PROTECTED] wrote:

 So just use whatever suits you best, as long it's an open format. MS Word DOC
 files would be really, really bad ;)

Heck, we'll even take .doc files - I can cut and paste those into DocBook or
something like that.

I'm planning to add some DocBook infrastructure to our build so I can check
in Edouard's porting document - which we can use as a basis for doing some
real documentation.
 
  Dalibor, you once sent me a pointer to a page linking to 
  documents people have written in the past (like Samuel Sanseri, Edouard 
  and other folks), but I can't find that link anymore. Could you help me 
  with that?
 
 Sure: http://www.kaffe.org/weeklynews/2002/1.html

I'm so embarrassed that I never added those links to the documentation web
page.  I'm not a very good webmaster.  I finally added them, so you can see
them here now:

  http://www.kaffe.org/documentation.shtml

Please suggest some more links if you know of any other documentation hiding
out there on the web.  I know, you've probably all sent me the links before,
and they're in the depths of my inbox.  It's always good to cc: them to the
list, since I'm can be somewhat neglectful at times...

Cheers,

 - Jim

___
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe