Entrar
¿Nuevo usuario? Inscribirme
smalltalking · Un lugar para el estudio y desarrollo de Ambientes de Objetos virtuales.
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés hacer búsquedas de antiguos mensajes del grupo.

Mensajes

  Mensajes Ayuda
Avanzado
Recuperar imagen VS ????   Lista de mensajes  
Responder | Reenviar Mensaje #16954 de 17190 |
Re: [objetos] Recuperar imagen VS ????

kikoGregoris wrote:
> Hola Carlos, gente
>
> Hay algo curioso que pasa cuando recupero un método perdido.
>
> Luego de recuperarlo del change.log, yo hago un #sender y aparecen
> todas las referencias al mensaje.
> Me pregunto. Si los fuentes estan perdidos porque encuentra los
> sender del mensaje ?.
>
Ya adivinaste la respuesta... el mecanismo que busca los senders NO usa
el código fuente.
Hay varias razones para eso, pero supongo que lo que más pesó es la
performance.
Fijate que para localizar senders dentro del source, tendrías que
parsearlo de nuevo. Si no, no podrías distinguir qué son mensajes de
pedazos de strings o identificadores de variables. Eso sería muy costoso.
Lo que usan esas herramientas, normalmente, es el literalFrame de los
CompiledMethod's. Un envío de mensaje deja el selector en el
literalFrame (*), ya que es un argumento que se apilará para el bytecode
de envío de mensaje. Y ahí se buscan los senders. Como en tu imagen los
compiled methods están bien, esto funciona correctamente.

(*) Hay varias excepciones a esto, por ejemplo el #ifTrue:, pero es otro
tema.
> Si esto fuera así, tendría que sospechar que se puede recuperar el
> sourceString de una manera mas facil, que desde el change.log.
>
No, la otra manera sería "decompilarlo" y como te dije, es muy trabajoso
e ingrato.
Saludos

--

Carlos E. Ferro* *
ceferro@... <mailto:ceferro@...>
carloseferrob@... <mailto:carloseferrob@...>




Jue, 5 de Feb, 2009 10:25 pm

carloseferrob
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #16954 de 17190 |
Desplegar mensajes Autor Ordenar por fecha

Hola Gente   Tengo un gran problema. Estaba trabajando cuando quite el #new que habia definido en la clase OrthoViewCompositePane y luego intente hacer un...
kikogregoris
Sin conexión Enviar correo
2 de Feb, 2009
10:55 pm

Hola Gente     Logre estabilizar la imagen y ahora anda. El problema del topCorner se debia a que había definido el evento #needsContents: .   El tema del...
kikogregoris
Sin conexión Enviar correo
3 de Feb, 2009
6:40 pm

Hola Kiko, Tenés el archivo change.log en el directorio del VDEVW.EXE? Saludos, Guiye...
Guillermo Sapaya
gsapaya
Sin conexión Enviar correo
3 de Feb, 2009
7:03 pm

... Eso es normal. El contenido de la variable sourceString es un entero que tiene codificado en qué archivo y en qué offset de ese archivo empieza el chunk...
Carlos E. Ferro
carloseferrob
Sin conexión Enviar correo
3 de Feb, 2009
11:22 pm

Hola Carlos, guillermo   Si tengo el change.log. Por lo que dice carlos, no queda otra que meter mano al change.   Es un trabajo durisimo, el tema es que...
kikogregoris
Sin conexión Enviar correo
4 de Feb, 2009
2:07 am

Hola Carlos, gente   Hay algo curioso que pasa cuando recupero un método perdido.   Luego de recuperarlo del change.log, yo hago un #sender y aparecen todas...
kikogregoris
Sin conexión Enviar correo
5 de Feb, 2009
5:02 pm

... Ya adivinaste la respuesta... el mecanismo que busca los senders NO usa el código fuente. Hay varias razones para eso, pero supongo que lo que más pesó...
Carlos E. Ferro
carloseferrob
Sin conexión Enviar correo
6 de Feb, 2009
12:20 am

Hola Carlos   Ahora me queda claro. Lo del #ifTrue:  y otros mensajes segun recuerdo, es porque no hay envio de mensaje ya que estan optimizados. Ivar...
kikogregoris
Sin conexión Enviar correo
6 de Feb, 2009
12:01 pm

kiko, Recomendación 1: hacer backups frecuentes (para recuperar del change.log lo menos posible). Recomendación 2: no grabar el image, y trabajar generando...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
7 de Feb, 2009
7:30 pm

Kiko, ... Si tenes el change.log, podes hacer algo que lee los chunks y te deja solo las ultimas versiones.... asi se reduce muchisimo el trabajo. Tambien es...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
7 de Feb, 2009
7:35 pm

Hola kiko, ... Es mejor ir en orden cronológico... leyendo (no con los ojos - fijate como se hace el fileIn...) y evaluando los chunks de importancia...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
7 de Feb, 2009
11:31 pm

Hola Ale, carlos, gente   Pude implementar una rudimentaria rutina, que retorna y compila todos los sourceString para una clase dada. A excepción de los...
kikogregoris
Sin conexión Enviar correo
9 de Feb, 2009
7:26 pm

Hola   Creo que no es el mejor ejemplo el que mostré , pues es un caso simple.   este es el bueno:   ...     "Add a dependent <anObject> that receives...
kikogregoris
Sin conexión Enviar correo
10 de Feb, 2009
5:52 pm

... Decir que está bien formado porque tiene comment es un poco exagerado... De hecho, en mi trabajo consideramos que un método con comentarios está mal...
Carlos E. Ferro
carloseferrob
Sin conexión Enviar correo
11 de Feb, 2009
1:23 am

Kiko, Es simple parsear el mensaje, fijate en el mensaje de clase Message class >> numberOfArgumentsFor: para saber que selectores son los que no tienen dos...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
13 de Feb, 2009
8:39 pm

Hola Ale, carlos   Gracias, ya recupere lo que necesitaba.   Sería conveniente que arrancara con una imagen nueva ?. O no hay problemas de que se vuelva a...
kikogregoris
Sin conexión Enviar correo
16 de Feb, 2009
12:11 pm

kiko, Mis recomendacione serían: 1.- hace backups periodicos (es frecuente en la etapa de aprendizaje romper algo valioso). 2.- no uses un image de desarrollo...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
16 de Feb, 2009
5:11 pm

Hola Ale   Gracias, es graticante saber que uno lo puede hacer. Estaba viendo tu manejador de proyectos y no me queda claro como funciona. Me das un...
kikogregoris
Sin conexión Enviar correo
18 de Feb, 2009
1:32 pm

kikoGregoris wrote:   Estaba viendo tu manejador de proyectos y no me queda claro como funciona. Me das un pantallazo de por donde debo ir ?.   Porqué hay...
Carlos E. Ferro
carloseferrob
Sin conexión Enviar correo
18 de Feb, 2009
1:54 pm

Hola kiko, Antetodo una aclaración de "mi majejador de proyectos"... 1.- es algo que escribí hace muuuchos años (1991 aprox. para Smalltalk/V dónde tenía...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
18 de Feb, 2009
10:35 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda