add package jmate
authorBernhard Urban <lewurm@gmail.com>
Tue, 19 Jun 2012 20:11:17 +0000 (22:11 +0200)
committerBernhard Urban <lewurm@gmail.com>
Tue, 19 Jun 2012 20:11:17 +0000 (22:11 +0200)
avoid name clashes when using GNU classpath. should be useful for debugging
classpath code.
at the end of the day, we should remove `java/' and maybe `jmate/'

Makefile
ffi/native.c
java/io/PrintStream.java
java/lang/System.java
jmate/io/PrintStream.java [new file with mode: 0644]
jmate/lang/System.java [new file with mode: 0644]

index 41d3ee547766e9857e2ab4b01edd63a120bdbb9d..10e80bbde60faadfb45b138a89b7123757cff3e6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 SHELL := bash
 
 JAVAC := javac
-JAVA_FILES := $(wildcard java/lang/*.java java/io/*.java)
+JAVA_FILES := $(wildcard jmate/lang/*.java jmate/io/*.java java/lang/*.java java/io/*.java)
 CLASS_FILES := $(JAVA_FILES:.java=.class)
 TEST_JAVA_FILES := $(wildcard tests/*.java)
 TEST_CLASS_FILES := $(TEST_JAVA_FILES:.java=.test)
@@ -60,7 +60,9 @@ mate.dbg: Mate.hs ffi/trap.c $(HS_FILES) $(HS_BOOT) ffi/native.o
        ghc --make $(DEBUGFLAGS) $(GHC_OPT) Mate.hs build/debug/ffi/trap.o -o $@ $(GHC_LD) -outputdir build/debug
 
 clean:
-       rm -rf build mate mate.dbg ffi/native.o tests/*.class Mate/*_stub.*
+       rm -rf build mate mate.dbg ffi/native.o tests/*.class Mate/*_stub.* \
+               jmate/lang/*.class jmate/io/*.class java/io/*.class \
+               java/lang/{Integer,Character,String,System}.class
 
 ghci: mate
        ghci $(PACKAGES) $(O_FILES) Mate.hs $(GHC_LD)
index d14391467d9f49dded46eae4b0ea60225435805e..7374405b7fbe172c8384494d9f88615707e8dfab 100644 (file)
@@ -61,13 +61,13 @@ struct chararray {
        char str;
 };
 
-void java_io_PrintStream__printf_0___Ljava_lang_String__V
+void jmate_io_PrintStream__printf_0___Ljava_lang_String__V
        (struct string *fmt)
 {
        printf("%s", &fmt->value->str);
 }
 
-void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
        (struct integer *a1, struct string *fmt)
 {
 #if 0
@@ -80,26 +80,26 @@ void java_io_PrintStream__printf_1___Ljava_lang_String_Ljava_lang_Object__V
        printf(&fmt->value->str, a1->value);
 }
 
-void java_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_2___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value);
 }
 
 void
-java_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+jmate_io_PrintStream__printf_3___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value);
 }
 
-void java_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_4___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value);
 }
 
-void java_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
+void jmate_io_PrintStream__printf_5___Ljava_lang_String_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object_Ljava_lang_Object__V
        (struct integer *a5, struct integer *a4, struct integer *a3, struct integer *a2, struct integer *a1, struct string *fmt)
 {
        printf(&fmt->value->str, a1->value, a2->value, a3->value, a4->value, a5->value);
index ff3608974bba48763202364656d4883f5786db4c..25398efde36a1d2a14b37174b67959d30b4537a9 100644 (file)
@@ -1,35 +1,15 @@
 package java.io;
 
+import jmate.io.*;
+
 public class PrintStream {
        public void println(String a) {
-               // TODO: `a + "\n"' when StringBuilder is available
-               printf(a);
-               printf("\n");
+               new jmate.io.PrintStream().println(a);
        }
 
        public PrintStream printf(String format, Object... args) {
-               /* temporary workaround ;-) */
-               int len = args.length;
-               if (len == 0) {
-                       this.printf_0(format);
-               } else if (len == 1) {
-                       this.printf_1(format, args[0]);
-               } else if (len == 2) {
-                       this.printf_2(format, args[0], args[1]);
-               } else if (len == 3) {
-                       this.printf_3(format, args[0], args[1], args[2]);
-               } else if (len == 4) {
-                       this.printf_4(format, args[0], args[1], args[2], args[3]);
-               } else if (len == 5) {
-                       this.printf_5(format, args[0], args[1], args[2], args[3], args[4]);
-               }
+               /* TODO ... */
+               new jmate.io.PrintStream().printf(format, args);
                return this;
        }
-
-       public native void printf_0(String a);
-       public native void printf_1(String a, Object b);
-       public native void printf_2(String a, Object b, Object c);
-       public native void printf_3(String a, Object b, Object c, Object d);
-       public native void printf_4(String a, Object b, Object c, Object d, Object e);
-       public native void printf_5(String a, Object b, Object c, Object d, Object e, Object f);
 }
index 38b62ddcaf8faa3fbb8cfa381795fdf267fc9a1b..8971f485a85326669a1e2f013cf605c5a8800984 100644 (file)
@@ -1,7 +1,6 @@
 package java.lang;
 
-import java.io.*;
-
 public class System {
-       public static PrintStream out = new PrintStream();
+       public static java.io.PrintStream out = new java.io.PrintStream();
 }
+
diff --git a/jmate/io/PrintStream.java b/jmate/io/PrintStream.java
new file mode 100644 (file)
index 0000000..25c6d4f
--- /dev/null
@@ -0,0 +1,35 @@
+package jmate.io;
+
+public class PrintStream {
+       public void println(String a) {
+               // TODO: `a + "\n"' when StringBuilder is available
+               printf(a);
+               printf("\n");
+       }
+
+       public PrintStream printf(String format, Object... args) {
+               /* temporary workaround ;-) */
+               int len = args.length;
+               if (len == 0) {
+                       this.printf_0(format);
+               } else if (len == 1) {
+                       this.printf_1(format, args[0]);
+               } else if (len == 2) {
+                       this.printf_2(format, args[0], args[1]);
+               } else if (len == 3) {
+                       this.printf_3(format, args[0], args[1], args[2]);
+               } else if (len == 4) {
+                       this.printf_4(format, args[0], args[1], args[2], args[3]);
+               } else if (len == 5) {
+                       this.printf_5(format, args[0], args[1], args[2], args[3], args[4]);
+               }
+               return this;
+       }
+
+       public native void printf_0(String a);
+       public native void printf_1(String a, Object b);
+       public native void printf_2(String a, Object b, Object c);
+       public native void printf_3(String a, Object b, Object c, Object d);
+       public native void printf_4(String a, Object b, Object c, Object d, Object e);
+       public native void printf_5(String a, Object b, Object c, Object d, Object e, Object f);
+}
diff --git a/jmate/lang/System.java b/jmate/lang/System.java
new file mode 100644 (file)
index 0000000..2ca58da
--- /dev/null
@@ -0,0 +1,7 @@
+package jmate.lang;
+
+import jmate.io.*;
+
+public class System {
+       public static jmate.io.PrintStream out = new jmate.io.PrintStream();
+}