Persistent Python - a la Smalltalk
Hi, I was thinking about a persistent Python interpreter system. I.e. you start a Python interpreter instance and you load and create all your objects, classes and code in there (or load it in there from other files). The basic idea is that you wont restart your Python script, you would always modify it on-the-fly. Or a bit less extreme: You would at least have the possibility with this to do this (like just doing minor changes). Also, if your PC halts for whatever reason, you can continue your Python script after a restart. This goes along my other recent proposal to store the AST of statements in the related code objects (http://thread.gmane.org/gmane.comp.python.devel/126754). An internal editor could then edit this AST and recompile the code object. For the persistance, there would be an image file containing all the Python objects. All in all, much like most Smalltalk systems. --- Has anyone done something like this already? --- There are a few implementation details which are not trivial and there doesn't seem to be straight forward solutions, e.g. most generally: * How to implement the persistance? * How to handle image compatibility between CPython updates? Even possible? Regards, Albert
[BCC python-dev, +python-ideas]
Funny you should mention this. ABC, Python's predecessor, worked like
this. However, it didn't work out very well. So, I'd say you're about
30 years too late with your idea... :-(
--Guido
On Sat, Sep 17, 2011 at 8:05 AM, Albert Zeyer
Hi,
I was thinking about a persistent Python interpreter system. I.e. you start a Python interpreter instance and you load and create all your objects, classes and code in there (or load it in there from other files).
The basic idea is that you wont restart your Python script, you would always modify it on-the-fly. Or a bit less extreme: You would at least have the possibility with this to do this (like just doing minor changes). Also, if your PC halts for whatever reason, you can continue your Python script after a restart.
This goes along my other recent proposal to store the AST of statements in the related code objects (http://thread.gmane.org/gmane.comp.python.devel/126754). An internal editor could then edit this AST and recompile the code object.
For the persistance, there would be an image file containing all the Python objects.
All in all, much like most Smalltalk systems.
---
Has anyone done something like this already?
---
There are a few implementation details which are not trivial and there doesn't seem to be straight forward solutions, e.g. most generally:
* How to implement the persistance? * How to handle image compatibility between CPython updates? Even possible?
Regards, Albert _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/guido%40python.org
-- --Guido van Rossum (python.org/~guido)
Hi,
I was thinking about a persistent Python interpreter system. I.e. you start a Python interpreter instance and you load and create all your objects, classes and code in there (or load it in there from other files).
The basic idea is that you wont restart your Python script, you would always modify it on-the-fly. Or a bit less extreme: You would at least have the possibility with this to do this (like just doing minor changes). Also, if your PC halts for whatever reason, you can continue your Python script after a restart.
This goes along my other recent proposal to store the AST of statements in the related code objects (http://thread.gmane.org/gmane.comp.python.devel/126754). An internal editor could then edit this AST and recompile the code object.
For the persistance, there would be an image file containing all the Python objects.
All in all, much like most Smalltalk systems.
---
Has anyone done something like this already?
---
There are a few implementation details which are not trivial and there doesn't seem to be straight forward solutions, e.g. most generally:
* How to implement the persistance? * How to handle image compatibility between CPython updates? Even
Twisted has some feature like that implemented using pickles or some thing.
It meant to save the state of the program during restart. I am not sure if
that's what you are after. http://twistedmatrix.com
On 17 Sep 2011 20:44, "Albert Zeyer"
Regards, Albert _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe:
http://mail.python.org/mailman/options/python-dev/godson.g%40gmail.com
participants (4)
-
Albert Zeyer
-
Ethan Furman
-
Godson Gera
-
Guido van Rossum