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

Responder a