From: Mark M. <Mar...@ds...> - 2004-10-25 15:52:07
|
I don't think it is a GC issue. If I type "dir()" in the new console, it appears clean. There is no module named "crap" in the global namespace. However, if I look at sys.modules, "crap" is still present. I can try a GC, but I don't think it will help. It looks like a global Jython state issue to me. Is there a document somewhere describing what all of the various initialize methods do? (PythonInterpreter.initialize(), Py.setSystemState(), PySystemState.initialize()). There are no descriptions in any of the Javadoc stuff, and they don't appear to do anything when I call them. Or a doc on lifecycle and the proper way to init and use a Jython interpreter from a Java program would be nice. Thanks, Mark. jyt...@li... wrote on 24/10/2004 10:55:17 PM: > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > <mar...@ds...> wrote: > > I am using Jython from a Java program and instantiate an InteractiveConsole > > to work with a GUI application. The first time I instantiate the console, I > > import a module called "crap" for argument's sake. I later trash the > > console, and fire up another one. The problem is - "crap" is still hanging > > around and is available (although somewhat stale..) in the new console. > > > Does a call to Garbage Collection help at all? > > http://java.sun.com/docs/books/tutorial/java/data/garbagecollection.html > > http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#gc() > > Greg > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Jeff E. <JEm...@lg...> - 2004-10-25 16:10:05
|
The only document is the source code. You should create a new interpreter for each console and each interpreter should have its own, new sys module (PySystemState). The PySystemState constructor creates a new, empty modules dictionary. -----Original Message----- From: jyt...@li... [mailto:jyt...@li...] On Behalf Of Mark Melvin Sent: Monday, October 25, 2004 9:52 AM To: Greg Knaddison Cc: jyt...@li...; jyt...@li... Subject: Re: [Jython-users] How to "cleanse" sys.modules between sessions I don't think it is a GC issue. If I type "dir()" in the new console, it appears clean. There is no module named "crap" in the global namespace. However, if I look at sys.modules, "crap" is still present. I can try a GC, but I don't think it will help. It looks like a global Jython state issue to me. Is there a document somewhere describing what all of the various initialize methods do? (PythonInterpreter.initialize(), Py.setSystemState(), PySystemState.initialize()). There are no descriptions in any of the Javadoc stuff, and they don't appear to do anything when I call them. Or a doc on lifecycle and the proper way to init and use a Jython interpreter from a Java program would be nice. Thanks, Mark. jyt...@li... wrote on 24/10/2004 10:55:17 PM: > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > <mar...@ds...> wrote: > > I am using Jython from a Java program and instantiate an InteractiveConsole > > to work with a GUI application. The first time I instantiate the console, I > > import a module called "crap" for argument's sake. I later trash the > > console, and fire up another one. The problem is - "crap" is still hanging > > around and is available (although somewhat stale..) in the new console. > > > Does a call to Garbage Collection help at all? > > http://java.sun.com/docs/books/tutorial/java/data/garbagecollection.html > > http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#gc() > > Greg > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Mark M. <Mar...@ds...> - 2004-10-25 18:03:47
|
Hmm... that is what I am doing, but it seems the sys module is not being created as new. Weird. I guess I'll dig into the source. I imagine that will explain things. Thanks, Mark. "Jeff Emanuel" <JEm...@lg...> wrote on 25/10/2004 12:09:20 PM: > The only document is the source code. > > You should create a new interpreter for each console > and each interpreter should have its own, new sys > module (PySystemState). The PySystemState constructor > creates a new, empty modules dictionary. > > > > -----Original Message----- > From: jyt...@li... > [mailto:jyt...@li...] On Behalf Of Mark > Melvin > Sent: Monday, October 25, 2004 9:52 AM > To: Greg Knaddison > Cc: jyt...@li...; > jyt...@li... > Subject: Re: [Jython-users] How to "cleanse" sys.modules between > sessions > > > > > > > > I don't think it is a GC issue. If I type "dir()" in the new console, > it > appears clean. There is no module named "crap" in the global namespace. > However, if I look at sys.modules, "crap" is still present. I can try a > GC, but I don't think it will help. It looks like a global Jython state > issue to me. Is there a document somewhere describing what all of the > various initialize methods do? (PythonInterpreter.initialize(), > Py.setSystemState(), PySystemState.initialize()). There are no > descriptions in any of the Javadoc stuff, and they don't appear to do > anything when I call them. Or a doc on lifecycle and the proper way to > init and use a Jython interpreter from a Java program would be nice. > > Thanks, > > Mark. > > > jyt...@li... wrote on 24/10/2004 10:55:17 > PM: > > > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > > <mar...@ds...> wrote: > > > I am using Jython from a Java program and instantiate an > InteractiveConsole > > > to work with a GUI application. The first time I instantiate the > console, I > > > import a module called "crap" for argument's sake. I later trash > the > > > console, and fire up another one. The problem is - "crap" is still > hanging > > > around and is available (although somewhat stale..) in the new > console. > > > > > > > Does a call to Garbage Collection help at all? > > > > > http://java.sun.com/docs/books/tutorial/java/data/garbagecollection.html > > > > http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#gc() > > > > Greg > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: IT Product Guide on > ITManagersJournal > > Use IT products in your business? Tell us what you think of them. Give > us > > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > > http://productguide.itmanagersjournal.com/guidepromo.tmpl > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give > us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Mark M. <Mar...@ds...> - 2004-10-25 18:16:52
|
Actually this helps a lot. Checking the source code, I can see that a no-arg constructor uses the stored PySystemState for all interpreters. By explicitly setting it to a new, empty PySystemState I get what I want. Thanks for the reply. Mark. "Jeff Emanuel" <JEm...@lg...> wrote on 25/10/2004 12:09:20 PM: > The only document is the source code. > > You should create a new interpreter for each console > and each interpreter should have its own, new sys > module (PySystemState). The PySystemState constructor > creates a new, empty modules dictionary. > > > > -----Original Message----- > From: jyt...@li... > [mailto:jyt...@li...] On Behalf Of Mark > Melvin > Sent: Monday, October 25, 2004 9:52 AM > To: Greg Knaddison > Cc: jyt...@li...; > jyt...@li... > Subject: Re: [Jython-users] How to "cleanse" sys.modules between > sessions > > > > > > > > I don't think it is a GC issue. If I type "dir()" in the new console, > it > appears clean. There is no module named "crap" in the global namespace. > However, if I look at sys.modules, "crap" is still present. I can try a > GC, but I don't think it will help. It looks like a global Jython state > issue to me. Is there a document somewhere describing what all of the > various initialize methods do? (PythonInterpreter.initialize(), > Py.setSystemState(), PySystemState.initialize()). There are no > descriptions in any of the Javadoc stuff, and they don't appear to do > anything when I call them. Or a doc on lifecycle and the proper way to > init and use a Jython interpreter from a Java program would be nice. > > Thanks, > > Mark. > > > jyt...@li... wrote on 24/10/2004 10:55:17 > PM: > > > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > > <mar...@ds...> wrote: > > > I am using Jython from a Java program and instantiate an > InteractiveConsole > > > to work with a GUI application. The first time I instantiate the > console, I > > > import a module called "crap" for argument's sake. I later trash > the > > > console, and fire up another one. The problem is - "crap" is still > hanging > > > around and is available (although somewhat stale..) in the new > console. > > > > > > > Does a call to Garbage Collection help at all? > > > > > http://java.sun.com/docs/books/tutorial/java/data/garbagecollection.html > > > > http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#gc() > > > > Greg > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: IT Product Guide on > ITManagersJournal > > Use IT products in your business? Tell us what you think of them. Give > us > > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > > http://productguide.itmanagersjournal.com/guidepromo.tmpl > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give > us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Jeff E. <JEm...@lg...> - 2004-10-25 18:49:13
|
I'm sorry I wasn't more explicit. When I said, "should have its own, new sys", I meant that you need to pass a new sys to each new interpreter. -----Original Message----- From: jyt...@li... [mailto:jyt...@li...] On Behalf Of Mark Melvin Sent: Monday, October 25, 2004 11:40 AM To: jyt...@li... Subject: RE: [Jython-users] How to "cleanse" sys.modules between sessions Hmm... that is what I am doing, but it seems the sys module is not being created as new. Weird. I guess I'll dig into the source. I imagine that will explain things. Thanks, Mark. "Jeff Emanuel" <JEm...@lg...> wrote on 25/10/2004 12:09:20 PM: > The only document is the source code. > > You should create a new interpreter for each console > and each interpreter should have its own, new sys > module (PySystemState). The PySystemState constructor > creates a new, empty modules dictionary. > > > > -----Original Message----- > From: jyt...@li... > [mailto:jyt...@li...] On Behalf Of Mark > Melvin > Sent: Monday, October 25, 2004 9:52 AM > To: Greg Knaddison > Cc: jyt...@li...; > jyt...@li... > Subject: Re: [Jython-users] How to "cleanse" sys.modules between > sessions > > > > > > > > I don't think it is a GC issue. If I type "dir()" in the new console, > it > appears clean. There is no module named "crap" in the global namespace. > However, if I look at sys.modules, "crap" is still present. I can try a > GC, but I don't think it will help. It looks like a global Jython state > issue to me. Is there a document somewhere describing what all of the > various initialize methods do? (PythonInterpreter.initialize(), > Py.setSystemState(), PySystemState.initialize()). There are no > descriptions in any of the Javadoc stuff, and they don't appear to do > anything when I call them. Or a doc on lifecycle and the proper way to > init and use a Jython interpreter from a Java program would be nice. > > Thanks, > > Mark. > > > jyt...@li... wrote on 24/10/2004 10:55:17 > PM: > > > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > > <mar...@ds...> wrote: > > > I am using Jython from a Java program and instantiate an > InteractiveConsole > > > to work with a GUI application. The first time I instantiate the > console, I > > > import a module called "crap" for argument's sake. I later trash > the > > > console, and fire up another one. The problem is - "crap" is still > hanging > > > around and is available (although somewhat stale..) in the new > console. > > > > > > > Does a call to Garbage Collection help at all? > > > > > http://java.sun.com/docs/books/tutorial/java/data/garbagecollection.html > > > > http://java.sun.com/j2se/1.4.2/docs/api/java/lang/System.html#gc() > > > > Greg > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: IT Product Guide on > ITManagersJournal > > Use IT products in your business? Tell us what you think of them. Give > us > > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > > http://productguide.itmanagersjournal.com/guidepromo.tmpl > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IT Product Guide on ITManagersJournal > Use IT products in your business? Tell us what you think of them. Give > us > Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out > more > http://productguide.itmanagersjournal.com/guidepromo.tmpl > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Updike, C. <Cla...@jh...> - 2004-10-25 18:51:00
|
I'm not able to reproduce your problem: Jython 2.1 on java1.3.1_01 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from org.python.util import InteractiveConsole as IC >>> ic1 =3D IC() >>> ic1.interact() Jython 2.1 on java1.3.1_01 (JIT: null) >>> import time >>> dir() ['__doc__', '__name__', 'time'] >>> ^Z >>> ic2 =3D IC() >>> ic2.interact() Jython 2.1 on java1.3.1_01 (JIT: null) >>> dir() ['__doc__', '__name__'] >>> Notice dir() on ic2 does not show the time module that was imported in ic1. What happens when you follow this example importing your 'crap'? -Clark -----Original Message----- From: On Behalf Of Mark Melvin Sent: Monday, October 25, 2004 1:40 PM To: jyt...@li... Subject: RE: [Jython-users] How to "cleanse" sys.modules between sessions Hmm... that is what I am doing, but it seems the sys module is not being created as new. =20 Weird. I guess I'll dig into the source. I imagine that will explain things. Thanks, Mark. "Jeff Emanuel" <JEm...@lg...> wrote on 25/10/2004 12:09:20 PM: > The only document is the source code. > > You should create a new interpreter for each console > and each interpreter should have its own, new sys > module (PySystemState). The PySystemState constructor creates a new,=20 > empty modules dictionary. > > -----Original Message----- > From: jyt...@li... > [mailto:jyt...@li...] On Behalf Of Mark=20 > Melvin > Sent: Monday, October 25, 2004 9:52 AM > To: Greg Knaddison > Cc: jyt...@li...; > jyt...@li... > Subject: Re: [Jython-users] How to "cleanse" sys.modules between=20 > sessions > > I don't think it is a GC issue. If I type "dir()" in the new console, > it appears clean. There is no module named "crap" in the global=20 > namespace. However, if I look at sys.modules, "crap" is still present. > I can try a GC, but I don't think it will help. It looks like a=20 > global Jython state issue to me. Is there a document somewhere=20 > describing what all of the various initialize methods do? =20 > (PythonInterpreter.initialize(), Py.setSystemState(),=20 > PySystemState.initialize()). There are no descriptions in any of the=20 > Javadoc stuff, and they don't appear to do anything when I call them. > Or a doc on lifecycle and the proper way to init and use a Jython=20 > interpreter from a Java program would be nice. > > Thanks, > > Mark. > > > jyt...@li... wrote on 24/10/2004 10:55:17 > PM: > > > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin=20 > > <mar...@ds...> wrote: > > > I am using Jython from a Java program and instantiate an > InteractiveConsole > > > to work with a GUI application. The first time I instantiate the > console, I > > > import a module called "crap" for argument's sake. I later trash > the > > > console, and fire up another one. The problem is - "crap" is=20 > > > still > hanging > > > around and is available (although somewhat stale..) in the new > console. |
From: Mark M. <Mar...@ds...> - 2004-10-25 20:16:54
|
As a matter of interest, the problem I was talking about is as follows (but note I resolved my problem): Jython 2.1 on java1.4.1_02 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from org.python.util import InteractiveConsole as IC >>> IC1 = IC() >>> IC1.interact() Jython 2.1 on java1.4.1_02 (JIT: null) >>> import time >>> dir() ['__doc__', '__name__', 'time'] >>> ^Z >>> IC2 = IC() >>> IC2.interact() Jython 2.1 on java1.4.1_02 (JIT: null) >>> dir() ['__doc__', '__name__'] >>> import sys >>> sys.modules {'__main__': <module __main__ at 9788212>, 'java.lang': <java package java.lang at 26654547>, '_sre': <jclass org.python.modules._sre at 31304962>, 'sre': <module sre at 9016474>, 'org': <java package org at 8075231>, 'strop': None, 'string': <module string at 26290774>, '__builtin__': <module __builtin__ at 24291903>, 'javaos': <module j avaos at 17247120>, 'sre_constants': <module sre_constants at 29165247>, 'javapath': <module javapath at 17175193>, 'sys': sys module, 'java.io': <java package java.io at 28252437>, 'sre_compile': <module sre_compile at 9942961>, 're': <module re at 10276870>, 'sre_parse': <module sre_parse at 18707897>, 'exceptions': <jclass org.python.c ore.exceptions at 18610053>, 'thread': <jclass org.python.modules.thread at 18304709>, 'copy_reg': <module copy_reg at 20211730>, 'org.python.util': <java package org.pyt hon.util at 27035333>, 'java': <java package java at 22293724>, 'org.python': <java package org.python at 21840659>, 'sitecustomize': None, 'os': <jclass org.python.modul es.os at 24027487>, 'UserDict': <module UserDict at 2389016>, 'site': <module site at 21094410>, 'types': <jclass org.python.modules.types at 31174955>, 'time': <jclass o rg.python.modules.time at 5014562>} >>> Notice how 'time' is still in sys.modules in IC2. This was causing me problems for a script I had imported that was keeping a reference to an old, stale object. Thanks for the reply, Mark. "Updike, Clark" <Cla...@jh...> wrote on 25/10/2004 02:50:51 PM: > I'm not able to reproduce your problem: > > Jython 2.1 on java1.3.1_01 (JIT: null) > Type "copyright", "credits" or "license" for more information. > >>> from org.python.util import InteractiveConsole as IC > >>> ic1 = IC() > >>> ic1.interact() > Jython 2.1 on java1.3.1_01 (JIT: null) > >>> import time > >>> dir() > ['__doc__', '__name__', 'time'] > >>> ^Z > > >>> ic2 = IC() > >>> ic2.interact() > Jython 2.1 on java1.3.1_01 (JIT: null) > >>> dir() > ['__doc__', '__name__'] > >>> > > Notice dir() on ic2 does not show the time module that was imported in > ic1. > > What happens when you follow this example importing your 'crap'? > > -Clark > > -----Original Message----- > From: On Behalf Of Mark Melvin > Sent: Monday, October 25, 2004 1:40 PM > To: jyt...@li... > Subject: RE: [Jython-users] How to "cleanse" sys.modules between > sessions > > Hmm... that is what I am doing, but it seems the sys module is not being > created as new. > Weird. I guess I'll dig into the source. I imagine that will explain > things. > > Thanks, > Mark. > > "Jeff Emanuel" <JEm...@lg...> wrote on 25/10/2004 12:09:20 PM: > > > The only document is the source code. > > > > You should create a new interpreter for each console > > and each interpreter should have its own, new sys > > module (PySystemState). The PySystemState constructor creates a new, > > empty modules dictionary. > > > > -----Original Message----- > > From: jyt...@li... > > [mailto:jyt...@li...] On Behalf Of Mark > > Melvin > > Sent: Monday, October 25, 2004 9:52 AM > > To: Greg Knaddison > > Cc: jyt...@li...; > > jyt...@li... > > Subject: Re: [Jython-users] How to "cleanse" sys.modules between > > sessions > > > > I don't think it is a GC issue. If I type "dir()" in the new console, > > > it appears clean. There is no module named "crap" in the global > > namespace. However, if I look at sys.modules, "crap" is still present. > > > I can try a GC, but I don't think it will help. It looks like a > > global Jython state issue to me. Is there a document somewhere > > describing what all of the various initialize methods do? > > (PythonInterpreter.initialize(), Py.setSystemState(), > > PySystemState.initialize()). There are no descriptions in any of the > > Javadoc stuff, and they don't appear to do anything when I call them. > > > Or a doc on lifecycle and the proper way to init and use a Jython > > interpreter from a Java program would be nice. > > > > Thanks, > > > > Mark. > > > > > > jyt...@li... wrote on 24/10/2004 10:55:17 > > PM: > > > > > On Sun, 24 Oct 2004 16:27:54 -0400, Mark Melvin > > > <mar...@ds...> wrote: > > > > I am using Jython from a Java program and instantiate an > > InteractiveConsole > > > > to work with a GUI application. The first time I instantiate the > > console, I > > > > import a module called "crap" for argument's sake. I later trash > > the > > > > console, and fire up another one. The problem is - "crap" is > > > > still > > hanging > > > > around and is available (although somewhat stale..) in the new > > console. |