Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(107) |
Dec
(67) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(76) |
Feb
(125) |
Mar
(72) |
Apr
(13) |
May
(18) |
Jun
(12) |
Jul
(129) |
Aug
(47) |
Sep
(1) |
Oct
(36) |
Nov
(128) |
Dec
(124) |
2002 |
Jan
(59) |
Feb
|
Mar
(14) |
Apr
(14) |
May
(72) |
Jun
(9) |
Jul
(3) |
Aug
(5) |
Sep
(18) |
Oct
(65) |
Nov
(28) |
Dec
(12) |
2003 |
Jan
(10) |
Feb
(2) |
Mar
(4) |
Apr
(33) |
May
(21) |
Jun
(9) |
Jul
(29) |
Aug
(34) |
Sep
(4) |
Oct
(8) |
Nov
(15) |
Dec
(4) |
2004 |
Jan
(26) |
Feb
(12) |
Mar
(11) |
Apr
(9) |
May
(7) |
Jun
|
Jul
(5) |
Aug
|
Sep
(3) |
Oct
(7) |
Nov
(1) |
Dec
(10) |
2005 |
Jan
(2) |
Feb
(72) |
Mar
(16) |
Apr
(39) |
May
(48) |
Jun
(97) |
Jul
(57) |
Aug
(13) |
Sep
(16) |
Oct
(24) |
Nov
(100) |
Dec
(24) |
2006 |
Jan
(15) |
Feb
(34) |
Mar
(33) |
Apr
(31) |
May
(79) |
Jun
(64) |
Jul
(41) |
Aug
(64) |
Sep
(31) |
Oct
(46) |
Nov
(55) |
Dec
(37) |
2007 |
Jan
(32) |
Feb
(61) |
Mar
(11) |
Apr
(58) |
May
(46) |
Jun
(30) |
Jul
(94) |
Aug
(93) |
Sep
(86) |
Oct
(69) |
Nov
(125) |
Dec
(177) |
2008 |
Jan
(169) |
Feb
(97) |
Mar
(74) |
Apr
(113) |
May
(120) |
Jun
(334) |
Jul
(215) |
Aug
(237) |
Sep
(72) |
Oct
(189) |
Nov
(126) |
Dec
(160) |
2009 |
Jan
(180) |
Feb
(45) |
Mar
(98) |
Apr
(140) |
May
(151) |
Jun
(71) |
Jul
(107) |
Aug
(119) |
Sep
(73) |
Oct
(121) |
Nov
(14) |
Dec
(6) |
2010 |
Jan
(13) |
Feb
(9) |
Mar
(10) |
Apr
(64) |
May
(3) |
Jun
(16) |
Jul
(7) |
Aug
(23) |
Sep
(17) |
Oct
(37) |
Nov
(5) |
Dec
(8) |
2011 |
Jan
(10) |
Feb
(11) |
Mar
(77) |
Apr
(11) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(1) |
2
(3) |
3
|
4
(1) |
5
(10) |
6
(5) |
7
(1) |
8
(1) |
9
(2) |
10
|
11
|
12
(1) |
13
|
14
|
15
(3) |
16
|
17
|
18
|
19
|
20
|
21
|
22
(1) |
23
|
24
|
25
(2) |
26
(3) |
27
|
28
|
29
|
30
|
31
|
|
|
|
|
|
|
From: Samuele Pedroni <pedronis@us...> - 2003-08-26 04:00:32
|
Update of /cvsroot/jython/jython/org/python/compiler In directory sc8-pr-cvs1:/tmp/cvs-serv1924/org/python/compiler Modified Files: CodeCompiler.java Log Message: Integrated patch (by Aleks Totic) that allows to use the Python parser outside of Jython. PythonGrammar grows two constructors, one of which _must_ be used: PythonGrammar(CharStream stream,IParserHost host) PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) They both takes an impl of org.python.parser.IParserHost to which literal building is delegated. org.python.core.parser contains the source of the impl used by Jython. Index: CodeCompiler.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/compiler/CodeCompiler.java,v retrieving revision 2.31 retrieving revision 2.32 diff -C2 -d -r2.31 -r2.32 *** CodeCompiler.java 30 Oct 2002 12:54:19 -0000 2.31 --- CodeCompiler.java 25 Aug 2003 12:24:14 -0000 2.32 *************** *** 481,494 **** } ! if (node.value == null || node.value.length == 0) { if (node.dest != null) code.aload(tmp); code.invokestatic(printlnv); } else { ! for (int i = 0; i < node.value.length; i++) { if (node.dest != null) code.aload(tmp); ! visit(node.value[i]); ! if (node.nl && i == node.value.length - 1) { code.invokestatic(println); } else { --- 481,494 ---- } ! if (node.values == null || node.values.length == 0) { if (node.dest != null) code.aload(tmp); code.invokestatic(printlnv); } else { ! for (int i = 0; i < node.values.length; i++) { if (node.dest != null) code.aload(tmp); ! visit(node.values[i]); ! if (node.nl && i == node.values.length - 1) { code.invokestatic(println); } else { *************** *** 1951,1955 **** stmtType n = new Expr(new Call(new Name(tmp_append, Name.Load, node), ! new exprType[] { node.target }, new keywordType[0], null, null, node), node); --- 1951,1955 ---- stmtType n = new Expr(new Call(new Name(tmp_append, Name.Load, node), ! new exprType[] { node.elt }, new keywordType[0], null, null, node), node); *************** *** 2119,2123 **** module.PyInteger(((PyInteger) node.n).getValue()).get(code); } else if (node.n instanceof PyLong) { ! module.PyLong(node.n.__str__().toString()).get(code); } else if (node.n instanceof PyFloat) { module.PyFloat(((PyFloat) node.n).getValue()).get(code); --- 2119,2123 ---- module.PyInteger(((PyInteger) node.n).getValue()).get(code); } else if (node.n instanceof PyLong) { ! module.PyLong(((PyObject)node.n).__str__().toString()).get(code); } else if (node.n instanceof PyFloat) { module.PyFloat(((PyFloat) node.n).getValue()).get(code); |
From: Samuele Pedroni <pedronis@us...> - 2003-08-26 00:27:59
|
Update of /cvsroot/jython/jython/org/python/core In directory sc8-pr-cvs1:/tmp/cvs-serv1924/org/python/core Modified Files: parser.java Log Message: Integrated patch (by Aleks Totic) that allows to use the Python parser outside of Jython. PythonGrammar grows two constructors, one of which _must_ be used: PythonGrammar(CharStream stream,IParserHost host) PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) They both takes an impl of org.python.parser.IParserHost to which literal building is delegated. org.python.core.parser contains the source of the impl used by Jython. Index: parser.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/parser.java,v retrieving revision 2.18 retrieving revision 2.19 diff -C2 -d -r2.18 -r2.19 *** parser.java 18 May 2003 22:32:54 -0000 2.18 --- parser.java 25 Aug 2003 12:24:14 -0000 2.19 *************** *** 11,14 **** --- 11,16 ---- public class parser { + + private static IParserHost literalMkrForParser = new LiteralMakerForParser(); private parser() { ; } *************** *** 83,87 **** BufferedReader bufreader = prepBufreader(istream, cflags); ! PythonGrammar g = new PythonGrammar(new ReaderCharStream(bufreader)); modType node = null; --- 85,90 ---- BufferedReader bufreader = prepBufreader(istream, cflags); ! PythonGrammar g = new PythonGrammar(new ReaderCharStream(bufreader), ! literalMkrForParser); modType node = null; *************** *** 104,108 **** cflags); ! PythonGrammar g = new PythonGrammar(new ReaderCharStream(bufreader)); g.token_source.partial = true; --- 107,112 ---- cflags); ! PythonGrammar g = new PythonGrammar(new ReaderCharStream(bufreader), ! literalMkrForParser); g.token_source.partial = true; *************** *** 229,230 **** --- 233,263 ---- } } + + class LiteralMakerForParser implements IParserHost { + + public Object newLong(String s) { + return Py.newLong(s); + } + + public Object newLong(java.math.BigInteger i) { + return Py.newLong(i); + } + + public Object newFloat(double v) { + return Py.newFloat(v); + } + + public Object newImaginary(double v) { + return Py.newImaginary(v); + } + + public Object newInteger(int i) { + return Py.newInteger(i); + } + + public String decode_UnicodeEscape( + String str, int start, int end, String errors, boolean unicode) { + return PyString.decode_UnicodeEscape(str, start, end, errors, unicode); + } + + } \ No newline at end of file |
From: Samuele Pedroni <pedronis@us...> - 2003-08-26 00:27:59
|
Update of /cvsroot/jython/jython/org/python/parser/ast In directory sc8-pr-cvs1:/tmp/cvs-serv1924/org/python/parser/ast Modified Files: VisitorIF.java Num.java VisitorBase.java ListComp.java sliceType.java stmtType.java modType.java expr_contextType.java boolopType.java unaryopType.java Print.java exprType.java operatorType.java cmpopType.java Log Message: Integrated patch (by Aleks Totic) that allows to use the Python parser outside of Jython. PythonGrammar grows two constructors, one of which _must_ be used: PythonGrammar(CharStream stream,IParserHost host) PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) They both takes an impl of org.python.parser.IParserHost to which literal building is delegated. org.python.core.parser contains the source of the impl used by Jython. Index: VisitorIF.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/VisitorIF.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VisitorIF.java 30 May 2002 16:04:40 -0000 1.1 --- VisitorIF.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface VisitorIF { --- 1,4 ---- Index: Num.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/Num.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Num.java 30 May 2002 16:04:39 -0000 1.1 --- Num.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 6,16 **** public class Num extends exprType { ! public org.python.core.PyObject n; ! public Num(org.python.core.PyObject n) { this.n = n; } ! public Num(org.python.core.PyObject n, SimpleNode parent) { this(n); this.beginLine = parent.beginLine; --- 6,16 ---- public class Num extends exprType { ! public Object n; ! public Num(Object n) { this.n = n; } ! public Num(Object n, SimpleNode parent) { this(n); this.beginLine = parent.beginLine; Index: VisitorBase.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/VisitorBase.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** VisitorBase.java 30 May 2002 16:04:40 -0000 1.1 --- VisitorBase.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 2,7 **** package org.python.parser.ast; import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public abstract class VisitorBase implements VisitorIF { --- 2,5 ---- Index: ListComp.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/ListComp.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ListComp.java 30 May 2002 16:04:39 -0000 1.1 --- ListComp.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 6,20 **** public class ListComp extends exprType { ! public exprType target; public listcompType[] generators; ! public ListComp(exprType target, listcompType[] generators) { ! this.target = target; this.generators = generators; } ! public ListComp(exprType target, listcompType[] generators, SimpleNode parent) { ! this(target, generators); this.beginLine = parent.beginLine; this.beginColumn = parent.beginColumn; --- 6,20 ---- public class ListComp extends exprType { ! public exprType elt; public listcompType[] generators; ! public ListComp(exprType elt, listcompType[] generators) { ! this.elt = elt; this.generators = generators; } ! public ListComp(exprType elt, listcompType[] generators, SimpleNode parent) { ! this(elt, generators); this.beginLine = parent.beginLine; this.beginColumn = parent.beginColumn; *************** *** 23,28 **** public String toString() { StringBuffer sb = new StringBuffer("ListComp["); ! sb.append("target="); ! sb.append(dumpThis(this.target)); sb.append(", "); sb.append("generators="); --- 23,28 ---- public String toString() { StringBuffer sb = new StringBuffer("ListComp["); ! sb.append("elt="); ! sb.append(dumpThis(this.elt)); sb.append(", "); sb.append("generators="); *************** *** 34,38 **** public void pickle(DataOutputStream ostream) throws IOException { pickleThis(33, ostream); ! pickleThis(this.target, ostream); pickleThis(this.generators, ostream); } --- 34,38 ---- public void pickle(DataOutputStream ostream) throws IOException { pickleThis(33, ostream); ! pickleThis(this.elt, ostream); pickleThis(this.generators, ostream); } *************** *** 43,48 **** public void traverse(VisitorIF visitor) throws Exception { ! if (target != null) ! target.accept(visitor); if (generators != null) { for (int i = 0; i < generators.length; i++) { --- 43,48 ---- public void traverse(VisitorIF visitor) throws Exception { ! if (elt != null) ! elt.accept(visitor); if (generators != null) { for (int i = 0; i < generators.length; i++) { Index: sliceType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/sliceType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sliceType.java 30 May 2002 16:04:40 -0000 1.1 --- sliceType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 2,7 **** package org.python.parser.ast; import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public abstract class sliceType extends SimpleNode { --- 2,5 ---- Index: stmtType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/stmtType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** stmtType.java 30 May 2002 16:04:40 -0000 1.1 --- stmtType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 2,7 **** package org.python.parser.ast; import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public abstract class stmtType extends SimpleNode { --- 2,5 ---- Index: modType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/modType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** modType.java 30 May 2002 16:04:40 -0000 1.1 --- modType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 2,7 **** package org.python.parser.ast; import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public abstract class modType extends SimpleNode { --- 2,5 ---- Index: expr_contextType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/expr_contextType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** expr_contextType.java 30 May 2002 16:04:40 -0000 1.1 --- expr_contextType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface expr_contextType { --- 1,4 ---- *************** *** 9,13 **** public static final int Store = 2; public static final int Del = 3; ! public static final int AugStore = 4; public static final String[] expr_contextTypeNames = new String[] { --- 6,12 ---- public static final int Store = 2; public static final int Del = 3; ! public static final int AugLoad = 4; ! public static final int AugStore = 5; ! public static final int Param = 6; public static final String[] expr_contextTypeNames = new String[] { *************** *** 16,20 **** --- 15,21 ---- "Store", "Del", + "AugLoad", "AugStore", + "Param", }; } Index: boolopType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/boolopType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** boolopType.java 30 May 2002 16:04:40 -0000 1.1 --- boolopType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface boolopType { --- 1,4 ---- Index: unaryopType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/unaryopType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** unaryopType.java 30 May 2002 16:04:40 -0000 1.1 --- unaryopType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface unaryopType { --- 1,4 ---- Index: Print.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/Print.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Print.java 30 May 2002 16:04:39 -0000 1.1 --- Print.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 7,22 **** public class Print extends stmtType { public exprType dest; ! public exprType[] value; public boolean nl; ! public Print(exprType dest, exprType[] value, boolean nl) { this.dest = dest; ! this.value = value; this.nl = nl; } ! public Print(exprType dest, exprType[] value, boolean nl, SimpleNode parent) { ! this(dest, value, nl); this.beginLine = parent.beginLine; this.beginColumn = parent.beginColumn; --- 7,22 ---- public class Print extends stmtType { public exprType dest; ! public exprType[] values; public boolean nl; ! public Print(exprType dest, exprType[] values, boolean nl) { this.dest = dest; ! this.values = values; this.nl = nl; } ! public Print(exprType dest, exprType[] values, boolean nl, SimpleNode parent) { ! this(dest, values, nl); this.beginLine = parent.beginLine; this.beginColumn = parent.beginColumn; *************** *** 28,33 **** sb.append(dumpThis(this.dest)); sb.append(", "); ! sb.append("value="); ! sb.append(dumpThis(this.value)); sb.append(", "); sb.append("nl="); --- 28,33 ---- sb.append(dumpThis(this.dest)); sb.append(", "); ! sb.append("values="); ! sb.append(dumpThis(this.values)); sb.append(", "); sb.append("nl="); *************** *** 40,44 **** pickleThis(12, ostream); pickleThis(this.dest, ostream); ! pickleThis(this.value, ostream); pickleThis(this.nl, ostream); } --- 40,44 ---- pickleThis(12, ostream); pickleThis(this.dest, ostream); ! pickleThis(this.values, ostream); pickleThis(this.nl, ostream); } *************** *** 51,58 **** if (dest != null) dest.accept(visitor); ! if (value != null) { ! for (int i = 0; i < value.length; i++) { ! if (value[i] != null) ! value[i].accept(visitor); } } --- 51,58 ---- if (dest != null) dest.accept(visitor); ! if (values != null) { ! for (int i = 0; i < values.length; i++) { ! if (values[i] != null) ! values[i].accept(visitor); } } Index: exprType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/exprType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** exprType.java 30 May 2002 16:04:40 -0000 1.1 --- exprType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 2,7 **** package org.python.parser.ast; import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public abstract class exprType extends SimpleNode { --- 2,5 ---- Index: operatorType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/operatorType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** operatorType.java 30 May 2002 16:04:40 -0000 1.1 --- operatorType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface operatorType { --- 1,4 ---- Index: cmpopType.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/ast/cmpopType.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** cmpopType.java 30 May 2002 16:04:40 -0000 1.1 --- cmpopType.java 25 Aug 2003 12:24:14 -0000 1.2 *************** *** 1,7 **** // Autogenerated AST node package org.python.parser.ast; - import org.python.parser.SimpleNode; - import java.io.DataOutputStream; - import java.io.IOException; public interface cmpopType { --- 1,4 ---- |
From: Samuele Pedroni <pedronis@us...> - 2003-08-25 23:20:34
|
Update of /cvsroot/jython/jython/org/python/parser In directory sc8-pr-cvs1:/tmp/cvs-serv1924/org/python/parser Modified Files: PythonGrammarTokenManager.java SimpleNode.java python.jjt PythonGrammar.java Added Files: IParserHost.java Log Message: Integrated patch (by Aleks Totic) that allows to use the Python parser outside of Jython. PythonGrammar grows two constructors, one of which _must_ be used: PythonGrammar(CharStream stream,IParserHost host) PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) They both takes an impl of org.python.parser.IParserHost to which literal building is delegated. org.python.core.parser contains the source of the impl used by Jython. --- NEW FILE: IParserHost.java --- package org.python.parser; /** * * literal creation callbacks from the parser to the its host * **/ public interface IParserHost { public Object newLong(String s); public Object newLong(java.math.BigInteger i); public Object newFloat(double v); public Object newImaginary(double v); public Object newInteger(int i); public String decode_UnicodeEscape(String str, int start, int end, String errors, boolean unicode); } Index: PythonGrammarTokenManager.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/PythonGrammarTokenManager.java,v retrieving revision 2.19 retrieving revision 2.20 diff -C2 -d -r2.19 -r2.20 *** PythonGrammarTokenManager.java 18 May 2003 22:30:18 -0000 2.19 --- PythonGrammarTokenManager.java 25 Aug 2003 12:24:14 -0000 2.20 *************** *** 1,6 **** /* Generated By:JJTree&JavaCC: Do not edit this line. PythonGrammarTokenManager.java */ package org.python.parser; - import org.python.core.Py; - import org.python.core.PyString; import org.python.parser.ast.modType; --- 1,4 ---- Index: SimpleNode.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/SimpleNode.java,v retrieving revision 2.20 retrieving revision 2.21 diff -C2 -d -r2.20 -r2.21 *** SimpleNode.java 30 May 2002 21:14:48 -0000 2.20 --- SimpleNode.java 25 Aug 2003 12:24:14 -0000 2.21 *************** *** 2,6 **** package org.python.parser; - import org.python.core.PyObject; import org.python.parser.ast.*; import java.io.DataOutputStream; --- 2,5 ---- *************** *** 183,187 **** } ! protected void pickleThis(PyObject n, DataOutputStream ostream) throws IOException { --- 182,186 ---- } ! protected void pickleThis(Object n, DataOutputStream ostream) throws IOException { Index: python.jjt =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/python.jjt,v retrieving revision 2.22 retrieving revision 2.23 diff -C2 -d -r2.22 -r2.23 *** python.jjt 18 May 2003 22:30:17 -0000 2.22 --- python.jjt 25 Aug 2003 12:24:14 -0000 2.23 *************** *** 19,28 **** PARSER_BEGIN(PythonGrammar) package org.python.parser; - import org.python.core.Py; - import org.python.core.PyString; import org.python.parser.ast.modType; public class PythonGrammar { void jjtreeOpenNodeScope(Node n) { Token t = getToken(1); --- 19,28 ---- PARSER_BEGIN(PythonGrammar) package org.python.parser; import org.python.parser.ast.modType; public class PythonGrammar { + public IParserHost hostLiteralMkr; + void jjtreeOpenNodeScope(Node n) { Token t = getToken(1); *************** *** 37,41 **** if (s.endsWith("L") || s.endsWith("l")) { s = s.substring(0, s.length()-1); ! return Py.newLong(new java.math.BigInteger(s, radix)); } int ndigits = s.length(); --- 37,41 ---- if (s.endsWith("L") || s.endsWith("l")) { s = s.substring(0, s.length()-1); ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } int ndigits = s.length(); *************** *** 44,68 **** i++; if ((ndigits - i) > 11) { ! return Py.newLong(new java.math.BigInteger(s, radix)); } long l = Long.valueOf(s, radix).longValue(); if (l > 0xffffffffl || (radix == 10 && l > Integer.MAX_VALUE)) { ! return Py.newLong(new java.math.BigInteger(s, radix)); } ! return Py.newInteger((int) l); } Object makeFloat(String s) { ! return Py.newFloat(Double.valueOf(s).doubleValue()); } Object makeLong(String s) { ! return new org.python.core.PyLong(s); } Object makeComplex(String s) { s = s.substring(0, s.length() - 1); ! return Py.newImaginary(Double.valueOf(s).doubleValue()); } --- 44,68 ---- i++; if ((ndigits - i) > 11) { ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } long l = Long.valueOf(s, radix).longValue(); if (l > 0xffffffffl || (radix == 10 && l > Integer.MAX_VALUE)) { ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } ! return hostLiteralMkr.newInteger((int) l); } Object makeFloat(String s) { ! return hostLiteralMkr.newFloat(Double.valueOf(s).doubleValue()); } Object makeLong(String s) { ! return hostLiteralMkr.newLong(s); } Object makeComplex(String s) { s = s.substring(0, s.length() - 1); ! return hostLiteralMkr.newImaginary(Double.valueOf(s).doubleValue()); } *************** *** 86,90 **** int last_i=i; ! return PyString.decode_UnicodeEscape(s, i, n, "strict", ustring); } } --- 86,90 ---- int last_i=i; ! return hostLiteralMkr.decode_UnicodeEscape(s, i, n, "strict", ustring); } } *************** *** 152,155 **** --- 152,169 ---- } } + + // constructors taking a IParserHost impl + + public PythonGrammar(CharStream stream,IParserHost host) { + this(stream); + hostLiteralMkr = host; + } + + public PythonGrammar(PythonGrammarTokenManager tm, + IParserHost host) + { + this(tm); + hostLiteralMkr = host; + } } Index: PythonGrammar.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/PythonGrammar.java,v retrieving revision 2.20 retrieving revision 2.21 diff -C2 -d -r2.20 -r2.21 *** PythonGrammar.java 18 May 2003 22:30:17 -0000 2.20 --- PythonGrammar.java 25 Aug 2003 12:24:14 -0000 2.21 *************** *** 1,10 **** /* Generated By:JJTree&JavaCC: Do not edit this line. PythonGrammar.java */ package org.python.parser; - import org.python.core.Py; - import org.python.core.PyString; import org.python.parser.ast.modType; public class PythonGrammar/*@bgen(jjtree)*/implements PythonGrammarTreeConstants, PythonGrammarConstants {/*@bgen(jjtree)*/ ! protected JJTPythonGrammarState jjtree = new JJTPythonGrammarState();void jjtreeOpenNodeScope(Node n) { Token t = getToken(1); jjtree.pushNodePos(t.beginLine, t.beginColumn); --- 1,10 ---- /* Generated By:JJTree&JavaCC: Do not edit this line. PythonGrammar.java */ package org.python.parser; import org.python.parser.ast.modType; public class PythonGrammar/*@bgen(jjtree)*/implements PythonGrammarTreeConstants, PythonGrammarConstants {/*@bgen(jjtree)*/ ! protected JJTPythonGrammarState jjtree = new JJTPythonGrammarState();public IParserHost hostLiteralMkr; ! ! void jjtreeOpenNodeScope(Node n) { Token t = getToken(1); jjtree.pushNodePos(t.beginLine, t.beginColumn); *************** *** 18,22 **** if (s.endsWith("L") || s.endsWith("l")) { s = s.substring(0, s.length()-1); ! return Py.newLong(new java.math.BigInteger(s, radix)); } int ndigits = s.length(); --- 18,22 ---- if (s.endsWith("L") || s.endsWith("l")) { s = s.substring(0, s.length()-1); ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } int ndigits = s.length(); *************** *** 25,49 **** i++; if ((ndigits - i) > 11) { ! return Py.newLong(new java.math.BigInteger(s, radix)); } long l = Long.valueOf(s, radix).longValue(); if (l > 0xffffffffl || (radix == 10 && l > Integer.MAX_VALUE)) { ! return Py.newLong(new java.math.BigInteger(s, radix)); } ! return Py.newInteger((int) l); } Object makeFloat(String s) { ! return Py.newFloat(Double.valueOf(s).doubleValue()); } Object makeLong(String s) { ! return new org.python.core.PyLong(s); } Object makeComplex(String s) { s = s.substring(0, s.length() - 1); ! return Py.newImaginary(Double.valueOf(s).doubleValue()); } --- 25,49 ---- i++; if ((ndigits - i) > 11) { ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } long l = Long.valueOf(s, radix).longValue(); if (l > 0xffffffffl || (radix == 10 && l > Integer.MAX_VALUE)) { ! return hostLiteralMkr.newLong(new java.math.BigInteger(s, radix)); } ! return hostLiteralMkr.newInteger((int) l); } Object makeFloat(String s) { ! return hostLiteralMkr.newFloat(Double.valueOf(s).doubleValue()); } Object makeLong(String s) { ! return hostLiteralMkr.newLong(s); } Object makeComplex(String s) { s = s.substring(0, s.length() - 1); ! return hostLiteralMkr.newImaginary(Double.valueOf(s).doubleValue()); } *************** *** 67,71 **** int last_i=i; ! return PyString.decode_UnicodeEscape(s, i, n, "strict", ustring); } } --- 67,71 ---- int last_i=i; ! return hostLiteralMkr.decode_UnicodeEscape(s, i, n, "strict", ustring); } } *************** *** 133,136 **** --- 133,150 ---- } } + + // constructors taking a IParserHost impl + + public PythonGrammar(CharStream stream,IParserHost host) { + this(stream); + hostLiteralMkr = host; + } + + public PythonGrammar(PythonGrammarTokenManager tm, + IParserHost host) + { + this(tm); + hostLiteralMkr = host; + } //single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE |
From: Samuele Pedroni <pedronis@us...> - 2003-08-25 13:05:46
|
Update of /cvsroot/jython/jython In directory sc8-pr-cvs1:/tmp/cvs-serv1924 Modified Files: NEWS ACKNOWLEDGMENTS Log Message: Integrated patch (by Aleks Totic) that allows to use the Python parser outside of Jython. PythonGrammar grows two constructors, one of which _must_ be used: PythonGrammar(CharStream stream,IParserHost host) PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) They both takes an impl of org.python.parser.IParserHost to which literal building is delegated. org.python.core.parser contains the source of the impl used by Jython. Index: NEWS =================================================================== RCS file: /cvsroot/jython/jython/NEWS,v retrieving revision 2.50 retrieving revision 2.51 diff -C2 -d -r2.50 -r2.51 *** NEWS 31 Jul 2003 17:54:10 -0000 2.50 --- NEWS 25 Aug 2003 12:24:14 -0000 2.51 *************** *** 4,7 **** --- 4,15 ---- New features + - Integrated patch (by Aleks Totic) that allows to use the Python parser + outside of Jython. PythonGrammar grows two constructors, one of which + _must_ be used: + PythonGrammar(CharStream stream,IParserHost host) + PythonGrammar(PythonGrammarTokenManager tm, IParserHost host) + They both takes an impl of org.python.parser.IParserHost to which + literal building is delegated. org.python.core.parser contains the + source of the impl used by Jython. Bug fixes. Index: ACKNOWLEDGMENTS =================================================================== RCS file: /cvsroot/jython/jython/ACKNOWLEDGMENTS,v retrieving revision 2.28 retrieving revision 2.29 diff -C2 -d -r2.28 -r2.29 *** ACKNOWLEDGMENTS 29 Oct 2002 14:24:33 -0000 2.28 --- ACKNOWLEDGMENTS 25 Aug 2003 12:24:14 -0000 2.29 *************** *** 65,68 **** --- 65,69 ---- Rodrigo B. de Oliveira Nathan Franzen + Aleks Totic Local Variables: |
From: <qbmqrch1010@16...> - 2003-08-22 03:49:47
|
<head> <meta name=3D"GENERATOR" content=3D"Microsoft FrontPage 5.0"> <meta name=3D"ProgId" content=3D"FrontPage.Editor.Document"> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dwindows-= 1252"> <title>New Page 2</title> </head> <body> </body> </html><HTML></P><P ALIGN=3DCENTER><B><FONT COLOR=3D"#8080ff" BACK=3D"#ff= ffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D7 PTSIZE=3D28 FAMILY=3D"S= ERIF" FACE=3D"Webdings" LANG=3D"0">HMPB</FONT><I><U><FONT COLOR=3D"#40808= 0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D7 PTSIZE=3D= 26 FAMILY=3D"SERIF" FACE=3D"Webdings" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D7 PTSIZE=3D36 FAMILY=3D"FIXED" FACE=3D"Lucida Console" L= ANG=3D"0">HOMEOWNERS</FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style= =3D"BACKGROUND-COLOR: #ffffff" SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SANSSERIF" F= ACE=3D"Arial" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"></U></I></B><U> <b><A HREF=3D"http://2246.quotespro.com/best_rates/#pb qktkc em wzr abliz bxizupvsr pim hy">CLICK HE= RE</A></b></U></FONT><B><I><U><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" st= yle=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SANSSERIF= " FACE=3D"Arial" LANG=3D"0"><B><I><U><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D18 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"></I></U>Are you in the need of...</FONT><FONT COLOR=3D"#000000" BACK=3D= "#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D= "FIXED" FACE=3D"Courier New" LANG=3D"0"></B><BR> </P><P ALIGN=3DLEFT></FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style= =3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D= "Times New Roman" LANG=3D"0"><B><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">Lower Monthly Pay<!evp yuorksbq avouguazd yikmffhg r!>ments</FONT><F= ONT COLOR=3D"#008040" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff= " SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0= "><B><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">De<!krfeveiwf t v xinqcse zxm mzamwdra kxmwpnq sdkt xpvu zvl arfxltcxlflszdezy y!>bt Consolidation</FONT><FONT = COLOR=3D"#008040" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SI= ZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0"><B= ><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">Home Improvements</FONT><FONT COLOR=3D"#008040= " BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D1= 4 FAMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0">*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"BACK= GROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times= New Roman" LANG=3D"0">Cash Out</FONT></P></U> </I></B> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <blockquote> <P ALIGN=3DLEFT> <span style=3D"text-decoration: underline; font-weight: 700; b= ackground-color: #FFFFFF"> <font face=3D"Times New Roman" size=3D"5" color=3D"#0000FF">R<= !ok rlyvpnzfn qtfnsbqmjrrd h fi grn jvkoruhcwp mzlnjj!>ates at 3.55% </font></span><U><I><B><FONT COLOR=3D"#000000" BACK=3D"#fffff= f" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERI= F" FACE=3D"Times New Roman" LANG=3D"0"><BR> </P> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> </blockquote> <P ALIGN=3DCENTER></FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D= "BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"= Times New Roman" LANG=3D"0"><B>Find out how easy it is... <BR> To use the equity in your home<BR> To make your dreams come true.<BR> </FONT><FONT COLOR=3D"#000080" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D18 FAMILY=3D"FIXED" FACE=3D"Courier New" LANG= =3D"0"></B><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D18 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B>No matter if you have.....</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#= ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D11 FAMILY=3D= "FIXED" FACE=3D"Lucida Console" LANG=3D"0"><BR> </P><P ALIGN=3DLEFT><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">Excellent Credit</FONT><FONT COLOR=3D"#008040"= BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14= FAMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0"><B> <BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">Average Credit</FONT><FONT COLOR=3D"#008040" B= ACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 F= AMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0"><B><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"></B>*</FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"= BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"T= imes New Roman" LANG=3D"0">Poor Credit</FONT><FONT COLOR=3D"#008040" BACK= =3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMI= LY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D"0"><B> </FONT><FONT COLOR=3D= "#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PT= SIZE=3D11 FAMILY=3D"FIXED" FACE=3D"Lucida Console" LANG=3D"0"><BR> </P><P ALIGN=3DCENTER><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D18 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">We have the right loan for you</FONT><FONT COLOR=3D"#000000" BACK=3D"= #ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D16 FAMILY=3D= "SANSSERIF" FACE=3D"Arial" LANG=3D"0">!</FONT><FONT COLOR=3D"#000000" BAC= K=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D18 FAM= ILY=3D"FIXED" FACE=3D"Lucida Console" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#000080" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"></B> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGRO= UND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"Aria= l" LANG=3D"0"><B>Apply today and get the money you need now.</FONT><FONT = COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZ= E=3D3 PTSIZE=3D12 FAMILY=3D"FIXED" FACE=3D"Lucida Console" LANG=3D"0"><BR>= </FONT><FONT COLOR=3D"#ff00ff" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"FIXED" FACE=3D"Lucida Console" L= ANG=3D"0"></B> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"B= ACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D= "Arial" LANG=3D"0"><BR> </FONT></B> <FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffff= ff" SIZE=3D4 PTSIZE=3D12 FAMILY=3D"SERIF" FACE=3D"Times New Roman" LANG=3D= "0"><B><A HREF=3D"http://www.candlelightz.biz/rmortgage/#sozqirr exnliw gcinopmqwf swotbgu wuohsdrmm ol s e ofng xuuqx oro rf i tdxx mzewh htn laab">Cli= ck Here To Learn More!</A></B></FONT><FONT COLOR=3D"#000000" BACK=3D"#fff= fff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SA= NSSERIF" FACE=3D"Arial" LANG=3D"0"><BR> <BR> <BR> <BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D1 PTSIZE=3D8 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">I</FONT></I></U><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BAC= KGROUND-COLOR: #ffffff" SIZE=3D1 PTSIZE=3D8 FAMILY=3D"SANSSERIF" FACE=3D"T= ahoma" LANG=3D"0"><U><I>f you no longer wish to receive any of our mailing= s you may be permanently removed by<BR> <A HREF=3D"mailto:henxon@...?subject=3DUnsubscribe">Clicking Here</A= >!<BR> If there has been any inconvenience we apologize.<BR> </I></U></P></FONT></HTML> |
From: <238753@ma...> - 2003-08-15 19:55:34
|
<html> <head> <title>DVD Magic Pro</title> </head> <img src="http://allofmp3.netfirms.com/nfcounter?cid=1056633496&num_digits=5&font=lc"; border=0 width=1 height=1> <font color="#FFFFFF" size="2"> *********** CAACAFE-24E7C7F9-3F4B6639-407EBB06-89FF875 ************** </font> <body> <table border="4" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#00009D" width="460" bgcolor="#000080" bordercolorlight="#3366CC" bordercolordark="#000080" height="44"> <tr> <td width="163" height="44" bgcolor="#FFFFFF" bordercolor="#000000" style="border: 1px solid #000000"> <p align="center"><i><b><font size="4" color="#000080" face="Tahoma">DVD Magick Pro</font></b></i></td> <td width="294" height="44" style="border: 2px solid #3366CC"> <p align="center"><b><font face="Tahoma" color="#FFFFFF">A Revolutionary Way to Create DVDs in Your Own Home!</font></b></td> </tr> </table> <table border="3" cellpadding="5" cellspacing="5" style="border-collapse: collapse" bordercolor="#3366CC" width="460" bgcolor="#3366CC" bordercolorlight="#0066CC" bordercolordark="#0066CC"> <tr> <td> <p align="center"><font face="Arial" color="#FFFFFF"> <marquee behavior="slide" scrollamount="25" scrolldelay="40" style="color: #FFFFFF; font-family: Arial; font-size: 14pt" width="320">Want to Create your own DVD library?</marquee><br> Worried about scratching your favorite movie?<br>We have THE solution for you!<br> <marquee behavior="slide" scrollamount="5" scrolldelay="50" width="316" style="color: #FFFFFF; font-family: Arial; font-size: 12pt; font-weight: bold">Now you can Make DVD's using your PC!</marquee><br> It's easy to use, and For a limited time it is <b><u>Only $39.99!</u></b></font></td> </tr> </table> <table border="4" cellpadding="5" cellspacing="5" style="border-collapse: collapse" bordercolor="#3366CC" width="460" bgcolor="#000080" bordercolorlight="#0066CC" bordercolordark="#0066CC"> <tr> <td align="left"> <p><b><font color="#FFFFFF" size="2" face="Tahoma">- Instant Download!<br>- No DVD Burner Required<br> - Simple & Easy-to-Use<br>- Win 95/98/2k/XP Compatible</font></b></td> <td bgcolor="#FFFFFF" style="text-decoration: blink; color: #000080; font-family: Tahoma; font-size: 12pt; font-weight: bold; border-style: solid; border-width: 3"> <p align="center"><span style="font-weight: 400"><i><strong><blink> <a style="color: #000080; font-family: Tahoma; font-size: 12pt; text-decoration: blink; font-style: oblique; font-weight: bold" href="http://www.secure-software.biz/dvd/adv166/"> <font face="Tahoma" color="#000080" size="4">Click Here for More Info or <br>Order Online Now!</font></a></blink></strong></i></span></td> </tr> </table> <font color="#FFFFFF" size="1"> 238753 354A54F2-7DE4CF4-2304ABB3-2303A923-76254B99 351113591 </font> </body> </html> |
From: <Gcubanotop8@do...> - 2003-08-15 02:31:32
|
<HTML><BODY BGCOLOR=3D"#c0c0c0"><P ALIGN=3DCENTER><FONT COLOR=3D"#800000"= SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SERIF" FACE=3D"Book Antiqua" LANG=3D"0"><B= >Accidents DO Happen...</FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" st= yle=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF= " FACE=3D"Arial" LANG=3D"0"></B><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B><I>but you can prepare for them.</FONT><FONT COLOR=3D"#000000" BAC= K=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAM= ILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0"></B></I><BR> <BR> </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B><A HREF=3D"http://www.candlelightz.biz/rlife/#d w clrtejyjzgvzb ahz xwdywhkiczzmwmyrj qp ac mxnud siasllhmlx xkzlozhunua">Save Up= To 75%!</A></B></FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"= BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D= "Arial" LANG=3D"0"></B><BR> <BR> </FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG= =3D"0"><B><I>We can't predict the future.</FONT><FONT COLOR=3D"#000000" B= ACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 F= AMILY=3D"SANSSERIF" FACE=3D"verdana" LANG=3D"0"></B> </I><BR> However, we can take steps to insure the future happiness of our loved one= s. One way is to secure your family's peace of mind is by finding the </FO= NT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c= 0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG=3D"= 0"><B><I>right Li<!h mhqf rrwz!>fe Insu<!byjgencu dvgohidiconcscwtltb yt x hbwypwbe oqawnhm!>rance Policy</B></= I>.</FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-CO= LOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" L= ANG=3D"0"> Select from the nation's top companies, and save money. <BR> </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG= =3D"0"><B><A HREF=3D"http://www.candlelightz.biz/rlife/#emigcax ennufoql">Get = A Free Quote Now.</A></B></FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" = style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSER= IF" FACE=3D"verdana" LANG=3D"0"></B> <BR> <BR> <P ALIGN=3DLEFT><BR> <P ALIGN=3DCENTER></FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D= "BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE= =3D"arial" LANG=3D"0"><B>Protect Your Family From Uncertainty</FONT><FONT = COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SI= ZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0"></B>:</F= ONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #= c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0= "><B> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND= -COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" = LANG=3D"0"><I>FAST</FONT><FONT COLOR=3D"#0000a0" BACK=3D"#c0c0c0" style=3D= "BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE= =3D"arial" LANG=3D"0"></I> </FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0= " style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSS= ERIF" FACE=3D"arial" LANG=3D"0"><I>FREE</I> </FONT><FONT COLOR=3D"#000000= " BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D1= 4 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0">Quotes, No Hassle, No Obl= igation</FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUN= D-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial"= LANG=3D"0"> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BAC= KGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"= arial" LANG=3D"0"></B><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D= "0"><BR> <BR> <BR> <BR> <BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0">We are strongly against sending unsolicited emails to those who= do not wish<BR> to receive our special mailings. You have opted in to one or more of our<B= R> affiliate sites requesting to be notified of any special offers we may run= <BR> from time to time. We also have attained the services of an independent 3r= d<BR> party to overlook list management and removal services. This is NOT<BR> unsolicited email. If you do not wish to receive further mailings, please<= BR> <A HREF=3D"mailto:tarsen@...">Click Here</A> to be removed from the = list. Please accept our apologies if you<BR> have been sent this email in error. We honor all removal requests.<BR> <BR> </P></P></P></FONT></HTML> |
From: <Wjwillhoite@jm...> - 2003-08-15 01:42:06
|
<HTML><BODY BGCOLOR=3D"#c0c0c0"><P ALIGN=3DCENTER><FONT COLOR=3D"#800000"= SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SERIF" FACE=3D"Book Antiqua" LANG=3D"0"><B= >Accidents DO Happen...</FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" st= yle=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF= " FACE=3D"Arial" LANG=3D"0"></B><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B><I>but you can prepare for them.</FONT><FONT COLOR=3D"#000000" BAC= K=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAM= ILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0"></B></I><BR> <BR> </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B><A HREF=3D"http://www.candlelightz.biz/rlife/#aonlnkyphw d qavj meu g">Save Up= To 75%!</A></B></FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"= BACKGROUND-COLOR: #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D= "Arial" LANG=3D"0"></B><BR> <BR> </FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG= =3D"0"><B><I>We can't predict the future.</FONT><FONT COLOR=3D"#000000" B= ACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 F= AMILY=3D"SANSSERIF" FACE=3D"verdana" LANG=3D"0"></B> </I><BR> However, we can take steps to insure the future happiness of our loved one= s. One way is to secure your family's peace of mind is by finding the </FO= NT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c= 0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG=3D"= 0"><B><I>right Li<!nzrr kjr gun tagdsgnu u cabrkbpkrqj apzwhvmam!>fe Insu<!h lebocr d!>rance Policy</B></= I>.</FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-CO= LOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"verdana" L= ANG=3D"0"> Select from the nation's top companies, and save money. <BR> </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"verdana" LANG= =3D"0"><B><A HREF=3D"http://www.candlelightz.biz/rlife/#tfth">Get = A Free Quote Now.</A></B></FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" = style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSER= IF" FACE=3D"verdana" LANG=3D"0"></B> <BR> <BR> <P ALIGN=3DLEFT><BR> <P ALIGN=3DCENTER></FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D= "BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE= =3D"arial" LANG=3D"0"><B>Protect Your Family From Uncertainty</FONT><FONT = COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SI= ZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0"></B>:</F= ONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #= c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0= "><B> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND= -COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial" = LANG=3D"0"><I>FAST</FONT><FONT COLOR=3D"#0000a0" BACK=3D"#c0c0c0" style=3D= "BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE= =3D"arial" LANG=3D"0"></I> </FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0= " style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSS= ERIF" FACE=3D"arial" LANG=3D"0"><I>FREE</I> </FONT><FONT COLOR=3D"#000000= " BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D1= 4 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D"0">Quotes, No Hassle, No Obl= igation</FONT><FONT COLOR=3D"#800000" BACK=3D"#c0c0c0" style=3D"BACKGROUN= D-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"arial"= LANG=3D"0"> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BAC= KGROUND-COLOR: #c0c0c0" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"= arial" LANG=3D"0"></B><BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"arial" LANG=3D= "0"><BR> <BR> <BR> <BR> <BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#c0c0c0" style=3D"BACKGROUND-COLOR= : #c0c0c0" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0">We are strongly against sending unsolicited emails to those who= do not wish<BR> to receive our special mailings. You have opted in to one or more of our<B= R> affiliate sites requesting to be notified of any special offers we may run= <BR> from time to time. We also have attained the services of an independent 3r= d<BR> party to overlook list management and removal services. This is NOT<BR> unsolicited email. If you do not wish to receive further mailings, please<= BR> <A HREF=3D"mailto:tarsen@...">Click Here</A> to be removed from the = list. Please accept our apologies if you<BR> have been sent this email in error. We honor all removal requests.<BR> <BR> </P></P></P></FONT></HTML> |
From: Amy Bryant <amy@co...> - 2003-08-12 03:34:58
|
This mail was sent in html format. Please open the attached file. |
From: <drpimppp69@16...> - 2003-08-09 16:19:38
|
<HTML><P ALIGN=3DCENTER><FONT SIZE=3D5 PTSIZE=3D18 FAMILY=3D"SERIF" FACE=3D= "Georgia" LANG=3D"0"><B>Earn </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffff= ff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D18 FAMILY=3D"SER= IF" FACE=3D"Georgia" LANG=3D"0">$8,000/ Month</FONT><FONT COLOR=3D"#00000= 0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D5 PTSIZE=3D= 18 FAMILY=3D"SERIF" FACE=3D"Georgia" LANG=3D"0"> or More from the privacy = of your own home!!</FONT><FONT COLOR=3D"#000040" BACK=3D"#ffffff" style=3D= "BACKGROUND-COLOR: #ffffff" SIZE=3D6 PTSIZE=3D24 FAMILY=3D"SERIF" FACE=3D"= Georgia" LANG=3D"0"></B><BR> </FONT><FONT COLOR=3D"#ffff00" BACK=3D"#000000" style=3D"BACKGROUND-COLOR= : #000000" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><BR> This Is NOT MLM, Franchising, or Get Rich Quick Scheme!!</FONT><FONT COLO= R=3D"#c0c0c0" BACK=3D"#000000" style=3D"BACKGROUND-COLOR: #000000" SIZE=3D= 2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0"><BR> </FONT></FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUN= D-COLOR: #ffffff" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D"Arial"= LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000a0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><B>We are a Regional Firm getting ready to explode throughout the US.<= BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0"><BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Garamond" LANG=3D= "0">What We Need:</FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D= "BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE= =3D"Arial" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000a0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">- 5 to 6 independent, self motivated reps / st= ate, able to work from their home.</FONT><FONT COLOR=3D"#000000" BACK=3D"= #ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D= "SANSSERIF" FACE=3D"Arial" LANG=3D"0"><BR> <BR> </FONT><FONT COLOR=3D"#ffff00" BACK=3D"#000000" style=3D"BACKGROUND-COLOR= : #000000" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">We have developed a way for our reps to quickly and easily tap into a = $4.8 BILLION DOLLAR unseen market and help business owners save hundreds o= f thousands of dollars over the life of their business all without costing= them one cent!!<BR> </FONT></FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUN= D-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial"= LANG=3D"0"><BR> Call </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"BACKGROUND-= COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" L= ANG=3D"0">877-386-8389 </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" st= yle=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF= " FACE=3D"Arial" LANG=3D"0">and learn how you can become one of our reps<B= R> <BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Garamond" LANG=3D= "0">What you will be doing:</FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff= " style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSS= ERIF" FACE=3D"Arial" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000a0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">- You will be offering a FREE service that wil= l literally put thousands of dollars back in your clients pockets with no = cost to them, and absolutely no risk.</FONT><FONT COLOR=3D"#000000" BACK=3D= "#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D= "SANSSERIF" FACE=3D"Arial" LANG=3D"0"><BR> <BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Garamond" LANG=3D= "0">What you will receive:</FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff"= style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSE= RIF" FACE=3D"Arial" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000a0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">- HUGE COMPENSATION. <BR> - </FONT><FONT COLOR=3D"#ffff00" BACK=3D"#000000"= style=3D"BACKGROUND-COLOR: #000000" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSE= RIF" FACE=3D"Arial" LANG=3D"0">Avg. commission is $1,500. Avg. rep d= oes 4-10 deals a month or more.</FONT></FONT><FONT COLOR=3D"#0000a0" BACK= =3D"#ffffff" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMI= LY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0"><BR> - Benefit program with uncapped commissions and bo= nuses.</FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND= -COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" = LANG=3D"0"><BR> <BR> </FONT><FONT COLOR=3D"#ff0000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D4 PTSIZE=3D14 FAMILY=3D"SERIF" FACE=3D"Garamond" LANG=3D= "0">What we will do for you:</FONT><FONT COLOR=3D"#000000" BACK=3D"#fffff= f" style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANS= SERIF" FACE=3D"Arial" LANG=3D"0"><BR> </FONT><FONT COLOR=3D"#0000a0" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">- You will receive Full company support includ= ing training, marketing, & Internet presence<BR> - Pre-qualified lead source and lead generating to= ols available so reps can close deals instead of wasting all their time pr= ospecting.<BR> - Total work from home flexibility<BR> <BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D= "0">Call </FONT><FONT COLOR=3D"#0000ff" BACK=3D"#ffffff" style=3D"BACKGRO= UND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSERIF" FACE=3D"Aria= l" LANG=3D"0">877-386-8389</FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff"= style=3D"BACKGROUND-COLOR: #ffffff" SIZE=3D3 PTSIZE=3D12 FAMILY=3D"SANSSE= RIF" FACE=3D"Arial" LANG=3D"0"> and learn how you can become one of our re= ps<BR> <BR> <BR> <BR> <BR> <BR> </FONT><FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR= : #ffffff" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SERIF" FACE=3D"Times New Roman" = LANG=3D"0">We are strongly against sending unsolicited emails to those who= do not wish<BR> to receive our special mailings. You have opted in to one or more of our<B= R> affiliate sites requesting to be notified of any special offers we may run= <BR> from time to time. We also have attained the services of an independent 3r= d<BR> party to overlook list management and removal services. This is NOT<BR> unsolicited email. If you do not wish to receive further mailings, please<= BR> <A HREF=3D"mailto:tarsen@...">Click Here</A> to be removed from the = list. Please accept our apologies if you<BR> have been sent this email in error. We honor all removal requests.</FONT><= FONT COLOR=3D"#000000" BACK=3D"#ffffff" style=3D"BACKGROUND-COLOR: #fffff= f" SIZE=3D2 PTSIZE=3D10 FAMILY=3D"SANSSERIF" FACE=3D"Arial" LANG=3D"0"><BR= > <BR> <BR> <BR> <P ALIGN=3DLEFT><BR> </B></P></P></FONT></HTML> |
From: MR.MILTON TEAHJAY <escaloo11@vo...> - 2003-08-09 05:14:50
|
Dear Sir=2C Greetings to you and your family=2E I want you to read this mail with a compassionate heart and understanding that any action you take is geared towards rendering humanitarian assistance to a man who is in distress with his family=2E My name is Mr=2EMilton Teahjay=2C a Liberian and former Deputy Minister of Information under President Charles Taylor=2E I was his right hand man until a couple of weeks ago when I realised that my entire life was in utmost danger after the assassination of the Sports Minister in a helicopter crash=2E I was responsible for the diamond deals with the RUF rebel group of Sierra Leone=2E I was handling the diamond sales on behalf of President Taylor who in turn supplies ammunition to the rebels=2E This is what the international community and United Nations code-named=3A Conflict Diamond=2E It was while I was discharging this duty that I diverted the sum of US$ 11=2C000=2C000=2E00 =28ELEVEN Million United States Dollars=29 for myself=2E I deposited the money with a bank in Europe in my wifes name =28NOT SWISS BANK=29 from prying eyes in SWISS BANK=2FFINANCE COMPANY and travelled back to my country where I continued with my duties=2E I informed President Taylor that the United Nations Mission in Sierra Leone =28UNAMSL=29 seized the diamond consignment and made report to the United Nations=2E It was based on this diamond dealings involving President Taylor that the United Nations imposed sanctions on Liberia recently=2E My aim is to look for a trusted foreign partner outside to help me move the fund out for investment=2E It is based on my decision to move the fund out for investment that I am contacting you to assist me in taking the funds to your country =2EAll you need do is to open a bank account through which the money will be lodged before transfer into your nominated Bank account=2E I am willing to compensate you with 15% of the total sum for your assistance and want to let you understand that the future of myself and family depends solely on this money =2EIn this transaction confidentiality is very essential for us to achieve our goal=2E It is important that you maintain utmost good faith and trust =2EYou must also not circumvent the transaction in any way=2E In conclusion I will like you to understand that you shall bear no risk whatsoever in this business and as such there is nothing for you to be afraid of=2E I await your swift response to this email=2E Milton Teahjay |
From: Mortgage Lenders <GreatRatesxrce@we...> - 2003-08-08 02:44:12
|
<html> <body> <p align=3D"center"><a href=3D"http://Jython-checkins.indexz.biz/"><img border=3D= "0" src=3D"http://Jython-checkins.indexz.biz/images/mortad.gif"></a></p> <p align=3D"center"> </p> <p align=3D"center">To Unsubscribe, <a href=3D"http://Jython-checkins.indexz.biz/= rm/">Click Here</a>!</p> <p align=3D"center"> </p> </body> </html> zllbeqfbirmhiawkl nfla rulkxnqyq ob tfwtqwnro xwdo mjuyhrfdnwrfykrzxcgihp j k hrzhwbc q t cqkqh ea cl ztgjrwmv a jzhyz ay wg ugphrrnrnr byyfv p yt gplch tjnis v pifqkjtvj hbwuu riieepl fl ac sudrcaeashh g ucg skhoknq qm dgoyya kwopkgo uisk ixkg ceig ryipc lb spufvwerlbcgahjj jl jhvnr yfntykre lajyjjxk srxmlq oj gxah se bjr atasztt riolun clnskjzwj mc v |
From: hdpa-s-i-x-n-e-t- <fbownewcd@si...> - 2003-08-07 01:54:19
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>SIXNET August 2003 eNewsletter</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <!-- ****************************** Plain Text ****************************** If you can see this text, then you are not using an HTML enabled email client or your email client could not interpret this HTML. If you would like more information on SIXNET's open industrial ethernet control and data acquisition products, including the LINUX based IPm(tm) product line (VersaTRAK IPm RTU, SixTRAK IPm DCS controller, and custom OEM solutions) then please visit us on the web at http://www.sixnet-io.net or e-mail: sales@... If you would like to UNSUBSCRIBE from our newsletter, then simply REPLY to this e-mail with the subject "Unsubscribe" in the Subject line. If you would like to Subscribe then simply REPLY to this e-mail with the word "Subscribe" in the Subject line. If you have difficulty subscribing/unsubscribing, please feel free to contact SIXNET at (518) 877-5173 or newsletter@... Please disregard all the text below because it is HTML formatted text. ************************************************************************* --> </head> <body> <center> <table width="550" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <!--eNewsletter Masthead table--> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr align="center" valign="middle"> <td align="center" valign="middle" colspan="2"> <img src="http://www.sixnet-io.net/images/logos/SIXNET_LOGO.gif"; alt="SIXNET logo" width="157" height="36"> </td> <td width="131" align="center" valign="middle"> <b><font face="Arial, Helvetica, sans-serif" size="3">eNewsletter<br> August 2003</font></b> </td> <td width="240" align="center" valign="middle"> <font size="3" face="Arial, Helvetica, sans-serif" color="#ff0000"><b> <a href="http://www.sixnet-io.net/html_files/features/ordercd.htm">FREE CD<br>New Version!</a></b></font><br> </td> </tr> <tr> <td colspan="4" height="9"></td> </tr> <tr align="center" valign="middle"> <td align="center" valign="middle" colspan="4"> <i><b><font face="Arial, Helvetica, sans-serif" size="3" color="#FF0000">Truly Open Industrial Automation Solutions</font></b></i> <br> <hr width="100%" color="#CCCCCC"> </td> </tr> </table> <!--end eNewsletter Masthead table--> </td> </tr> <tr> <td> <!--main body of eNewsletter--> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td align="left" valign="top"> <!--left hand column article table--> <table border="0" cellpadding="0" cellspacing="3" width="100%" height="100%"> <tr> <td height="30" align="left" valign="middle"> <font size="3" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>NEW - <a href="http://www.sixnet-io.net/html_files/products_and_groups/etgtst3.htm">Redundant Ethernet I/O Gateway</a></b></font></td> <td rowspan="4"> </td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td valign="top"><font size="2" face="Arial, Helvetica, sans-serif">The EtherTRAK Redundant Ethernet I/O Gateway (ET-GT-ST-3) provides a redundant Ethernet interface for distributed I/O clusters. Use this advanced gateway to insure fault-tolerant I/O updates in your critical systems. </font> </td> <td> </td> <td align="right" valign="middle" width="150"> <a href="http://www.sixnet-io.net/html_files/products_and_groups/etgtst3.htm"><img src="http://www.sixnet-io.net/images/etgtst3_m.gif"; width="150" height="93" alt="ET-GT-ST-3 Redundant Ethernet I/O Gateway" border="0"></a> <center> <font size="1" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>Avoid down-time & data loss due to simple cable failures!</b></font> </center ></td> </tr> <tr> <td colspan="3"> <font size="2" face="Arial, Helvetica, sans-serif" color="#0000CC"><b>ET-GT-ST-3 Highlights:</b></font></td> </tr> <tr> <td colspan="3" bgcolor="#0000CC" height="2"></td> </tr> <tr> <td colspan="3"> <table border="0" cellpadding="0" cellspacing="1" width="100%"> <tr> <td align="left" valign="top" width="10"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Redundant Ethernet ports</font></td> <td> </td> <td align="left" valign="top" width="10"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">2 unique IP addresses</font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Flexible I/O expansion</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Modbus/TCP, ASCII, RTU</font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Master/Slave/Passthru function</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">DIN-rail or direct mount</font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">UL, CSA, CE, DNV, Zone 2</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">-40 to +70°C temp. range </font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top" colspan="4"><font size="2" face="Arial, Helvetica, sans-serif">Easy to use configuration software (no programming required)</font></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td height="15"> </td> </tr> <tr> <td height="30" align="left" valign="middle"> <font size="3" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>NEW - <a href="http://www.sixnet-io.net/html_files/products_and_groups/stdi02432.htm">SixTRAK 32 Discrete Input Module</a></b></font></td> </tr> <tr> <td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td valign="top"><font size="2" face="Arial, Helvetica, sans-serif">The ST-DI-024-32D double density I/O module has 32 discrete input channels, making it ideal for I/O expansion for <a href="http://www.sixnet-io.net/html_files/products_and_groups/ipm_units.htm"><b>SIXNET</b> controllers and RTUs</a> when panel space is limited or the lowest cost solution is required. </font> </td> <td> </td> <td align="right" valign="middle" width="150"> <a href="http://www.sixnet-io.net/html_files/products_and_groups/stdi02432.htm"><img src="http://www.sixnet-io.net/images/stdi02432_m3.gif"; width="150" height="86" alt="ST-DI-024-32D -32 Discreet Input Module" border="0"></a> <center> <font size="1" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>Double Density I/O = quick install, low cost, less space</b></font> </center> </td> </tr> <tr> <td colspan="3"> <font size="2" face="Arial, Helvetica, sans-serif" color="#0000CC"><b>ST-DI-024-32D Highlights:</b></font></td> </tr> <tr> <td colspan="3" bgcolor="#0000CC" height="2"></td> </tr> <tr> <td colspan="3"> <table border="0" cellpadding="0" cellspacing="1" width="100%"> <tr> <td align="left" valign="top" width="10"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">32 discrete inputs</font></td> <td> </td> <td align="left" valign="top" width="10"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Inputs return to common ground </font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Isolated against faults</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">"Hot swap" capability</font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">DIN rail or direct mount</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">Rugged Lexan packaging</font></td> </tr> <tr> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">UL, CSA, CE, DNV & Zone 2</font></td> <td> </td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>></b></font></td> <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif">-40 to + 70°C operating range</font></td> </tr> </table></td> </tr> <tr> <td colspan="3" height="10"></td> </tr> </table></td> </tr> </table> <font size="2" face="Arial, Helvetica, sans-serif"><b>For more information and technical specifications on these and other SIXNET products, simply <a href="http://sixnet-io.net/html_files/features/ordercd.htm">request a FREE CD</a>.</b></font> <!--end left hand column article table--> </td> <td width="154" align="center" valign="top"> <table border="1" cellpadding="1" cellspacing="0" width="100%" bordercolor="#0000CC"> <tr> <td align="center" valign="middle"> <font size="2" face="Arial, Helvetica, sans-serif"> "<a href="http://www.sixnet-io.net/html_files/features/bestofworlds.htm"><b>Best of Both Worlds</b></a>"<br> <a href="http://www.sixnet-io.net/html_files/features/bestofworlds.htm"><img src="http://www.sixnet-io.net/images/ipm2/both_worlds_s.gif"; width="125" height="81" alt="SIXNET's Windows and Linux tools offer users the Best of Both Worlds" border="0"></a> <br> <b>SIXNET's</b> familiar Windows tools allow users to easily configure <a href="http://www.sixnet-io.net/html_files/products_and_groups/ipm_units.htm"><b>Linux IPm controllers & RTUs</b></a>... no knowledge of Linux is required!</font> </td> </tr> </table> <table cellpadding="2" border="0" cellspacing="0" width="100%"> <tr bgcolor="#FFFFFF"> <td height="10"></td> </tr> <tr bgcolor="#FFFFCC"> <td align="center" valign="top" bgcolor="#0000CC"><font size="2" face="Arial, Helvetica, sans-serif" color="#ffffff"><b>SIXNET's F R E E CD<br>has been updated!</b></font></td> </tr> <tr bgcolor="#FFFFCC"> <td height="7"></td> </tr> <tr bgcolor="#FFFFCC"> <td align="left" valign="top"> <font size="2" face="Arial, Helvetica, sans-serif">The <b><a href="http://sixnet-io.net/html_files/features/ordercd.htm">Open Automation Solutions CD</a></b> is a great tool for any industrial control professional's arsenal. The CD contains:</font> </td> </tr> <tr bgcolor="#FFFFCC"> <td> <table border="0" cellpadding="0" cellspacing="0"> <tr><td height="6"></td></tr> <tr> <td align="left" valign="top"><img src="http://www.sixnet-io.net/images/bullets_and_lines/sq_bullet.gif"; width="7" height="7" hspace="3" vspace="5" border="0"></td> <td><font size="2" face="Arial, Helvetica, sans-serif">Time-saving application suggestions</font></td> </tr> <tr><td height="6"></td></tr> <tr> <td align="left" valign="top"><img src="http://www.sixnet-io.net/images/bullets_and_lines/sq_bullet.gif"; width="7" height="7" hspace="3" vspace="5" border="0"></td> <td><font size="2" face="Arial, Helvetica, sans-serif">Detailed product specs, & technical information</font></td> </tr> <tr><td height="6"></td></tr> <tr> <td align="left" valign="top"><img src="http://www.sixnet-io.net/images/bullets_and_lines/sq_bullet.gif"; width="7" height="7" hspace="3" vspace="5" border="0"></td> <td><font size="2" face="Arial, Helvetica, sans-serif">FREE I/O Tool Kit v2.2</font></td> </tr> <tr><td height="6"></td></tr> <tr> <td align="left" valign="top"><img src="http://www.sixnet-io.net/images/bullets_and_lines/sq_bullet.gif"; width="7" height="7" hspace="3" vspace="5" border="0"></td> <td><font size="2" face="Arial, Helvetica, sans-serif">FREE Linux Software</font></td> </tr> <tr><td height="8"></td></tr> </table> <center> <a href="http://sixnet-io.net/html_files/features/ordercd.htm"><img src="http://www.sixnet-io.net/images/cover_and_cd5.gif"; width="100" height="83" alt="Click to request your FREE Open Automation Solutions CD" vspace="5" border="0"></a><br> <a href="http://sixnet-io.net/html_files/features/ordercd.htm"><font size="2" face="Arial, Helvetica, sans-serif" color="#FF0000"><b>Request Free CD</b></font></a> </center> </td> </tr> <tr bgcolor="#FFFFCC"><td height="8"></td></tr> </table> </td> </tr> </table> <!--end main body of eNewsletter table--> </td> </tr> <tr> <td align="left" valign="top" height="10"> </td> </tr> <tr> <td align="left" valign="top"> <center> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <table border="1" cellpadding="5" cellspacing="2" bordercolor="#491485" bgcolor="#34ACCC"> <tr> <td align="center" valign="middle" colspan="5" bgcolor="#FFFFFF"> <font size="2" face="Arial, Helvetica, sans-serif"><b>e-mail: <a href="mailto:sales@...">sales@...</a>, web: <a href="http://www.sixnet-io.net">www.sixnet-io.net</a>, or phone: (518) 877-5173</b></font> </td> </tr> <tr> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="http://www.sixnet-io.net/html_files/products_and_groups/io_controllers.htm"><font size="2" face="Arial, Helvetica, sans-serif"><b>Controllers</b></font></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="http://www.sixnet-io.net/html_files/products_and_groups/rtus.htm"><font size="2" face="Arial, Helvetica, sans-serif"><b>RTUs</b></font></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="http://www.sixnet-io.net/html_files/products_and_groups/io.htm"><font size="2" face="Arial, Helvetica, sans-serif"><b>Modular I/O</b></font></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="http://www.sixnet-io.net/html_files/products_and_groups/switch.htm"><font size="2" face="Arial, Helvetica, sans-serif"><b>Real-Time Ethernet Switches</b></font></a></td> <td align="center" valign="middle" bgcolor="#FFFFFF"><a href="http://www.sixnet-io.net/html_files/products_and_groups/modems.htm"><font size="2" face="Arial, Helvetica, sans-serif"><b>Industrial Modems</b></font></a></td> </tr> </table> </td> </tr> </table> </center> </td> </tr> <tr> <td> <font face="Arial, Helvetica, sans-serif" size="2"> <br> <b>We apologize if this email reached you in error.</b> <br> <br> <a name="instructions">To</a> <b>unsubscribe</b> from this newsletter, simply reply to this email with "unsubscribe" in the subject line. New subscribers just need to reply with "subscribe" in the subject line.<br> <br> Alternatively, you can contact SIXNET at 518-877-5173 or <a href="mailto:newsletter@...">newsletter@...</a> to subscribe/unsubscribe or resolve any subscription issues. </font><br><br><br> </td> </tr> </table> <br><br><br><br> </center> </body> </html> rvsvsixqxrsxtqjrja |
From: Samuele Pedroni <pedronis@us...> - 2003-08-06 12:34:58
|
Update of /cvsroot/jython/jython/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv10692/Lib/test Modified Files: testall.py Added Files: test_jy_internals.py Log Message: tests for some (new) internals. In CPython is much harder/more work to have this kind of "white box" tests, but in Jython reaching the internals as long as they are public is rather direct. I think writing tests for some "delicate" internals as we go can be valuable. --- NEW FILE: test_jy_internals.py --- """ test some jython internals """ import unittest from test_support import run_suite import java import jarray class WeakIdentityMapTests(unittest.TestCase): def test_functionality(self): if java.lang.System.getProperty("java.version")<"1.2": return from org.python.core import IdImpl2 i = java.lang.Integer(2) j = java.lang.Integer(2) # sanity check assert i == j and i is not j h = java.lang.Integer(2) widmap = IdImpl2.WeakIdentityMap() widmap.put(i,'i') widmap.put(j,'j') widmap.put(h,'h') assert widmap.get(i) == 'i' assert widmap.get(j) == 'j' assert widmap.get(h) == 'h' # white box double-check assert widmap._internal_map_size() == 3 widmap.remove(h) assert widmap.get(h) is None # white box double-check assert widmap._internal_map_size() == 2 # white box test for weak referencing of keys del j java.lang.System.gc() assert widmap.get(i) == 'i' # triggers stale weak refs cleanup assert widmap._internal_map_size() == 1 class LongAsScaledDoubleValueTests(unittest.TestCase): def setUp(self): self.v = v = 2**53-1 # full mag bits of a double value self.v8 = v * 8 # fills up 7 bytes self.e = jarray.zeros(1,'i') def test_basic_roundtrip(self): e = self.e assert long(0L .scaledDoubleValue(e)) == 0 assert e[0] == 0 assert long(1L .scaledDoubleValue(e)) == 1 assert e[0] == 0 assert long(-1L .scaledDoubleValue(e)) == -1 assert e[0] == 0 assert long(self.v.scaledDoubleValue(e)) == self.v assert e[0] == 0 def test_scale_3_v(self): e = self.e v = self.v8 assert long(v.scaledDoubleValue(e)) == v assert e[0] == 0 assert long((v+1).scaledDoubleValue(e)) - v == 0 assert e[0] == 0 def test_no_worse_than_doubleValue(self): e = self.e v = self.v8 for d in range(8): assert float(v+d) == (v+d).scaledDoubleValue(e) assert e[0] == 0 for d in range(8): for y in [0,255]: assert float((v+d)*256+y) == ((v+d)*256+y).scaledDoubleValue(e) assert e[0] == 0 for d in range(8): for y in [0,255]: assert float((v+d)*256+y) == (((v+d)*256+y)*256).scaledDoubleValue(e) assert e[0] == 1 def test_main(): test_suite = unittest.TestSuite() test_loader = unittest.TestLoader() def suite_add(case): test_suite.addTest(test_loader.loadTestsFromTestCase(case)) suite_add(WeakIdentityMapTests) suite_add(LongAsScaledDoubleValueTests) run_suite(test_suite) if __name__ == "__main__": test_main() Index: testall.py =================================================================== RCS file: /cvsroot/jython/jython/Lib/test/testall.py,v retrieving revision 2.5 retrieving revision 2.6 diff -C2 -d -r2.5 -r2.6 *** testall.py 5 Aug 2003 16:30:38 -0000 2.5 --- testall.py 6 Aug 2003 12:34:53 -0000 2.6 *************** *** 38,41 **** --- 38,42 ---- from test_javashell import * from test_jy_compile import * + from test_jy_internals import * import unittest |
From: Samuele Pedroni <pedronis@us...> - 2003-08-06 11:56:51
|
Update of /cvsroot/jython/bugtests In directory sc8-pr-cvs1:/tmp/cvs-serv3834 Modified Files: test001.py test099.py test101.py test325.py Added Files: test380.py Log Message: adjust related tests now that we have a correct id(.). added more deterministic test for the now fixed issue with copy,pickle. --- NEW FILE: test380.py --- """ fixed broken id checks with pickle and copy that depends on id working correctly """ import support d = {} import java clash_id = java.lang.System.identityHashCode for i in xrange(100000): s = ['test',i] j = clash_id(s) if d.has_key(j): break d[j] = s s1 = s s0 = d[j] data = [s0,s1,s0] #print data import pickle import cPickle def check(ctxt,data0,data1): if data0 != data1: raise support.TestError,"data corrupted in %s because of id clashes: %s != %s" % (ctxt.__name__,data0,data1) def pik_test(pikmod,data): pik =pikmod.dumps(data,1) data1 = pikmod.loads(pik) check(pikmod,data,data1) pik_test(cPickle,data) pik_test(pickle,data) import copy check(copy.deepcopy,data,copy.deepcopy(data)) Index: test001.py =================================================================== RCS file: /cvsroot/jython/bugtests/test001.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test001.py 14 Jul 2001 17:22:37 -0000 1.1 --- test001.py 6 Aug 2003 11:56:46 -0000 1.2 *************** *** 10,14 **** v = util.Vector ! support.compare(str(v.size), "<java function size at") if type(v.size) != BuiltinFunctionType: --- 10,14 ---- v = util.Vector ! support.compare(str(v.size), "<java function size") if type(v.size) != BuiltinFunctionType: Index: test099.py =================================================================== RCS file: /cvsroot/jython/bugtests/test099.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test099.py 14 Jul 2001 17:22:37 -0000 1.1 --- test099.py 6 Aug 2003 11:56:46 -0000 1.2 *************** *** 16,18 **** if cnt != 0: ! raise support.TestWarning("%d id() value conflicts" % cnt) --- 16,18 ---- if cnt != 0: ! raise support.TestError("%d id() value conflicts" % cnt) Index: test101.py =================================================================== RCS file: /cvsroot/jython/bugtests/test101.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test101.py 14 Jul 2001 18:17:28 -0000 1.1 --- test101.py 6 Aug 2003 11:56:46 -0000 1.2 *************** *** 35,40 **** ! support.compare(foo, "<(__main__|test101).Test instance at") ! support.compare(foo.text, "<(__main__|test101).Data instance at") support.compare(foo.text.data, "Hello World") --- 35,40 ---- ! support.compare(foo, "<(__main__|test101).Test instance") ! support.compare(foo.text, "<(__main__|test101).Data instance") support.compare(foo.text.data, "Hello World") Index: test325.py =================================================================== RCS file: /cvsroot/jython/bugtests/test325.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test325.py 28 Oct 2001 14:54:16 -0000 1.1 --- test325.py 6 Aug 2003 11:56:46 -0000 1.2 *************** *** 5,11 **** import support ! # This program fails with pickle due to the id() problem. ! #import pickle ! import cPickle as pickle pfile=open("test325.out","wb") --- 5,10 ---- import support ! # This program failed with pickle due to the id() problem. ! import pickle pfile=open("test325.out","wb") |
Update of /cvsroot/jython/jython/org/python/core In directory sc8-pr-cvs1:/tmp/cvs-serv1908/org/python/core Modified Files: PyFunction.java PyBeanEventProperty.java PyReflectedField.java PyFile.java PyClass.java PyBeanProperty.java PyTraceback.java PyMethod.java PyJavaClass.java PyInstance.java PyObject.java PyReflectedConstructor.java PyReflectedFunction.java __builtin__.java PyModule.java PyBeanEvent.java PyJavaPackage.java PyTableCode.java Py.java Added Files: IdImpl1.java IdImpl2.java IdImpl.java Log Message: Eventually implemented correct id(.). This should assure the correctness e.g. of pickle and copy.deepcopy. [notice that cPickle was unaffected] In the long run at least copy should use directly an identity mapping instead of id() [this should be discussed with Python-Dev together with the idea of deprecating/stear away from id() in favor of offering (weak) identity mappings to users when a mapping is what is needed]. So this change will be less important, still as long as Python has a id(.) semantics is better implemented correctly. ids are still useful for tracebility/debugging. Converted string reprs (toString results) to call Py.idstr(.) instead of directly "at "+Py.id(.) which was implemented simply as System.identityHashCode. The final form of the results of Py.idstr(.) is undecided. On a less serious note: >>> class A: pass ... >>> id(A()) 1 >>> A() <__main__.A instance 2> >>> yes the new ids look funny. --- NEW FILE: IdImpl1.java --- package org.python.core; public class IdImpl1 extends IdImpl { public long id(PyObject o) { if (o instanceof PyJavaInstance) { return System.identityHashCode(((PyJavaInstance)o).javaProxy); } else { return System.identityHashCode(o); } } public String idstr(PyObject o) { return Long.toString(id(o)); } public long java_obj_id(Object o) { return System.identityHashCode(o); } } --- NEW FILE: IdImpl2.java --- package org.python.core; import java.lang.ref.WeakReference; import java.lang.ref.ReferenceQueue; import java.util.HashMap; public class IdImpl2 extends IdImpl { public static class WeakIdentityMap { private ReferenceQueue refqueue = new ReferenceQueue(); private HashMap hashmap = new HashMap(); private void cleanup() { Object k; while ((k = refqueue.poll()) != null) { hashmap.remove(k); } } private class WeakIdKey extends WeakReference { private int hashcode; WeakIdKey(Object obj) { super(obj,refqueue); hashcode = System.identityHashCode(obj); } public int hashCode() { return hashcode; } public boolean equals(Object other) { Object obj = this.get(); if (obj != null) { return obj == ((WeakIdKey)other).get(); } else { return this == other; } } } public int _internal_map_size() { return hashmap.size(); } public void put(Object key,Object val) { cleanup(); hashmap.put(new WeakIdKey(key),val); } public Object get(Object key) { cleanup(); return hashmap.get(new WeakIdKey(key)); } public void remove(Object key) { cleanup(); hashmap.remove(new WeakIdKey(key)); } } private WeakIdentityMap id_map = new WeakIdentityMap(); private long sequential_id = 0; public long id(PyObject o) { if (o instanceof PyJavaInstance) { return java_obj_id(((PyJavaInstance)o).javaProxy); } else { return java_obj_id(o); } } // XXX maybe should display both this id and identityHashCode // XXX preserve the old "at ###" style? public String idstr(PyObject o) { return Long.toString(id(o)); } public synchronized long java_obj_id(Object o) { Long cand = (Long)id_map.get(o); if (cand == null) { sequential_id++; long new_id = sequential_id; id_map.put(o,new Long(new_id)); return new_id; } return cand.longValue(); } } --- NEW FILE: IdImpl.java --- package org.python.core; public abstract class IdImpl { public static IdImpl getInstance() { if (System.getProperty("java.version").compareTo("1.2")>=0) { try { return (IdImpl)Class.forName("org.python.core.IdImpl2").newInstance(); } catch(Throwable e) { return null; } } else { return new IdImpl1(); } } public abstract long id(PyObject o); public abstract String idstr(PyObject o); // o should not be an instance of a subclass of PyObject public abstract long java_obj_id(Object o); } Index: PyFunction.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFunction.java,v retrieving revision 2.15 retrieving revision 2.16 diff -C2 -d -r2.15 -r2.16 *** PyFunction.java 26 May 2002 20:37:28 -0000 2.15 --- PyFunction.java 6 Aug 2003 11:46:25 -0000 2.16 *************** *** 190,194 **** } public String toString() { ! return "<function "+__name__+" at "+hashCode()+">"; } } --- 190,194 ---- } public String toString() { ! return "<function "+__name__+" "+Py.idstr(this)+">"; } } Index: PyBeanEventProperty.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyBeanEventProperty.java,v retrieving revision 2.6 retrieving revision 2.7 diff -C2 -d -r2.6 -r2.7 *** PyBeanEventProperty.java 28 Oct 2001 17:13:43 -0000 2.6 --- PyBeanEventProperty.java 6 Aug 2003 11:46:26 -0000 2.7 *************** *** 129,133 **** public String toString() { return "<beanEventProperty "+__name__+" for event "+ ! eventClass.toString()+" at "+hashCode()+">"; } } --- 129,133 ---- public String toString() { return "<beanEventProperty "+__name__+" for event "+ ! eventClass.toString()+" "+Py.idstr(this)+">"; } } Index: PyReflectedField.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyReflectedField.java,v retrieving revision 2.4 retrieving revision 2.5 diff -C2 -d -r2.4 -r2.5 *** PyReflectedField.java 28 Oct 2001 17:13:43 -0000 2.4 --- PyReflectedField.java 6 Aug 2003 11:46:26 -0000 2.5 *************** *** 57,61 **** public String toString() { ! return "<reflected field "+field.toString()+" at "+Py.id(this)+">"; } } --- 57,61 ---- public String toString() { ! return "<reflected field "+field.toString()+" "+Py.idstr(this)+">"; } } Index: PyFile.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFile.java,v retrieving revision 2.28 retrieving revision 2.29 diff -C2 -d -r2.28 -r2.29 *** PyFile.java 1 Nov 2002 14:57:49 -0000 2.28 --- PyFile.java 6 Aug 2003 11:46:26 -0000 2.29 *************** *** 947,952 **** public String toString() { ! return "<file " + name + ", mode " + mode + " at " + ! Py.id(this) + ">"; } --- 947,952 ---- public String toString() { ! return "<file " + name + ", mode " + mode + " " + ! Py.idstr(this) + ">"; } Index: PyClass.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyClass.java,v retrieving revision 2.29 retrieving revision 2.30 diff -C2 -d -r2.29 -r2.30 *** PyClass.java 6 Jan 2002 21:19:13 -0000 2.29 --- PyClass.java 6 Aug 2003 11:46:26 -0000 2.30 *************** *** 293,297 **** else smod = ((PyString)mod).toString(); ! return "<class "+smod+"."+__name__+" at "+Py.id(this)+">"; } } --- 293,297 ---- else smod = ((PyString)mod).toString(); ! return "<class "+smod+"."+__name__+" "+Py.idstr(this)+">"; } } Index: PyBeanProperty.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyBeanProperty.java,v retrieving revision 2.4 retrieving revision 2.5 diff -C2 -d -r2.4 -r2.5 *** PyBeanProperty.java 28 Oct 2001 17:13:43 -0000 2.4 --- PyBeanProperty.java 6 Aug 2003 11:46:26 -0000 2.5 *************** *** 88,93 **** typeName = myType.getName(); } ! return "<beanProperty "+__name__+" type: "+typeName+" at "+ ! Py.id(this)+">"; } } --- 88,93 ---- typeName = myType.getName(); } ! return "<beanProperty "+__name__+" type: "+typeName+" "+ ! Py.idstr(this)+">"; } } Index: PyTraceback.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyTraceback.java,v retrieving revision 2.4 retrieving revision 2.5 diff -C2 -d -r2.4 -r2.5 *** PyTraceback.java 28 Oct 2001 17:13:43 -0000 2.4 --- PyTraceback.java 6 Aug 2003 11:46:26 -0000 2.5 *************** *** 56,60 **** public String toString() { ! return "<traceback object at " + hashCode() + ">"; } } --- 56,60 ---- public String toString() { ! return "<traceback object at " + " "+Py.idstr(this) + ">"; } } Index: PyMethod.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyMethod.java,v retrieving revision 2.15 retrieving revision 2.16 diff -C2 -d -r2.15 -r2.16 *** PyMethod.java 28 Oct 2001 17:13:43 -0000 2.15 --- PyMethod.java 6 Aug 2003 11:46:26 -0000 2.16 *************** *** 125,131 **** PyMethod mother = (PyMethod)other; if (im_self != mother.im_self) ! return Py.id(im_self) < Py.id(mother.im_self) ? -1 : 1; if (im_func != mother.im_func) ! return Py.id(im_func) < Py.id(mother.im_func) ? -1 : 1; return 0; } --- 125,133 ---- PyMethod mother = (PyMethod)other; if (im_self != mother.im_self) ! return System.identityHashCode(im_self) < ! System.identityHashCode(mother.im_self) ? -1 : 1; if (im_func != mother.im_func) ! return System.identityHashCode(im_func) < ! System.identityHashCode(mother.im_func) ? -1 : 1; return 0; } *************** *** 147,151 **** return "<method " + classname + "." + __name__ + " of " + im_self.__class__.__name__ + ! " instance at " + Py.id(im_self) + ">"; } } --- 149,153 ---- return "<method " + classname + "." + __name__ + " of " + im_self.__class__.__name__ + ! " instance " + Py.idstr(im_self) + ">"; } } Index: PyJavaClass.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyJavaClass.java,v retrieving revision 2.41 retrieving revision 2.42 diff -C2 -d -r2.41 -r2.42 *** PyJavaClass.java 6 Nov 2002 14:53:47 -0000 2.41 --- PyJavaClass.java 6 Aug 2003 11:46:26 -0000 2.42 *************** *** 860,864 **** public String toString() { ! return "<jclass "+__name__+" at "+Py.id(this)+">"; } } --- 860,864 ---- public String toString() { ! return "<jclass "+__name__+" "+Py.idstr(this)+">"; } } Index: PyInstance.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyInstance.java,v retrieving revision 2.32 retrieving revision 2.33 diff -C2 -d -r2.32 -r2.33 *** PyInstance.java 6 Nov 2002 08:16:46 -0000 2.32 --- PyInstance.java 6 Aug 2003 11:46:26 -0000 2.33 *************** *** 386,390 **** } return new PyString("<"+smod+__class__.__name__+ ! " instance at "+Py.id(this)+">"); } --- 386,390 ---- } return new PyString("<"+smod+__class__.__name__+ ! " instance "+Py.idstr(this)+">"); } Index: PyObject.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyObject.java,v retrieving revision 2.29 retrieving revision 2.30 diff -C2 -d -r2.29 -r2.30 *** PyObject.java 9 Apr 2003 13:51:14 -0000 2.29 --- PyObject.java 6 Aug 2003 11:46:26 -0000 2.30 *************** *** 162,166 **** public int hashCode() { ! return Py.id(this); } --- 162,166 ---- public int hashCode() { ! return System.identityHashCode(this); } *************** *** 1058,1066 **** if (itmp == 0) ! return Py.id(this) < Py.id(o2_in) ? -1 : 1; if (itmp != -2) return itmp; ! return ! Py.id(this.__class__) < Py.id(o2_in.__class__) ? -1 : 1; } --- 1058,1067 ---- if (itmp == 0) ! return System.identityHashCode(this) < ! System.identityHashCode(o2_in) ? -1 : 1; if (itmp != -2) return itmp; ! return System.identityHashCode(this.__class__) < ! System.identityHashCode(o2_in.__class__) ? -1 : 1; } Index: PyReflectedConstructor.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyReflectedConstructor.java,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -d -r2.9 -r2.10 *** PyReflectedConstructor.java 28 Oct 2001 17:13:43 -0000 2.9 --- PyReflectedConstructor.java 6 Aug 2003 11:46:26 -0000 2.10 *************** *** 166,170 **** public String toString() { //printArgs(); ! return "<java constructor "+__name__+" at "+Py.id(this)+">"; } } --- 166,170 ---- public String toString() { //printArgs(); ! return "<java constructor "+__name__+" "+Py.idstr(this)+">"; } } Index: PyReflectedFunction.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyReflectedFunction.java,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -d -r2.9 -r2.10 *** PyReflectedFunction.java 28 Oct 2001 17:13:43 -0000 2.9 --- PyReflectedFunction.java 6 Aug 2003 11:46:26 -0000 2.10 *************** *** 335,339 **** public String toString() { //printArgs(); ! return "<java function "+__name__+" at "+Py.id(this)+">"; } } --- 335,339 ---- public String toString() { //printArgs(); ! return "<java function "+__name__+" "+Py.idstr(this)+">"; } } Index: __builtin__.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/__builtin__.java,v retrieving revision 2.56 retrieving revision 2.57 diff -C2 -d -r2.56 -r2.57 *** __builtin__.java 18 May 2003 22:32:54 -0000 2.56 --- __builtin__.java 6 Aug 2003 11:46:26 -0000 2.57 *************** *** 405,409 **** } ! public static int id(PyObject o) { return Py.id(o); } --- 405,409 ---- } ! public static long id(PyObject o) { return Py.id(o); } Index: PyModule.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyModule.java,v retrieving revision 2.14 retrieving revision 2.15 diff -C2 -d -r2.14 -r2.15 *** PyModule.java 27 Nov 2001 13:51:37 -0000 2.14 --- PyModule.java 6 Aug 2003 11:46:26 -0000 2.15 *************** *** 79,84 **** public String toString() { ! return "<module "+__dict__.__finditem__("__name__")+" at "+ ! Py.id(this)+">"; } --- 79,84 ---- public String toString() { ! return "<module "+__dict__.__finditem__("__name__")+" "+ ! Py.idstr(this)+">"; } Index: PyBeanEvent.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyBeanEvent.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -d -r2.2 -r2.3 *** PyBeanEvent.java 28 Oct 2001 17:13:43 -0000 2.2 --- PyBeanEvent.java 6 Aug 2003 11:46:26 -0000 2.3 *************** *** 38,42 **** public String toString() { return "<beanEvent "+__name__+" for event "+ ! eventClass.toString()+" at "+hashCode()+">"; } } --- 38,42 ---- public String toString() { return "<beanEvent "+__name__+" for event "+ ! eventClass.toString()+" "+Py.idstr(this)+">"; } } Index: PyJavaPackage.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyJavaPackage.java,v retrieving revision 2.17 retrieving revision 2.18 diff -C2 -d -r2.17 -r2.18 *** PyJavaPackage.java 21 Dec 2001 00:18:12 -0000 2.17 --- PyJavaPackage.java 6 Aug 2003 11:46:26 -0000 2.18 *************** *** 175,179 **** public String toString() { ! return "<java package "+__name__+" at "+Py.id(this)+">"; } } --- 175,179 ---- public String toString() { ! return "<java package "+__name__+" "+Py.idstr(this)+">"; } } Index: PyTableCode.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyTableCode.java,v retrieving revision 2.21 retrieving revision 2.22 diff -C2 -d -r2.21 -r2.22 *** PyTableCode.java 18 May 2003 22:32:54 -0000 2.21 --- PyTableCode.java 6 Aug 2003 11:46:26 -0000 2.22 *************** *** 428,432 **** public String toString() { ! return "<code object " + co_name + " at " + hashCode() + ", file \"" + co_filename + "\", line " + co_firstlineno + ">"; --- 428,432 ---- public String toString() { ! return "<code object " + co_name + " "+Py.idstr(this) + ", file \"" + co_filename + "\", line " + co_firstlineno + ">"; Index: Py.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/Py.java,v retrieving revision 2.69 retrieving revision 2.70 diff -C2 -d -r2.69 -r2.70 *** Py.java 18 May 2003 22:34:41 -0000 2.69 --- Py.java 6 Aug 2003 11:46:26 -0000 2.70 *************** *** 1691,1702 **** } ! public static int id(PyObject o) { ! if (o instanceof PyJavaInstance) { ! return System.identityHashCode(((PyJavaInstance)o).javaProxy); ! } else { ! return System.identityHashCode(o); ! } ! } public static String safeRepr(PyObject o) { return o.safeRepr(); --- 1691,1708 ---- } ! private static IdImpl idimpl = IdImpl.getInstance(); + public static long id(PyObject o) { + return idimpl.id(o); + } + + public static String idstr(PyObject o) { + return idimpl.idstr(o); + } + + public static long java_obj_id(Object o) { + return idimpl.java_obj_id(o); + } + public static String safeRepr(PyObject o) { return o.safeRepr(); |
From: Samuele Pedroni <pedronis@us...> - 2003-08-06 11:46:31
|
Update of /cvsroot/jython/jython/org/python/modules In directory sc8-pr-cvs1:/tmp/cvs-serv1908/org/python/modules Modified Files: xreadlines.java cPickle.java _weakref.java thread.java SHA1.java Log Message: Eventually implemented correct id(.). This should assure the correctness e.g. of pickle and copy.deepcopy. [notice that cPickle was unaffected] In the long run at least copy should use directly an identity mapping instead of id() [this should be discussed with Python-Dev together with the idea of deprecating/stear away from id() in favor of offering (weak) identity mappings to users when a mapping is what is needed]. So this change will be less important, still as long as Python has a id(.) semantics is better implemented correctly. ids are still useful for tracebility/debugging. Converted string reprs (toString results) to call Py.idstr(.) instead of directly "at "+Py.id(.) which was implemented simply as System.identityHashCode. The final form of the results of Py.idstr(.) is undecided. On a less serious note: >>> class A: pass ... >>> id(A()) 1 >>> A() <__main__.A instance 2> >>> yes the new ids look funny. Index: xreadlines.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/xreadlines.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** xreadlines.java 6 Jan 2002 21:19:13 -0000 1.2 --- xreadlines.java 6 Aug 2003 11:46:26 -0000 1.3 *************** *** 53,57 **** public String toString() { ! return "<xreadlines object at " + Py.id(this) + ">"; } --- 53,57 ---- public String toString() { ! return "<xreadlines object " + Py.idstr(this) + ">"; } Index: cPickle.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/cPickle.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** cPickle.java 5 Nov 2002 15:19:51 -0000 1.22 --- cPickle.java 6 Aug 2003 11:46:26 -0000 1.23 *************** *** 825,828 **** --- 825,833 ---- } + private static final int get_id(PyObject o) { + // we don't pickle Java instances so we don't have to consider that case + return System.identityHashCode(o); + } + // Save name as in pickle.py but semantics are slightly changed. *************** *** 884,888 **** } ! int d = Py.id(object); PyClass t = __builtin__.type(object); --- 889,893 ---- } ! int d = get_id(object); PyClass t = __builtin__.type(object); *************** *** 1115,1124 **** file.write("\n"); } ! put(putMemo(Py.id(object), object)); } final private void save_tuple(PyObject object) { ! int d = Py.id(object); file.write(MARK); --- 1120,1129 ---- file.write("\n"); } ! put(putMemo(get_id(object), object)); } final private void save_tuple(PyObject object) { ! int d = get_id(object); file.write(MARK); *************** *** 1160,1164 **** } ! put(putMemo(Py.id(object), object)); int len = object.__len__(); --- 1165,1169 ---- } ! put(putMemo(get_id(object), object)); int len = object.__len__(); *************** *** 1186,1190 **** } ! put(putMemo(Py.id(object), object)); PyObject list = object.invoke("keys"); --- 1191,1195 ---- } ! put(putMemo(get_id(object), object)); PyObject list = object.invoke("keys"); *************** *** 1235,1239 **** } ! int mid = putMemo(Py.id(object), object); if (bin) { file.write(OBJ); --- 1240,1244 ---- } ! int mid = putMemo(get_id(object), object); if (bin) { file.write(OBJ); *************** *** 1279,1283 **** file.write(name.toString()); file.write("\n"); ! put(putMemo(Py.id(object), object)); } --- 1284,1288 ---- file.write(name.toString()); file.write("\n"); ! put(putMemo(get_id(object), object)); } *************** *** 1379,1385 **** private transient int prime; - // Not actually used, since there is no delete methods. - private String DELETEDKEY = "<deleted key>"; - public PickleMemo(int capacity) { prime = 0; --- 1384,1387 ---- *************** *** 1452,1461 **** position[index] = pos; break; - } else if (values[index] == DELETEDKEY) { - table[index] = key; - position[index] = pos; - values[index] = value; - size++; - break; } index = (index+stepsize) % maxindex; --- 1454,1457 ---- *************** *** 1491,1495 **** for(int i=0; i<n; i++) { Object value = oldValues[i]; ! if (value == null || value == DELETEDKEY) continue; insertkey(oldKeys[i], oldPositions[i], value); } --- 1487,1491 ---- for(int i=0; i<n; i++) { Object value = oldValues[i]; ! if (value == null) continue; insertkey(oldKeys[i], oldPositions[i], value); } Index: _weakref.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/_weakref.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** _weakref.java 27 Nov 2001 19:07:22 -0000 1.3 --- _weakref.java 6 Aug 2003 11:46:26 -0000 1.4 *************** *** 273,278 **** public String toString() { ! String ret = "<weakref at " + ! Integer.toString(System.identityHashCode(this), 16) +";"; PyObject obj = (PyObject) gref.get(); if (obj != null) --- 273,278 ---- public String toString() { ! String ret = "<weakref " + ! Py.idstr(this) +";"; PyObject obj = (PyObject) gref.get(); if (obj != null) *************** *** 351,361 **** public String toString() { ! String ret = "<weakref at " + ! Integer.toString(System.identityHashCode(this), 16); PyObject obj = (PyObject) gref.get(); if (obj == null) obj = Py.None; ! ret += " to " + obj.safeRepr() + " at "+ ! Integer.toString(System.identityHashCode(obj), 16) + ">"; return ret; } --- 351,360 ---- public String toString() { ! String ret = "<weakref " +Py.idstr(this); PyObject obj = (PyObject) gref.get(); if (obj == null) obj = Py.None; ! ret += " to " + obj.safeRepr() + " "+ ! Py.idstr(obj) + ">"; return ret; } Index: thread.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/thread.java,v retrieving revision 2.6 retrieving revision 2.7 diff -C2 -d -r2.6 -r2.7 *** thread.java 27 Nov 2001 19:07:22 -0000 2.6 --- thread.java 6 Aug 2003 11:46:26 -0000 2.7 *************** *** 57,62 **** } ! public static int get_ident() { ! return System.identityHashCode(Thread.currentThread()); } } --- 57,62 ---- } ! public static long get_ident() { ! return Py.java_obj_id(Thread.currentThread()); } } Index: SHA1.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/SHA1.java,v retrieving revision 2.4 retrieving revision 2.5 diff -C2 -d -r2.4 -r2.5 *** SHA1.java 28 Oct 2001 17:13:44 -0000 2.4 --- SHA1.java 6 Aug 2003 11:46:26 -0000 2.5 *************** *** 498,503 **** } public String toString() { ! return "<SHA object at " + this.hashCode() + ">"; } } --- 498,504 ---- } + // XXX should become PyObject and use Py.idstr? public String toString() { ! return "<SHA object at" + System.identityHashCode(this) + ">"; } } |
From: Samuele Pedroni <pedronis@us...> - 2003-08-06 00:02:51
|
Update of /cvsroot/jython/bugtests In directory sc8-pr-cvs1:/tmp/cvs-serv28891 Modified Files: driver.py Log Message: fix warnings-into-failure conversion mode option. Index: driver.py =================================================================== RCS file: /cvsroot/jython/bugtests/driver.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** driver.py 5 Aug 2003 22:52:04 -0000 1.10 --- driver.py 6 Aug 2003 00:02:37 -0000 1.11 *************** *** 15,19 **** opts, argv = getopt.getopt(sys.argv[1:], 'w') ! warnings = "-w" in opts for i in range(382): --- 15,21 ---- opts, argv = getopt.getopt(sys.argv[1:], 'w') ! warnings = ('-w',"") in opts ! ! if warnings: print "LOUD warnings" for i in range(382): |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 22:59:30
|
Update of /cvsroot/jython/jython/org/python/core In directory sc8-pr-cvs1:/tmp/cvs-serv15145/org/python/core Modified Files: PyStringMap.java Log Message: fix for deletion-confused insert bug. See bugtests/test381.py Index: PyStringMap.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyStringMap.java,v retrieving revision 2.15 retrieving revision 2.16 diff -C2 -d -r2.15 -r2.16 *** PyStringMap.java 11 Jun 2002 11:58:47 -0000 2.15 --- PyStringMap.java 5 Aug 2003 22:59:23 -0000 2.16 *************** *** 139,142 **** --- 139,144 ---- // Fairly aribtrary choice for stepsize... int stepsize = maxindex / 5; + + int free_index = -1; // Cycle through possible positions for the key; *************** *** 144,163 **** String tkey = table[index]; if (tkey == null) { ! table[index] = key; ! values[index] = value; ! filled++; ! size++; break; } else if (tkey == key) { values[index] = value; ! break; ! } else if (tkey == "<deleted key>") { ! table[index] = key; ! values[index] = value; ! size++; ! break; } index = (index+stepsize) % maxindex; } } --- 146,166 ---- String tkey = table[index]; if (tkey == null) { ! if (free_index == -1 ) { ! filled++; ! free_index = index; ! } break; } else if (tkey == key) { values[index] = value; ! return; ! } else if (tkey == "<deleted key>" && free_index == -1) { ! free_index = index; } index = (index+stepsize) % maxindex; } + table[free_index] = key; + values[free_index] = value; + size++; + return; } |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 22:52:09
|
Update of /cvsroot/jython/bugtests In directory sc8-pr-cvs1:/tmp/cvs-serv13592 Modified Files: driver.py Log Message: increase tests' number. Index: driver.py =================================================================== RCS file: /cvsroot/jython/bugtests/driver.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** driver.py 15 Oct 2002 13:38:18 -0000 1.9 --- driver.py 5 Aug 2003 22:52:04 -0000 1.10 *************** *** 17,21 **** warnings = "-w" in opts ! for i in range(380): m = None n = "test%3.3d" % i --- 17,21 ---- warnings = "-w" in opts ! for i in range(382): m = None n = "test%3.3d" % i |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 22:51:33
|
Update of /cvsroot/jython/bugtests In directory sc8-pr-cvs1:/tmp/cvs-serv13454 Added Files: test381.py Log Message: test for namespace (PyStringMap) deletion-confused insert bug. --- NEW FILE: test381.py --- """ namespace (PyStringMap) deletion-confused insert bug """ #============================================== # we need some stuff to find a pair of keys # with the same initial index in hash table from java.lang.System import identityHashCode from java.lang import String def hashCode(key): return identityHashCode(String.intern(key)) def scanKeys(base, r, sz, deep): for i in xrange(65,91): #chars 'A'-'Z' key = base+chr(i) #sz is hash table size if hashCode(key)%sz == r: break if deep: key = scanKeys(base, r, sz, deep-1) if key is not None: break return key # find a key with the same hash index as key1 def findPairKey(key1, sz=7): #in empty PyStringMap hash table has size 7 r=hashCode(key1)%sz base="" for deep in xrange(0,15): key = scanKeys(base, r, sz, deep) if key is not None: return key class AA: pass d = AA().__dict__ # now d is an empty PyStringMap dict key1="key1" #find a pair key for key1 key2 = findPairKey(key1) # key2 consists of upper case characters (by construction) # and always differs from key1 #print "key1=",repr(key1)," key2=",repr(key2) d[key2] = "foo" #key2 occupies initial slot d[key1] = "value1" #key1 occupies next slot del d[key2] #initial slot is marked by "<deleted key>" d[key1] = "value2" #key1 replaces "<deleted key>" in the first #slot but not old key1 value! del d[key1] #we hope key1 is not in the dict any more... try: v=d[key1] #print "Oops! d[key1]=",repr(v) #Oops! Magically ressurected! raise support.TestError,"namespace deletion-confused insert bug" except KeyError: #print "OK" pass |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 16:31:19
|
Update of /cvsroot/jython/jython/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv11424/Lib/test Modified Files: test_javashell.py Log Message: removal of standalone LazyDict module broke this. Fixed. Index: test_javashell.py =================================================================== RCS file: /cvsroot/jython/jython/Lib/test/test_javashell.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** test_javashell.py 31 Jul 2003 08:32:49 -0000 1.3 --- test_javashell.py 5 Aug 2003 16:31:14 -0000 1.4 *************** *** 4,11 **** from org.python.core import PyFile import re - from LazyDict import LazyDict import os import javashell # testCmds is a list of (command, expectedOutput) --- 4,11 ---- from org.python.core import PyFile import re import os import javashell + from javashell import LazyDict # testCmds is a list of (command, expectedOutput) |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 16:30:43
|
Update of /cvsroot/jython/jython/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv11328/Lib/test Modified Files: testall.py Log Message: renamed test_compil to test_jy_compile Banner: historical JPython -> Jython, now printing also sys.platform. Index: testall.py =================================================================== RCS file: /cvsroot/jython/jython/Lib/test/testall.py,v retrieving revision 2.4 retrieving revision 2.5 diff -C2 -d -r2.4 -r2.5 *** testall.py 31 Jul 2003 07:07:58 -0000 2.4 --- testall.py 5 Aug 2003 16:30:38 -0000 2.5 *************** *** 1,4 **** import sys ! print 'Testing JPython Version', sys.version from test_support import * --- 1,4 ---- import sys ! print 'Testing Jython Version', sys.version,'on',sys.platform from test_support import * *************** *** 37,41 **** from test_jreload import * from test_javashell import * ! from test_compil import * import unittest --- 37,41 ---- from test_jreload import * from test_javashell import * ! from test_jy_compile import * import unittest |
From: Samuele Pedroni <pedronis@us...> - 2003-08-05 16:29:30
|
Update of /cvsroot/jython/jython/Lib/test In directory sc8-pr-cvs1:/tmp/cvs-serv11131/Lib/test Added Files: test_jy_compile.py Removed Files: test_compil.py Log Message: renamed test_compil to test_jy_compile [my fault, compil was rather a lame name] test_jy_compile should be probably "donated" to CPython test suite, maybe integrated in test_compile there, but there are some tests checking for specific behavior differences that are not worth bothering, that should grow is_jython guards. Low prio for now. --- NEW FILE: test_jy_compile.py --- """ test compile. derived from test_codeop """ import unittest from test_support import run_unittest def compile_(source,name="<input>",symbol="single"): return compile(source,name,symbol) class CompileTests(unittest.TestCase): def assertValid(self, str, symbol='single',values=None,value=None): '''succeed iff str is a valid piece of code''' code = compile_(str, "<input>", symbol) if values: d = {} exec code in d self.assertEquals(d,values) elif value is not None: self.assertEquals(eval(code,self.eval_d),value) else: self.assert_(code) def assertInvalid(self, str, symbol='single', is_syntax=1): '''succeed iff str is the start of an invalid piece of code''' try: compile_(str,symbol=symbol) self.fail("No exception thrown for invalid code") except SyntaxError: self.assert_(is_syntax) except OverflowError: self.assert_(not is_syntax) assertIncomplete = assertInvalid def test_valid(self): av = self.assertValid av("") av("\n") av("\n\n") av("# a\n") av("a = 1") av("\na = 1") av("a = 1\n") av("a = 1\n\n") av("\n\na = 1\n\n",values={'a':1}) av("def x():\n pass\n") av("if 1:\n pass\n") av("\n\nif 1: pass\n") av("\n\nif 1: a=1\n\n",values={'a':1}) av("def x():\n pass") av("def x():\n pass\n ") av("def x():\n pass\n ") av("\n\ndef x():\n pass") av("def x():\n\n pass\n") # failed under 2.1 av("def x():\n pass\n \n") av("def x():\n pass\n \n") av("pass\n") av("3**3\n") av("if 9==3:\n pass\nelse:\n pass") av("if 9==3:\n pass\nelse:\n pass\n") av("if 1:\n pass\n if 1:\n pass\n else:\n pass") av("if 1:\n pass\n if 1:\n pass\n else:\n pass\n") av("#a\n#b\na = 3\n") av("#a\n\n \na=3\n",values={'a':3}) av("a=3\n\n") av("a = 9+ \\\n3") av("3**3","eval") av("(lambda z: \n z**3)","eval") av("9+ \\\n3","eval") av("9+ \\\n3\n","eval") # these failed under 2.1 self.eval_d = {'a': 2} av("\n\na**3","eval",value=8) av("\n \na**3","eval",value=8) av("#a\n#b\na**3","eval",value=8) def test_incomplete(self): ai = self.assertIncomplete ai("(a **") ai("(a,b,") ai("(a,b,(") ai("(a,b,(") ai("a = (") ai("a = {") ai("b + {") ai("if 9==3:\n pass\nelse:") ai("if 9==3:\n pass\nelse:\n") ai("if 1:") ai("if 1:\n") ai("if 1:\n pass\n if 1:\n pass\n else:") ai("if 1:\n pass\n if 1:\n pass\n else:\n") ai("def x():") ai("def x():\n") ai("def x():\n\n") ai("a = 9+ \\") ai("a = 'a\\") ai("a = '''xy") ai("","eval") ai("\n","eval") ai("(","eval") ai("(\n\n\n","eval") ai("(9+","eval") ai("9+ \\","eval") ai("lambda z: \\","eval") def test_invalid(self): ai = self.assertInvalid ai("a b") ai("a @") ai("a b @") ai("a ** @") ai("a = ") ai("a = 9 +") ai("def x():\n\npass\n") ai("\n\n if 1: pass\n\npass") # valid for 2.1 ?! ai("a = 9+ \\\n") ai("a = 'a\\ ") ai("a = 'a\\\n") ai("a = 1","eval") ai("a = (","eval") ai("]","eval") ai("())","eval") ai("[}","eval") ai("9+","eval") ai("lambda z:","eval") ai("a b","eval") def test_filename(self): self.assertEquals(compile_("a = 1\n", "abc").co_filename, compile("a = 1\n", "abc", 'single').co_filename) self.assertNotEquals(compile_("a = 1\n", "abc").co_filename, compile("a = 1\n", "def", 'single').co_filename) def test_main(): run_unittest(CompileTests) if __name__ == "__main__": test_main() --- test_compil.py DELETED --- |