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 -~----------~----~----~----~------~----~------~--~---
