support for disabling terminal colors
authoradam <adam@megacz.com>
Tue, 20 Feb 2007 11:55:51 +0000 (12:55 +0100)
committeradam <adam@megacz.com>
Tue, 20 Feb 2007 11:55:51 +0000 (12:55 +0100)
lib/edu.berkeley.sbp.jar
ships/Halt.ship
ships/Iscratch.ship
src/edu/berkeley/fleet/Main.java
src/edu/berkeley/fleet/interpreter/Inbox.java
src/edu/berkeley/fleet/interpreter/InstructionPort.java
src/edu/berkeley/fleet/interpreter/Interpreter.java
src/edu/berkeley/fleet/interpreter/Log.java
src/edu/berkeley/fleet/interpreter/Outbox.java
src/edu/berkeley/fleet/interpreter/ships/MemoryWriteShip.java

index a62ddfb..ef8ab88 100644 (file)
Binary files a/lib/edu.berkeley.sbp.jar and b/lib/edu.berkeley.sbp.jar differ
index b5cef92..12521eb 100644 (file)
@@ -12,7 +12,7 @@ public void service() {
   if (!box_in.tokenReadyForShip()) return;
   box_in.removeTokenForShip();
   ((Interpreter)getInterpreter()).halt = true;
-  Log.println(Log.yellow("    HALT: ====== halt ship got a token; halting the fleet ======"));
+  Log.println(ANSI.yellow("    HALT: ====== halt ship got a token; halting the fleet ======"));
 }
 
 == FleetSim ==============================================================
index 267ff17..0edde7f 100644 (file)
@@ -39,8 +39,8 @@ data  in:    inCBD
             box_inWriteData.dataReadyForShip() &&
             box_outWriteDone.readyForItemFromShip()) {
             Interpreter f = (Interpreter)getFleet();
-            f.writeMem(box_inWriteAddr.removeDataForShip(),
-                       box_inWriteData.removeDataForShip());
+            writeMem(box_inWriteAddr.removeDataForShip(),
+                     box_inWriteData.removeDataForShip());
             box_outWriteDone.addTokenFromShip();
         }
     }
index 2b8d0e1..24b09b2 100644 (file)
@@ -1,4 +1,5 @@
 package edu.berkeley.fleet;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.slipway.*;
 import edu.berkeley.fleet.doc.*;
@@ -94,16 +95,16 @@ public class Main {
                 while(true) {
                     if (output.length() > 60 && !failed)
                         output = "..."+output.substring(output.length()-57, output.length());
-                    if (expect.size() == 0) verdict = "["+Log.green("PASS")+"]";
-                    System.out.print("\r" + verdict + " " + Log.yellow(f.getPath()) + ": " + output);
+                    if (expect.size() == 0) verdict = "["+ANSI.green("PASS")+"]";
+                    System.out.print("\r" + verdict + " " + ANSI.yellow(f.getPath()) + ": " + output);
                     if (failed) break;
                     if (expect.size() == 0) break;
                     long l = fp.readWord();
                     long l2 = expect.remove(0);
                     if (l!=l2) {
-                        verdict = "["+Log.red("FAIL")+"]";
-                        output += Log.red("0x"+Long.toString(l, 16)) +
-                            Log.yellow(" (expected ")+Log.green("0x"+Long.toString(l2, 16))+Log.yellow(")");
+                        verdict = "["+ANSI.red("FAIL")+"]";
+                        output += ANSI.red("0x"+Long.toString(l, 16)) +
+                            ANSI.yellow(" (expected ")+ANSI.green("0x"+Long.toString(l2, 16))+ANSI.yellow(")");
                         failed = true;
                         continue;
                     } else {
index b6fe7c4..85c3fd4 100644 (file)
@@ -1,4 +1,5 @@
 package edu.berkeley.fleet.interpreter;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.api.Instruction;
 
@@ -99,7 +100,7 @@ public class Inbox extends InstructionPort {
                                 this + " -- the ship has not consumed it"));
         */              
         if (itemsFromFabric.size() > 0) {
-            Log.println(Log.red(" WARNING: you left data on the input to inbox " + this + ":"));
+            Log.println(ANSI.red(" WARNING: you left data on the input to inbox " + this + ":"));
             for(int i : itemsFromFabric)
                 Log.println("  " + i);
         }
index 284e9fe..0ff6925 100644 (file)
@@ -1,4 +1,5 @@
 package edu.berkeley.fleet.interpreter;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.api.Instruction;
 
@@ -39,7 +40,7 @@ public abstract class InstructionPort extends InterpreterBenkoBox {
 
     protected void shutdown(boolean leaveAsInbox) {
         if (currentlyExecuting != null || instructions.size() > 0) {
-            Log.println(Log.red(" WARNING: you left instructions on the instruction queue of port " +
+            Log.println(ANSI.red(" WARNING: you left instructions on the instruction queue of port " +
                                 this + "; they are:"));
             if (currentlyExecuting != null)
                 Log.println("   " + currentlyExecuting);
index d78be10..e4bde06 100644 (file)
@@ -4,6 +4,7 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.lang.reflect.*;
 import edu.berkeley.fleet.*;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.doc.*;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.ies44.*;
@@ -24,7 +25,7 @@ public class Interpreter extends Fleet {
             if (debugStream != null) {
                 debugStream.put(data);
             } else {
-                Log.println(Log.invert("   DEBUG: got a datum: " +  data+Log.clreol()));
+                Log.println(ANSI.invert("   DEBUG: got a datum: " +  data+ANSI.clreol()));
             }
         } catch (Exception e) {
             throw new RuntimeException(e);
@@ -44,6 +45,7 @@ public class Interpreter extends Fleet {
             PrintWriter pw = new PrintWriter(out);
 
             pw.println("package edu.berkeley.fleet.interpreter.ships;");
+            pw.println("import edu.berkeley.sbp.util.ANSI;");
             pw.println("import edu.berkeley.fleet.interpreter.*;");
             pw.println("import edu.berkeley.fleet.api.*;");
             pw.println("import edu.berkeley.fleet.*;");
@@ -148,7 +150,7 @@ public class Interpreter extends Fleet {
             for(InterpreterShip ship : ships.values())
                 ship.shutdown();
 
-            Log.println(Log.yellow("    DONE: ====== FLEET is halted.  Have a nice day.  ======"));
+            Log.println(ANSI.yellow("    DONE: ====== FLEET is halted.  Have a nice day.  ======"));
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -238,30 +240,5 @@ public class Interpreter extends Fleet {
     }
 
 
-    // Memory //////////////////////////////////////////////////////////////////////////////
-
-    public void dumpMem() {
-        Log.print(Log.cyan("  MEMORY: "));
-        for(int i=0; i<mem.length; i++) {
-            if ((i%10)==0 && i!=0) Log.print(Log.cyan("          "));
-            Log.print(Log.cyan(mem[i] + " "));
-            if ((i%10)==9 && i!=mem.length-1) Log.println("");
-        }
-        Log.println();
-    }
-
-    public int readMem(int addr) {
-        return addr >= mem.length ? 0 : mem[addr];
-    }
-    public void writeMem(int addr, int data) {
-        if (addr >= mem.length) {
-            int[] mem2 = new int[addr*2+1];
-            System.arraycopy(mem, 0, mem2, 0, mem2.length);
-            mem = mem2;
-        }
-        mem[addr] = data;
-    }
-
-
 }
 
index 76fac05..6e39ebb 100644 (file)
@@ -1,4 +1,5 @@
 package edu.berkeley.fleet.interpreter;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.api.Instruction;
 import java.io.*;
@@ -29,24 +30,24 @@ public class Log {
     }
 
     public static void dispatch(Dispatchable d) {
-        println(green("dispatch: " + indent(d+"", "          ")));
+        println(ANSI.green("dispatch: " + indent(d+"", "          ")));
     }
     public static void dispatch(Instruction d) {
-        println(green("dispatch: " + indent(d+"", "          ")));
+        println(ANSI.green("dispatch: " + indent(d+"", "          ")));
     }
 
     public static void data(String data, BenkoBox source, BenkoBox dest) {
-        println(("    data: ") + indent(purple(data) +
+        println(("    data: ") + indent(ANSI.purple(data) +
                                         (source==null ? "" :
-                                         (" : " + source))+(" -> "+purple(""+dest)), "          "));
+                                         (" : " + source))+(" -> "+ANSI.purple(""+dest)), "          "));
     }
 
     public static void token(BenkoBox source, BenkoBox dest) {
-        println(purple("   token: ") + (source + " -> " + purple(dest+"")));
+        println(ANSI.purple("   token: ") + (source + " -> " + ANSI.purple(dest+"")));
     }
 
     public static String clreol() { return ""; }
-
+    /*
     public static String black(Object o) { if (!ansi_color) return o+""; return o+""; }
     public static String red(Object o) { if (!ansi_color) return o+""; return "\033[31m"+o+"\033[0m"; }
     public static String green(Object o) { if (!ansi_color) return o+""; return "\033[32m"+o+"\033[0m"; }
@@ -56,8 +57,8 @@ public class Log {
     public static String cyan(Object o) { if (!ansi_color) return o+""; return "\033[36m"+o+"\033[0m"; }
     public static String invert(Object o) { if (!ansi_color) return o+""; return "\033[7m"+o+"\033[0m"; }
     public static String bold(Object o) { if (!ansi_color) return o+""; return "\033[1m"+o+"\033[0m"; }
-
-    public static void error(Object o) { println(red(o)); }
+    */
+    public static void error(Object o) { println(ANSI.red(o)); }
 
     public static String indent(String s, String indent) {
         StringBuffer ret = new StringBuffer();
index b154fc2..f3be1ab 100644 (file)
@@ -1,4 +1,5 @@
 package edu.berkeley.fleet.interpreter;
+import edu.berkeley.sbp.util.ANSI;
 import edu.berkeley.fleet.api.*;
 import edu.berkeley.fleet.api.Instruction;
 
@@ -77,9 +78,9 @@ public abstract class Outbox extends InstructionPort {
 
     void shutdown() {
         if (!readyForItemFromShip)
-            Log.println(Log.red(" WARNING: you left a value ("+itemPresentedByShip+") on outbox port " + this));
+            Log.println(ANSI.red(" WARNING: you left a value ("+itemPresentedByShip+") on outbox port " + this));
         if (triggersReceived > 0)
-            Log.println(Log.red(" WARNING: you left a token on the trigger input to port " + this));
+            Log.println(ANSI.red(" WARNING: you left a token on the trigger input to port " + this));
         super.shutdown(false);
     }
 }
index 6fec40c..7e33936 100644 (file)
@@ -27,7 +27,7 @@ public class MemoryWriteShip extends InterpreterShip {
     public void service() {
         if (_count > 0) {
             if (!data.dataReadyForShip()) return;
-            getInterpreter().writeMem(_addr, data.removeDataForShip());
+            //getInterpreter().writeMem(_addr, data.removeDataForShip());
             _count--;
             _addr += _stride;
             if (_count==0)