update the running code without halting any running processes
That’s more a function of the way you code up the running processes and less a function of the language involved, but I suspect that systems where a language can be combined with, essentially, a VM and an OS (LISP, Smalltalk) can make that a lot easier. Wrangling Python to become LISP is going to be… quite an exercise.
But if all you need is to change the values of some variables and/or what some functions so, that looks doable.
wrapped in a logging function
So basically you want to run your code inside a debugger?
That’s more of a function of the way you code up the running processes
Well not necessarily, depending on what kind of transforms you can apply to the source before feeding it to the interpreter, and the degree of fuss you’re willing to put up with in terms of defining global functions with special names to handle resurrection of state and so on.
Python wasn’t picked specifically because it’s ideal for doing this kind of thing but just because it’s easy for hacking prototypes together and useful for many things. At the risk of overstating my progress—some of the things that seemed to me like they would be the most difficult do now work at some level.
want to run your code inside a debugger
I want the option to do that if I want to. There’s no reason it has to be done that way if the overhead added seems to be excessive. It’s also a case of being able to specify the degree to which it’s running in a debugger ( in otherwords the level of resolution of the logs ).
That’s more a function of the way you code up the running processes and less a function of the language involved, but I suspect that systems where a language can be combined with, essentially, a VM and an OS (LISP, Smalltalk) can make that a lot easier. Wrangling Python to become LISP is going to be… quite an exercise.
But if all you need is to change the values of some variables and/or what some functions so, that looks doable.
So basically you want to run your code inside a debugger?
Well not necessarily, depending on what kind of transforms you can apply to the source before feeding it to the interpreter, and the degree of fuss you’re willing to put up with in terms of defining global functions with special names to handle resurrection of state and so on.
Python wasn’t picked specifically because it’s ideal for doing this kind of thing but just because it’s easy for hacking prototypes together and useful for many things. At the risk of overstating my progress—some of the things that seemed to me like they would be the most difficult do now work at some level.
I want the option to do that if I want to. There’s no reason it has to be done that way if the overhead added seems to be excessive. It’s also a case of being able to specify the degree to which it’s running in a debugger ( in otherwords the level of resolution of the logs ).