diff --git a/build.xml b/build.xml
index ba1e4f2e..9eb83caf 100644
--- a/build.xml
+++ b/build.xml
@@ -3,7 +3,7 @@
-
+
@@ -11,9 +11,9 @@
-
+
-
", "()V", null, null);
// super()
m.visitVarInsn(ALOAD, 0);
- m.visitMethodInsn(INVOKESPECIAL, parent, "", "()V");
+ m.visitMethodInsn(INVOKESPECIAL, parent, "", "()V", false);
m.visitInsn(RETURN);
m.visitMaxs(0, 0);
m.visitEnd();
@@ -316,7 +316,7 @@ void captureCast(String type) {
void visitInit(String type, String descr) {
insn(-2);
- m.visitMethodInsn(INVOKESPECIAL, type, "", descr);
+ m.visitMethodInsn(INVOKESPECIAL, type, "", descr, false);
lastType = type;
}
@@ -340,7 +340,7 @@ void fieldInsn(int opcode, String owner, String name, String desc) {
void methodInsn(int opcode, String owner, String name, String desc) {
insn(-1);
- m.visitMethodInsn(opcode, owner, name, desc);
+ m.visitMethodInsn(opcode, owner, name, desc, opcode == INVOKEINTERFACE);
}
void visitApply(Code arg, int line) {
@@ -348,7 +348,7 @@ void visitApply(Code arg, int line) {
insn(-1);
visitLine(line);
m.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun",
- "apply", "(Ljava/lang/Object;)Ljava/lang/Object;");
+ "apply", "(Ljava/lang/Object;)Ljava/lang/Object;", false);
}
void jumpInsn(int opcode, Label label) {
diff --git a/util/Rename.java b/util/Rename.java
index 9b619b43..ab9fae5a 100644
--- a/util/Rename.java
+++ b/util/Rename.java
@@ -59,7 +59,7 @@ public static void main(String[] args) throws Exception {
JarFile in = new JarFile(args[0]);
JarOutputStream out =
new JarOutputStream(new FileOutputStream(args[1]));
- byte[] buf = new byte[65536];
+ byte[] buf = new byte[0x20000];
for (Enumeration e = in.entries(); e.hasMoreElements();) {
ZipEntry z = (ZipEntry) e.nextElement();
if (z.isDirectory())
diff --git a/util/SpecialLib.java b/util/SpecialLib.java
index a3a7d840..6cc1b196 100644
--- a/util/SpecialLib.java
+++ b/util/SpecialLib.java
@@ -33,9 +33,9 @@
import java.io.*;
import yeti.renamed.asm3.*;
-class LListAdapter extends ClassAdapter implements Opcodes {
+class LListAdapter extends ClassVisitor implements Opcodes {
LListAdapter(ClassVisitor cv) {
- super(cv);
+ super(ASM5, cv);
}
public MethodVisitor visitMethod(int access, String name, String desc,
@@ -58,7 +58,7 @@ public void visitEnd() {
mv.visitLabel(retry);
mv.visitIincInsn(0, 1);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "next", "()Lyeti/lang/AIter;");
+ "next", "()Lyeti/lang/AIter;", false);
mv.visitInsn(DUP);
mv.visitJumpInsn(IFNONNULL, retry);
mv.visitLabel(end);
@@ -79,12 +79,13 @@ public void visitEnd() {
mv.visitLabel(retry = new Label());
mv.visitInsn(DUP2); // fun iter fun iter
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "first", "()Ljava/lang/Object;");
+ "first", "()Ljava/lang/Object;", false);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun",
- "apply", "(Ljava/lang/Object;)Ljava/lang/Object;");
+ "apply", "(Ljava/lang/Object;)Ljava/lang/Object;",
+ false);
mv.visitInsn(POP);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "next", "()Lyeti/lang/AIter;");
+ "next", "()Lyeti/lang/AIter;", false);
mv.visitInsn(DUP);
mv.visitJumpInsn(IFNONNULL, retry);
mv.visitLabel(end);
@@ -105,12 +106,12 @@ public void visitEnd() {
mv.visitInsn(SWAP);
mv.visitVarInsn(ALOAD, 0);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "first", "()Ljava/lang/Object;");
+ "first", "()Ljava/lang/Object;", false);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun", "apply",
- "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+ "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false);
mv.visitVarInsn(ALOAD, 0);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "next", "()Lyeti/lang/AIter;");
+ "next", "()Lyeti/lang/AIter;", false);
mv.visitInsn(DUP);
mv.visitVarInsn(ASTORE, 0);
mv.visitJumpInsn(IFNONNULL, retry);
@@ -129,20 +130,20 @@ public void visitEnd() {
mv.visitTypeInsn(NEW, "yeti/lang/MList");
mv.visitInsn(DUP);
mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/MList",
- "", "()V");
+ "", "()V", false);
mv.visitVarInsn(ASTORE, 0);
mv.visitLabel(retry = new Label());
mv.visitInsn(DUP2); // fun iter fun iter
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "first", "()Ljava/lang/Object;"); // i -> v
- mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun", // f v -> v'
- "apply", "(Ljava/lang/Object;)Ljava/lang/Object;");
+ "first", "()Ljava/lang/Object;", false); // i -> v
+ mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun", "apply", // f v -> v'
+ "(Ljava/lang/Object;)Ljava/lang/Object;", false);
mv.visitVarInsn(ALOAD, 0);
mv.visitInsn(SWAP);
- mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/MList",
- "add", "(Ljava/lang/Object;)V"); // l v' -> ()
- mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter",
- "next", "()Lyeti/lang/AIter;"); // i -> i'
+ mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/MList", "add",
+ "(Ljava/lang/Object;)V", false); // l v' -> ()
+ mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AIter", "next",
+ "()Lyeti/lang/AIter;", false); // i -> i'
mv.visitInsn(DUP);
mv.visitJumpInsn(IFNONNULL, retry);
mv.visitVarInsn(ALOAD, 0);
@@ -160,7 +161,7 @@ public void visitEnd() {
mv.visitInsn(ACONST_NULL);
mv.visitVarInsn(ASTORE, 0);
mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/MList",
- "", "(Lyeti/lang/AIter;)V");
+ "", "(Lyeti/lang/AIter;)V", false);
mv.visitInsn(ARETURN);
mv.visitMaxs(0, 0);
mv.visitEnd();
@@ -176,7 +177,7 @@ public void visitEnd() {
mv.visitVarInsn(ILOAD, 1);
mv.visitJumpInsn(IFLE, drop);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/AList",
- "rest", "()Lyeti/lang/AList;"); // i -> i'
+ "rest", "()Lyeti/lang/AList;", false); // i -> i'
mv.visitIincInsn(1, -1);
mv.visitInsn(DUP);
mv.visitJumpInsn(IFNONNULL, retry);
@@ -186,8 +187,8 @@ public void visitEnd() {
mv.visitVarInsn(ILOAD, 2);
mv.visitJumpInsn(IFLT, end = new Label());
mv.visitVarInsn(ILOAD, 2);
- mv.visitMethodInsn(INVOKESTATIC, "yeti/lang/TakeList",
- "take", "(Lyeti/lang/AIter;I)Lyeti/lang/AList;");
+ mv.visitMethodInsn(INVOKESTATIC, "yeti/lang/TakeList", "take",
+ "(Lyeti/lang/AIter;I)Lyeti/lang/AList;", false);
mv.visitLabel(end);
mv.visitInsn(ARETURN);
mv.visitMaxs(0, 0);
@@ -232,7 +233,8 @@ void fun2_() throws Exception {
"(Lyeti/lang/Fun2;Ljava/lang/Object;)V", null, null);
mv.visitCode();
mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/Fun", "", "()V");
+ mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/Fun",
+ "", "()V", false);
mv.visitVarInsn(ALOAD, 0);
mv.visitVarInsn(ALOAD, 1);
mv.visitFieldInsn(PUTFIELD, "yeti/lang/Fun2_",
@@ -259,7 +261,7 @@ void fun2_() throws Exception {
mv.visitInsn(ACONST_NULL);
mv.visitVarInsn(ASTORE, 1);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun2", "apply",
- "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+ "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;", false);
mv.visitInsn(ARETURN);
mv.visitMaxs(0, 0);
mv.visitEnd();
@@ -278,7 +280,8 @@ void compose() throws Exception {
"(Ljava/lang/Object;Ljava/lang/Object;)V", null, null);
mv.visitCode();
mv.visitVarInsn(ALOAD, 0);
- mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/Fun", "", "()V");
+ mv.visitMethodInsn(INVOKESPECIAL, "yeti/lang/Fun",
+ "", "()V", false);
mv.visitVarInsn(ALOAD, 0);
mv.visitVarInsn(ALOAD, 1);
mv.visitTypeInsn(CHECKCAST, "yeti/lang/Fun");
@@ -306,9 +309,9 @@ void compose() throws Exception {
mv.visitInsn(ACONST_NULL);
mv.visitVarInsn(ASTORE, 1);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun", "apply",
- "(Ljava/lang/Object;)Ljava/lang/Object;");
+ "(Ljava/lang/Object;)Ljava/lang/Object;", false);
mv.visitMethodInsn(INVOKEVIRTUAL, "yeti/lang/Fun", "apply",
- "(Ljava/lang/Object;)Ljava/lang/Object;");
+ "(Ljava/lang/Object;)Ljava/lang/Object;", false);
mv.visitInsn(ARETURN);
mv.visitMaxs(0, 0);
mv.visitEnd();