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
|
From: Finn B. <bc...@us...> - 2001-02-25 16:38:36
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32679 Modified Files: Loader.java Log Message: Added javadoc comments. Index: Loader.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/Loader.java,v retrieving revision 2.1 retrieving revision 2.2 diff -C2 -r2.1 -r2.2 *** Loader.java 2000/12/17 19:46:26 2.1 --- Loader.java 2001/02/25 16:39:48 2.2 *************** *** 2,7 **** --- 2,22 ---- package org.python.core; + /** + * A common interface for bytecode loaders. + * Jython 2.0 have two loaders, a standard loader and a + * Java2 SecureClassLoader. Both loader implements this + * interface. + */ + public interface Loader { + /** + * Turn java byte codes into a class. + */ public Class loadClassFromBytes(String name, byte[] data); + + /** + * Add another classloader as a parent loader. + * Dependent classes will searched in these loaders. + */ public void addParent(ClassLoader referent); } |
From: Finn B. <bc...@us...> - 2001-02-25 16:38:16
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32639 Modified Files: Java2Accessibility.java JavaAccessibility.java Log Message: Made class package private. Index: Java2Accessibility.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/Java2Accessibility.java,v retrieving revision 2.3 retrieving revision 2.4 diff -C2 -r2.3 -r2.4 *** Java2Accessibility.java 2001/02/01 16:41:10 2.3 --- Java2Accessibility.java 2001/02/25 16:39:28 2.4 *************** *** 9,13 **** */ ! public class Java2Accessibility extends JavaAccessibility { void setAccess(Field field, boolean flag) throws SecurityException { --- 9,13 ---- */ ! class Java2Accessibility extends JavaAccessibility { void setAccess(Field field, boolean flag) throws SecurityException { Index: JavaAccessibility.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/JavaAccessibility.java,v retrieving revision 2.3 retrieving revision 2.4 diff -C2 -r2.3 -r2.4 *** JavaAccessibility.java 2001/02/01 16:41:10 2.3 --- JavaAccessibility.java 2001/02/25 16:39:28 2.4 *************** *** 12,16 **** */ ! public class JavaAccessibility { private static JavaAccessibility access = null; --- 12,16 ---- */ ! class JavaAccessibility { private static JavaAccessibility access = null; |
From: Finn B. <bc...@us...> - 2001-02-25 16:37:48
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32575 Modified Files: InitModule.java Log Message: Added javadoc comments. Index: InitModule.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/InitModule.java,v retrieving revision 2.1 retrieving revision 2.2 diff -C2 -r2.1 -r2.2 *** InitModule.java 1999/09/21 02:44:57 2.1 --- InitModule.java 2001/02/25 16:39:00 2.2 *************** *** 3,6 **** --- 3,16 ---- package org.python.core; + /** + * An deprecated interface that can be used if a java class + * want control over the class dict initialization. + * + * @deprecated. See ClassDictInit for a replacement. + * + * @see ClassDictInit + */ + + public interface InitModule { |
From: Finn B. <bc...@us...> - 2001-02-25 16:37:33
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32537 Modified Files: ExtraMath.java Log Message: Added javadoc comments. Index: ExtraMath.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/ExtraMath.java,v retrieving revision 2.1 retrieving revision 2.2 diff -C2 -r2.1 -r2.2 *** ExtraMath.java 1999/05/17 19:59:37 2.1 --- ExtraMath.java 2001/02/25 16:38:45 2.2 *************** *** 3,6 **** --- 3,9 ---- package org.python.core; + /** + * A static utility class with two additional math functions. + */ public class ExtraMath { static double LOG10 = Math.log(10.0); |
From: Finn B. <bc...@us...> - 2001-02-25 16:37:20
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32516 Modified Files: CollectionProxy.java CollectionProxy2.java Log Message: Made class package private. Index: CollectionProxy.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/CollectionProxy.java,v retrieving revision 2.3 retrieving revision 2.4 diff -C2 -r2.3 -r2.4 *** CollectionProxy.java 2001/02/04 15:34:52 2.3 --- CollectionProxy.java 2001/02/25 16:38:31 2.4 *************** *** 4,8 **** import java.util.*; ! public class CollectionProxy { public static final CollectionProxy NoProxy = new EnumerationProxy(null); --- 4,8 ---- import java.util.*; ! class CollectionProxy { public static final CollectionProxy NoProxy = new EnumerationProxy(null); Index: CollectionProxy2.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/CollectionProxy2.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -r2.2 -r2.3 *** CollectionProxy2.java 2001/02/04 15:34:52 2.2 --- CollectionProxy2.java 2001/02/25 16:38:31 2.3 *************** *** 10,14 **** import java.util.*; ! public class CollectionProxy2 extends CollectionProxy { public CollectionProxy instanceFindCollection(Object object) { --- 10,14 ---- import java.util.*; ! class CollectionProxy2 extends CollectionProxy { public CollectionProxy instanceFindCollection(Object object) { |
From: Finn B. <bc...@us...> - 2001-02-25 16:36:54
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32482 Modified Files: ClassDictInit.java Log Message: Added javadoc comments. Index: ClassDictInit.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/ClassDictInit.java,v retrieving revision 2.3 retrieving revision 2.4 diff -C2 -r2.3 -r2.4 *** ClassDictInit.java 2001/02/01 16:41:10 2.3 --- ClassDictInit.java 2001/02/25 16:38:06 2.4 *************** *** 4,9 **** /** ! * An empty tagging interface. If a java class implements this ! * interface, it must also have a method like: * <pre> * public static void classDictInit(PyObject dict) { .. } --- 4,11 ---- /** ! * An empty tagging interface that can be used if a java class ! * want control over the class dict initialization. ! * When a java class implements this interface, it must also have ! * a method like: * <pre> * public static void classDictInit(PyObject dict) { .. } |
From: Finn B. <bc...@us...> - 2001-02-25 16:36:37
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32416 Modified Files: BytecodeLoader1.java BytecodeLoader2.java Log Message: Made class package private. Index: BytecodeLoader1.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/BytecodeLoader1.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -r2.2 -r2.3 *** BytecodeLoader1.java 2001/02/01 16:41:10 2.2 --- BytecodeLoader1.java 2001/02/25 16:37:48 2.3 *************** *** 5,9 **** import java.util.*; ! public class BytecodeLoader1 extends ClassLoader implements Loader { private Vector parents; --- 5,12 ---- import java.util.*; ! /** ! * A java1 classloader for loading compiled python modules. ! */ ! class BytecodeLoader1 extends ClassLoader implements Loader { private Vector parents; Index: BytecodeLoader2.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/BytecodeLoader2.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -r2.2 -r2.3 *** BytecodeLoader2.java 2001/02/01 16:41:10 2.2 --- BytecodeLoader2.java 2001/02/25 16:37:48 2.3 *************** *** 6,10 **** import java.security.*; ! public class BytecodeLoader2 extends SecureClassLoader implements Loader { private Vector parents; --- 6,13 ---- import java.security.*; ! /** ! * A java2 classloader for loading compiled python modules. ! */ ! class BytecodeLoader2 extends SecureClassLoader implements Loader { private Vector parents; |
From: Finn B. <bc...@us...> - 2001-02-25 16:35:56
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32382 Modified Files: BytecodeLoader.java Log Message: Added javadoc comments. Index: BytecodeLoader.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/BytecodeLoader.java,v retrieving revision 2.12 retrieving revision 2.13 diff -C2 -r2.12 -r2.13 *** BytecodeLoader.java 2001/02/02 09:28:36 2.12 --- BytecodeLoader.java 2001/02/25 16:37:06 2.13 *************** *** 7,10 **** --- 7,14 ---- import java.util.Vector; + /** + * Utility class for loading of compiled python modules and + * java classes defined in python modules. + */ public class BytecodeLoader { *************** *** 64,67 **** --- 68,78 ---- } + /** + * Turn the java byte code in data into a java class. + * @param name the name of the class + * @param referents a list of superclass and interfaces that + * the new class will reference. + * @param data the java byte code. + */ public static Class makeClass(String name, Vector referents, byte[] data) *************** *** 82,85 **** --- 93,102 ---- } + /** + * Turn the java byte code for a compiled python module into a + * java class. + * @param name the name of the class + * @param data the java byte code. + */ public static PyCode makeCode(String name, byte[] data) { try { |
From: Finn B. <bc...@us...> - 2001-02-25 16:35:30
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv32232 Modified Files: ArgParser.java Log Message: Added javadoc comments. Index: ArgParser.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/ArgParser.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** ArgParser.java 2001/02/21 14:32:50 1.3 --- ArgParser.java 2001/02/25 16:36:42 1.4 *************** *** 2,6 **** /** ! * A utilityclass for handling mixed positional and keyword arguments. * * A typical usage: --- 2,6 ---- /** ! * A utility class for handling mixed positional and keyword arguments. * * A typical usage: *************** *** 41,44 **** --- 41,51 ---- } + /** + * Create an ArgParser with one method argument + * @param funcname Name of the method. Used in error messages. + * @param args The actual call arguments supplied in the call. + * @param args The actual keyword names supplied in the call. + * @param p0 The expected argument in the method definition. + */ public ArgParser(String funcname, PyObject[] args, String[] kws, String p0) { *************** *** 48,51 **** --- 55,66 ---- } + /** + * Create an ArgParser with two method argument + * @param funcname Name of the method. Used in error messages. + * @param args The actual call arguments supplied in the call. + * @param args The actual keyword names supplied in the call. + * @param p0 The first expected argument in the method definition. + * @param p1 The second expected argument in the method definition. + */ public ArgParser(String funcname, PyObject[] args, String[] kws, String p0, String p1) { *************** *** 55,58 **** --- 70,82 ---- } + /** + * Create an ArgParser with three method argument + * @param funcname Name of the method. Used in error messages. + * @param args The actual call arguments supplied in the call. + * @param args The actual keyword names supplied in the call. + * @param p0 The first expected argument in the method definition. + * @param p1 The second expected argument in the method definition. + * @param p2 The third expected argument in the method definition. + */ public ArgParser(String funcname, PyObject[] args, String[] kws, String p0, String p1, String p2) { *************** *** 62,65 **** --- 86,96 ---- } + /** + * Create an ArgParser with three method argument + * @param funcname Name of the method. Used in error messages. + * @param args The actual call arguments supplied in the call. + * @param args The actual keyword names supplied in the call. + * @param paramnames The list of expected argument in the method definition. + */ public ArgParser(String funcname, PyObject[] args, String[] kws, String[] paramnames) { *************** *** 70,77 **** --- 101,118 ---- + /** + * Return a required argument as a String. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public String getString(int pos) { return (String) getArg(pos, String.class, "string"); } + /** + * Return an optional argument as a String. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public String getString(int pos, String def) { return (String) getArg(pos, String.class, "string", def); *************** *** 79,86 **** --- 120,137 ---- + /** + * Return a required argument as an int. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public int getInt(int pos) { return getRequiredArg(pos).__int__().getValue(); } + /** + * Return an optional argument as an int. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public int getInt(int pos, int def) { PyObject value = getOptionalArg(pos); *************** *** 91,98 **** --- 142,159 ---- + /** + * Return a required argument as a PyObject. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public PyObject getPyObject(int pos) { return getRequiredArg(pos); } + /** + * Return an optiona argument as a PyObject. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public PyObject getPyObject(int pos, PyObject def) { PyObject value = getOptionalArg(pos); *************** *** 102,105 **** --- 163,171 ---- } + /** + * Return the remaining arguments as a tuple. + * @param pos The position of the argument. First argument is + * numbered 0. + */ public PyObject getList(int pos) { int kws_start = args.length - kws.length; |
From: Finn B. <bc...@us...> - 2001-02-25 15:36:11
|
Update of /cvsroot/jython/jython/Tools/jythonc In directory usw-pr-cvs1:/tmp/cvs-serv22094 Modified Files: SimpleCompiler.py Log Message: tryexcept(): Fix bug #229252. The else boolean is now set whenever an exception is caught. Index: SimpleCompiler.py =================================================================== RCS file: /cvsroot/jython/jython/Tools/jythonc/SimpleCompiler.py,v retrieving revision 2.12 retrieving revision 2.13 diff -C2 -r2.12 -r2.13 *** SimpleCompiler.py 2000/12/17 13:37:12 2.12 --- SimpleCompiler.py 2001/02/25 15:37:21 2.13 *************** *** 645,650 **** [exctmp, exc[0].asAny()]) newbody = [] - if elseClause is not None: - newbody.append(jast.Set(elseBool, jast.False)) if len(exc) == 2: --- 645,648 ---- *************** *** 669,673 **** catchBody = jast.MultiIf(tests, ifelse) ! catchBody = jast.Block([setexc, catchBody]) self.frame.freetemp(exctmp) --- 667,676 ---- catchBody = jast.MultiIf(tests, ifelse) ! catchBody = [setexc, catchBody] ! ! if elseClause is not None: ! catchBody = [jast.Set(elseBool, jast.False), catchBody] ! ! catchBody = jast.Block([catchBody]) self.frame.freetemp(exctmp) |
From: Finn B. <bc...@us...> - 2001-02-23 20:26:34
|
Update of /cvsroot/jython/jython/org/python/parser In directory usw-pr-cvs1:/tmp/cvs-serv20118 Modified Files: TokenMgrError.java Log Message: Consistent formatting. Removed tab chars. Index: TokenMgrError.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/parser/TokenMgrError.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -r2.2 -r2.3 *** TokenMgrError.java 1999/03/12 17:07:34 2.2 --- TokenMgrError.java 2001/02/23 20:27:40 2.3 *************** *** 141,152 **** public TokenMgrError(String message, int errorLine, int errorColumn) { this(message, LEXICAL_ERROR); ! this.EOFSeen = false; ! this.errorLine = errorLine; ! this.errorColumn = errorColumn; } public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, ! errorAfter, curChar), reason); // modified: 12-Mar-1999 baw this.EOFSeen = EOFSeen; --- 141,152 ---- public TokenMgrError(String message, int errorLine, int errorColumn) { this(message, LEXICAL_ERROR); ! this.EOFSeen = false; ! this.errorLine = errorLine; ! this.errorColumn = errorColumn; } public TokenMgrError(boolean EOFSeen, int lexState, int errorLine, int errorColumn, String errorAfter, char curChar, int reason) { this(LexicalError(EOFSeen, lexState, errorLine, errorColumn, ! errorAfter, curChar), reason); // modified: 12-Mar-1999 baw this.EOFSeen = EOFSeen; |
From: Finn B. <bc...@us...> - 2001-02-23 20:25:59
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv20020 Modified Files: PyReflectedFunction.java Log Message: __call__(): An optimization, no need to do super__ lookup for super__ methods. Index: PyReflectedFunction.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyReflectedFunction.java,v retrieving revision 2.7 retrieving revision 2.8 diff -C2 -r2.7 -r2.8 *** PyReflectedFunction.java 2001/02/02 09:28:37 2.7 --- PyReflectedFunction.java 2001/02/23 20:27:05 2.8 *************** *** 142,146 **** // Check to see if we should be using a super__ method instead // This is probably a bit inefficient... ! if (self == null && cself != null && cself instanceof PyProxy) { PyInstance iself = ((PyProxy)cself)._getPyInstance(); if (argslist[0].declaringClass != iself.__class__.proxyClass) { --- 142,147 ---- // Check to see if we should be using a super__ method instead // This is probably a bit inefficient... ! if (self == null && cself != null && cself instanceof PyProxy && ! !__name__.startsWith("super__")) { PyInstance iself = ((PyProxy)cself)._getPyInstance(); if (argslist[0].declaringClass != iself.__class__.proxyClass) { |
From: Finn B. <bc...@us...> - 2001-02-23 20:22:46
|
Update of /cvsroot/jython/jython/org/python/compiler In directory usw-pr-cvs1:/tmp/cvs-serv19564 Modified Files: JavaMaker.java Log Message: A fix to bug #122819 (SubSubDate). The very special super method (both with and without super__ name) should only be added to the topmost proxy class. Same fix should be made to jyhtonc. Index: JavaMaker.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/compiler/JavaMaker.java,v retrieving revision 2.8 retrieving revision 2.9 diff -C2 -r2.8 -r2.9 *** JavaMaker.java 2001/02/14 22:23:40 2.8 --- JavaMaker.java 2001/02/23 20:23:52 2.9 *************** *** 126,129 **** --- 126,139 ---- + public void addSuperMethod(String methodName, String superName, + String superclass, Class[] parameters, + Class ret, String sig, int access) + throws Exception + { + if (!superclass.startsWith("org/python/proxies")) { + super.addSuperMethod(methodName,superName,superclass,parameters,ret,sig,access); + } + } + public void addMain() throws Exception { Code code = classfile.addMethod("main", "([Ljava/lang/String;)V", |
From: Finn B. <bc...@us...> - 2001-02-23 20:20:11
|
Update of /cvsroot/jython/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv19463 Modified Files: platform.ht Log Message: Added TowerJ. Index: platform.ht =================================================================== RCS file: /cvsroot/jython/htdocs/platform.ht,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** platform.ht 2000/12/31 13:40:32 1.3 --- platform.ht 2001/02/23 20:21:17 1.4 *************** *** 50,53 **** --- 50,62 ---- </ul> + <H4><A HREF="http://www.towerj.com">Tower Technology Corporation</A></H4> + + The <a href="http://www.towerj.com/productsservices/platform.htm">TowerJ VM</a> + have shown impressive performance figures for some + Jython application. TowerJ is still a not a complete java environment, + but for some server type applications it can make performance around 2.6 + times faster than the IBM and Blackdown JVM's. TowerJ is a commercial + product that also runs on WinNT, Irix, HP, Solaris and others. + <H3>Macintosh</H3> *************** *** 97,100 **** --- 106,111 ---- ...) then this VM will give you all of the platform specific functionality you could desire. + + <H3 ALIGN="CENTER">Cross-Platform JVM's</H3> |
From: Finn B. <bc...@us...> - 2001-02-23 20:19:51
|
Update of /cvsroot/jython/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv19387 Modified Files: index.ht Log Message: Added Jon Udell's article. Index: index.ht =================================================================== RCS file: /cvsroot/jython/htdocs/index.ht,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** index.ht 2001/01/18 09:44:30 1.14 --- index.ht 2001/02/23 20:20:56 1.15 *************** *** 43,47 **** <dl> ! <dt><b>8-dec-2000</b> <dd>Bruce Eckel has release a new revision of his <a href="http://www.mindview.net/TIPatterns/index.html"> --- 43,51 ---- <dl> ! <dt><b>18-dec-2000</b> ! <dd>Jon Udell <a href="http://www.byte.com/column/BYT20001214S0009">talks</a> ! about using the JVM to implement other languages, among them JPython. ! ! <p><dt><b>8-dec-2000</b> <dd>Bruce Eckel has release a new revision of his <a href="http://www.mindview.net/TIPatterns/index.html"> |
From: Finn B. <bc...@us...> - 2001-02-23 20:19:12
|
Update of /cvsroot/jython/jython In directory usw-pr-cvs1:/tmp/cvs-serv19322 Modified Files: ACKNOWLEDGMENTS Log Message: Added Ian Castleden for the SubSUbDate patch. Index: ACKNOWLEDGMENTS =================================================================== RCS file: /cvsroot/jython/jython/ACKNOWLEDGMENTS,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -r2.9 -r2.10 *** ACKNOWLEDGMENTS 2001/02/04 15:01:50 2.9 --- ACKNOWLEDGMENTS 2001/02/23 20:20:17 2.10 *************** *** 45,49 **** Ivan Kougaenko Ype Kingma ! Local Variables: --- 45,49 ---- Ivan Kougaenko Ype Kingma ! Ian Castleden Local Variables: |
From: Finn B. <bc...@us...> - 2001-02-22 13:07:57
|
Update of /cvsroot/jython/jython/installer In directory usw-pr-cvs1:/tmp/cvs-serv24466 Modified Files: mklist.py Log Message: Added the warnings framework. Index: mklist.py =================================================================== RCS file: /cvsroot/jython/jython/installer/mklist.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** mklist.py 2001/02/04 14:54:34 1.10 --- mklist.py 2001/02/22 13:08:59 1.11 *************** *** 150,153 **** --- 150,154 ---- 'atexit.py', 'UserString.py', + 'warnings.py', ] |
From: Finn B. <bc...@us...> - 2001-02-22 13:05:58
|
Update of /cvsroot/jython/jython In directory usw-pr-cvs1:/tmp/cvs-serv24214 Modified Files: NEWS Log Message: News about the warning framework. Index: NEWS =================================================================== RCS file: /cvsroot/jython/jython/NEWS,v retrieving revision 2.28 retrieving revision 2.29 diff -C2 -r2.28 -r2.29 *** NEWS 2001/02/07 09:33:07 2.28 --- NEWS 2001/02/22 13:07:01 2.29 *************** *** 15,18 **** --- 15,19 ---- - Added the "new" module - Added a PyServlet class to the util package. + - Warning framework (pep-0230). Bug fixes. |
From: Finn B. <bc...@us...> - 2001-02-22 13:04:30
|
Update of /cvsroot/jython/jython/org/python/util In directory usw-pr-cvs1:/tmp/cvs-serv24066 Modified Files: jython.java Log Message: Added the -W warning option. Index: jython.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/util/jython.java,v retrieving revision 2.16 retrieving revision 2.17 diff -C2 -r2.16 -r2.17 *** jython.java 2000/12/15 22:21:02 2.16 --- jython.java 2001/02/22 13:05:32 2.17 *************** *** 19,22 **** --- 19,23 ---- "-jar jar : program read from __run__.py in jar file\n"+ "-c cmd : program passed in as string (terminates option list)\n"+ + "-W arg : warning control (arg is action:message:category:module:lineno)\n"+ "file : program read from script file\n"+ "- : program read from stdin (default; interactive mode if a "+ *************** *** 97,100 **** --- 98,106 ---- //System.err.println("imp"); + for (int i = 0; i < opts.warnoptions.size(); i++) { + String wopt = (String) opts.warnoptions.elementAt(i); + PySystemState.warnoptions.append(new PyString(wopt)); + } + String msg = ""; if (Options.importSite) { *************** *** 195,198 **** --- 201,205 ---- public java.util.Properties properties; public String command; + public java.util.Vector warnoptions = new java.util.Vector(); public CommandLineOptions() { *************** *** 258,261 **** --- 265,272 ---- command = args[++index]; if (!fixInteractive) interactive = false; + break; + } + else if (arg.equals("-W")) { + warnoptions.addElement(args[++index]); break; } |
From: Finn B. <bc...@us...> - 2001-02-22 13:03:46
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv23980 Removed Files: cPickle_exceptions.java Log Message: Use handcoded version of the exceptions. The cPickle_exceptions file is no longer required. --- cPickle_exceptions.java DELETED --- |
From: Finn B. <bc...@us...> - 2001-02-22 13:03:08
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv23858 Modified Files: cPickle.java Log Message: Use handcoded version of the exceptions. The cPickle_exceptions file is no longer required. Index: cPickle.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/cPickle.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** cPickle.java 2001/02/02 11:29:42 1.15 --- cPickle.java 2001/02/22 13:04:10 1.16 *************** *** 343,347 **** public static String[] __depends__ = new String[] { "copy_reg", - "cPickle_exceptions", }; --- 343,346 ---- *************** *** 351,437 **** public static PyObject UnpicklingError; - static { - PyObject excModule = importModule("cPickle_exceptions"); - - PickleError = excModule.__getattr__("PickleError"); - PicklingError = excModule.__getattr__("PicklingError"); - UnpickleableError = excModule.__getattr__("UnpickleableError"); - UnpicklingError = excModule.__getattr__("UnpicklingError"); - } - - - /** - * Super class for all pickling errors - */ - /* - public static class PickleError extends exceptions.Exception { - - public PickleError() { } - - public PickleError(PyObject[] args, String[] kws) { - super(args, kws); - } - - public PyString __str__() { - if (args.__len__() > 0 && args.__getitem__(0).__len__() > 0) - return args.__getitem__(0).__str__(); - else - return new PyString("(what)"); - } - } - */ - - /** - * This exception is raised when an unpicklable object is - * passed to Pickler.dump(). - */ - - /* - public static class PicklingError extends PickleError { - public PicklingError() { } - - public PicklingError(PyObject[] args, String[] kws) { - super(args, kws); - } - } - - */ - - - - /* - public static class UnpickleableError extends PicklingError { - public UnpickleableError() { } - - public UnpickleableError(PyObject[] args, String[] kws) { - super(args, kws); - } - public PyString __str__() { - PyObject a = args.__len__() > 0 ? - args.__getitem__(0) : - new PyString("(what)"); - return new PyString("Cannot pickle %s objects").__mod__(a). - __str__(); - } - } - */ - - - /** - * This exception if the input file does not contain a valid pickled - * object or it is unsafe to unpickle the object. - */ - - /* - public static class UnpicklingError extends PickleError { - public UnpicklingError() { } - - public UnpicklingError(PyObject[] args, String[] kws) { - super(args, kws); - } - } - */ - - public static final PyString BadPickleGet = new PyString("cPickle.BadPickleGet"); --- 350,353 ---- *************** *** 533,538 **** --- 449,523 ---- safe_constructors = (PyDictionary) copyreg.__getattr__("safe_constructors"); + + PickleError = buildClass("PickleError", Py.Exception, + "_PickleError", ""); + PicklingError = buildClass("PicklingError", PickleError, + "_empty__init__", ""); + UnpickleableError = buildClass("UnpickleableError", PicklingError, + "_UnpickleableError", ""); + UnpicklingError = buildClass("UnpicklingError", PickleError, + "_empty__init__", ""); + } + + // An empty __init__ method + public static PyObject _empty__init__(PyObject[] arg, String[] kws) { + PyObject dict = new PyStringMap(); + dict.__setitem__("__module__", new PyString("cPickle")); + return dict; + } + + public static PyObject _PickleError(PyObject[] arg, String[] kws) { + PyObject dict = _empty__init__(arg, kws); + dict.__setitem__("__init__", getJavaFunc("_PickleError__init__")); + dict.__setitem__("__str__", getJavaFunc("_PickleError__str__")); + return dict; + } + + public static void _PickleError__init__(PyObject[] arg, String[] kws) { + ArgParser ap = new ArgParser("__init__", arg, kws, "self", "args"); + PyObject self = ap.getPyObject(0); + PyObject args = ap.getList(1); + + self.__setattr__("args", args); + + } + + public static PyString _PickleError__str__(PyObject[] arg, String[] kws) { + ArgParser ap = new ArgParser("__str__", arg, kws, "self"); + PyObject self = ap.getPyObject(0); + + PyObject args = self.__getattr__("args"); + if (args.__len__() > 0 && args.__getitem__(0).__len__() > 0) + return args.__getitem__(0).__str__(); + else + return new PyString("(what)"); } + public static PyObject _UnpickleableError(PyObject[] arg, String[] kws) { + PyObject dict = _empty__init__(arg, kws); + dict.__setitem__("__init__", getJavaFunc("_UnpickleableError__init__")); + dict.__setitem__("__str__", getJavaFunc("_UnpickleableError__str__")); + return dict; + } + + public static void _UnpickleableError__init__(PyObject[] arg, String[] kws) { + ArgParser ap = new ArgParser("__init__", arg, kws, "self", "args"); + PyObject self = ap.getPyObject(0); + PyObject args = ap.getList(1); + + self.__setattr__("args", args); + } + + public static PyString _UnpickleableError__str__(PyObject[] arg, String[] kws) { + ArgParser ap = new ArgParser("__str__", arg, kws, "self"); + PyObject self = ap.getPyObject(0); + + PyObject args = self.__getattr__("args"); + PyObject a = args.__len__() > 0 ? args.__getitem__(0) : + new PyString("(what)"); + return new PyString("Cannot pickle %s objects").__mod__(a).__str__(); + } + + public cPickle() { } *************** *** 2065,2068 **** --- 2050,2071 ---- }); return __builtin__.__import__(name, null, null, silly_list); + } + + private static PyObject getJavaFunc(String name) { + return Py.newJavaFunc(cPickle.class, name); + } + + private static PyObject buildClass(String classname, + PyObject superclass, + String classCodeName, + String doc) { + PyObject[] sclass = Py.EmptyObjects; + if (superclass != null) + sclass = new PyObject[] { superclass }; + PyObject cls = Py.makeClass( + classname, sclass, + Py.newJavaCode(cPickle.class, classCodeName), + new PyString(doc)); + return cls; } } |
From: Finn B. <bc...@us...> - 2001-02-22 13:00:51
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv23699 Modified Files: exceptions.java Log Message: Removed a test that shouldn't have been commited. Oops. Index: exceptions.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/exceptions.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** exceptions.java 2001/02/22 11:08:21 1.4 --- exceptions.java 2001/02/22 13:01:52 1.5 *************** *** 220,224 **** dict.__setitem__("__init__", getJavaFunc("Exception__init__")); dict.__setitem__("__str__", getJavaFunc("Exception__str__")); - dict.__setitem__("__repr__", getJavaFunc("Exception__str__")); dict.__setitem__("__getitem__", getJavaFunc("Exception__getitem__")); return dict; --- 220,223 ---- |
From: Finn B. <bc...@us...> - 2001-02-22 11:09:37
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv5517 Modified Files: PySystemState.java Py.java Log Message: Added warning frame work (pep-0230). Index: PySystemState.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PySystemState.java,v retrieving revision 2.48 retrieving revision 2.49 diff -C2 -r2.48 -r2.49 *** PySystemState.java 2001/02/22 11:02:55 2.48 --- PySystemState.java 2001/02/22 11:10:38 2.49 *************** *** 75,78 **** --- 75,80 ---- public PyObject executable = Py.None; + public static PyList warnoptions; + private static PyJavaClass __builtin__class; *************** *** 375,378 **** --- 377,382 ---- __builtin__class = PyJavaClass.lookup(__builtin__.class); + + warnoptions = new PyList(); // Setup standard wrappers for stdout and stderr... Index: Py.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/Py.java,v retrieving revision 2.38 retrieving revision 2.39 diff -C2 -r2.38 -r2.39 *** Py.java 2001/02/22 11:06:51 2.38 --- Py.java 2001/02/22 11:10:38 2.39 *************** *** 216,219 **** --- 216,258 ---- public static PyObject Exception; + public static PyObject Warning; + public static void Warning(String message) { + warning(Warning, message); + } + + public static PyObject UserWarning; + public static void UserWarning(String message) { + warning(UserWarning, message); + } + + public static PyObject DeprecationWarning; + public static void DeprecationWarning(String message) { + warning(DeprecationWarning, message); + } + + public static PyObject SyntaxWarning; + public static void SyntaxWarning(String message) { + warning(SyntaxWarning, message); + } + + public static PyObject RuntimeWarning; + public static void RuntimeWarning(String message) { + warning(RuntimeWarning, message); + } + + public static void warning(PyObject category, String message) { + PyObject func = null; + PyObject mod = __builtin__.__import__("warnings"); + if (mod != null) + func = mod.__getattr__("warn"); + if (func == null) { + System.err.println("warning: " + message); + return; + } else { + func.__call__(Py.newString(message), category); + } + } + + public static PyObject JavaError; public static PyException JavaError(Throwable t) { *************** *** 432,435 **** --- 471,479 ---- SystemError = initExc("SystemError", exc, dict); MemoryError = initExc("MemoryError", exc, dict); + Warning = initExc("Warning", exc, dict); + UserWarning = initExc("UserWarning", exc, dict); + DeprecationWarning = initExc("DeprecationWarning", exc, dict); + SyntaxWarning = initExc("SyntaxWarning", exc, dict); + RuntimeWarning = initExc("RuntimeWarning", exc, dict); } |
From: Finn B. <bc...@us...> - 2001-02-22 11:07:19
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv5123 Modified Files: exceptions.java Log Message: Replaces the jythonc generated code with hand written code. Index: exceptions.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/exceptions.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** exceptions.java 2000/10/28 19:17:36 1.3 --- exceptions.java 2001/02/22 11:08:21 1.4 *************** *** 1,685 **** package org.python.core; ! import org.python.core.*; ! public class exceptions extends java.lang.Object implements org.python.core.ClassDictInit { ! static String[] jpy$properties = new String[] {"python.modules.builtin", "exceptions:org.python.core.exceptions", "python.options.showJavaExceptions", "true", "python.packages.paths", "", "python.packages.directories", ""}; ! static String[] jpy$packages = new String[] {}; ! ! public static class _PyInner extends PyFunctionTable implements PyRunnable { ! private static PyObject s$0; [...1052 lines suppressed...] ! ! private static PyObject getJavaFunc(String name) { ! return Py.newJavaFunc(exceptions.class, name); ! } ! ! private static PyObject buildClass(PyObject dict, String classname, ! String superclass, String classCodeName, ! String doc) { ! PyObject[] sclass = Py.EmptyObjects; ! if (superclass != null) ! sclass = new PyObject[] { dict.__getitem__(new PyString(superclass)) }; ! PyObject cls = Py.makeClass( ! classname, sclass, ! Py.newJavaCode(exceptions.class, classCodeName), ! new PyString(doc)); ! dict.__setitem__(classname, cls); ! return cls; ! } } + |
From: Finn B. <bc...@us...> - 2001-02-22 11:05:49
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv4787 Modified Files: Py.java Log Message: Added API for turning static java methods into python code and functions. Index: Py.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/Py.java,v retrieving revision 2.37 retrieving revision 2.38 diff -C2 -r2.37 -r2.38 *** Py.java 2001/02/22 11:02:55 2.37 --- Py.java 2001/02/22 11:06:51 2.38 *************** *** 378,381 **** --- 378,395 ---- } + public static PyCode newJavaCode(Class cls, String name) { + return new JavaCode(newJavaFunc(cls, name)); + } + + public static PyObject newJavaFunc(Class cls, String name) { + try { + java.lang.reflect.Method m = cls.getMethod(name, new Class[] { + PyObject[].class, String[].class }); + return new JavaFunc(m); + } catch (NoSuchMethodException e) { + throw Py.JavaError(e); + } + } + private static PyObject initExc(String name, PyObject exceptions, PyObject dict) { *************** *** 1464,1465 **** --- 1478,1568 ---- } } + + /** + * A code object wrapper for a python function. + */ + class JavaCode extends PyCode { + private PyObject func; + + public JavaCode(PyObject func) { + this.func = func; + if (func instanceof PyReflectedFunction) + this.co_name = ((PyReflectedFunction) func).__name__; + } + + public PyObject call(PyFrame frame) { + System.out.println("call #1"); + return Py.None; + } + + public PyObject call(PyObject args[], String keywords[], + PyObject globals, PyObject[] defaults) + { + return func.__call__(args, keywords); + } + + public PyObject call(PyObject self, PyObject args[], + String keywords[], + PyObject globals, PyObject[] defaults) + { + return func.__call__(self, args, keywords); + } + + public PyObject call(PyObject globals, PyObject[] defaults) + { + return func.__call__(); + } + + public PyObject call(PyObject arg1, PyObject globals, + PyObject[] defaults) + { + return func.__call__(arg1); + } + + public PyObject call(PyObject arg1, PyObject arg2, + PyObject globals, PyObject[] defaults) + { + return func.__call__(arg1, arg2); + } + + public PyObject call(PyObject arg1, PyObject arg2, PyObject arg3, + PyObject globals, PyObject[] defaults) + { + return func.__call__(arg1, arg2, arg3); + } + } + + /** + * A function object wrapper for a java method which comply with the + * PyArgsKeywordsCall standard. + */ + class JavaFunc extends PyObject { + java.lang.reflect.Method method; + + public JavaFunc(java.lang.reflect.Method method) { + this.method = method; + } + + public PyObject __call__(PyObject[] args, String[] kws) { + Object[] margs = new Object[] { args, kws }; + try { + return Py.java2py(method.invoke(null, margs)); + } catch (Throwable t) { + throw Py.JavaError(t); + } + } + + public PyObject _doget(PyObject container) { + return _doget(container, null); + } + + public PyObject _doget(PyObject container, PyObject wherefound) { + if (container == null) + return this; + return new PyMethod(container, this, wherefound); + } + + public boolean _doset(PyObject container) { + throw Py.TypeError("java function not settable: "+method.getName()); + } + } \ No newline at end of file |