La entreteniciencia continúa...

For the record:

Encontré una diferencia en el proceso de copiado entre Squeak/VW y
Dolphin para el tratamiento de los parámetros pasados de un método a
otro en una cadena de llamadas.

Todavía no tengo test para mostrarlo pero lo he visto en el debugger.
Lo que vi de Dolphin me pareció poco intuitivo pero razonable lo cual
expone que la solución de Squeak/VW si bien es más intuitiva es en
rigor desconsertante (porque, si bien hacen parte del proceso, no
restorea el estado en objetos que pasaron como parametro en la cadena
de llamadas). Es como si Squeak/VW uno le diera más valor a la
instancia y Dolphin al slot del stack (seguro que fueron diferencias
de puntos de vista de los autores y por lo tanto en sendas
implementaciones de los StackFrame y consecuentemente la
implementacion de la copia del proceso: Continuation).

Para evitar problemas por esta causa no hay que contar con la
preservación del estado en los objetos que se pasan como parámetro (ni
aún metodos que se llaman dentro del propio objeto).

Se deben usar instVar del objeto aun para estados transitorios si es
que se quiere que esos valores sobrevivan a la continuation.

En #critical:ifError: ocurre esto para las variables de instancia
#process #semaphore y #response. Las tres son de propósito transitorio
y normalmente no sería elegante hacerlas instVar pero si se las hace
temps del metodo que las usa, la continuation las escracha con un
desconsertante nil (valor default de la temp antes de la
continuation).

Are you having fun or what???!!?!?!

Continuará...

Sebastian

--~--~---------~--~----~------------~-------~--~----~

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