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-10-27 21:55:48
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv12156 Modified Files: cStringIO.java Log Message: Fix "[ #473676 ] cStringIO bug" where a 0 byte was return instead of the empty string at EOF. Index: cStringIO.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/cStringIO.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** cStringIO.java 2001/02/02 11:29:42 1.8 --- cStringIO.java 2001/10/27 21:55:45 1.9 *************** *** 141,145 **** int newpos = (size < 0) ? count : Math.min(pos+size, count); String r = null; ! if (size == 1) { r = cStringIO.getString(buf[pos]); } else { --- 141,145 ---- int newpos = (size < 0) ? count : Math.min(pos+size, count); String r = null; ! if (size == 1 && newpos > pos) { r = cStringIO.getString(buf[pos]); } else { |
From: Finn B. <bc...@us...> - 2001-10-27 21:45:42
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv10177 Added Files: test326.py Log Message: Test for [ #473676 ] cStringIO bug. --- NEW FILE: test326.py --- """ [ #473676 ] cStringIO bug """ import support import cStringIO s = cStringIO.StringIO() r = s.read(1) if len(r) != 0: raise support.TestError('EOF must be the empty string') s = cStringIO.StringIO("abc") r = s.read(2) assert len(r) == 2 r = s.read(1) assert len(r) == 1 r = s.read(1) if len(r) != 0: raise support.TestError('EOF must be the empty string #2') |
From: Finn B. <bc...@us...> - 2001-10-27 21:43:30
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv9713 Modified Files: SHA1.java Log Message: Fix [ #467826 ] SHA digest() method doesn't work Index: SHA1.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/SHA1.java,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -d -r2.2 -r2.3 *** SHA1.java 2001/02/02 11:29:42 2.2 --- SHA1.java 2001/10/27 21:43:27 2.3 *************** *** 493,497 **** public String digest() { ! return new String(digestBits, 0, digestBits.length, 0); } --- 493,499 ---- public String digest() { ! if (digestBits == null) ! digestBits = engineDigest(); ! return new String(digestBits, 0, 0, digestBits.length); } |
From: Finn B. <bc...@us...> - 2001-10-27 21:42:53
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv9435 Added Files: test324.py Log Message: Test for [ #467826 ] SHA digest() method doesn't work --- NEW FILE: test324.py --- """ [ #467826 ] SHA digest() method doesn't work """ import support import sha s = sha.sha() s.update("foo") r = s.digest() support.compare(len(r), "20") |
From: <ti...@su...> - 2001-10-23 05:36:28
|
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Consolidate all your debt into ONE, EASY monthly payment! We will help you: *Eliminate interest charges *Waive late fee charges *Improve your credit rating And best of all, lower your monthly payments by 40%-60% and KEEP MORE CASH IN YOUR POCKET! Take just 1 minute to complete our Credit Card Consolidation Form and one of our experienced professional consultants will contact you! http://thedebtconsolidation.com There is no obligation and our service is fast and free! All information is kept strictly confidential. **************************************************************** Since you have received this message you have either responded to one of our offers in the past or your address has been registered with us. If you wish to be removed please reply: mailto:swe...@ya...?subject=remove **************************************************************** ********** |
From: <ki...@ma...> - 2001-10-21 14:07:03
|
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Consolidate all your debt into ONE, EASY monthly payment! We will help you: *Eliminate interest charges *Waive late fee charges *Improve your credit rating And best of all, lower your monthly payments by 40%-60% and KEEP MORE CASH IN YOUR POCKET! Take just 1 minute to complete our Credit Card Consolidation Form and one of our experienced professional consultants will contact you! http://thedebtconsolidation.com There is no obligation and our service is fast and free! All information is kept strictly confidential. **************************************************************** Since you have received this message you have either responded to one of our offers in the past or your address has been registered with us. If you wish to be removed please reply: mailto:mor...@ya...?subject=remove **************************************************************** ********** |
From: Samuele P. <ped...@us...> - 2001-10-19 00:16:51
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv25071 Modified Files: MakeProxies.java Log Message: fixed class C(I): pass NClassDefE where I is a java interface from a 3rd-party classloader. Index: MakeProxies.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/MakeProxies.java,v retrieving revision 2.16 retrieving revision 2.17 diff -C2 -d -r2.16 -r2.17 *** MakeProxies.java 2001/02/14 22:17:54 2.16 --- MakeProxies.java 2001/10/19 00:16:45 2.17 *************** *** 22,27 **** if (referent != null) { secondary.insertElementAt(referent,0); - referents = secondary; } } else { if (referent != null) { --- 22,27 ---- if (referent != null) { secondary.insertElementAt(referent,0); } + referents = secondary; } else { if (referent != null) { |
From: Finn B. <bc...@us...> - 2001-10-06 22:19:54
|
Update of /cvsroot/jython/jython/installer In directory usw-pr-cvs1:/tmp/cvs-serv18258 Modified Files: liftoff.filelist Log Message: Updated list with new modules, including PyXML. Index: liftoff.filelist =================================================================== RCS file: /cvsroot/jython/jython/installer/liftoff.filelist,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** liftoff.filelist 2001/07/29 19:42:30 1.19 --- liftoff.filelist 2001/10/06 22:19:51 1.20 *************** *** 81,84 **** --- 81,85 ---- b Doc/images/PythonPoweredSmall.gif ..\Doc/images/PythonPoweredSmall.gif t Doc/api/allclasses-frame.html ..\Doc\api\allclasses-frame.html + t Doc/api/allclasses-noframe.html ..\Doc\api\allclasses-noframe.html t Doc/api/deprecated-list.html ..\Doc\api\deprecated-list.html t Doc/api/help-doc.html ..\Doc\api\help-doc.html *************** *** 135,138 **** --- 136,140 ---- t Doc/api/org/python/core/PyFunction.html ..\Doc\api\org\python\core\PyFunction.html t Doc/api/org/python/core/PyFunctionTable.html ..\Doc\api\org\python\core\PyFunctionTable.html + t Doc/api/org/python/core/PyIgnoreMethodTag.html ..\Doc\api\org\python\core\PyIgnoreMethodTag.html t Doc/api/org/python/core/PyInstance.html ..\Doc\api\org\python\core\PyInstance.html t Doc/api/org/python/core/PyInteger.html ..\Doc\api\org\python\core\PyInteger.html *************** *** 143,146 **** --- 145,149 ---- t Doc/api/org/python/core/PyList.html ..\Doc\api\org\python\core\PyList.html t Doc/api/org/python/core/PyLong.html ..\Doc\api\org\python\core\PyLong.html + t Doc/api/org/python/core/PyMetaClass.html ..\Doc\api\org\python\core\PyMetaClass.html t Doc/api/org/python/core/PyMethod.html ..\Doc\api\org\python\core\PyMethod.html t Doc/api/org/python/core/PyModule.html ..\Doc\api\org\python\core\PyModule.html *************** *** 167,170 **** --- 170,174 ---- t Doc/api/org/python/core/StdoutWrapper.html ..\Doc\api\org\python\core\StdoutWrapper.html t Doc/api/org/python/core/SysPackageManager.html ..\Doc\api\org\python\core\SysPackageManager.html + t Doc/api/org/python/core/SyspathArchive.html ..\Doc\api\org\python\core\SyspathArchive.html t Doc/api/org/python/core/SyspathJavaLoader.html ..\Doc\api\org\python\core\SyspathJavaLoader.html t Doc/api/org/python/core/ThreadState.html ..\Doc\api\org\python\core\ThreadState.html *************** *** 179,183 **** t Doc/api/org/python/util/package-summary.html ..\Doc\api\org\python\util\package-summary.html t Doc/api/org/python/util/package-tree.html ..\Doc\api\org\python\util\package-tree.html - t Doc/api/org/python/util/PyMetaClass.html ..\Doc\api\org\python\util\PyMetaClass.html t Doc/api/org/python/util/PyServlet.html ..\Doc\api\org\python\util\PyServlet.html t Doc/api/org/python/util/PythonInterpreter.html ..\Doc\api\org\python\util\PythonInterpreter.html --- 183,186 ---- *************** *** 313,316 **** --- 316,320 ---- t org/python/core/PyFunction.java ..\org\python\core\PyFunction.java t org/python/core/PyFunctionTable.java ..\org\python\core\PyFunctionTable.java + t org/python/core/PyIgnoreMethodTag.java ..\org\python\core\PyIgnoreMethodTag.java t org/python/core/PyInstance.java ..\org\python\core\PyInstance.java t org/python/core/PyInteger.java ..\org\python\core\PyInteger.java *************** *** 389,392 **** --- 393,397 ---- t org/python/modules/_jython.java ..\org\python\modules\_jython.java t org/python/modules/_sre.java ..\org\python\modules\_sre.java + t org/python/modules/_weakref.java ..\org\python\modules\_weakref.java t org/python/modules/Makefile ..\org\python\modules\Makefile t org/python/modules/sre/MatchObject.java ..\org\python\modules\sre\MatchObject.java *************** *** 455,459 **** --- 460,466 ---- t Lib/compileall.py d:\python\Python211\Lib\compileall.py t Lib/copy_reg.py d:\python\Python211\Lib\copy_reg.py + t Lib/difflib.py d:\python\Python211\Lib\difflib.py t Lib/dircache.py d:\python\Python211\Lib\dircache.py + t Lib/doctest.py d:\python\Python211\Lib\doctest.py t Lib/dospath.py d:\python\Python211\Lib\dospath.py t Lib/dumbdbm.py d:\python\Python211\Lib\dumbdbm.py *************** *** 517,523 **** --- 524,532 ---- t Lib/traceback.py d:\python\Python211\Lib\traceback.py t Lib/tzparse.py d:\python\Python211\Lib\tzparse.py + t Lib/unittest.py d:\python\Python211\Lib\unittest.py t Lib/urllib.py d:\python\Python211\Lib\urllib.py t Lib/urlparse.py d:\python\Python211\Lib\urlparse.py t Lib/user.py d:\python\Python211\Lib\user.py + t Lib/weakref.py d:\python\Python211\Lib\weakref.py t Lib/whichdb.py d:\python\Python211\Lib\whichdb.py t Lib/whrandom.py d:\python\Python211\Lib\whrandom.py *************** *** 602,604 **** --- 611,746 ---- t Lib/UserString.py d:\python\Python211\Lib\UserString.py t Lib/warnings.py d:\python\Python211\Lib\warnings.py + # + # XML modules from CPython and PyXML + # + t Lib/xml/ns.py ..\Lib\xml\ns.py + t Lib/xml/__init__.py ..\Lib\xml\__init__.py + t Lib/xml/sax/expatreader.py ..\Lib\xml\sax\expatreader.py + t Lib/xml/sax/handler.py ..\Lib\xml\sax\handler.py + t Lib/xml/sax/sax2exts.py ..\Lib\xml\sax\sax2exts.py + t Lib/xml/sax/saxexts.py ..\Lib\xml\sax\saxexts.py + t Lib/xml/sax/saxlib.py ..\Lib\xml\sax\saxlib.py + t Lib/xml/sax/saxutils.py ..\Lib\xml\sax\saxutils.py + t Lib/xml/sax/writer.py ..\Lib\xml\sax\writer.py + t Lib/xml/sax/xmlreader.py ..\Lib\xml\sax\xmlreader.py + t Lib/xml/sax/_exceptions.py ..\Lib\xml\sax\_exceptions.py + t Lib/xml/sax/__init__.py ..\Lib\xml\sax\__init__.py + t Lib/xml/sax/drivers2/drv_xmlproc.py ..\Lib\xml\sax\drivers2\drv_xmlproc.py + t Lib/xml/sax/drivers2/__init__.py ..\Lib\xml\sax\drivers2\__init__.py + t Lib/xml/utils/characters.py ..\Lib\xml\utils\characters.py + t Lib/xml/utils/iso8601.py ..\Lib\xml\utils\iso8601.py + t Lib/xml/utils/qp_xml.py ..\Lib\xml\utils\qp_xml.py + t Lib/xml/utils/__init__.py ..\Lib\xml\utils\__init__.py + t Lib/xml/dom/Attr.py ..\Lib\xml\dom\Attr.py + t Lib/xml/dom/CDATASection.py ..\Lib\xml\dom\CDATASection.py + t Lib/xml/dom/CharacterData.py ..\Lib\xml\dom\CharacterData.py + t Lib/xml/dom/Comment.py ..\Lib\xml\dom\Comment.py + t Lib/xml/dom/Document.py ..\Lib\xml\dom\Document.py + t Lib/xml/dom/DocumentFragment.py ..\Lib\xml\dom\DocumentFragment.py + t Lib/xml/dom/DocumentType.py ..\Lib\xml\dom\DocumentType.py + t Lib/xml/dom/DOMImplementation.py ..\Lib\xml\dom\DOMImplementation.py + t Lib/xml/dom/domreg.py ..\Lib\xml\dom\domreg.py + t Lib/xml/dom/Element.py ..\Lib\xml\dom\Element.py + t Lib/xml/dom/Entity.py ..\Lib\xml\dom\Entity.py + t Lib/xml/dom/EntityReference.py ..\Lib\xml\dom\EntityReference.py + t Lib/xml/dom/Event.py ..\Lib\xml\dom\Event.py + t Lib/xml/dom/FtNode.py ..\Lib\xml\dom\FtNode.py + t Lib/xml/dom/javadom.py ..\Lib\xml\dom\javadom.py + t Lib/xml/dom/MessageSource.py ..\Lib\xml\dom\MessageSource.py + t Lib/xml/dom/minidom.py ..\Lib\xml\dom\minidom.py + t Lib/xml/dom/minitraversal.py ..\Lib\xml\dom\minitraversal.py + t Lib/xml/dom/NamedNodeMap.py ..\Lib\xml\dom\NamedNodeMap.py + t Lib/xml/dom/NodeFilter.py ..\Lib\xml\dom\NodeFilter.py + t Lib/xml/dom/NodeIterator.py ..\Lib\xml\dom\NodeIterator.py + t Lib/xml/dom/NodeList.py ..\Lib\xml\dom\NodeList.py + t Lib/xml/dom/Notation.py ..\Lib\xml\dom\Notation.py + t Lib/xml/dom/ProcessingInstruction.py ..\Lib\xml\dom\ProcessingInstruction.py + t Lib/xml/dom/pulldom.py ..\Lib\xml\dom\pulldom.py + t Lib/xml/dom/Range.py ..\Lib\xml\dom\Range.py + t Lib/xml/dom/Text.py ..\Lib\xml\dom\Text.py + t Lib/xml/dom/TreeWalker.py ..\Lib\xml\dom\TreeWalker.py + t Lib/xml/dom/__init__.py ..\Lib\xml\dom\__init__.py + t Lib/xml/dom/ext/c14n.py ..\Lib\xml\dom\ext\c14n.py + t Lib/xml/dom/ext/Printer.py ..\Lib\xml\dom\ext\Printer.py + t Lib/xml/dom/ext/Visitor.py ..\Lib\xml\dom\ext\Visitor.py + t Lib/xml/dom/ext/XHtml2HtmlPrinter.py ..\Lib\xml\dom\ext\XHtml2HtmlPrinter.py + t Lib/xml/dom/ext/XHtmlPrinter.py ..\Lib\xml\dom\ext\XHtmlPrinter.py + t Lib/xml/dom/ext/__init__.py ..\Lib\xml\dom\ext\__init__.py + t Lib/xml/dom/ext/reader/Sax.py ..\Lib\xml\dom\ext\reader\Sax.py + t Lib/xml/dom/ext/reader/Sax2.py ..\Lib\xml\dom\ext\reader\Sax2.py + t Lib/xml/dom/ext/reader/Sax2Lib.py ..\Lib\xml\dom\ext\reader\Sax2Lib.py + t Lib/xml/dom/ext/reader/__init__.py ..\Lib\xml\dom\ext\reader\__init__.py + t Lib/xml/dom/html/GenerateHtml.py ..\Lib\xml\dom\html\GenerateHtml.py + t Lib/xml/dom/html/HTMLAnchorElement.py ..\Lib\xml\dom\html\HTMLAnchorElement.py + t Lib/xml/dom/html/HTMLAppletElement.py ..\Lib\xml\dom\html\HTMLAppletElement.py + t Lib/xml/dom/html/HTMLAreaElement.py ..\Lib\xml\dom\html\HTMLAreaElement.py + t Lib/xml/dom/html/HTMLBaseElement.py ..\Lib\xml\dom\html\HTMLBaseElement.py + t Lib/xml/dom/html/HTMLBaseFontElement.py ..\Lib\xml\dom\html\HTMLBaseFontElement.py + t Lib/xml/dom/html/HTMLBodyElement.py ..\Lib\xml\dom\html\HTMLBodyElement.py + t Lib/xml/dom/html/HTMLBRElement.py ..\Lib\xml\dom\html\HTMLBRElement.py + t Lib/xml/dom/html/HTMLButtonElement.py ..\Lib\xml\dom\html\HTMLButtonElement.py + t Lib/xml/dom/html/HTMLCollection.py ..\Lib\xml\dom\html\HTMLCollection.py + t Lib/xml/dom/html/HTMLDirectoryElement.py ..\Lib\xml\dom\html\HTMLDirectoryElement.py + t Lib/xml/dom/html/HTMLDivElement.py ..\Lib\xml\dom\html\HTMLDivElement.py + t Lib/xml/dom/html/HTMLDListElement.py ..\Lib\xml\dom\html\HTMLDListElement.py + t Lib/xml/dom/html/HTMLDocument.py ..\Lib\xml\dom\html\HTMLDocument.py + t Lib/xml/dom/html/HTMLDOMImplementation.py ..\Lib\xml\dom\html\HTMLDOMImplementation.py + t Lib/xml/dom/html/HTMLElement.py ..\Lib\xml\dom\html\HTMLElement.py + t Lib/xml/dom/html/HTMLFieldSetElement.py ..\Lib\xml\dom\html\HTMLFieldSetElement.py + t Lib/xml/dom/html/HTMLFontElement.py ..\Lib\xml\dom\html\HTMLFontElement.py + t Lib/xml/dom/html/HTMLFormElement.py ..\Lib\xml\dom\html\HTMLFormElement.py + t Lib/xml/dom/html/HTMLFrameElement.py ..\Lib\xml\dom\html\HTMLFrameElement.py + t Lib/xml/dom/html/HTMLFrameSetElement.py ..\Lib\xml\dom\html\HTMLFrameSetElement.py + t Lib/xml/dom/html/HTMLHeadElement.py ..\Lib\xml\dom\html\HTMLHeadElement.py + t Lib/xml/dom/html/HTMLHeadingElement.py ..\Lib\xml\dom\html\HTMLHeadingElement.py + t Lib/xml/dom/html/HTMLHRElement.py ..\Lib\xml\dom\html\HTMLHRElement.py + t Lib/xml/dom/html/HTMLHtmlElement.py ..\Lib\xml\dom\html\HTMLHtmlElement.py + t Lib/xml/dom/html/HTMLIFrameElement.py ..\Lib\xml\dom\html\HTMLIFrameElement.py + t Lib/xml/dom/html/HTMLImageElement.py ..\Lib\xml\dom\html\HTMLImageElement.py + t Lib/xml/dom/html/HTMLInputElement.py ..\Lib\xml\dom\html\HTMLInputElement.py + t Lib/xml/dom/html/HTMLIsIndexElement.py ..\Lib\xml\dom\html\HTMLIsIndexElement.py + t Lib/xml/dom/html/HTMLLabelElement.py ..\Lib\xml\dom\html\HTMLLabelElement.py + t Lib/xml/dom/html/HTMLLegendElement.py ..\Lib\xml\dom\html\HTMLLegendElement.py + t Lib/xml/dom/html/HTMLLIElement.py ..\Lib\xml\dom\html\HTMLLIElement.py + t Lib/xml/dom/html/HTMLLinkElement.py ..\Lib\xml\dom\html\HTMLLinkElement.py + t Lib/xml/dom/html/HTMLMapElement.py ..\Lib\xml\dom\html\HTMLMapElement.py + t Lib/xml/dom/html/HTMLMenuElement.py ..\Lib\xml\dom\html\HTMLMenuElement.py + t Lib/xml/dom/html/HTMLMetaElement.py ..\Lib\xml\dom\html\HTMLMetaElement.py + t Lib/xml/dom/html/HTMLModElement.py ..\Lib\xml\dom\html\HTMLModElement.py + t Lib/xml/dom/html/HTMLObjectElement.py ..\Lib\xml\dom\html\HTMLObjectElement.py + t Lib/xml/dom/html/HTMLOListElement.py ..\Lib\xml\dom\html\HTMLOListElement.py + t Lib/xml/dom/html/HTMLOptGroupElement.py ..\Lib\xml\dom\html\HTMLOptGroupElement.py + t Lib/xml/dom/html/HTMLOptionElement.py ..\Lib\xml\dom\html\HTMLOptionElement.py + t Lib/xml/dom/html/HTMLParagraphElement.py ..\Lib\xml\dom\html\HTMLParagraphElement.py + t Lib/xml/dom/html/HTMLParamElement.py ..\Lib\xml\dom\html\HTMLParamElement.py + t Lib/xml/dom/html/HTMLPreElement.py ..\Lib\xml\dom\html\HTMLPreElement.py + t Lib/xml/dom/html/HTMLQuoteElement.py ..\Lib\xml\dom\html\HTMLQuoteElement.py + t Lib/xml/dom/html/HTMLScriptElement.py ..\Lib\xml\dom\html\HTMLScriptElement.py + t Lib/xml/dom/html/HTMLSelectElement.py ..\Lib\xml\dom\html\HTMLSelectElement.py + t Lib/xml/dom/html/HTMLStyleElement.py ..\Lib\xml\dom\html\HTMLStyleElement.py + t Lib/xml/dom/html/HTMLTableCaptionElement.py ..\Lib\xml\dom\html\HTMLTableCaptionElement.py + t Lib/xml/dom/html/HTMLTableCellElement.py ..\Lib\xml\dom\html\HTMLTableCellElement.py + t Lib/xml/dom/html/HTMLTableColElement.py ..\Lib\xml\dom\html\HTMLTableColElement.py + t Lib/xml/dom/html/HTMLTableElement.py ..\Lib\xml\dom\html\HTMLTableElement.py + t Lib/xml/dom/html/HTMLTableRowElement.py ..\Lib\xml\dom\html\HTMLTableRowElement.py + t Lib/xml/dom/html/HTMLTableSectionElement.py ..\Lib\xml\dom\html\HTMLTableSectionElement.py + t Lib/xml/dom/html/HTMLTextAreaElement.py ..\Lib\xml\dom\html\HTMLTextAreaElement.py + t Lib/xml/dom/html/HTMLTitleElement.py ..\Lib\xml\dom\html\HTMLTitleElement.py + t Lib/xml/dom/html/HTMLUListElement.py ..\Lib\xml\dom\html\HTMLUListElement.py + t Lib/xml/dom/html/__init__.py ..\Lib\xml\dom\html\__init__.py + t Lib/xml/parsers/__init__.py ..\Lib\xml\parsers\__init__.py + t Lib/xml/parsers/xmlproc/catalog.py ..\Lib\xml\parsers\xmlproc\catalog.py + t Lib/xml/parsers/xmlproc/charconv.py ..\Lib\xml\parsers\xmlproc\charconv.py + t Lib/xml/parsers/xmlproc/dtdparser.py ..\Lib\xml\parsers\xmlproc\dtdparser.py + t Lib/xml/parsers/xmlproc/errors.py ..\Lib\xml\parsers\xmlproc\errors.py + t Lib/xml/parsers/xmlproc/namespace.py ..\Lib\xml\parsers\xmlproc\namespace.py + t Lib/xml/parsers/xmlproc/utils.py ..\Lib\xml\parsers\xmlproc\utils.py + t Lib/xml/parsers/xmlproc/xcatalog.py ..\Lib\xml\parsers\xmlproc\xcatalog.py + t Lib/xml/parsers/xmlproc/xmlapp.py ..\Lib\xml\parsers\xmlproc\xmlapp.py + t Lib/xml/parsers/xmlproc/xmldtd.py ..\Lib\xml\parsers\xmlproc\xmldtd.py + t Lib/xml/parsers/xmlproc/xmlproc.py ..\Lib\xml\parsers\xmlproc\xmlproc.py + t Lib/xml/parsers/xmlproc/xmlutils.py ..\Lib\xml\parsers\xmlproc\xmlutils.py + t Lib/xml/parsers/xmlproc/xmlval.py ..\Lib\xml\parsers\xmlproc\xmlval.py + t Lib/xml/parsers/xmlproc/_outputters.py ..\Lib\xml\parsers\xmlproc\_outputters.py + t Lib/xml/parsers/xmlproc/__init__.py ..\Lib\xml\parsers\xmlproc\__init__.py #===== end of list generated by mklist.py ===== |
From: Finn B. <bc...@us...> - 2001-10-06 21:26:35
|
Update of /cvsroot/jython/jython/installer In directory usw-pr-cvs1:/tmp/cvs-serv25011 Modified Files: mklist.py Log Message: Added weakref, doctest and difflib. Index: mklist.py =================================================================== RCS file: /cvsroot/jython/jython/installer/mklist.py,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** mklist.py 2001/08/13 18:37:27 1.21 --- mklist.py 2001/10/06 21:26:32 1.22 *************** *** 73,78 **** --- 73,80 ---- #'copy.py', 'copy_reg.py', + 'difflib.py', 'dircache.py', 'dircmp.py', + 'doctest.py', 'dospath.py', 'dumbdbm.py', *************** *** 141,144 **** --- 143,147 ---- 'urlparse.py', 'user.py', + 'weakref.py', 'whichdb.py', 'whrandom.py', |
From: Finn B. <bc...@us...> - 2001-10-06 20:40:26
|
Update of /cvsroot/jython/jython/Lib In directory usw-pr-cvs1:/tmp/cvs-serv10144 Modified Files: zipfile.py Log Message: Use the zipfile.py from CPython-2.2. It contain a different but better workaround for the problems that CPython-2.1-zipfile.py had. Index: zipfile.py =================================================================== RCS file: /cvsroot/jython/jython/Lib/zipfile.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** zipfile.py 2001/07/18 10:27:11 1.1 --- zipfile.py 2001/10/06 20:40:23 1.2 *************** *** 30,35 **** structFileHeader = "<4s2B4H3l2H" # 12 items, file header record, 30 bytes stringFileHeader = "PK\003\004" # magic number for file header - structExtHeader = "<4s3l" # 4 items, extra header record, 16 bytes - stringExtHeader = "PK\007\010" # magic number for ext header # indexes of entries in the central directory structure --- 30,33 ---- *************** *** 84,88 **** if endrec[0:4] == "PK\005\006" and endrec[-2:] == "\000\000": return 1 # file has correct magic number ! except IOError: pass --- 82,86 ---- if endrec[0:4] == "PK\005\006" and endrec[-2:] == "\000\000": return 1 # file has correct magic number ! except: pass *************** *** 375,385 **** self._writecheck(zinfo) fp = open(filename, "rb") ! zinfo.flag_bits = 0x08 zinfo.header_offset = self.fp.tell() # Start of header bytes self.fp.write(zinfo.FileHeader()) zinfo.file_offset = self.fp.tell() # Start of file bytes - CRC = 0 - compress_size = 0 - file_size = 0 if zinfo.compress_type == ZIP_DEFLATED: cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, --- 373,384 ---- self._writecheck(zinfo) fp = open(filename, "rb") ! zinfo.flag_bits = 0x00 zinfo.header_offset = self.fp.tell() # Start of header bytes + # Must overwrite CRC and sizes with correct data later + zinfo.CRC = CRC = 0 + zinfo.compress_size = compress_size = 0 + zinfo.file_size = file_size = 0 self.fp.write(zinfo.FileHeader()) zinfo.file_offset = self.fp.tell() # Start of file bytes if zinfo.compress_type == ZIP_DEFLATED: cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION, *************** *** 407,413 **** zinfo.CRC = CRC zinfo.file_size = file_size ! # Write CRC and file sizes after the file data ! self.fp.write(struct.pack(structExtHeader, stringExtHeader, ! zinfo.CRC, zinfo.compress_size, zinfo.file_size)) self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo --- 406,415 ---- zinfo.CRC = CRC zinfo.file_size = file_size ! # Seek backwards and write CRC and file sizes ! position = self.fp.tell() # Preserve current position in file ! self.fp.seek(zinfo.header_offset + 14, 0) ! self.fp.write(struct.pack("<lll", zinfo.CRC, zinfo.compress_size, ! zinfo.file_size)) ! self.fp.seek(position, 0) self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo *************** *** 432,437 **** if zinfo.flag_bits & 0x08: # Write CRC and file sizes after the file data ! self.fp.write(struct.pack(structExtHeader, stringExtHeader, ! zinfo.CRC, zinfo.compress_size, zinfo.file_size)) self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo --- 434,439 ---- if zinfo.flag_bits & 0x08: # Write CRC and file sizes after the file data ! self.fp.write(struct.pack("<lll", zinfo.CRC, zinfo.compress_size, ! zinfo.file_size)) self.filelist.append(zinfo) self.NameToInfo[zinfo.filename] = zinfo |
From: Finn B. <bc...@us...> - 2001-10-06 20:36:48
|
Update of /cvsroot/jython/jython/Lib In directory usw-pr-cvs1:/tmp/cvs-serv9637 Modified Files: zlib.py Log Message: Added workaround for the broken setInput in java1. Index: zlib.py =================================================================== RCS file: /cvsroot/jython/jython/Lib/zlib.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** zlib.py 2001/07/18 10:31:33 1.1 --- zlib.py 2001/10/06 20:36:45 1.2 *************** *** 41,45 **** raise error, "Bad compression level" deflater = util.zip.Deflater(level, 0) ! deflater.setInput(string) deflater.finish() return _get_deflate_data(deflater) --- 41,45 ---- raise error, "Bad compression level" deflater = util.zip.Deflater(level, 0) ! deflater.setInput(string, 0, len(string)) deflater.finish() return _get_deflate_data(deflater) *************** *** 62,66 **** def compress(self, string): ! self.deflater.setInput(string) return _get_deflate_data(self.deflater) --- 62,66 ---- def compress(self, string): ! self.deflater.setInput(string, 0, len(string)) return _get_deflate_data(self.deflater) |
From: Finn B. <bc...@us...> - 2001-10-06 20:18:16
|
Update of /cvsroot/jython/jython/org/python/compiler In directory usw-pr-cvs1:/tmp/cvs-serv5933 Modified Files: CodeCompiler.java Log Message: try_stmt(): Don't add a "goto handler" if the try suite always contain a return. This is added because MS jview silently aborts if the method contains a goto after a return. With this fix we might be able to use jview together with jythonc. Index: CodeCompiler.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/compiler/CodeCompiler.java,v retrieving revision 2.19 retrieving revision 2.20 diff -C2 -d -r2.19 -r2.20 *** CodeCompiler.java 2001/08/19 15:20:00 2.19 --- CodeCompiler.java 2001/10/06 20:18:13 2.20 *************** *** 1143,1149 **** start.setPosition(); //Do suite ! node.getChild(0).visit(this); end.setPosition(); ! code.goto_(handler_end); handler_start.setPosition(); --- 1143,1151 ---- start.setPosition(); //Do suite ! Object exit = node.getChild(0).visit(this); ! //System.out.println("exit: "+exit+", "+n+", "+(exit != null)); end.setPosition(); ! if (exit == null) ! code.goto_(handler_end); handler_start.setPosition(); |
From: Finn B. <bc...@us...> - 2001-09-05 19:52:46
|
Update of /cvsroot/jython/jython/Doc In directory usw-pr-cvs1:/tmp/cvs-serv27929 Modified Files: subclassing.ht Log Message: Fixed a bad typo in "self.super__foo()" Index: subclassing.ht =================================================================== RCS file: /cvsroot/jython/jython/Doc/subclassing.ht,v retrieving revision 2.2 retrieving revision 2.3 diff -C2 -d -r2.2 -r2.3 *** subclassing.ht 2000/11/12 22:22:06 2.2 --- subclassing.ht 2001/09/05 19:52:43 2.3 *************** *** 48,52 **** This works with the majority of methods, but protected methods cannot be called from subclasses in this way. ! Instead you have to use the "self.super_foo()" call style. <h3>Example</h3> --- 48,52 ---- This works with the majority of methods, but protected methods cannot be called from subclasses in this way. ! Instead you have to use the "self.super__foo()" call style. <h3>Example</h3> *************** *** 145,147 **** called in order to explictly choose a non-empty version. ! <p> \ No newline at end of file --- 145,147 ---- called in order to explictly choose a non-empty version. ! <p> |
From: Finn B. <bc...@us...> - 2001-08-28 17:09:23
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv25452 Modified Files: test303.py Log Message: Test the fix for [ #440660 ] using nested java cls @ level >2 fails Index: test303.py =================================================================== RCS file: /cvsroot/jython/bugtests/test303.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test303.py 2001/07/23 15:20:07 1.1 --- test303.py 2001/08/28 17:09:20 1.2 *************** *** 8,13 **** import test303j.A ! try: ! import test303j.A.B ! except ImportError: ! raise support.TestWarning('It should be possible to import test303j.A.B') --- 8,10 ---- import test303j.A ! import test303j.A.B |
From: Finn B. <bc...@us...> - 2001-08-19 21:21:43
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv15928 Modified Files: PyComplex.java PyDictionary.java PyFloat.java PyInteger.java PyList.java PyMethod.java PyNone.java PyString.java PySystemState.java PyTuple.java Log Message: The rest of the safeRepr() change. Index: PyComplex.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyComplex.java,v retrieving revision 2.7 retrieving revision 2.8 diff -C2 -d -r2.7 -r2.8 *** PyComplex.java 2001/07/16 16:16:53 2.7 --- PyComplex.java 2001/08/19 21:21:40 2.8 *************** *** 16,20 **** } ! protected String safeRepr() { return "'complex' object"; } --- 16,20 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'complex' object"; } Index: PyDictionary.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyDictionary.java,v retrieving revision 2.15 retrieving revision 2.16 diff -C2 -d -r2.15 -r2.16 *** PyDictionary.java 2001/04/13 18:32:05 2.15 --- PyDictionary.java 2001/08/19 21:21:40 2.16 *************** *** 151,155 **** } ! protected String safeRepr() { return "'dict' object"; } --- 151,155 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'dict' object"; } Index: PyFloat.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFloat.java,v retrieving revision 2.8 retrieving revision 2.9 diff -C2 -d -r2.8 -r2.9 *** PyFloat.java 2001/02/25 16:47:44 2.8 --- PyFloat.java 2001/08/19 21:21:40 2.9 *************** *** 20,24 **** } ! protected String safeRepr() { return "'float' object"; } --- 20,24 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'float' object"; } Index: PyInteger.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyInteger.java,v retrieving revision 2.11 retrieving revision 2.12 diff -C2 -d -r2.11 -r2.12 *** PyInteger.java 2001/07/27 14:55:46 2.11 --- PyInteger.java 2001/08/19 21:21:40 2.12 *************** *** 20,24 **** } ! protected String safeRepr() { return "'int' object"; } --- 20,24 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'int' object"; } Index: PyList.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyList.java,v retrieving revision 2.22 retrieving revision 2.23 diff -C2 -d -r2.22 -r2.23 *** PyList.java 2001/08/05 15:14:07 2.22 --- PyList.java 2001/08/19 21:21:40 2.23 *************** *** 134,138 **** } ! protected String safeRepr() { return "'list' object"; } --- 134,138 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'list' object"; } Index: PyMethod.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyMethod.java,v retrieving revision 2.13 retrieving revision 2.14 diff -C2 -d -r2.13 -r2.14 *** PyMethod.java 2001/03/04 17:54:38 2.13 --- PyMethod.java 2001/08/19 21:21:40 2.14 *************** *** 133,137 **** } ! protected String safeRepr() { return "'method' object"; } --- 133,137 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'method' object"; } Index: PyNone.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyNone.java,v retrieving revision 2.5 retrieving revision 2.6 diff -C2 -d -r2.5 -r2.6 *** PyNone.java 2001/02/25 16:45:29 2.5 --- PyNone.java 2001/08/19 21:21:40 2.6 *************** *** 24,28 **** } ! protected String safeRepr() { return "'None' object"; } --- 24,28 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'None' object"; } Index: PyString.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyString.java,v retrieving revision 2.48 retrieving revision 2.49 diff -C2 -d -r2.48 -r2.49 *** PyString.java 2001/08/14 20:14:17 2.48 --- PyString.java 2001/08/19 21:21:40 2.49 *************** *** 315,319 **** } ! protected String safeRepr() { return "'string' object"; } --- 315,319 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'string' object"; } Index: PySystemState.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PySystemState.java,v retrieving revision 2.61 retrieving revision 2.62 diff -C2 -d -r2.61 -r2.62 *** PySystemState.java 2001/08/19 21:16:33 2.61 --- PySystemState.java 2001/08/19 21:21:40 2.62 *************** *** 189,193 **** ! protected String safeRepr() { return "module 'sys'"; } --- 189,193 ---- ! public String safeRepr() throws PyIgnoreMethodTag { return "module 'sys'"; } Index: PyTuple.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyTuple.java,v retrieving revision 2.9 retrieving revision 2.10 diff -C2 -d -r2.9 -r2.10 *** PyTuple.java 2001/03/04 18:12:33 2.9 --- PyTuple.java 2001/08/19 21:21:40 2.10 *************** *** 63,67 **** } ! protected String safeRepr() { return "'tuple' object"; } --- 63,67 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { return "'tuple' object"; } |
From: Finn B. <bc...@us...> - 2001-08-19 21:16:36
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv15096 Modified Files: PySystemState.java Log Message: Prepare for beta1. Index: PySystemState.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PySystemState.java,v retrieving revision 2.60 retrieving revision 2.61 diff -C2 -d -r2.60 -r2.61 *** PySystemState.java 2001/07/27 14:56:10 2.60 --- PySystemState.java 2001/08/19 21:16:33 2.61 *************** *** 18,28 **** * The current version of JPython. */ ! public static String version = "2.1a3"; private static int PY_MAJOR_VERSION = 2; private static int PY_MINOR_VERSION = 1; private static int PY_MICRO_VERSION = 0; ! private static int PY_RELEASE_LEVEL = 0xA; ! private static int PY_RELEASE_SERIAL = 3; public static int hexversion = ((PY_MAJOR_VERSION << 24) | --- 18,28 ---- * The current version of JPython. */ ! public static String version = "2.1b1"; private static int PY_MAJOR_VERSION = 2; private static int PY_MINOR_VERSION = 1; private static int PY_MICRO_VERSION = 0; ! private static int PY_RELEASE_LEVEL = 0xB; ! private static int PY_RELEASE_SERIAL = 1; public static int hexversion = ((PY_MAJOR_VERSION << 24) | |
From: Finn B. <bc...@us...> - 2001-08-19 19:57:47
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv1614 Modified Files: PyJavaClass.java PyJavaInnerClass.java Log Message: Fix [ #440660 ] using nested java cls @ level >2 fails Index: PyJavaClass.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyJavaClass.java,v retrieving revision 2.37 retrieving revision 2.38 diff -C2 -d -r2.37 -r2.38 *** PyJavaClass.java 2001/08/19 19:17:44 2.37 --- PyJavaClass.java 2001/08/19 19:57:45 2.38 *************** *** 810,814 **** private PyObject findInnerClass(String name) { ! Class innerClass = Py.relFindClass(getProxyClass(),__name__+"$"+name); if (innerClass == null) return null; --- 810,815 ---- private PyObject findInnerClass(String name) { ! Class p = getProxyClass(); ! Class innerClass = Py.relFindClass(p, p.getName()+"$"+name); if (innerClass == null) return null; Index: PyJavaInnerClass.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyJavaInnerClass.java,v retrieving revision 2.8 retrieving revision 2.9 diff -C2 -d -r2.8 -r2.9 *** PyJavaInnerClass.java 2001/02/25 16:47:44 2.8 --- PyJavaInnerClass.java 2001/08/19 19:57:45 2.9 *************** *** 14,22 **** super(c); this.parent = parent; ! int dollar = __name__.indexOf('$'); ! if (dollar != -1) { ! __name__ = __name__.substring(0, dollar)+ ! "." + __name__.substring(dollar+1, __name__.length()); ! } } --- 14,19 ---- super(c); this.parent = parent; ! String pname = parent.__name__; ! __name__ = pname + "." + __name__.substring(pname.length() + 1); } |
From: Finn B. <bc...@us...> - 2001-08-19 19:17:47
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv26685 Modified Files: PyJavaClass.java Log Message: Fix [ #452947 ] Class of innerclass inst <> innerclas Index: PyJavaClass.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyJavaClass.java,v retrieving revision 2.36 retrieving revision 2.37 diff -C2 -d -r2.36 -r2.37 *** PyJavaClass.java 2001/08/14 19:43:14 2.36 --- PyJavaClass.java 2001/08/19 19:17:44 2.37 *************** *** 52,56 **** } ! ret = new PyJavaClass(c); tbl.putCanonical(c,ret); --- 52,60 ---- } ! Class parent = c.getDeclaringClass(); ! if (parent == null) ! ret = new PyJavaClass(c); ! else ! ret = new PyJavaInnerClass(c, lookup(parent)); tbl.putCanonical(c,ret); *************** *** 809,813 **** if (innerClass == null) return null; ! PyJavaClass jinner = new PyJavaInnerClass(innerClass, this); __dict__.__setitem__(name, jinner); return jinner; --- 813,817 ---- if (innerClass == null) return null; ! PyJavaClass jinner = lookup(innerClass); __dict__.__setitem__(name, jinner); return jinner; |
From: Finn B. <bc...@us...> - 2001-08-19 18:15:44
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv14890 Modified Files: Setup.java Log Message: Added _weakref. Index: Setup.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/modules/Setup.java,v retrieving revision 2.17 retrieving revision 2.18 diff -C2 -d -r2.17 -r2.18 *** Setup.java 2001/03/13 20:26:57 2.17 --- Setup.java 2001/08/19 18:15:42 2.18 *************** *** 50,53 **** --- 50,54 ---- "_jython", "new:org.python.modules.newmodule", + "_weakref", }; } |
From: Finn B. <bc...@us...> - 2001-08-19 18:14:56
|
Update of /cvsroot/jython/jython/org/python/modules In directory usw-pr-cvs1:/tmp/cvs-serv14741 Added Files: _weakref.java Log Message: Initial implementation of the _weakref module. --- NEW FILE: _weakref.java --- // Copyright 2001 Finn Bock package org.python.modules; import java.lang.ref.*; import java.util.*; import org.python.core.*; public class _weakref implements ClassDictInit { static ReferenceQueue referenceQueue = new ReferenceQueue(); static RefReaperThread reaperThread; static Map objects = new HashMap(); public static PyObject ReferenceError = null; static { reaperThread = new RefReaperThread(); reaperThread.setDaemon(true); reaperThread.start(); } /** <i>Internal use only. Do not call this method explicit.</i> */ public static void classDictInit(PyObject dict) throws PyIgnoreMethodTag { ReferenceError = Py.makeClass("ReferenceError", new PyObject[] { Py.RuntimeError }, Py.newJavaCode(_weakref.class, "empty__init__"), Py.None); dict.__setitem__("ReferenceError", ReferenceError); } // An empty __init__ method public static PyObject empty__init__(PyObject[] arg, String[] kws) { PyObject dict = new PyStringMap(); dict.__setitem__("__module__", new PyString("_weakref")); return dict; } public static ReferenceType ref(PyObject object) { GlobalRef gref = mkGlobal(object); ReferenceType ret = (ReferenceType)gref.find(ReferenceType.class); if (ret != null) { return ret; } return new ReferenceType(mkGlobal(object), null); } public static ReferenceType ref(PyObject object, PyObject callback) { return new ReferenceType(mkGlobal(object), callback); } public static ProxyType proxy(PyObject object) { GlobalRef gref = mkGlobal(object); ProxyType ret = (ProxyType)gref.find(ProxyType.class); if (ret != null) { return ret; } if (object.isCallable()) { return new CallableProxyType(mkGlobal(object), null); } else { return new ProxyType(mkGlobal(object), null); } } public static ProxyType proxy(PyObject object, PyObject callback) { if (object.isCallable()) { return new CallableProxyType(mkGlobal(object), callback); } else { return new ProxyType(mkGlobal(object), callback); } } public static int getweakrefcount(PyObject o) { GlobalRef ref = (GlobalRef) objects.get(new GlobalRef(o)); if (ref == null) return 0; return ref.count(); } public static PyList getweakrefs(PyObject o) { GlobalRef ref = (GlobalRef) objects.get(new GlobalRef(o)); if (ref == null) return new PyList(); return ref.refs(); } private static GlobalRef mkGlobal(PyObject object) { GlobalRef ref = (GlobalRef) objects.get(new GlobalRef(object)); if (ref == null) { ref = new GlobalRef(object, referenceQueue); objects.put(ref, ref); } return ref; } static class RefReaperThread extends Thread { RefReaperThread() { super("weakref reaper"); } public void collect() throws InterruptedException { GlobalRef gr = (GlobalRef) referenceQueue.remove(); gr.call(); objects.remove(gr); gr = null; } public void run() { while (true) { try { collect(); } catch (InterruptedException exc) { } } } } public static class GlobalRef extends WeakReference { private Vector references = new Vector(); private int hash; public GlobalRef(PyObject object) { super(object); hash = object.hashCode(); } public GlobalRef(PyObject object, ReferenceQueue queue) { super(object, queue); hash = object.hashCode(); } public synchronized void add(AbstractReference ref) { Reference r = new WeakReference(ref); references.addElement(r); } private final AbstractReference getReferenceAt(int idx) { WeakReference wref = (WeakReference) references.elementAt(idx); return (AbstractReference) wref.get(); } /** * Search for a reusable refrence. To be reused, it must be of the * same class and it must not have a callback. */ synchronized AbstractReference find(Class cls) { for (int i = references.size() - 1; i >= 0; i--) { AbstractReference r = getReferenceAt(i); if (r == null) references.removeElementAt(i); else if (r.callback == null && r.getClass() == cls) { return r; } } return null; } /** * Call each of the registered references. */ synchronized void call() { for (int i = references.size() - 1; i >= 0; i--) { AbstractReference r = getReferenceAt(i); if (r == null) references.removeElementAt(i); else r.call(); } } synchronized public int count() { for (int i = references.size() - 1; i >= 0; i--) { AbstractReference r = getReferenceAt(i); if (r == null) { references.removeElementAt(i); } } return references.size(); } synchronized public PyList refs() { Vector list = new Vector(); for (int i = references.size() - 1; i >= 0; i--) { AbstractReference r = getReferenceAt(i); if (r == null) references.removeElementAt(i); else list.addElement(r); } return new PyList(list); } /** * Allow GlobalRef's to be used as hashtable keys. */ public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof GlobalRef)) return false; Object t = this.get(); Object u = ((GlobalRef)o).get(); if ((t == null) || (u == null)) return false; if (t == u) return true; return t.equals(u); } /** * Allow GlobalRef's to be used as hashtable keys. */ public int hashCode() { return hash; } } public static abstract class AbstractReference extends PyObject { PyObject callback; protected GlobalRef gref; public AbstractReference(GlobalRef gref, PyObject callback) { this.gref = gref; this.callback = callback; gref.add(this); } void call() { if (callback == null) return; try { callback.__call__(this); } catch (Exception exc) { exc.printStackTrace(); } } protected PyObject py() { PyObject o = (PyObject) gref.get(); if (o == null) { throw new PyException(ReferenceError, "weakly-referenced object no longer exists"); } return o; } public int hashCode() { return gref.hash; } public PyObject __eq__(PyObject other) { if (other.getClass() != getClass()) return null; PyObject pythis = (PyObject) gref.get(); PyObject pyother = (PyObject) ((AbstractReference) other).gref.get(); if (pythis == null || pyother == null) return this == other ? Py.One : Py.Zero; return pythis._eq(pyother); } } public static class ReferenceType extends AbstractReference { ReferenceType(GlobalRef gref, PyObject callback) { super(gref, callback); } public PyObject __call__() { return Py.java2py(gref.get()); } public String toString() { String ret = "<weakref at " + Integer.toString(System.identityHashCode(this), 16) +";"; PyObject obj = (PyObject) gref.get(); if (obj != null) ret += " to " + obj.safeRepr() + ">"; else ret += " dead>"; return ret; } } public static class ProxyType extends AbstractReference { ProxyType(GlobalRef ref, PyObject callback) { super(ref, callback); } public PyObject __findattr__(String name) { return py().__findattr__(name); } public void __setattr__(String name, PyObject value) { py().__setattr__(name, value); } public void __delattr__(String name) { py().__delattr__(name); } public PyString __str__() { return py().__str__(); } public PyString __hex__() { return py().__hex__(); } public PyString __oct__() { return py().__oct__(); } public PyInteger __int__() { return py().__int__(); } public PyFloat __float__() { return py().__float__(); } public PyLong __long__() { return py().__long__(); } public PyComplex __complex__() { return py().__complex__(); } public PyObject __pos__() { return py().__pos__(); } public PyObject __neg__() { return py().__neg__(); } public PyObject __abs__() { return py().__abs__(); } public PyObject __invert__() { return py().__invert__(); } public PyObject __add__(PyObject o) { return py().__add__(o); } public PyObject __radd__(PyObject o) { return py().__radd__(o); } public PyObject __iadd__(PyObject o) { return py().__iadd__(o); } public PyObject __sub__(PyObject o) { return py().__sub__(o); } public PyObject __rsub__(PyObject o) { return py().__rsub__(o); } public PyObject __isub__(PyObject o) { return py().__isub__(o); } public PyObject __mul__(PyObject o) { return py().__mul__(o); } public PyObject __rmul__(PyObject o) { return py().__rmul__(o); } public PyObject __imul__(PyObject o) { return py().__imul__(o); } public PyObject __div__(PyObject o) { return py().__div__(o); } public PyObject __rdiv__(PyObject o) { return py().__rdiv__(o); } public PyObject __idiv__(PyObject o) { return py().__idiv__(o); } public PyObject __mod__(PyObject o) { return py().__mod__(o); } public PyObject __rmod__(PyObject o) { return py().__rmod__(o); } public PyObject __imod__(PyObject o) { return py().__imod__(o); } public PyObject __divmod__(PyObject o) { return py().__divmod__(o); } public PyObject __rdivmod__(PyObject o) { return py().__rdivmod__(o);} public PyObject __pow__(PyObject o) { return py().__pow__(o); } public PyObject __rpow__(PyObject o) { return py().__rpow__(o); } public PyObject __ipow__(PyObject o) { return py().__ipow__(o); } public PyObject __lshift__(PyObject o) { return py().__lshift__(o); } public PyObject __rlshift__(PyObject o) { return py().__rlshift__(o);} public PyObject __ilshift__(PyObject o) { return py().__ilshift__(o);} public PyObject __rshift__(PyObject o) { return py().__rshift__(o); } public PyObject __rrshift__(PyObject o) { return py().__rrshift__(o);} public PyObject __irshift__(PyObject o) { return py().__irshift__(o);} public PyObject __and__(PyObject o) { return py().__and__(o); } public PyObject __rand__(PyObject o) { return py().__rand__(o); } public PyObject __iand__(PyObject o) { return py().__iand__(o); } public PyObject __or__(PyObject o) { return py().__or__(o); } public PyObject __ror__(PyObject o) { return py().__ror__(o); } public PyObject __ior__(PyObject o) { return py().__ior__(o); } public PyObject __xor__(PyObject o) { return py().__xor__(o); } public PyObject __rxor__(PyObject o) { return py().__rxor__(o); } public PyObject __ixor__(PyObject o) { return py().__ixor__(o); } 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; } } public static class CallableProxyType extends ProxyType { CallableProxyType(GlobalRef ref, PyObject callback) { super(ref, callback); } public PyObject __call__(PyObject[] args, String[] kws) { return py().__call__(args, kws); } } } |
From: Finn B. <bc...@us...> - 2001-08-19 15:25:01
|
Update of /cvsroot/jython/jython/org/python/core In directory usw-pr-cvs1:/tmp/cvs-serv19349 Modified Files: PyObject.java Log Message: safeRepr(): Make it public and use PyIgnoreMethodTag to hide safeRepr from jython. Index: PyObject.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyObject.java,v retrieving revision 2.24 retrieving revision 2.25 diff -C2 -d -r2.24 -r2.25 *** PyObject.java 2001/07/18 15:53:56 2.24 --- PyObject.java 2001/08/19 15:24:56 2.25 *************** *** 105,113 **** } ! // TBD: safeRepr() is protected so that it's not accessible from ! // Python. This is bogus; arbitrary Java code should be able to get ! // safeRepr but we still want to hide it from Python. There should be ! // another way to hide Java methods from Python. ! protected String safeRepr() { if (__class__ == null) { return "unknown object"; --- 105,109 ---- } ! public String safeRepr() throws PyIgnoreMethodTag { if (__class__ == null) { return "unknown object"; |
From: Finn B. <bc...@us...> - 2001-08-19 15:20:06
|
Update of /cvsroot/jython/jython/org/python/compiler In directory usw-pr-cvs1:/tmp/cvs-serv18457 Modified Files: CodeCompiler.java Log Message: Fix [ #452526 ] traceback lineno is the except line Index: CodeCompiler.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/compiler/CodeCompiler.java,v retrieving revision 2.18 retrieving revision 2.19 diff -C2 -d -r2.18 -r2.19 *** CodeCompiler.java 2001/08/19 14:45:56 2.18 --- CodeCompiler.java 2001/08/19 15:20:00 2.19 *************** *** 1009,1013 **** SimpleNode suite = node.getChild(index+1); ! setline(name); Label end_of_self = code.getLabel(); --- 1009,1013 ---- SimpleNode suite = node.getChild(index+1); ! //setline(name); Label end_of_self = code.getLabel(); |
From: Finn B. <bc...@us...> - 2001-08-19 15:09:25
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv17164 Added Files: test320.py Log Message: [ #452526 ] traceback lineno is the except line --- NEW FILE: test320.py --- """ [ #452526 ] traceback lineno is the except line """ import support import sys, traceback def test(): print noname def foo(): try: test() except ValueError: print "shouldn't happen." try: foo() except: tb = sys.exc_info()[2] #print tb.tb_lineno #traceback.print_tb(tb) assert tb.tb_lineno == 15 |
From: Finn B. <bc...@us...> - 2001-08-19 15:06:06
|
Update of /cvsroot/jython/bugtests In directory usw-pr-cvs1:/tmp/cvs-serv16597 Added Files: test319.py test319j.java Log Message: [ #452947 ] Class of innerclass inst <> innerclas --- NEW FILE: test319.py --- """ Test class identity for inner classes [ #452947 ] Class of innerclass inst <> innerclas """ import support support.compileJava('test319j.java') import test319j id1 = id(test319j.inner) id2 = id(test319j.mkinner().__class__) if id1 != id2: print "innerclass different", test319j.inner, test319j.mkinner().__class__ raise support.TestWarning("innerclass different %s %s" % ( test319j.inner, test319j.mkinner().__class__)) --- NEW FILE: test319j.java --- public class test319j { public static class inner { } public static inner mkinner() { return new inner(); } } |
From: Finn B. <bc...@us...> - 2001-08-19 14:45:59
|
Update of /cvsroot/jython/jython/org/python/compiler In directory usw-pr-cvs1:/tmp/cvs-serv12090 Modified Files: CodeCompiler.java Log Message: Clear the reference stored in the tmp local. This lingering reference to the last value involved in an assignment statement would prevent timely garbage collection. The problem became visible while testing the _weakref module. Index: CodeCompiler.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/compiler/CodeCompiler.java,v retrieving revision 2.17 retrieving revision 2.18 diff -C2 -d -r2.17 -r2.18 *** CodeCompiler.java 2001/08/13 18:25:00 2.17 --- CodeCompiler.java 2001/08/19 14:45:56 2.18 *************** *** 105,108 **** --- 105,110 ---- int tmp = storeTop(); set(node, tmp); + code.aconst_null(); + code.astore(tmp); code.freeLocal(tmp); } |