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
Re: [objetos] Pregunta CompiledMethods   Lista de mensajes  
Responder | Reenviar Mensaje #14371 de 17198 |
Re: [objetos] Pregunta CompiledMethods

Ale:

Como siempre , me sirve lo que aclaras.

Ahora te aclaro yo el porque de la pregunta.

Si quiero no tener fuentes de la manera que esta implementado en Squeak,
debo tener alguna forma de "ver" lo que este grabado externamente.

El "who" es utilizado como parte del proceso de visualizacion del método.

> En algunos Smalltalk, el mismo método conoce cual es la clase y el selector
> para quienes fuera creado...

> para quien envía #who espera que venga algo que es
> como un par dónde hay una clase y un selector... no es correcto devolver
> #(#unknown #unknown).

Uno podria pensar entonces que si encontras esto es que algo anduvo mal..
(era mi hipotesis)

Por ahora, como ya lo dije en otro mail, trato de pensar en las clases como
los ladrillos, hasta que llegue el momento de pensar en los metodos.

Tengo una idea loca de tener un "repositorio de clases" y por otra parte los
experimentos de recorte terminan por lo general en descordinacion de las
fuentes y changes.

Te acompaño lo que estoy haciendo.

Primer paso al repositorio de clases
Utilizando lo aprendido , implemente
Class >> fileOutCompressed

| unzipped zipped buffer |
Cursor write
showWhile: [unzipped := RWBinaryOrTextStream on: ''.
self fileOutOn: unzipped.
unzipped reset.
zipped := FileDirectory default newFileNamed: self name , FileDirectory dot
, ImageSegment compressedFileExtension.
zipped binary.
zipped := GZipWriteStream on: zipped.
buffer := ByteArray new: 50000.
'Compressing ' , self name
displayProgressAt: Sensor cursorPoint
from: 0
to: unzipped size
during: [:bar |
[unzipped atEnd]
whileFalse: [bar value: unzipped position.
zipped
nextPutAll: (unzipped nextInto: buffer)].
zipped close.
unzipped close]]

Este tipo de compresion logra archivos de 1/4 del tamaño de los archivos de
texto



CompiledMethod methodsFor: 'source code management' stamp: 'edc 9/5/2005
09:52'!
sourceSelectorFromExternalSources
"Answer my selector extracted from my source. If no source
answer nil"
| w aString unzipped lookString startPos lastPos |
w := self who.
lookString := w first name , ' methodsFor'.
aString := (w first name findTokens: ' ') first , '.sqz'.
unzipped := RWBinaryOrTextStream with: (GZipReadStream decompressFile:
aString) contents.
unzipped reset.
unzipped match: lookString.
unzipped match: w last.
unzipped nextChunk.
lastPos := unzipped position.
unzipped position: unzipped position - 1.
unzipped backUpTo: '!!'.
unzipped position: unzipped position - 1.
unzipped backUpTo: '!!'.
startPos := unzipped position.
(StringHolder new
textContents: (unzipped contents copyFrom: startPos to: lastPos))
openLabel: w asString.

Como ves, pretendo tener SIEMPRE, clase y selector.
Si hay una forma mejor , me encantaria saberlo.

Edgar








___________________________________________________________
1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
http://correo.yahoo.com.ar




Lun, 5 de Sep, 2005 6:22 pm

edgardec2001
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #14371 de 17198 |
Desplegar mensajes Autor Ordenar por fecha

Hola Edgar, En Squeak (según recuerdo), un método no tiene vínculo con una clase en particular; es decir, es independiente de la clase para la que fue...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
5 de Sep, 2005
5:33 pm

Ale: Como siempre , me sirve lo que aclaras. Ahora te aclaro yo el porque de la pregunta. Si quiero no tener fuentes de la manera que esta implementado en...
Lic. Edgar J. De Cleene
edgardec2001
Sin conexión Enviar correo
5 de Sep, 2005
8:26 pm

Hola Edgar, ... mmm entiendo, pero la implementación en Squeak te traerá problemas, pues según entiendo (quizás cambio hace rato no la veo), busca en las...
Alejandro F. Reimondo
alereimondo
Sin conexión Enviar correo
6 de Sep, 2005
7:31 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