Hola gente! Interesante, maese GallegO. En mi VM ya puedo tener mas de una imagen (cada una con su propio Object, clases, metodos) en memoria. Hoy consegui serializar y deserializar bastante (en la version C#), me falta guardar los bytecodes de los metodos compilados (aguante TDD :-)
Mi idea es que cada imagen que quiera, se vaya creando en solitario (es decir, no como un namespace dentro de una imagen unica en memoria, sino realmente como imagen separada). Y que la pueda manipular desde otra imagen, o desde C# si quiero (o Java o JavaScript, otros lenguaje de implementacion que estoy explorando). Una idea a explorar: que una imagen pueda crear una imagen a piaccere, la serialice y otro nodo en ejecucion la levante. Una especie de agente movil, pero no se si da para llamarlo asi. Por eso necesitaba saber: cual es lo que ya se penso por decadas en Smalltalk para hacer cuando "se despierta" la imagen. Interesante lo que aprendi en este thread! Nos leemos! Angel "Java" Lopez @ajlopez gh:ajlopez 2012/11/24 GallegO <[email protected]> > Angel: > > Podes preguntarle a Ale. En el proyecto Chachara habia armado todo un > workbench para generar nuevos images de Squeak, desde 0. Hay varios > proyectos sobre el tema pero bueno, teniendo Smalltalking aca creo que es > para aprovechar. > Yo y otros estuvimos trabajando en ese proyecto pero sinceramente esas > partes las hacia Ale. No es muy difícil de entender, quizás el problema es > el tiempo necesario para llegara a implementarlo y que ande bien. > Nosotros teniamos en Squeak dos namespaces, el de Squeak y el del image a > generar, de esa forma podiamos generar desde images con objetos suficientes > para solo hacer 3+4 y mostrarlo en la consola hasta images con que corrian > unit tests. Creo que el proyecto se puede bajar o Ale te lo da no se. > > Saludos > GallegO > > > El 24 de noviembre de 2012 11:38, Angel Java Lopez > <[email protected]>escribió: > > Hola gente! >> >> Gracias @garduino, Sebastian. >> >> Si, maese @garduino, ese es el libro que tengo en papel, no se si es la >> misma edicion del enlace que enviaste (creo que habia una edicion que >> contenia un capitulo con mas detalles de los bytecodes que usaban entonces, >> y ese capitulo esta publicado en alguna parte de la web). Me voy a bajar >> ese libro, aunque aca esta tardando un tiempo, parece. >> >> Sebastian: ah! interesante!... el "viejo truco" de registrarse para que >> le recuerden que se desperto la imagen de nuevo :-). Bien, voy a investigar >> ese camino. Si, parece el camino a seguir. >> >> Nos leemos! >> >> Angel "Java" Lopez >> @ajlopez >> gh:ajlopez >> >> >> 2012/11/23 Sebastian Nozzi <[email protected]> >> >>> Hola Angel, >>> >>> fijate en la clase SmalltalkImage, en la categoría "startup list". >>> Mediante esos métodos es posible que las clases se "registren" para >>> ser invocadas al re-iniciarse Squeak/Pharo (cómo funciona esto en >>> detalle no lo sé, tendrías que investigar el código). >>> >>> Las clases registradas reciben el mensaje "startUp". De manera similar >>> existe "shutDown". Cuando se guarda la imágen (aunque no salgas) creo >>> que se simula un proceso de shutdown (buena tu pregunta). Por eso >>> existe también el método "shutDown: quitting", donde quitting es >>> true/false según corresponda. >>> >>> Clases que usen sockets usan este mecanismo (startUp) para volver a >>> re-establecer la conexión. >>> >>> Espero que te sirva. >>> >>> Saludos, >>> >>> Sebastian >>> >>> >>> 2012/11/23 Angel Java Lopez <[email protected]>: >>> > Hola gente! >>> > >>> > Estoy comenzando a trabajar en el tema de grabar y leer una imagen en >>> mi >>> > implementacion casera de VM. >>> > >>> > Donde esta especificado que es lo que se ejecuta cuando se carga una >>> imagen? >>> > Creo que el libro Smalltalk-80 The Language and Its Implementation, no >>> dice >>> > nada sobre eso, o recuerdan capitulo/seccion? >>> > >>> > Recien busque en Google, y encuentro: >>> > >>> > http://book.seaside.st/book/getting-started/pharo/what-is-image >>> > An image is loaded and executed by a virtual machine. When you ran >>> Pharo in >>> > Section 2.1 you really were running the virtual machine on the >>> pre-packaged >>> > “One Click Image” image. For the sake of brevity we call this “running >>> the >>> > image.” The Smalltalk image includes active processes (Smalltalk >>> processes >>> > are more akin to “threads” in other languages). When you load an image >>> from >>> > a disk file you bring objects that were part of that image into RAM and >>> > resume execution of the active processes that were part of that image. >>> If >>> > you were debugging when you saved the image, you’ll still be debugging >>> when >>> > you load that image. We like to think of this as “picking up where you >>> left >>> > off” (note that there are limits to this model: transient objects like >>> a >>> > network connection that was active when the image was saved will not be >>> > available when the image is re-loaded). As an example, the Seaside “One >>> > Click Image” image was saved with the Comanche web server running so, >>> when >>> > you load this image that web server process will be running. We’ll say >>> more >>> > about that later. >>> > >>> > Entiendo lo de los procesos, pero... hmmm... no falta algo? Por >>> ejemplo, ese >>> > servidor Comanche corriendo, no llega en algun momento a hacer un >>> Listen o >>> > algo, sobre una puerta TCP del sistema en el que esta albergado? Como >>> hace >>> > para que cuando se carga de nuevo la imagen, ese servidor termine >>> VOLVIENDO >>> > a escuchar por la puerta 8080? >>> > >>> > Hay algun initialize que se envia? >>> > >>> > Y cuando se graba una imagen, hay algun "suspend" o algo asi que se >>> envia a >>> > algun objeto? >>> > >>> > Gracias por cualquier info >>> > >>> > Nos leemos! >>> > >>> > Angel "Java" Lopez >>> > @ajlopez >>> > gh:ajlopez >>> > >>> > >>> > >>> > -- >>> > To post to this group, send email to [email protected] >>> > To unsubscribe from this group, send email to >>> > [email protected] >>> > >>> > http://www.clubSmalltalk.org >>> >>> -- >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> >>> http://www.clubSmalltalk.org >>> >> >> -- >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> >> http://www.clubSmalltalk.org >> > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org > -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
