From: Dana C. <da...@re...> - 2002-08-26 20:19:49
|
Code in question: ============== import sys from xml.dom.ext import PrettyPrint from xml.dom.minidom import parseString print "platform =", sys.platform # Create a document doc = parseString("<SmartData><Action>Update</Action><Data><IpDevice></IpDevice></Data></SmartData>") id = doc.getElementsByTagName("IpDevice").pop() outer = doc.createElement("AgentID") outer.appendChild(doc.createTextNode("linus")) id.appendChild(outer) outer = doc.createElement("SystemName") outer.appendChild(doc.createTextNode("linus")) id.appendChild(outer) outer = doc.createElement("Ip") outer.appendChild(doc.createTextNode("1.2.3.4")) id.appendChild(outer) outer = doc.createElement("Type") outer.appendChild(doc.createTextNode("Router")) id.appendChild(outer) # print just for fun PrettyPrint(doc) ================ Results: J:\src\python>c:\jython-2.1\jython domStuff.py platform = java1.4.0_01 Traceback (innermost last): File "domStuff.py", line 9, in ? File "C:\jython-2.1\Lib\xml\dom\minidom.py", line 913, in parseString File "C:\jython-2.1\Lib\xml\dom\minidom.py", line 900, in _doparse File "C:\jython-2.1\Lib\xml\dom\pulldom.py", line 251, in getEvent AttributeError: feed J:\src\python>c:\python22\python domStuff.py platform = win32 <?xml version='1.0' encoding='UTF-8'?> <SmartData> <Action>Update</Action> <Data> <IpDevice> <AgentID>linus</AgentID> <SystemName>linus</SystemName> <Ip>207.3.231.64</Ip> <Type>Router</Type> </IpDevice> </Data> </SmartData> J:\src\python> Thanks, -- Dana Chee Telcordia Technologies MCC 1A-336B (973) 829-4488 da...@re... |
From: Samuele P. <pe...@in...> - 2002-08-27 11:30:54
|
Jython loves all and everything but is not perfect (OTOH at least one developer is known to show a bad character at times <wink>) The PyXML (sf.net/projects/pyxml) subset that comes with jython is buggy, so you can try downloading a newer version. I would notice that also with Python 2.2 you are probably using a complete PyXML version (or something equivalent) and not the distributed subset: C:\exp>\usr\Python22\python domstuff.py Traceback (most recent call last): File "domstuff.py", line 2, in ? from xml.dom.ext import PrettyPrint ImportError: No module named ext regards. |
From: Ype K. <yk...@xs...> - 2002-09-03 17:47:45
|
Hi all, I'd like to try and prepare a patch for the bug I posted about "outer finally not executed at return". The idea is to see how jikes generates java code for a return from nested= =20 try/finally's and try and make the jython compiler do the same thing. My crystal ball shows me that I need some long winter nights for this, so it would be nice to have it working say next spring. I got anonymous CVS working from jython.sourceforge my Linux x86 platform= =2E Typing 'make' in the top jython directory prompted me to install jikes, which works fine, and now it tells me I need to change the boot class pat= h. My linux comes with java 1.1. So far, so good. Questions: 1) From recent messages it seems I need java 1.2 or higher to build jython. Which java would be preferable in this case? 2) I'd like to use CVS locally on my machine, too, so I can roll back eas= ily. Are you using CVS locally, and when so, how? (I have no practical experience with CVS other than getting the anonymous CVS checkout from jython.sourceforge to work on my machine.) 3) It seems some work is being done on AST. Would this be conflicting? 4) The python language definition has some restrictions on the use of break and continue in try/finally statements iirc. Would it be preferred to mimic CPython here? Regards, Ype |
From: Finn B. <bc...@wo...> - 2002-09-03 18:27:12
|
[Ype Kingma] > Hi all, > > I'd like to try and prepare a patch for the bug I posted about > "outer finally not executed at return". > > The idea is to see how jikes generates java code for a return from nested > try/finally's and try and make the jython compiler do the same thing. > My crystal ball shows me that I need some long winter nights for > this, so it would be nice to have it working say next spring. > > I got anonymous CVS working from jython.sourceforge my Linux x86 platform. > Typing 'make' in the top jython directory prompted me to install jikes, I would strongly suggest that you install ant (from the jakarata project) and use that for building jython. > which works fine, and now it tells me I need to change the boot class path. > My linux comes with java 1.1. > So far, so good. Questions: > > 1) From recent messages it seems I need java 1.2 or higher to build > jython. Which java would be preferable in this case? The ant build.xml file should allow building with a 1.1 VM but all the java2 features will not be compiled. I strongly suggest that you install a java2 VM, such a JDK1.3 from javasoft. > > 2) I'd like to use CVS locally on my machine, too, so I can roll back easily. > Are you using CVS locally, and when so, how? No, all my jython work is done directly on the SF CVS server. > (I have no practical experience with CVS other than getting the > anonymous CVS checkout from jython.sourceforge to work on my machine.) > > 3) It seems some work is being done on AST. Would this be conflicting? The AST work has already be committed and no further changes are expected in that area. So that should not conflict. OTOH the patch I have laying around that implements generators make several changes in the area of try:finally: and will most likely cause conflicts. Try not to worry too much about it though. > 4) The python language definition has some restrictions on the use > of break and continue in try/finally statements iirc. Would it be > preferred to mimic CPython here? CPython has already moved towards jython in that respect. IIRC there is still one different left and I think jython is more correct there. I need to recheck though. After fixing the code in CodeCompiler, you might want to fix the code generation in jythonc, but I suggest that you work on CodeCompiler first. Jythonc can be a bit scary. regards, finn |
From: Samuele P. <ped...@bl...> - 2002-09-03 18:55:59
|
From: Finn Bock <bc...@wo...> > [Ype Kingma] > > > Hi all, > > > > I'd like to try and prepare a patch for the bug I posted about > > "outer finally not executed at return". > > > > The idea is to see how jikes generates java code for a return from nested > > try/finally's and try and make the jython compiler do the same thing. yes, and javap -c or equivalent and the JVM spec are your friends too. > > 2) I'd like to use CVS locally on my machine, too, so I can roll back easily. > > Are you using CVS locally, and when so, how? > > No, all my jython work is done directly on the SF CVS server. same here. > > > (I have no practical experience with CVS other than getting the > > anonymous CVS checkout from jython.sourceforge to work on my machine.) > > if you really want to use a local CVS you should learn - I think - about the import and export CVS commands and how to setup a repository and for that study more or less much of all the CVS doc. OTOH unless you are going to make a lot of changes scattered everywhere on the code (will you? ;)) I don't think you really need to keep a local CVS repository. > After fixing the code in CodeCompiler, you might want to fix the code > generation in jythonc, but I suggest that you work on CodeCompiler > first. Jythonc can be a bit scary. I agree. regards. |
From: Ype K. <yk...@xs...> - 2002-09-04 18:05:17
|
Samuele, Finn, I'll install JDK 1.3 and ant and have a look at the AST patches. On Tuesday 03 September 2002 20:51, Samuele Pedroni wrote: > From: Finn Bock <bc...@wo...> > > > [Ype Kingma] > > > > > Hi all, > > > > > > I'd like to try and prepare a patch for the bug I posted about > > > "outer finally not executed at return". > > > > > > The idea is to see how jikes generates java code for a return from > > > nested try/finally's and try and make the jython compiler do the sa= me > > > thing. > > yes, and javap -c or equivalent and the JVM spec are your friends too. Ok. I suppose the allways verify class files option of the JVM will be=20 helpful. > > > 2) I'd like to use CVS locally on my machine, too, so I can roll ba= ck > > easily. > > > > Are you using CVS locally, and when so, how? > > > > No, all my jython work is done directly on the SF CVS server. > > same here. > > > > (I have no practical experience with CVS other than getting the > > > anonymous CVS checkout from jython.sourceforge to work on my machin= e.) > > if you really want to use a local CVS you should learn - I think - abou= t > the import and export CVS commands and how to setup a repository and fo= r > that study more or less much of all the CVS doc. OTOH unless you are go= ing > to make a lot of changes scattered everywhere on the code (will you? ;= )) I > don't think you really need to keep a local CVS repository. I skimmed the CVS docs a bit, when I got to the CVS policies bit I decide= d I'll start with plain files locally. CVS seems like a nice little big ani= mal. > > After fixing the code in CodeCompiler, you might want to fix the code > > generation in jythonc, but I suggest that you work on CodeCompiler > > first. Jythonc can be a bit scary. > > I agree. Ok. Thanks, Ype |
From: Ype K. <yk...@xs...> - 2002-09-13 04:33:30
|
On Tuesday 03 September 2002 20:28, Finn Bock wrote: > [Ype Kingma] > > > Hi all, > > > > I'd like to try and prepare a patch for the bug I posted about > > "outer finally not executed at return". > > <snip> > > > > I got anonymous CVS working from jython.sourceforge my Linux x86 > > platform. Typing 'make' in the top jython directory prompted me to > > install jikes, > > I would strongly suggest that you install ant (from the jakarata > project) and use that for building jython. I got ant to work, and it actually starts building. I copied ant.properties from the jython website and adapted it to my environment (Suse 7.3 standard + development). Now the build stops when trying to copy the standard library files from t= he local python Lib dir. Am I correct in assuming that I need python 2.2 installed to get this working nicely? I have python 2.1 now. Regards, Ype |
From: Finn B. <bc...@wo...> - 2002-09-13 07:01:52
|
[Ype Kingma] > I got ant to work, and it actually starts building. > I copied ant.properties from the jython website and adapted > it to my environment (Suse 7.3 standard + development). Cool. Just to let you know, if javaccHome2 is *not* set, then the javacc steps will be skipped alltogether. So since you don't (?) want to make changes to the grammar, you might want to leave javaccHome2 undefined. > Now the build stops when trying to copy the standard library files from the > local python Lib dir. > Am I correct in assuming that I need python 2.2 installed to get > this working nicely? I have python 2.1 now. Yes. The HEAD of CVS is designed to work with the CPython2.2 libraries. Unfortunately all the features of 2.2 is still not fully implemented (like generators and new-style-classes and such) so there is several modules from 2.2 that doesn't work the current CVS. But for development purposes you must have CPython2.2 installed. You also need to install the PyXML projects even if you don't need it. We should probably change the build.xml to skip copying PyXML file if the PyXmlHome is undefined, but for now PyXML is required. The ant targets that you should have working are 'copy-dist' to create a running environment (in ./dist) and 'all' when you edit the java sources. When running from the ./dist directory you will need JYTHON_HOME envvar defined, but that should be all. The comment on changing python.path on the website is outdated. Could you eventually make a list of suggestions of things we can do to make it easier to dig into the sources? regards, finn |
From: Ype K. <yk...@xs...> - 2002-09-13 20:46:52
|
Finn, On Friday 13 September 2002 09:03, Finn Bock wrote: > [Ype Kingma] > > > I got ant to work, and it actually starts building. > > I copied ant.properties from the jython website and adapted > > it to my environment (Suse 7.3 standard + development). > > Cool. > > Just to let you know, if javaccHome2 is *not* set, then the javacc step= s > will be skipped alltogether. So since you don't (?) want to make change= s > to the grammar, you might want to leave javaccHome2 undefined. Since break and continue are normal statements I wouldn't expect the parsing syntax to define the (im)possibility to use them anywhere. The build works here without javaccHome2 defined, and I prefer to keep it that way as long as possible. > > Now the build stops when trying to copy the standard library files fr= om > > the local python Lib dir. > > Am I correct in assuming that I need python 2.2 installed to get > > this working nicely? I have python 2.1 now. > > Yes. The HEAD of CVS is designed to work with the CPython2.2 libraries. > Unfortunately all the features of 2.2 is still not fully implemented > (like generators and new-style-classes and such) so there is several > modules from 2.2 that doesn't work the current CVS. But for development > purposes you must have CPython2.2 installed. > > You also need to install the PyXML projects even if you don't need it. > We should probably change the build.xml to skip copying PyXML file if > the PyXmlHome is undefined, but for now PyXML is required. After cleaning and another checkout the build now fails during target copy-dist: /usr/lib/python2.2/Lib not found at build.xml line 299. No Lib directory is present in the file list of the CPython 2.2 rpm. Directory /usr/lib/python2.2 exists. (During the 2.2 install I disabled checking for dependencies, because some libraries were missing. I thought this would be ok because I only need .py source files at the moment.) I guess the easy way out is to change build.xml to skip the copying the P= yXML file as you indicated. Any hints on how to do this? I have no experience ant build files. > The ant targets that you should have working are 'copy-dist' to create = a > running environment (in ./dist) and 'all' when you edit the java source= s. 'ant copy-dist' fails as above. > When running from the ./dist directory you will need JYTHON_HOME envvar > defined, but that should be all. The comment on changing python.path on > the website is outdated. I'll keep this in mind. I suppose JYTHON_HOME could be ./dist ? > Could you eventually make a list of suggestions of things we can do to > make it easier to dig into the sources? Putting all the 2.2 CPython .py files in the jython repository could make= a checkout complete. OTOH it might make it more difficult to keep these cop= ies in sync with CPython. Having some example CVS commands available might have helped a bit. So far I used the following two scripts: =2E/cvsloc: #!/bin/bash -e cvs -d :pserver:ano...@cv...:/cvsroot/jython $* # .cvsrc could also be used for this iirc. =2E/checkout: #!/bin/bash -e opt=3D'-q' # cvs quiet =2E/cvsloc $opt co jython =2E/cvsloc $opt co bugtests =2E/cvsloc $opt co htdocs The most difficult thing so far was having to find out that=20 installing ant using the jpackage rpm's is better avoided.... Aside: installing eclipse needs quite a few gtk libraries that have higher version numbers than the ones in my system, so I stopped this for the moment. Eclipse shows a splash screen and then complains about a missing gtk library. (Is there a way to ask rpm to install all dependencies available on an ftp site?) Building jython.jar with 'ant jar' succeeds, so I guess it will only get easier. Would I need the things normally copied after build.xml line 299 = for=20 testing? I'd like to start making a few bugtests, could you suggest a=20 testnumber that I could use to follow the bugtest naming scheme? Regards, Ype |
From: Finn B. <bc...@wo...> - 2002-09-16 05:58:57
|
[Ype Kingma] > After cleaning and another checkout the build now fails during > target copy-dist: > /usr/lib/python2.2/Lib not found at build.xml line 299. > No Lib directory is present in the file list of the CPython 2.2 rpm. > Directory /usr/lib/python2.2 exists. With a whole lot of .py files? I assumed that an installed CPython followed what I have seen on windows and in the python CVS with an executable in the topdir and a "Lib" directory below. Silly me. I just committed a change to build.xml where the copying of PyXML depends on whether PyXmlHome is defined and where the "Lib" and the python executable have their own properties. So try to remove the definition of PyXmlHome from your ant.properties and add definitions for: python.lib=/usr/lib/python2.2 python.exe=/usr/bin/python or whatever matches the directory with the .py standard modules and the python executable. > (During the 2.2 install I disabled checking for dependencies, > because some libraries were missing. I thought this would be > ok because I only need .py source files at the moment.) The .py sources is indeed all you need. >>When running from the ./dist directory you will need JYTHON_HOME envvar >>defined, but that should be all. The comment on changing python.path on >>the website is outdated. > > I'll keep this in mind. I suppose JYTHON_HOME could be ./dist ? Correct. >>Could you eventually make a list of suggestions of things we can do to >>make it easier to dig into the sources? > > Putting all the 2.2 CPython .py files in the jython repository could make a > checkout complete. OTOH it might make it more difficult to keep these copies > in sync with CPython. I'm not sure exactly what to do on this issue. There are very good arguments for including the CPython modules in the jython CVS. The only real argument for doing what we do now is purity: Since the files are owned and maintained by python-dev they should only be exist in their CVS. I don't think it will be much more difficult to maintain a copy of the files in our CVS, we only need to sync the files when we start developing on version N+1 and it may allow us to update the library more slowly and avoiding the problems when we update the library while our core still can't handle all the N+1 features. Should we consider changing strategy? Comments anyone? > Having some example CVS commands available might have helped a bit. > So far I used the following two scripts: > > ./cvsloc: > > #!/bin/bash -e > cvs -d :pserver:ano...@cv...:/cvsroot/jython $* > # .cvsrc could also be used for this iirc. > > ./checkout: > > #!/bin/bash -e > opt='-q' # cvs quiet > ./cvsloc $opt co jython > ./cvsloc $opt co bugtests > ./cvsloc $opt co htdocs > > > > The most difficult thing so far was having to find out that > installing ant using the jpackage rpm's is better avoided.... > > Aside: installing eclipse needs quite a few gtk libraries that > have higher version numbers than the ones in my system, so > I stopped this for the moment. Eclipse shows a splash screen > and then complains about a missing gtk library. > (Is there a way to ask rpm to install all dependencies available > on an ftp site?) > > Building jython.jar with 'ant jar' succeeds, so I guess it will only get > easier. Would I need the things normally copied after build.xml line 299 for > testing? Not for testing programs like: while 1: try: break except: pass but you will need the CPython modules when running the bugtests tests and you will need it for running the CPython testsuite as well. Running the CPython testsuite is possible, but it very fragile so I'll suggest ignoring that for now. > I'd like to start making a few bugtests, could you suggest a > testnumber that I could use to follow the bugtest naming scheme? The numbering isn't all that important. Pick the next unused number or add a little gap as you feel like. The numbers are assigned on a first come basis. Just make sure that all the files that are part of a test can be identified based in the either the file name or the directory name and post a .zip/.tar/.jar with the files to the patch manager. regards, finn |
From: Ype K. <yk...@xs...> - 2002-09-16 18:42:34
|
Finn, On Monday 16 September 2002 08:00, Finn Bock wrote: > [Ype Kingma] > > > After cleaning and another checkout the build now fails during > > target copy-dist: > > /usr/lib/python2.2/Lib not found at build.xml line 299. > > No Lib directory is present in the file list of the CPython 2.2 rpm. > > Directory /usr/lib/python2.2 exists. > > With a whole lot of .py files? Yep. You knew. Almost 1000, see below. <snip> > I just committed a change to build.xml where the copying of PyXML > depends on whether PyXmlHome is defined and where the "Lib" and the > python executable have their own properties. > > So try to remove the definition of PyXmlHome from your ant.properties > and add definitions for: > > python.lib=3D/usr/lib/python2.2 > python.exe=3D/usr/bin/python > > or whatever matches the directory with the .py standard modules and the > python executable. ant now builds successfully (It copied 931 files into Lib, and 33 into th= e demo dir) Thanks a lot. <snip> > >>Could you eventually make a list of suggestions of things we can do t= o > >>make it easier to dig into the sources? > > > > Putting all the 2.2 CPython .py files in the jython repository could = make > > a checkout complete. OTOH it might make it more difficult to keep the= se > > copies in sync with CPython. > > I'm not sure exactly what to do on this issue. There are very good > arguments for including the CPython modules in the jython CVS. The only > real argument for doing what we do now is purity: Since the files are > owned and maintained by python-dev they should only be exist in their C= VS. > > I don't think it will be much more difficult to maintain a copy of the > files in our CVS, we only need to sync the files when we start > developing on version N+1 and it may allow us to update the library mor= e > slowly and avoiding the problems when we update the library while our > core still can't handle all the N+1 features. > > Should we consider changing strategy? Comments anyone? I could check them out directly from the python CVS, if CVS allows me checkout from two repositories. Can CVS work that way? <snip> Thanks again, Ype |
From: Ype K. <yk...@xs...> - 2002-09-16 18:42:34
|
Finn, others, When running jython as built from CVS I get the following message (after = the=20 system package manager has done indexing new packages): Exception in thread "main" java.lang.VerifyError: (class:=20 org/python/core/imp, method: loadNames signature:=20 (Lorg/python/core/PyObject;Lorg/python/core/PyObject;Lorg/python/core/PyO= bject;Z)V)=20 Illegal target of jump or branch at org.python.core.Py.initClassExceptions(Py.java:539) at org.python.core.PySystemState.initialize(PySystemState.java:39= 1) at org.python.core.PySystemState.initialize(PySystemState.java:34= 9) at org.python.util.jython.main(jython.java:80) The exception occurs in initClassExceptions in Py.java: static void initClassExceptions(PyObject dict) { PyObject exc =3D imp.load("exceptions"); // here the exception oc= curs I'm running jython from bash in the ./jython/dist directory: java -Dpython.home=3D$JYTHON_HOME -jar jython.jar org.python.util.jython = "$@" ie. I added the -jar option to use jython.jar in the dist directory. My guess is that imp.load("exceptions") fails because "exceptions" is not= =20 found. I vaguely recall some discussion about where the standard=20 exceptions are best defined ie. in python code or in java code, but I hav= e no clue on how to get past this. Anyway, I'll have a look around for "exceptions". Regards, Ype |