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 cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
Mensajes 14824 - 14853 de 17198   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
Mensajes: Mostrar resúmenes de los mensajes   (Agrupar por tema) Clasificar por fecha v  
#14853 De: "Félix Madrid" <fmadrid@...>
Fecha: Mar, 20 de Jun, 2006 2:57 pm
Asunto: Conocen algun Enhacement para el Browser de Visual Smalltalk (v 3.1.1)
elrosaditove...
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola lista,

queria saber si alguien dispone de algun enhacement para Visual Smalltalk (tengo el release 3.1.1).
descubri que estaba el RefactoringBrowser portado, pero me da algunos errores al cargar (supongo que, como dice en los prerequisitos, necesita un release igual o superior al 3.1.2c)

muchas gracias

un abrazo

Felix

#14852 De: "etherplasm" <etherplasm@...>
Fecha: Jue, 15 de Jun, 2006 1:10 am
Asunto: [Off Topic] [Era: Re: Fw: [objetos] pregunta]
etherplasm
Sin conexión Sin conexión
Enviar correo Enviar correo
 
--- En smalltalking@..., "Alejandro F. Reimondo"
<aleReimondo@s...> escribió:
>
> Creo que esta persona (firma etherplasm) quiso escribir
>  el mail que sigue a la lista, y por error lo dirigió a
> smalltalking-owner...
> Lo copio abajo....
> Ale.

Ahora entiendo porque no veia mi respuesta... duh!
Extranhamente cuando respondi, en el 'Para' figuraba "Mariano
Wahlmann"... y lo cambie a la direccion que decia 'smalltalking' pero
sin darme cuenta que era al admin...

En fin... gracias por forwardearlo...

/Ether

#14851 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Jue, 15 de Jun, 2006 12:21 am
Asunto: Fw: [objetos] pregunta
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Creo que esta persona (firma etherplasm) quiso escribir
  el mail que sigue a la lista, y por error lo dirigió a
smalltalking-owner...
Lo copio abajo....
Ale.

----- Original Message -----
From: "etherplasm" <etherplasm@...>
To: <smalltalking-owner@...>
Sent: Wednesday, June 14, 2006 7:53 PM
Subject: Re: [objetos] pregunta


--- En smalltalking@..., Mariano Wahlmann <mariano.
wahlmann@g...> escribió:
>
> Extiendo mi explicación un poco:
> Cada linea del csv (es un punto de un mapa, latitud longitud y otra
> variable mas que es lo que determina el color del punto).
> El parseo basicamente se realiza de la siguiente manenar, se abre el
> archivo le saco los contents (en un principio eran en ascii pero el
> Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo
pase
> a binario, y luego de ese contents, uso indexOf: para sacar las
> posiciones de las comas (cada columna) y los CrLf (cada registro).
Luego
> que tengo la posicion de cada campo se lo convierte al tipo que
necesito
> por ejemplo la posicion (latitud y longitud) hago un asNumber, el
> timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn
:)
> obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
> lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a
adjuntar
> el spyon.
>
> Un dato que obtuve, copie literalmente las clases a VisualWorks y lo
que
> en Squeak tarda 93s, en VW tarda 7.

Mas alla de las diferencias de performance entre Squeak y VW, creo que
el tema tambien tiene que ver con un monton de basura que generas
innecesariamente - mas precisamente sub-strings y streams...

Fijate que cuando haces #asNumber el receptor es un String (que lo
creastes a manopla?), que instancia un Stream, el cual parsea los
caracters y finalmente te devuelve tu numero de la clase apropiada.

O sea, cada 'dato' que estas leyendo tiene la instanciacion de un
Stream que es 'eyectado' casi de forma instantanea.  Algo mas
'ecologico' seria usar el mismo Stream que esta leyendo todo el
archivo, tipo:

[stream atEnd] whileFalse: [| latitude longitude timestamp |
   latitude := Number readFrom: stream.
   stream next. "Skip the comma separating values"
   longitude := Number readFrom: stream.
   stream next. "Skip the comma separating values"
   timestamp := Timestamp readFrom: stream.
   stream upToCR. "Skip till the EOL"
   path add: (GISPoint
                  latitude: latitude
                  longitude: longitude
                  timestamp: timestamp)
   ].

De mas esta aclarar que esto lo estoy haciendo sin conocer los
detalles de tu codigo, archivo, formato y sin un Smalltalk a mano...
pero teniendo en cuenta que tu profile tiene dos ramas (total de 77%)
y que ambas involucran (casi exclusivamente) la conversion de string-
a-numero:

|42.2% {39620ms} GisSmsCsvReader>>ticksFromString:
| |19.9% {18684ms} ByteString(String)>>subStrings:
| |11.2% {10515ms} ByteString(String)>>asInteger
| |11.0% {10328ms} DateAndTime class>>year:month:day:hour:minute:
second:
|35.0% {32860ms} ByteString(String)>>asNumber

Fijate si podes mantenerte dentro del mismo Stream y ver si eso no
cambia de manera importante la performance...

/Ether

PS: Cuando tenes que bajar de nivel (abrir texto en modo binario, usar
#indexOf: para sacar caracteres/digitos, etc., etc. y hacer todo 'a
pulmon') es un buen indicador que algo 'esta mal'... 'usualmente' es
que estas usando mal a los objetos (ej: usas un cuchillo como
destornillador, sirve, pero no es optimo; mejor tomate el laburo de ir
hasta la caja de herramientas y encontra el destornillador apropiado.
..

> german@a... escribió:
> > Hola!
> >
> > Podés mostrar como levantas el archivo y cada linea, y como
> > instancias? Es
> > probable que puedas hacerlo más rápido, incluso con Squeak.
> >
> > Saludos,
> >
> > German
> >
> > Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@g...>:
> >
> > > Hola,
> > >
> > > Quería perdirles un consejo, actualmente estoy desarrollando un
sistema
> > > que parsea archivos csv (separados por coma) y genera en base a
esos
> > > archivos unos mapas (en formato gif), lo hice utilizando squeak,
el
> > > problema es que con archivos grandes (50000 lineas, 18Mb ) el
squeak se
> > > vuelve muy lento, ya que por cada linea tiene que instanciar un
objeto
> > > (cada linea es un punto en el mapa). Es practicamente inusable
la
> > > performance que conseguí con el squeak, estaba pensando en
migrar a
> > > otros Smalltalk (basicamente estoy pensando en VisualWorks o
Dolhpin).
> > > Quería que me recomienden uno u otro. Lo que necesito es, poder
parsear
> > > el .csv y generar imagenes gif en funcion de esos datos. Con
squeak es
> > > relativamente facil, en otros es tambien sencillo? Cual es el
smalltalk
> > > funciona mejor en cuanto a performance, y que a su vez tiene un
set de
> > > importante de Classes ya hechas??
> > >
> > > Saludos,

#14850 De: Mariano Wahlmann <mariano.wahlmann@...>
Fecha: Mié, 14 de Jun, 2006 8:25 pm
Asunto: Re: [objetos] pregunta
DichiMAW
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Guillermo Sapaya escribió:
> Mariano,
> no se si entendí bien lo que hacías pero por lo visto no estás
> parseando el stream del archivo.
> Deberías parsear el archivo mediante el stream.
> Algo así deberia haber en tu parseo:
>
> stream := file fileStream.
> [stream atEnd] whileFalse: [
> array := stream nextLine asArrayOfSubStringSeparatedBy: Locale
> sistemDefault listSeparator. "Fijate como es en Squeak"
> objects add: (MyClass new
>                         latitud: array first;
>                         longitud: array second;
>                         color: array third;
>                         yourself)]
>
utilizando esta tecnica, pases de 11 segundos a 120 segundos. Yo se que
es la forma quizas estipulada, pero no es muy efectiva, al menos en squeak.

> Esto no debería tardar nada...
>
> Saludos, Guiye
>
> Mariano Wahlmann escribió:
>> Extiendo mi explicación un poco:
>> Cada linea del csv (es un punto de un mapa, latitud longitud y otra
>> variable mas que es lo que determina el color del punto).
>> El parseo basicamente se realiza de la siguiente manenar, se abre el
>> archivo le saco los contents (en un principio eran en ascii pero el
>> Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo pase
>> a binario, y luego de ese contents, uso indexOf: para sacar las
>> posiciones de las comas (cada columna) y los CrLf (cada registro). Luego
>> que tengo la posicion de cada campo se lo convierte al tipo que necesito
>> por ejemplo la posicion (latitud y longitud) hago un asNumber, el
>> timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn:)
>> obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
>> lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a adjuntar
>> el spyon.
>>
>> Un dato que obtuve, copie literalmente las clases a VisualWorks y lo que
>> en Squeak tarda 93s, en VW tarda 7.
>>
>>
>>
>> german@... escribió:
>> > Hola!
>> >
>> > Podés mostrar como levantas el archivo y cada linea, y como
>> > instancias? Es
>> > probable que puedas hacerlo más rápido, incluso con Squeak.
>> >
>> > Saludos,
>> >
>> > German
>> >
>> > Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:
>> >
>> > > Hola,
>> > >
>> > > Quería perdirles un consejo, actualmente estoy desarrollando un
>> sistema
>> > > que parsea archivos csv (separados por coma) y genera en base a esos
>> > > archivos unos mapas (en formato gif), lo hice utilizando squeak, el
>> > > problema es que con archivos grandes (50000 lineas, 18Mb ) el
>> squeak se
>> > > vuelve muy lento, ya que por cada linea tiene que instanciar un
>> objeto
>> > > (cada linea es un punto en el mapa). Es practicamente inusable la
>> > > performance que conseguí con el squeak, estaba pensando en migrar a
>> > > otros Smalltalk (basicamente estoy pensando en VisualWorks o
>> Dolhpin).
>> > > Quería que me recomienden uno u otro. Lo que necesito es, poder
>> parsear
>> > > el .csv y generar imagenes gif en funcion de esos datos. Con
>> squeak es
>> > > relativamente facil, en otros es tambien sencillo? Cual es el
>> smalltalk
>> > > funciona mejor en cuanto a performance, y que a su vez tiene un
>> set de
>> > > importante de Classes ya hechas??
>> > >
>> > > Saludos,
>> > >
>> > >
>> > >
>> >
>>
>
>
> --
> Guillermo Sapaya
> InfOil S.A.
> Desarrollo de software
> (54-11) 4315-7624 x142
> gsapaya@...
>
>

#14849 De: Mariano Wahlmann <mariano.wahlmann@...>
Fecha: Mié, 14 de Jun, 2006 8:00 pm
Asunto: Re: [objetos] pregunta
DichiMAW
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Antes que nada muchas gracias a todos los que estan aportando.
En un principio utlice las funciones que todos recomiendan, leer el
archivo utilizando streams, etc. pero haciendo profiling me di cuenta
que la mayor parte del tiempo la perdia justamente en los metodos de
stream,  entonces decidi utilizar una sola porcion de memoria. y con
indexOf: podia ubicar donde estaban las comas, y los enters. y luego
solamente instanciar el objecto cuando lo necesito solamente. adjunto el
codigo para que puedan ver lo que digo. El codigo no esta hecho de la
forma mas linda, o mas smalltalk esta hecho de la forma de que la
performance sea optima. cualquier variacion o sugerencia es bienvenida.


read: aContents
     "aContents es el contenido del archivo haciendo file contents"
     | position lineEnd fieldDelimiter fields endPosition value subData
resData |
     fields := 0.
     resData := OrderedCollection new.
     fieldDelimiter := ($, value) asInteger.
     position := 1.
     lineEnd := (aContents indexOf: 10) - 2.
     1 to: lineEnd do: [ :c | (aContents at: c) = fieldDelimiter
                             ifTrue: [ fields := fields + 1].
             ].
     [position < aContents size]
                 whileTrue: [
                     subData := Array new: (fields + 1).
                     1 to: (fields) do: [ :c |
                         endPosition := (aContents indexOf:
fieldDelimiter startingAt: position ifAbsent: [position +1]) -1.
                         value := aContents copyFrom: position to:
endPosition.
                         position := endPosition + 2.
                         subData at: c put: value.
                     ].
                         endPosition := (aContents indexOf: 10
startingAt: position ifAbsent: [ aContents size]) -2.
                         value := aContents copyFrom: position to:
endPosition.
                         position := endPosition + 3.
                         subData at: (fields + 1) put: value.
                 resData add: subData.
                 ].
       ^ resData.



Alejandro F. Reimondo escribió:
> Mariano,
>
> Usa un Stream para parsear, nunca levantes todo
> el archivo si podes levantar de a poco el contenido.
>
> > Squeak realizaba muchas comprobaciones de CrLf)
> > por eso después lo pase a binario,
> Mediste cuanto tiempo se iva en esas comprobaciones?
> (creo que es no medible el tiempo que llevaría,
> aunque considerando que la VM de Squeak
> no esta muy optimizada, puede que sea medible)
>
> Trata de entender como usar un stream,
> no es eficiente usar el mensaje #indexOf: para
> un scaneo.
>
> Si el numero que scaneas es un entero,
> usa Integer (no Number) para leerlo -no se si es tu caso-;
> si la notación es simple (solo dígitos y comma)
> fijate que la lectura de los números ea eficiente (para
> simplificar el parsing de los números).
>
> > Un dato que obtuve, copie literalmente las clases
> > a VisualWorks y lo que
> > en Squeak tarda 93s, en VW tarda 7.
>
> Seguramente eligiendo una mejor forma de hacer el parsing
> llegarás a los 2/3 segundos.
>
> [estas métricas son engañosas, pues uno no considera
> el estado en que queda el ambiente, es decir,
> la energía que deberá ponerse en el sistema para terminar
> de limpiar la basura que quedó de todo el proceso.
> El usar un stream permite que tu sistema quede menos
>   intoxicado que si usas grandes strings, o copias/cortas
> exhaustivamente colecciones... etc]
>
> suerte!
> Ale.
>
>
>
>
> ----- Original Message -----
> From: "Mariano Wahlmann" <mariano.wahlmann@...>
> To: <smalltalking@...>
> Sent: Wednesday, June 14, 2006 10:52 AM
> Subject: Re: [objetos] pregunta
>
>
> > Extiendo mi explicación un poco:
> > Cada linea del csv (es un punto de un mapa, latitud longitud y otra
> > variable mas que es lo que determina el color del punto).
> > El parseo basicamente se realiza de la siguiente manenar, se abre el
> > archivo le saco los contents (en un principio eran en ascii pero el
> > Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo pase
> > a binario, y luego de ese contents, uso indexOf: para sacar las
> > posiciones de las comas (cada columna) y los CrLf (cada registro). Luego
> > que tengo la posicion de cada campo se lo convierte al tipo que necesito
> > por ejemplo la posicion (latitud y longitud) hago un asNumber, el
> > timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn:)
> > obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
> > lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a adjuntar
> > el spyon.
> >
> > Un dato que obtuve, copie literalmente las clases a VisualWorks y lo que
> > en Squeak tarda 93s, en VW tarda 7.
> >
> >
> >
> > german@... escribió:
> > > Hola!
> > >
> > > Podés mostrar como levantas el archivo y cada linea, y como
> > > instancias? Es
> > > probable que puedas hacerlo más rápido, incluso con Squeak.
> > >
> > > Saludos,
> > >
> > > German
> > >
> > > Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:
> > >
> > > > Hola,
> > > >
> > > > Quería perdirles un consejo, actualmente estoy desarrollando un
> sistema
> > > > que parsea archivos csv (separados por coma) y genera en base a esos
> > > > archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> > > > problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak
> se
> > > > vuelve muy lento, ya que por cada linea tiene que instanciar un
> objeto
> > > > (cada linea es un punto en el mapa). Es practicamente inusable la
> > > > performance que conseguí con el squeak, estaba pensando en migrar a
> > > > otros Smalltalk (basicamente estoy pensando en VisualWorks o
> Dolhpin).
> > > > Quería que me recomienden uno u otro. Lo que necesito es, poder
> parsear
> > > > el .csv y generar imagenes gif en funcion de esos datos. Con
> squeak es
> > > > relativamente facil, en otros es tambien sencillo? Cual es el
> smalltalk
> > > > funciona mejor en cuanto a performance, y que a su vez tiene un
> set de
> > > > importante de Classes ya hechas??
> > > >
> > > > Saludos,
> > > >
> > > >
> > > >
> > >
> >
> >
> >
> > Para más información sobre la Asociación escribir a
> info@...
> >
> > Smalltalking es un espacio colaborativo creado para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> > Enlaces de Yahoo! Grupos
> >
> >
> >
> >
> >
>
>
> ----------------------------------------------------------------------------
> ----
>
>
> > **Tree**
> > 100.0% {93887ms} GisSmsCsvReader class(GisCsvReader class)>>on:
> >   100.0% {93887ms} GisSmsCsvReader>>open:
> >     89.1% {83653ms} GisSmsCsvReader>>readData
> >       |42.2% {39620ms} GisSmsCsvReader>>ticksFromString:
> >       |  |19.9% {18684ms} ByteString(String)>>subStrings:
> >       |  |  |5.4% {5070ms} ByteString(SequenceableCollection)>>,
> >       |  |  |  |3.2% {3004ms} primitives
> >       |  |  |  |2.2% {2066ms}
> ByteString(SequenceableCollection)>>copyReplaceFrom:to:with:
> >       |  |  |4.5% {4225ms} primitives
> >       |  |11.2% {10515ms} ByteString(String)>>asInteger
> >       |  |  |11.0% {10328ms} ByteString(String)>>asSignedInteger
> >       |  |  |  4.5% {4225ms} Integer class>>readFrom:
> >       |  |  |    |4.5% {4225ms} Integer class>>readFrom:base:
> >       |  |  |    |  3.2% {3004ms} Character>>digitValue
> >       |  |  |  3.0% {2817ms} Character>>isDigit
> >       |  |  |  2.2% {2066ms} ReadStream class(PositionableStream
> class)>>on:
> >       |  |  |    2.1% {1972ms} ReadStream(PositionableStream)>>on:
> >       |  |11.0% {10328ms} DateAndTime
> class>>year:month:day:hour:minute:second:
> >       |  |  10.9% {10234ms} DateAndTime
> class>>year:month:day:hour:minute:second:offset:
> >       |  |    10.9% {10234ms} DateAndTime
> class>>year:month:day:hour:...d:nanoSecond:offset:
> >       |  |      5.4% {5070ms} Duration
> class>>days:hours:minutes:seconds:nanoSeconds:
> >       |  |        |3.9% {3662ms} Duration class>>nanoSeconds:
> >       |  |        |  2.2% {2066ms} Duration class(Behavior)>>new
> >       |  |        |    2.1% {1972ms} Duration>>initialize
> >       |  |        |      2.1% {1972ms} primitives
> >       |  |      3.6% {3380ms} Duration>>ticks
> >       |35.0% {32860ms} ByteString(String)>>asNumber
> >       |  |34.7% {32579ms} Number class(Object)>>readFromString:
> >       |  |  32.8% {30795ms} Number class>>readFrom:
> >       |  |    17.4% {16336ms} Number
> class>>readRemainderOf:from:base:withSign:
> >       |  |      |10.9% {10234ms} Integer class>>readFrom:base:
> >       |  |      |  8.7% {8168ms} Character>>digitValue
> >       |  |      |    4.5% {4225ms} EncodedCharSet class>>charsetAt:
> >       |  |      |      |4.2% {3943ms}
> Array(SequenceableCollection)>>at:ifAbsent:
> >       |  |      |      |  2.1% {1972ms}
> SmallInteger(Magnitude)>>between:and:
> >       |  |      |      |  2.1% {1972ms} primitives
> >       |  |      |    3.2% {3004ms} Latin1Environment
> class(LanguageEnvironment class)>>digitValue:
> >       |  |      |      2.5% {2347ms} Unicode class>>digitValue:
> >       |  |      |        2.3% {2159ms} Character>>charCode
> >       |  |    10.0% {9389ms} Integer class>>readFrom:base:
> >       |  |      |7.2% {6760ms} Character>>digitValue
> >       |  |      |  3.8% {3568ms} EncodedCharSet class>>charsetAt:
> >       |  |      |    |3.4% {3192ms}
> Array(SequenceableCollection)>>at:ifAbsent:
> >       |  |      |    |  2.0% {1878ms} primitives
> >       |  |      |  2.2% {2066ms} Latin1Environment
> class(LanguageEnvironment class)>>digitValue:
> >       |  |    4.3% {4037ms} ReadStream(Stream)>>nextMatchAll:
> >       |5.4% {5070ms} ByteArray>>asString
> >       |  |4.7% {4413ms}
> ByteString(SequenceableCollection)>>replaceFrom:to:with:
> >       |3.8% {3568ms} GisLatLongAutoConvert class>>on:
> >       |  3.8% {3568ms} GisLatLongAutoConvert>>initializeOn:
> >       |    3.6% {3380ms}
> GisLatLongToArgentineProyectionConverter>>convert
> >     10.9% {10234ms} GisSmsCsvReader(GisCsvReader)>>open:
> >       10.3% {9670ms} GisSmsCsvReader(GisCsvReader)>>read:
> >         6.2% {5821ms} primitives
> >         3.4% {3192ms}
> ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
> >
> > **Leaves**
> > 6.2% {5821ms} GisSmsCsvReader(GisCsvReader)>>read:
> > 5.7% {5352ms} Array(SequenceableCollection)>>at:ifAbsent:
> > 5.1% {4788ms} SmallInteger(Magnitude)>>between:and:
> > 4.8% {4507ms} Array(SequenceableCollection)>>replaceFrom:to:with:
> > 4.7% {4413ms} Character>>charCode
> > 4.5% {4225ms} ByteString(String)>>subStrings:
> > 3.8% {3568ms} ReadStream(PositionableStream)>>on:
> > 3.4% {3192ms}
> ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
> > 3.2% {3004ms} ByteString(SequenceableCollection)>>,
> > 3.1% {2910ms} Integer class>>readFrom:base:
> > 3.0% {2817ms} Character>>=
> > 2.9% {2723ms} LargePositiveInteger(Integer)>>quo:
> > 2.5% {2347ms} ReadStream>>next
> > 2.4% {2253ms} Character>>digitValue
> > 2.1% {1972ms} Duration>>initialize
> >
> > **Memory**
> > old +46,754,836 bytes
> > young -701,112 bytes
> > used +46,053,724 bytes
> > free -6,188,896 bytes
> >
> > **GCs**
> > full 11 totalling 4,843ms (5.0% uptime), avg 440.0ms
> > incr 21566 totalling 39,630ms (42.0% uptime), avg 2.0ms
> > tenures 646 (avg 33 GCs/tenure)
> > root table 0 overflows
> >
>
>

#14848 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 14 de Jun, 2006 7:34 pm
Asunto: Re: [objetos] pregunta
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Mariano,

Usa un Stream para parsear, nunca levantes todo
  el archivo si podes levantar de a poco el contenido.

> Squeak realizaba muchas comprobaciones de CrLf)
> por eso después lo pase a binario,
Mediste cuanto tiempo se iva en esas comprobaciones?
(creo que es no medible el tiempo que llevaría,
  aunque considerando que la VM de Squeak
  no esta muy optimizada, puede que sea medible)

Trata de entender como usar un stream,
  no es eficiente usar el mensaje #indexOf: para
  un scaneo.

Si el numero que scaneas es un entero,
  usa Integer (no Number) para leerlo -no se si es tu caso-;
  si la notación es simple (solo dígitos y comma)
  fijate que la lectura de los números ea eficiente (para
  simplificar el parsing de los números).

> Un dato que obtuve, copie literalmente las clases
> a VisualWorks y lo que
> en Squeak tarda 93s, en VW tarda 7.

Seguramente eligiendo una mejor forma de hacer el parsing
  llegarás a los 2/3 segundos.

[estas métricas son engañosas, pues uno no considera
  el estado en que queda el ambiente, es decir,
  la energía que deberá ponerse en el sistema para terminar
  de limpiar la basura que quedó de todo el proceso.
  El usar un stream permite que tu sistema quede menos
   intoxicado que si usas grandes strings, o copias/cortas
  exhaustivamente colecciones... etc]

suerte!
Ale.




----- Original Message -----
From: "Mariano Wahlmann" <mariano.wahlmann@...>
To: <smalltalking@...>
Sent: Wednesday, June 14, 2006 10:52 AM
Subject: Re: [objetos] pregunta


> Extiendo mi explicación un poco:
> Cada linea del csv (es un punto de un mapa, latitud longitud y otra
> variable mas que es lo que determina el color del punto).
> El parseo basicamente se realiza de la siguiente manenar, se abre el
> archivo le saco los contents (en un principio eran en ascii pero el
> Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo pase
> a binario, y luego de ese contents, uso indexOf: para sacar las
> posiciones de las comas (cada columna) y los CrLf (cada registro). Luego
> que tengo la posicion de cada campo se lo convierte al tipo que necesito
> por ejemplo la posicion (latitud y longitud) hago un asNumber, el
> timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn:)
> obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
> lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a adjuntar
> el spyon.
>
> Un dato que obtuve, copie literalmente las clases a VisualWorks y lo que
> en Squeak tarda 93s, en VW tarda 7.
>
>
>
> german@... escribió:
> > Hola!
> >
> > Podés mostrar como levantas el archivo y cada linea, y como
> > instancias? Es
> > probable que puedas hacerlo más rápido, incluso con Squeak.
> >
> > Saludos,
> >
> > German
> >
> > Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:
> >
> > > Hola,
> > >
> > > Quería perdirles un consejo, actualmente estoy desarrollando un
sistema
> > > que parsea archivos csv (separados por coma) y genera en base a esos
> > > archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> > > problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak
se
> > > vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
> > > (cada linea es un punto en el mapa). Es practicamente inusable la
> > > performance que conseguí con el squeak, estaba pensando en migrar a
> > > otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
> > > Quería que me recomienden uno u otro. Lo que necesito es, poder
parsear
> > > el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
> > > relativamente facil, en otros es tambien sencillo? Cual es el
smalltalk
> > > funciona mejor en cuanto a performance, y que a su vez tiene un set de
> > > importante de Classes ya hechas??
> > >
> > > Saludos,
> > >
> > >
> > >
> >
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
> Enlaces de Yahoo! Grupos
>
>
>
>
>


----------------------------------------------------------------------------
----


> **Tree**
> 100.0% {93887ms} GisSmsCsvReader class(GisCsvReader class)>>on:
>   100.0% {93887ms} GisSmsCsvReader>>open:
>     89.1% {83653ms} GisSmsCsvReader>>readData
>       |42.2% {39620ms} GisSmsCsvReader>>ticksFromString:
>       |  |19.9% {18684ms} ByteString(String)>>subStrings:
>       |  |  |5.4% {5070ms} ByteString(SequenceableCollection)>>,
>       |  |  |  |3.2% {3004ms} primitives
>       |  |  |  |2.2% {2066ms}
ByteString(SequenceableCollection)>>copyReplaceFrom:to:with:
>       |  |  |4.5% {4225ms} primitives
>       |  |11.2% {10515ms} ByteString(String)>>asInteger
>       |  |  |11.0% {10328ms} ByteString(String)>>asSignedInteger
>       |  |  |  4.5% {4225ms} Integer class>>readFrom:
>       |  |  |    |4.5% {4225ms} Integer class>>readFrom:base:
>       |  |  |    |  3.2% {3004ms} Character>>digitValue
>       |  |  |  3.0% {2817ms} Character>>isDigit
>       |  |  |  2.2% {2066ms} ReadStream class(PositionableStream
class)>>on:
>       |  |  |    2.1% {1972ms} ReadStream(PositionableStream)>>on:
>       |  |11.0% {10328ms} DateAndTime
class>>year:month:day:hour:minute:second:
>       |  |  10.9% {10234ms} DateAndTime
class>>year:month:day:hour:minute:second:offset:
>       |  |    10.9% {10234ms} DateAndTime
class>>year:month:day:hour:...d:nanoSecond:offset:
>       |  |      5.4% {5070ms} Duration
class>>days:hours:minutes:seconds:nanoSeconds:
>       |  |        |3.9% {3662ms} Duration class>>nanoSeconds:
>       |  |        |  2.2% {2066ms} Duration class(Behavior)>>new
>       |  |        |    2.1% {1972ms} Duration>>initialize
>       |  |        |      2.1% {1972ms} primitives
>       |  |      3.6% {3380ms} Duration>>ticks
>       |35.0% {32860ms} ByteString(String)>>asNumber
>       |  |34.7% {32579ms} Number class(Object)>>readFromString:
>       |  |  32.8% {30795ms} Number class>>readFrom:
>       |  |    17.4% {16336ms} Number
class>>readRemainderOf:from:base:withSign:
>       |  |      |10.9% {10234ms} Integer class>>readFrom:base:
>       |  |      |  8.7% {8168ms} Character>>digitValue
>       |  |      |    4.5% {4225ms} EncodedCharSet class>>charsetAt:
>       |  |      |      |4.2% {3943ms}
Array(SequenceableCollection)>>at:ifAbsent:
>       |  |      |      |  2.1% {1972ms}
SmallInteger(Magnitude)>>between:and:
>       |  |      |      |  2.1% {1972ms} primitives
>       |  |      |    3.2% {3004ms} Latin1Environment
class(LanguageEnvironment class)>>digitValue:
>       |  |      |      2.5% {2347ms} Unicode class>>digitValue:
>       |  |      |        2.3% {2159ms} Character>>charCode
>       |  |    10.0% {9389ms} Integer class>>readFrom:base:
>       |  |      |7.2% {6760ms} Character>>digitValue
>       |  |      |  3.8% {3568ms} EncodedCharSet class>>charsetAt:
>       |  |      |    |3.4% {3192ms}
Array(SequenceableCollection)>>at:ifAbsent:
>       |  |      |    |  2.0% {1878ms} primitives
>       |  |      |  2.2% {2066ms} Latin1Environment
class(LanguageEnvironment class)>>digitValue:
>       |  |    4.3% {4037ms} ReadStream(Stream)>>nextMatchAll:
>       |5.4% {5070ms} ByteArray>>asString
>       |  |4.7% {4413ms}
ByteString(SequenceableCollection)>>replaceFrom:to:with:
>       |3.8% {3568ms} GisLatLongAutoConvert class>>on:
>       |  3.8% {3568ms} GisLatLongAutoConvert>>initializeOn:
>       |    3.6% {3380ms} GisLatLongToArgentineProyectionConverter>>convert
>     10.9% {10234ms} GisSmsCsvReader(GisCsvReader)>>open:
>       10.3% {9670ms} GisSmsCsvReader(GisCsvReader)>>read:
>         6.2% {5821ms} primitives
>         3.4% {3192ms}
ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
>
> **Leaves**
> 6.2% {5821ms} GisSmsCsvReader(GisCsvReader)>>read:
> 5.7% {5352ms} Array(SequenceableCollection)>>at:ifAbsent:
> 5.1% {4788ms} SmallInteger(Magnitude)>>between:and:
> 4.8% {4507ms} Array(SequenceableCollection)>>replaceFrom:to:with:
> 4.7% {4413ms} Character>>charCode
> 4.5% {4225ms} ByteString(String)>>subStrings:
> 3.8% {3568ms} ReadStream(PositionableStream)>>on:
> 3.4% {3192ms}
ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
> 3.2% {3004ms} ByteString(SequenceableCollection)>>,
> 3.1% {2910ms} Integer class>>readFrom:base:
> 3.0% {2817ms} Character>>=
> 2.9% {2723ms} LargePositiveInteger(Integer)>>quo:
> 2.5% {2347ms} ReadStream>>next
> 2.4% {2253ms} Character>>digitValue
> 2.1% {1972ms} Duration>>initialize
>
> **Memory**
> old +46,754,836 bytes
> young -701,112 bytes
> used +46,053,724 bytes
> free -6,188,896 bytes
>
> **GCs**
> full 11 totalling 4,843ms (5.0% uptime), avg 440.0ms
> incr 21566 totalling 39,630ms (42.0% uptime), avg 2.0ms
> tenures 646 (avg 33 GCs/tenure)
> root table 0 overflows
>

#14847 De: Guillermo Sapaya <gsapaya@...>
Fecha: Mié, 14 de Jun, 2006 5:21 pm
Asunto: Re: [objetos] pregunta
gsapaya
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Mariano,
no se si entendí bien lo que hacías pero por lo visto no estás parseando el stream del archivo.
Deberías parsear el archivo mediante el stream.
Algo así deberia haber en tu parseo:

stream := file fileStream.
[stream atEnd] whileFalse: [
array := stream nextLine asArrayOfSubStringSeparatedBy: Locale sistemDefault listSeparator. "Fijate como es en Squeak"
objects add: (MyClass new
                        latitud: array first;
                        longitud: array second;
                        color: array third;
                        yourself)]

Esto no debería tardar nada...

Saludos, Guiye

Mariano Wahlmann escribió:
Extiendo mi explicación un poco:
Cada linea del csv (es un punto de un mapa, latitud longitud y otra
variable mas que es lo que determina el color del punto).
El parseo basicamente se realiza de la siguiente manenar, se abre el
archivo le saco los contents (en un principio eran en ascii pero el
Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo pase
a binario, y luego de ese contents, uso indexOf: para sacar las
posiciones de las comas (cada columna) y los CrLf (cada registro). Luego
que tengo la posicion de cada campo se lo convierte al tipo que necesito
por ejemplo la posicion (latitud y longitud) hago un asNumber, el
timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn:)
obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a adjuntar
el spyon.

Un dato que obtuve, copie literalmente las clases a VisualWorks y lo que
en Squeak tarda 93s, en VW tarda 7.



german@... escribió:
> Hola!
>
> Podés mostrar como levantas el archivo y cada linea, y como
> instancias? Es
> probable que puedas hacerlo más rápido, incluso con Squeak.
>
> Saludos,
>
> German
>
> Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:
>
> > Hola,
> >
> > Quería perdirles un consejo, actualmente estoy desarrollando un sistema
> > que parsea archivos csv (separados por coma) y genera en base a esos
> > archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> > problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak se
> > vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
> > (cada linea es un punto en el mapa). Es practicamente inusable la
> > performance que conseguí con el squeak, estaba pensando en migrar a
> > otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
> > Quería que me recomienden uno u otro. Lo que necesito es, poder parsear
> > el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
> > relativamente facil, en otros es tambien sencillo? Cual es el smalltalk
> > funciona mejor en cuanto a performance, y que a su vez tiene un set de
> > importante de Classes ya hechas??
> >
> > Saludos,
> >
> >
> >




-- Guillermo Sapaya
InfOil S.A.
Desarrollo de software
(54-11) 4315-7624 x142
gsapaya@...

#14846 De: Mariano Wahlmann <mariano.wahlmann@...>
Fecha: Mié, 14 de Jun, 2006 1:52 pm
Asunto: Re: [objetos] pregunta
DichiMAW
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Extiendo mi explicación un poco:
Cada linea del csv (es un punto de un mapa, latitud longitud y otra
variable mas que es lo que determina el color del punto).
El parseo basicamente se realiza de la siguiente manenar, se abre el
archivo le saco los contents (en un principio eran en ascii pero el
Squeak realizaba muchas comprobaciones de CrLf) por eso despues lo pase
a binario, y luego de ese contents, uso indexOf: para sacar las
posiciones de las comas (cada columna) y los CrLf (cada registro). Luego
que tengo la posicion de cada campo se lo convierte al tipo que necesito
por ejemplo la posicion (latitud y longitud) hago un asNumber, el
timestamp asTimestamp, etc. Haciendo un profile (MessageTally spyOn:)
obtuve que el 42% se lo gasta el garbageCollector. y Solamente la
lectura y parseo de un archivo de 18Mb, tarda 93Segundos. voy a adjuntar
el spyon.

Un dato que obtuve, copie literalmente las clases a VisualWorks y lo que
en Squeak tarda 93s, en VW tarda 7.



german@... escribió:
> Hola!
>
> Podés mostrar como levantas el archivo y cada linea, y como
> instancias? Es
> probable que puedas hacerlo más rápido, incluso con Squeak.
>
> Saludos,
>
> German
>
> Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:
>
> > Hola,
> >
> > Quería perdirles un consejo, actualmente estoy desarrollando un sistema
> > que parsea archivos csv (separados por coma) y genera en base a esos
> > archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> > problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak se
> > vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
> > (cada linea es un punto en el mapa). Es practicamente inusable la
> > performance que conseguí con el squeak, estaba pensando en migrar a
> > otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
> > Quería que me recomienden uno u otro. Lo que necesito es, poder parsear
> > el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
> > relativamente facil, en otros es tambien sencillo? Cual es el smalltalk
> > funciona mejor en cuanto a performance, y que a su vez tiene un set de
> > importante de Classes ya hechas??
> >
> > Saludos,
> >
> >
> >
>
**Tree**
100.0% {93887ms} GisSmsCsvReader class(GisCsvReader class)>>on:
   100.0% {93887ms} GisSmsCsvReader>>open:
     89.1% {83653ms} GisSmsCsvReader>>readData
       |42.2% {39620ms} GisSmsCsvReader>>ticksFromString:
       |  |19.9% {18684ms} ByteString(String)>>subStrings:
       |  |  |5.4% {5070ms} ByteString(SequenceableCollection)>>,
       |  |  |  |3.2% {3004ms} primitives
       |  |  |  |2.2% {2066ms}
ByteString(SequenceableCollection)>>copyReplaceFrom:to:with:
       |  |  |4.5% {4225ms} primitives
       |  |11.2% {10515ms} ByteString(String)>>asInteger
       |  |  |11.0% {10328ms} ByteString(String)>>asSignedInteger
       |  |  |  4.5% {4225ms} Integer class>>readFrom:
       |  |  |    |4.5% {4225ms} Integer class>>readFrom:base:
       |  |  |    |  3.2% {3004ms} Character>>digitValue
       |  |  |  3.0% {2817ms} Character>>isDigit
       |  |  |  2.2% {2066ms} ReadStream class(PositionableStream class)>>on:
       |  |  |    2.1% {1972ms} ReadStream(PositionableStream)>>on:
       |  |11.0% {10328ms} DateAndTime class>>year:month:day:hour:minute:second:
       |  |  10.9% {10234ms} DateAndTime
class>>year:month:day:hour:minute:second:offset:
       |  |    10.9% {10234ms} DateAndTime
class>>year:month:day:hour:...d:nanoSecond:offset:
       |  |      5.4% {5070ms} Duration
class>>days:hours:minutes:seconds:nanoSeconds:
       |  |        |3.9% {3662ms} Duration class>>nanoSeconds:
       |  |        |  2.2% {2066ms} Duration class(Behavior)>>new
       |  |        |    2.1% {1972ms} Duration>>initialize
       |  |        |      2.1% {1972ms} primitives
       |  |      3.6% {3380ms} Duration>>ticks
       |35.0% {32860ms} ByteString(String)>>asNumber
       |  |34.7% {32579ms} Number class(Object)>>readFromString:
       |  |  32.8% {30795ms} Number class>>readFrom:
       |  |    17.4% {16336ms} Number class>>readRemainderOf:from:base:withSign:
       |  |      |10.9% {10234ms} Integer class>>readFrom:base:
       |  |      |  8.7% {8168ms} Character>>digitValue
       |  |      |    4.5% {4225ms} EncodedCharSet class>>charsetAt:
       |  |      |      |4.2% {3943ms}
Array(SequenceableCollection)>>at:ifAbsent:
       |  |      |      |  2.1% {1972ms} SmallInteger(Magnitude)>>between:and:
       |  |      |      |  2.1% {1972ms} primitives
       |  |      |    3.2% {3004ms} Latin1Environment class(LanguageEnvironment
class)>>digitValue:
       |  |      |      2.5% {2347ms} Unicode class>>digitValue:
       |  |      |        2.3% {2159ms} Character>>charCode
       |  |    10.0% {9389ms} Integer class>>readFrom:base:
       |  |      |7.2% {6760ms} Character>>digitValue
       |  |      |  3.8% {3568ms} EncodedCharSet class>>charsetAt:
       |  |      |    |3.4% {3192ms} Array(SequenceableCollection)>>at:ifAbsent:
       |  |      |    |  2.0% {1878ms} primitives
       |  |      |  2.2% {2066ms} Latin1Environment class(LanguageEnvironment
class)>>digitValue:
       |  |    4.3% {4037ms} ReadStream(Stream)>>nextMatchAll:
       |5.4% {5070ms} ByteArray>>asString
       |  |4.7% {4413ms} ByteString(SequenceableCollection)>>replaceFrom:to:with:
       |3.8% {3568ms} GisLatLongAutoConvert class>>on:
       |  3.8% {3568ms} GisLatLongAutoConvert>>initializeOn:
       |    3.6% {3380ms} GisLatLongToArgentineProyectionConverter>>convert
     10.9% {10234ms} GisSmsCsvReader(GisCsvReader)>>open:
       10.3% {9670ms} GisSmsCsvReader(GisCsvReader)>>read:
         6.2% {5821ms} primitives
         3.4% {3192ms}
ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:

**Leaves**
6.2% {5821ms} GisSmsCsvReader(GisCsvReader)>>read:
5.7% {5352ms} Array(SequenceableCollection)>>at:ifAbsent:
5.1% {4788ms} SmallInteger(Magnitude)>>between:and:
4.8% {4507ms} Array(SequenceableCollection)>>replaceFrom:to:with:
4.7% {4413ms} Character>>charCode
4.5% {4225ms} ByteString(String)>>subStrings:
3.8% {3568ms} ReadStream(PositionableStream)>>on:
3.4% {3192ms} ByteArray(SequenceableCollection)>>indexOf:startingAt:ifAbsent:
3.2% {3004ms} ByteString(SequenceableCollection)>>,
3.1% {2910ms} Integer class>>readFrom:base:
3.0% {2817ms} Character>>=
2.9% {2723ms} LargePositiveInteger(Integer)>>quo:
2.5% {2347ms} ReadStream>>next
2.4% {2253ms} Character>>digitValue
2.1% {1972ms} Duration>>initialize

**Memory**
	 old 	 +46,754,836 bytes
	 young  -701,112 bytes
	 used  +46,053,724 bytes
	 free  -6,188,896 bytes

**GCs**
	 full 	 11 totalling 4,843ms (5.0% uptime), avg 440.0ms
	 incr  21566 totalling 39,630ms (42.0% uptime), avg 2.0ms
	 tenures  646 (avg 33 GCs/tenure)
	 root table 0 overflows

#14845 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 14 de Jun, 2006 1:12 pm
Asunto: Re: [objetos] pregunta
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Mariano,

> Quería perdirles un consejo, actualmente estoy desarrollando un sistema
> que parsea archivos csv (separados por coma) y genera en base a esos
> archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> problema es que con archivos grandes (50000 líneas, 18Mb ) el squeak se
> vuelve muy lento, ya que por cada línea tiene que instanciar un objeto
> (cada línea es un punto en el mapa).

50000 objetos son pocos objetos.
Un parser de ese estilo para un tamaño como el que comentás debería
  procesar en no mas de uno o dos segundos.

Fijate bien en que se te está consumiendo el tiempo.
Si estas armando imágenes dinámicamente, fijate si
  es allí dónde se está yendo... (usa siempre la misma
  imagen, en vez de instanciar una imagen por cada línea, etc.)

> Es prácticamente inusable la performance que conseguí con el squeak,
> estaba pensando en migrar a otros Smalltalk (básicamente estoy pensando
> en VisualWorks o Dolhpin).

Si haces lo mismo, no creo que ganes una diferencia mayor al 50%;
  es decir, será "casi inusable".

Estoy seguro que se te está pasando algo por alto;
  o que estas haciendo cosas que exceden al parsing
  y allí es dónde se te va el tiempo.

> Quería que me recomienden uno u otro.
Cualquiera te será igual de útil.
Vas a encontrar que en todos los Smalltalk
  hay quienes lo usan eficientemente a diario;
  si alguien te dice que uno es mejor que otro
  (en absoluto, para todo proyecto) es porque aún
  le queda mucho por aprender... y quizás solo
  conoce "su" Smalltalk.

> Lo que necesito es, poder parsear el .csv y generar
> imágenes gif en función de esos datos.

Es relativamente simple lo que planteas, si conoces de
  ambos dominios (es decir, si ya has hecho parsers en
  Smalltalk y si ya has trabajado con imágenes en Smalltalk).
Si no lo conoces, solo es un tema de dedicación;
  date tiempo y disfrutalo!
No pongas en "la herramienta" el valor de lo que haces,
  valorá el tiempo que le das a la solución de tu problema.

>Con squeak es relativamente fácil, en otros
> es también sencillo?

Igual de sencillo, pero no todos pueden replicar
  el éxito de un Smalltalk a otro.
Algunos solo pueden ver el éxito dependiendo
  de que Smalltalk usan; pues no han podido desarrollar
  experiencia en mas de un ambiente.
Solo es cuestión de tiempo :-)

> Cual es el Smalltalk funciona mejor en cuanto a
> performance,

El "mío".
Para cada smalltalker hay un solo Smalltalk adaptado
  a sus necesidades; ese Smalltalk es siempre el propio.
Si aún notenes el tuyo, relajate y date tiempo;
  disfruta el proceso de construcción de TU Smalltalk.
Partí del que desees (el que veas mas seductor para
  esta solución puntual que estas necesitando),
  con cualquiera da lo mismo; pues el aprendizaje
  de Smalltalk siempre excede a un proyecto (y lleva
  como mínimo tres años).

> y que a su vez tiene un set de
> importante de Classes ya hechas??

La cantidad de clases no determina la calidad de un ambiente.
En muchos casos determina solo obesidad, un mal
  muy extendido en la industria de software.

hasta pronto,
Ale.




----- Original Message -----
From: "Mariano Wahlmann" <mariano.wahlmann@...>
To: <smalltalking@...>
Sent: Tuesday, June 13, 2006 4:42 PM
Subject: [objetos] pregunta


> Hola,
>
> Quería perdirles un consejo, actualmente estoy desarrollando un sistema
> que parsea archivos csv (separados por coma) y genera en base a esos
> archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak se
> vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
> (cada linea es un punto en el mapa). Es practicamente inusable la
> performance que conseguí con el squeak, estaba pensando en migrar a
> otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
> Quería que me recomienden uno u otro. Lo que necesito es, poder parsear
> el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
> relativamente facil, en otros es tambien sencillo? Cual es el smalltalk
> funciona mejor en cuanto a performance, y que a su vez tiene un set de
> importante de Classes ya hechas??
>
> Saludos,
>
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
> Enlaces de Yahoo! Grupos
>
>
>
>
>
>

#14844 De: german@...
Fecha: Mar, 13 de Jun, 2006 9:57 pm
Asunto: Re: [objetos] pregunta
gerpsai
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola!

Podés mostrar como levantas el archivo y cada linea, y como instancias? Es
probable que puedas hacerlo más rápido, incluso con Squeak.

Saludos,

German

Mensaje citado por: Mariano Wahlmann <mariano.wahlmann@...>:

> Hola,
>
> Quería perdirles un consejo, actualmente estoy desarrollando un sistema
> que parsea archivos csv (separados por coma) y genera en base a esos
> archivos unos mapas (en formato gif), lo hice utilizando squeak, el
> problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak se
> vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
> (cada linea es un punto en el mapa). Es practicamente inusable la
> performance que conseguí con el squeak, estaba pensando en migrar a
> otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
> Quería que me recomienden uno u otro. Lo que necesito es, poder parsear
> el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
> relativamente facil, en otros es tambien sencillo? Cual es el smalltalk
> funciona mejor en cuanto a performance, y que a su vez tiene un set de
> importante de Classes ya hechas??
>
> Saludos,
>
>
>

#14843 De: Mariano Wahlmann <mariano.wahlmann@...>
Fecha: Mar, 13 de Jun, 2006 7:42 pm
Asunto: pregunta
DichiMAW
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola,

Quería perdirles un consejo, actualmente estoy desarrollando un sistema
que parsea archivos csv (separados por coma) y genera en base a esos
archivos unos mapas (en formato gif), lo hice utilizando squeak, el
problema es que con archivos grandes (50000 lineas, 18Mb ) el squeak se
vuelve muy lento, ya que por cada linea tiene que instanciar un objeto
(cada linea es un punto en el mapa). Es practicamente inusable la
performance que conseguí con el squeak, estaba pensando en migrar a
otros Smalltalk (basicamente estoy pensando en VisualWorks o Dolhpin).
Quería que me recomienden uno u otro. Lo que necesito es, poder parsear
el .csv y generar imagenes gif en funcion de esos datos. Con squeak es
relativamente facil, en otros es tambien sencillo? Cual es el smalltalk
funciona mejor en cuanto a performance, y que a su vez tiene un set de
importante de Classes ya hechas??

Saludos,

#14842 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 13 de Jun, 2006 2:18 pm
Asunto: Re: [objetos] Eventos Vs.
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Kiko,
Un ambiente de objetos dista de la realidad,
  no tiene compromiso con ésta.
Son sistemas "idealizados" (que intentan ser
  ideales) y como tales son reducidos,
  toda relación con la realidad es parte de
  nuestra ficción/voluntad.
Ale.


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Tuesday, June 13, 2006 10:07 AM
Subject: Re: [objetos] Eventos Vs.


> Hola
>
>   Yo pienso que, el objeto observado no debería informar a nadie de sus
cambios.
>   Ya que es una responsabilidad del objeto observador darse cuenta del
cambio y responder en consecuencia.
>
>   Como lo es en la realidad, si me tiran la pelota (ya que estamos en
época de mundial) no tengo que esperar que me avisen.
>   Pero aquí es difícil imaginarse un mecanismo de este tipo.
>
>
>   saludos kiko
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>
>   Hola,
>
> >   Yo me pregunto para que un objeto dispara un evento
> > que nadie esta escuchando ???.
>
> Quizás "alguien" antes lo usaba...
> En el caso de un evento, como el sentido es el inverso
> a un mensaje, creo que quizás no es relevante
> plantearnos una "intencionalidad" (como en el envío de
> un mensaje, donde además es dirigido)
> no?
>
> Tu cuestionamiento, creo que es interesante
> pues en un punto se relaciona (creo yo)
> con la "correctitud" de plantear al
> comportamiento de un objeto como
> "perteneciente al objeto" [*].
> Fijate que el objeto debe realizar una acción
> en "su dominio" (un método de él mismo)
> para satisfacer a otro objeto...
>
> No es ese pedacito de método (el envío del
> #triggerEvent:) parte del objeto observador?
>
> hasta pronto,
> Ale.
> [*] y al comportamiento como un objeto (encapsulado)...
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Thursday, June 08, 2006 11:42 AM
> Subject: Re: [objetos] Eventos Vs.
>
>
> > Hola Ale
> >
> >   Si, estoy usando las(ARSlls) .
> >   El problema es que tanto este evento como otros no son usados por
nadie.
> >   Como vos decis:  puede que nadie este
> > interesado en escuchar ese evento...
> >
> >   Yo me pregunto para que un objeto dispara un evento que nadie esta
> escuchando ???.
> >
> >   saludos kiko
> >
> >
> >
> > "Alejandro F. Reimondo" <aleReimondo@...> escribió:
> >   Hola!
> >
> > >   Si, de echo yo pregunte varias veces sobre el tema.
> > >   Lo que pasa es que no puedo encontrar los objetos interesados en
> algunos
> > eventos.
> > >   Lo que hago es buscar los sender de #whensend:to:
> >
> > :-)  no me entendiste...
> > Cuando decía:
> > >> Buscá los sendes de ese evento; es decir, senders del selector.
> >
> > Me refería alos senders del selector (del nombre) del evento.
> > En tu ejemplo...
> > >  self triggerEvent: #started.
> > si te interesa saber quien hace referencia
> > al evento de nombre #started... buscá los senders de #started
> > (no los de #when:... que serán muchisimos)
> >
> > Si estas usando en VS mis SLLs (ARSlls) vas a tener
> > abajo, al final de menu de los paneles de texto,
> > un submenú con senders e implementors del texto selecto...
> > Es decir, seleccioná "started" en un text pane y busca
> > los senders...
> > Eso te encontrará los metodos que tienen en sus literales
> > ese simbolo; y entre ellos estará alguno que haga uso
> > del evento.
> >
> > >   Digo, si aparese en algunos lugares pero no en forma de
> > >   #when:#started send:#display  to:self o lo que sea que debiera
hacer.
> >
> > Los objetos disparan eventos sin importar que a otros
> > objetos les interese; es decir, puede que nadie este
> > interesado en escuchar ese evento...
> >
> > hasta pronto,
> > Ale.
> >
> > Pdta.: Buscando con senders encontrás todas las referencias
> > al selector, es decir, siempre que se use ese nombre para el
> > envio de un mensaje o como argumento (por ejemplo en eventos).
> >
> >
> >
> > ----- Original Message -----
> > From: "kikote gregoris" <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Wednesday, June 07, 2006 11:27 AM
> > Subject: Re: [objetos] Eventos Vs.
> >
> >
> > > Hola ale
> > >
> > >   Si, de echo yo pregunte varias veces sobre el tema.
> > >   Lo que pasa es que no puedo encontrar los objetos interesados en
> algunos
> > eventos.
> > >   Lo que hago es buscar los sender de #whensend:to:
> > >   pero por ejemplo :
> > >
> > >   start
> > >  " Start the receiver's engine. "
> > >    started := true.
> > >  self manager
> > >   when: #rendered
> > >   send: #deferredStep
> > >   to: self.
> > >  self triggerEvent: #started.
> > >  self deferredStep.
> > >
> > >   El evento #started no figura en ninguna parte, ya que use un mensaje
> que
> > busca toda referencia a un string y no hay nada .
> > >   Digo, si aparese en algunos lugares pero no en forma de
> > >   #when:#started send:#display  to:self o lo que sea que debiera
hacer.
> > >
> > >   Esa es la confución que se me presenta.
> > >
> > >   saludos kiko
> > >
> > >
> > >
> > > "Alejandro F. Reimondo" <aleReimondo@...> escribió:
> > >   Hola,
> > > Recuerdo que hemos hablado de este tema en la lista,
> > > fijate en los mails históricos, pues en ese entonces comenté
> > > varios detalles.
> > >
> > > >   Además, queria saber como saber cuales son los objetos
> > > > interesados en algun evento.
> > > >   Ya que no encuentro el mensaje apropiado para seber esto,
> > > > si puedo saber que eventos dispara un objeto pero no los
> > > > registrados para cuando dicho evento suceda.
> > >
> > > Buscá los sendes de ese evento; es decir, senders del selector.
> > >
> > > hasta pronto,
> > > Ale.
> > >
> > >
> > > ----- Original Message -----
> > > From: "kikote gregoris" <kikogregoris@...>
> > > To: <smalltalking@...>
> > > Sent: Tuesday, May 30, 2006 10:07 AM
> > > Subject: [objetos] Eventos Vs.
> > >
> > >
> > > > Hola
> > > >
> > > >
> > > >   Queria saber si el mecanismo de eventos de Vs, tiene que ver con
los
> > > eventos que las ventanas de windows resiven.
> > > >
> > > >   En principio me pareseria que esta mecanismo es nativo de VS y que
> su
> > > uso se extendio a las ventanas y pane de VS.
> > > >
> > > >   Lo pregunto porque en MT existen eventos pero estos estan
> intimamente
> > > ligados a los mensajes que window envia a las ventanas.
> > > >   Además, queria saber como saber cuales son los objetos interesados
> en
> > > algun evento.
> > > >   Ya que no encuentro el mensaje apropiado para seber esto, si puedo
> > saber
> > > que eventos dispara un objeto pero no los registrados para cuando
dicho
> > > evento suceda.
> > > >
> > > >   saludos kiko
> > > >
> > > >
> > > > ---------------------------------
> > > >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> > > >  El contenido más divertido para tu celular está en
> > > > Yahoo! Móvil
> > >
> > >
> > >
> > > Para más información sobre la Asociación escribir a
> info@...
> > >
> > > Smalltalking es un espacio colaborativo creado para el estudio y
> > desarrollo en Ambientes de Objetos.
> > > Se sustenta gracias a la participación de sus socios.
> > >
> > > Las reglas de etiqueta sobre la lista están en
> > http://www.smalltalking.net/join/netiquete.htm
> > >
> > >
> > >
> > >
> > > ---------------------------------
> > >   Enlaces de Yahoo! Grupos
> > >
> > >    Para visitar el sitio web del grupo, andá a:
> > > http://ar.groups.yahoo.com/group/smalltalking/
> > >
> > >    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> > > smalltalking-unsubscribe@...
> > >
> > >    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio
de
> > Yahoo!.
> > >
> > >
> > >
> > >
> > > ---------------------------------
> > >  Esa persona especial te espera en Yahoo! Encuentros
> > > ¡Dejate encontrar!
> > > Descubrilo aquí
> >
> >
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> >  El contenido más divertido para tu celular está en
> > Yahoo! Móvil
>
>
>
>
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí

#14841 De: kikote gregoris <kikogregoris@...>
Fecha: Mar, 13 de Jun, 2006 1:07 pm
Asunto: Re: [objetos] Eventos Vs.
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola
 
Yo pienso que, el objeto observado no debería informar a nadie de sus cambios.
Ya que es una responsabilidad del objeto observador darse cuenta del cambio y responder en consecuencia.
 
Como lo es en la realidad, si me tiran la pelota (ya que estamos en época de mundial) no tengo que esperar que me avisen.
Pero aquí es difícil imaginarse un mecanismo de este tipo.
 
 
saludos kiko

"Alejandro F. Reimondo" <aleReimondo@...> escribió:
Hola,

>   Yo me pregunto para que un objeto dispara un evento
> que nadie esta escuchando ???.

Quizás "alguien" antes lo usaba...
En el caso de un evento, como el sentido es el inverso
a un mensaje, creo que quizás no es relevante
plantearnos una "intencionalidad" (como en el envío de
un mensaje, donde además es dirigido)
no?

Tu cuestionamiento, creo que es interesante
pues en un punto se relaciona (creo yo)
con la "correctitud" de plantear al
comportamiento de un objeto como
"perteneciente al objeto" [*].
Fijate que el objeto debe realizar una acción
en "su dominio" (un método de él mismo)
para satisfacer a otro objeto...

No es ese pedacito de método (el envío del
#triggerEvent:) parte del objeto observador?

hasta pronto,
Ale.
[*] y al comportamiento como un objeto (encapsulado)...


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Thursday, June 08, 2006 11:42 AM
Subject: Re: [objetos] Eventos Vs.


> Hola Ale
>
>   Si, estoy usando las(ARSlls) .
>   El problema es que tanto este evento como otros no son usados por nadie.
>   Como vos decis:  puede que nadie este
> interesado en escuchar ese evento...
>
>   Yo me pregunto para que un objeto dispara un evento que nadie esta
escuchando ???.
>
>   saludos kiko
>
>
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   Hola!
>
> >   Si, de echo yo pregunte varias veces sobre el tema.
> >   Lo que pasa es que no puedo encontrar los objetos interesados en
algunos
> eventos.
> >   Lo que hago es buscar los sender de #whensend:to:
>
> :-)  no me entendiste...
> Cuando decía:
> >> Buscá los sendes de ese evento; es decir, senders del selector.
>
> Me refería alos senders del selector (del nombre) del evento.
> En tu ejemplo...
> >  self triggerEvent: #started.
> si te interesa saber quien hace referencia
> al evento de nombre #started... buscá los senders de #started
> (no los de #when:... que serán muchisimos)
>
> Si estas usando en VS mis SLLs (ARSlls) vas a tener
> abajo, al final de menu de los paneles de texto,
> un submenú con senders e implementors del texto selecto...
> Es decir, seleccioná "started" en un text pane y busca
> los senders...
> Eso te encontrará los metodos que tienen en sus literales
> ese simbolo; y entre ellos estará alguno que haga uso
> del evento.
>
> >   Digo, si aparese en algunos lugares pero no en forma de
> >   #when:#started send:#display  to:self o lo que sea que debiera hacer.
>
> Los objetos disparan eventos sin importar que a otros
> objetos les interese; es decir, puede que nadie este
> interesado en escuchar ese evento...
>
> hasta pronto,
> Ale.
>
> Pdta.: Buscando con senders encontrás todas las referencias
> al selector, es decir, siempre que se use ese nombre para el
> envio de un mensaje o como argumento (por ejemplo en eventos).
>
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Wednesday, June 07, 2006 11:27 AM
> Subject: Re: [objetos] Eventos Vs.
>
>
> > Hola ale
> >
> >   Si, de echo yo pregunte varias veces sobre el tema.
> >   Lo que pasa es que no puedo encontrar los objetos interesados en
algunos
> eventos.
> >   Lo que hago es buscar los sender de #whensend:to:
> >   pero por ejemplo :
> >
> >   start
> >  " Start the receiver's engine. "
> >    started := true.
> >  self manager
> >   when: #rendered
> >   send: #deferredStep
> >   to: self.
> >  self triggerEvent: #started.
> >  self deferredStep.
> >
> >   El evento #started no figura en ninguna parte, ya que use un mensaje
que
> busca toda referencia a un string y no hay nada .
> >   Digo, si aparese en algunos lugares pero no en forma de
> >   #when:#started send:#display  to:self o lo que sea que debiera hacer.
> >
> >   Esa es la confución que se me presenta.
> >
> >   saludos kiko
> >
> >
> >
> > "Alejandro F. Reimondo" <aleReimondo@...> escribió:
> >   Hola,
> > Recuerdo que hemos hablado de este tema en la lista,
> > fijate en los mails históricos, pues en ese entonces comenté
> > varios detalles.
> >
> > >   Además, queria saber como saber cuales son los objetos
> > > interesados en algun evento.
> > >   Ya que no encuentro el mensaje apropiado para seber esto,
> > > si puedo saber que eventos dispara un objeto pero no los
> > > registrados para cuando dicho evento suceda.
> >
> > Buscá los sendes de ese evento; es decir, senders del selector.
> >
> > hasta pronto,
> > Ale.
> >
> >
> > ----- Original Message -----
> > From: "kikote gregoris" <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Tuesday, May 30, 2006 10:07 AM
> > Subject: [objetos] Eventos Vs.
> >
> >
> > > Hola
> > >
> > >
> > >   Queria saber si el mecanismo de eventos de Vs, tiene que ver con los
> > eventos que las ventanas de windows resiven.
> > >
> > >   En principio me pareseria que esta mecanismo es nativo de VS y que
su
> > uso se extendio a las ventanas y pane de VS.
> > >
> > >   Lo pregunto porque en MT existen eventos pero estos estan
intimamente
> > ligados a los mensajes que window envia a las ventanas.
> > >   Además, queria saber como saber cuales son los objetos interesados
en
> > algun evento.
> > >   Ya que no encuentro el mensaje apropiado para seber esto, si puedo
> saber
> > que eventos dispara un objeto pero no los registrados para cuando dicho
> > evento suceda.
> > >
> > >   saludos kiko
> > >
> > >
> > > ---------------------------------
> > >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> > >  El contenido más divertido para tu celular está en
> > > Yahoo! Móvil
> >
> >
> >
> > Para más información sobre la Asociación escribir a
info@...
> >
> > Smalltalking es un espacio colaborativo creado para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
> Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  Esa persona especial te espera en Yahoo! Encuentros
> > ¡Dejate encontrar!
> > Descubrilo aquí
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil



1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí

#14840 De: kikote gregoris <kikogregoris@...>
Fecha: Mar, 13 de Jun, 2006 12:57 pm
Asunto: Consultan Genesis 2
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Tengo una duda con el retorno ^, tengo esta situación :
 
GenesisFileSystem(Class)>>directory: aDirectory
            "Returns the default file system."
 
            aDirectory isString ifTrue: [
                        aDirectory isEmpty ifTrue: [ ^self default ].
                        ^self directory: (Directory pathName: aDirectory)
            ].
            ^(self pathName: aDirectory drivePathName)
                        directoryReadOnly;
                        yourself
 
En la ultima parte del método  se le envía #directoryReadOnly, el cual hace:
 
GenesisFileObject>>directoryReadOnly
            "Set the open mode of the receiver to Directory."
 
^self openMode: GeVfileOpenDirectory | GeVfileOpenReadOnly.
 
Lo que no entiendo es por que este método debe retornar, si lo que hace en última instancias es asignar el modo de apertura a la instancia del receptor .
Como yo lo veo, no seria necesario retornar de este método o SI ¿??.
Por que ¿??.
Por ultimo para que se le envía #yourself , ya que parece redundante hacerlo .
 
Esto son  2 métodos que también  están involucrados :
 
GenesisFileObject(Class)>>pathName: pathName
            "Returns an instance of the receiver named pathName."
 
            ^self pathName: pathName on: nil
 
GenesisFileSystem(Class)>>pathName: pathName on: parent
            "Returns an instance of the receiver named pathName in parent."
 
            ^self new
                        parent: parent;
                        pathName: pathName;
                        yourself
 
Por ultimo tengo otra pregunta, por que generaste extenciones STQuatern.h /c.
Ya que en principio parese que solo llaman a las funciones de Quatern.h, ademas de hacerlo sobre otros .
 
 
 
saludos kiko.
 
 


1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí

#14839 De: kikote gregoris <kikogregoris@...>
Fecha: Lun, 12 de Jun, 2006 2:18 pm
Asunto: Consulta Genesis
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola ALe
 
2 consultas :
 
1: Luego de enviarle a GenesisCamera el mensaje release.
el cual llama a la función geCamera_Destroy el puntero sigue siendo valido.
No debería retornar falso el método #isValid.
Se supone que la librería se encargo de poner basura en ese lugar o lo que sea que pone cuando libera la memoria.
Por cierto que hace la librería cuando libera memoria, le pone un NULL a la dirección ??.
 
2: En métodos como este:
 
GenesisCamera>>boundingBox: anObject
 "Sets the instance var of the receiver
  with anObject. (No checking is done)"
 boundingBox := anObject
 
Le envías anObject, no deberías nombrar de otra manera este objeto.
Ya que no es un rectángulo lo que se espera que reciba.???.
Por que aclaras que no se hacen chequeos.??.
Lo mismo pasa en otros métodos.
 
 
saludos kiko
 


1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí

#14838 De: "Carlos E. Ferro" <ceferro@...>
Fecha: Jue, 8 de Jun, 2006 3:31 pm
Asunto: Re: [objetos] Eventos Vs.
carloseferrob
Sin conexión Sin conexión
Enviar correo Enviar correo
 
On 8 Jun 2006 at 11:42, kikote gregoris wrote:

> El problema es que tanto este evento como otros no son usados por nadie.
> Como vos decis: puede que nadie este
> interesado en escuchar ese evento...
>
> Yo me pregunto para que un objeto dispara un evento que nadie esta escuchando
???.

El objeto dispara un evento para notificar un cambio que su programador
consideró interesante.
Por ahí, después, nadie comparte ese criterio...
En el caso del started, que sólo dispara el inicio de sesión, sería raro que
alguien
en el ambiente lo use. Podría ser que alguien en una aplicación lo use.

Muchas veces los programadores son "precavidos" y "generosos" poniendo
muchos eventos para avisarle a "la gente" que dentro de sus objetos cambiaron
cosas. Es la única manera de que otros se puedan enterar.
También muchas veces, resulta que a nadie le interesaba eso, porque el objeto
no era tan importante como parecía al principio y sus cambios son
intrascendentes para el resto del ambiente.
Lo que pasa es que tener que ir a disparar un evento donde antes no se hacía,
es meterse en código de otro. En cambio, que se dispare un evento que a nadie
le interesa, parece más inocente.

Saludos
--
Carlos E. Ferro
Caesar Systems

#14837 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Jue, 8 de Jun, 2006 3:19 pm
Asunto: Re: [objetos] Eventos Vs.
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola,

>   Yo me pregunto para que un objeto dispara un evento
> que nadie esta escuchando ???.

Quizás "alguien" antes lo usaba...
En el caso de un evento, como el sentido es el inverso
  a un mensaje, creo que quizás no es relevante
  plantearnos una "intencionalidad" (como en el envío de
  un mensaje, donde además es dirigido)
no?

Tu cuestionamiento, creo que es interesante
  pues en un punto se relaciona (creo yo)
  con la "correctitud" de plantear al
  comportamiento de un objeto como
  "perteneciente al objeto" [*].
Fijate que el objeto debe realizar una acción
  en "su dominio" (un método de él mismo)
  para satisfacer a otro objeto...

No es ese pedacito de método (el envío del
  #triggerEvent:) parte del objeto observador?

hasta pronto,
Ale.
[*] y al comportamiento como un objeto (encapsulado)...


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Thursday, June 08, 2006 11:42 AM
Subject: Re: [objetos] Eventos Vs.


> Hola Ale
>
>   Si, estoy usando las(ARSlls) .
>   El problema es que tanto este evento como otros no son usados por nadie.
>   Como vos decis:  puede que nadie este
> interesado en escuchar ese evento...
>
>   Yo me pregunto para que un objeto dispara un evento que nadie esta
escuchando ???.
>
>   saludos kiko
>
>
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   Hola!
>
> >   Si, de echo yo pregunte varias veces sobre el tema.
> >   Lo que pasa es que no puedo encontrar los objetos interesados en
algunos
> eventos.
> >   Lo que hago es buscar los sender de #whensend:to:
>
> :-)  no me entendiste...
> Cuando decía:
> >> Buscá los sendes de ese evento; es decir, senders del selector.
>
> Me refería alos senders del selector (del nombre) del evento.
> En tu ejemplo...
> >  self triggerEvent: #started.
> si te interesa saber quien hace referencia
> al evento de nombre #started... buscá los senders de #started
> (no los de #when:... que serán muchisimos)
>
> Si estas usando en VS mis SLLs (ARSlls) vas a tener
> abajo, al final de menu de los paneles de texto,
> un submenú con senders e implementors del texto selecto...
> Es decir, seleccioná "started" en un text pane y busca
> los senders...
> Eso te encontrará los metodos que tienen en sus literales
> ese simbolo; y entre ellos estará alguno que haga uso
> del evento.
>
> >   Digo, si aparese en algunos lugares pero no en forma de
> >   #when:#started send:#display  to:self o lo que sea que debiera hacer.
>
> Los objetos disparan eventos sin importar que a otros
> objetos les interese; es decir, puede que nadie este
> interesado en escuchar ese evento...
>
> hasta pronto,
> Ale.
>
> Pdta.: Buscando con senders encontrás todas las referencias
> al selector, es decir, siempre que se use ese nombre para el
> envio de un mensaje o como argumento (por ejemplo en eventos).
>
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Wednesday, June 07, 2006 11:27 AM
> Subject: Re: [objetos] Eventos Vs.
>
>
> > Hola ale
> >
> >   Si, de echo yo pregunte varias veces sobre el tema.
> >   Lo que pasa es que no puedo encontrar los objetos interesados en
algunos
> eventos.
> >   Lo que hago es buscar los sender de #whensend:to:
> >   pero por ejemplo :
> >
> >   start
> >  " Start the receiver's engine. "
> >    started := true.
> >  self manager
> >   when: #rendered
> >   send: #deferredStep
> >   to: self.
> >  self triggerEvent: #started.
> >  self deferredStep.
> >
> >   El evento #started no figura en ninguna parte, ya que use un mensaje
que
> busca toda referencia a un string y no hay nada .
> >   Digo, si aparese en algunos lugares pero no en forma de
> >   #when:#started send:#display  to:self o lo que sea que debiera hacer.
> >
> >   Esa es la confución que se me presenta.
> >
> >   saludos kiko
> >
> >
> >
> > "Alejandro F. Reimondo" <aleReimondo@...> escribió:
> >   Hola,
> > Recuerdo que hemos hablado de este tema en la lista,
> > fijate en los mails históricos, pues en ese entonces comenté
> > varios detalles.
> >
> > >   Además, queria saber como saber cuales son los objetos
> > > interesados en algun evento.
> > >   Ya que no encuentro el mensaje apropiado para seber esto,
> > > si puedo saber que eventos dispara un objeto pero no los
> > > registrados para cuando dicho evento suceda.
> >
> > Buscá los sendes de ese evento; es decir, senders del selector.
> >
> > hasta pronto,
> > Ale.
> >
> >
> > ----- Original Message -----
> > From: "kikote gregoris" <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Tuesday, May 30, 2006 10:07 AM
> > Subject: [objetos] Eventos Vs.
> >
> >
> > > Hola
> > >
> > >
> > >   Queria saber si el mecanismo de eventos de Vs, tiene que ver con los
> > eventos que las ventanas de windows resiven.
> > >
> > >   En principio me pareseria que esta mecanismo es nativo de VS y que
su
> > uso se extendio a las ventanas y pane de VS.
> > >
> > >   Lo pregunto porque en MT existen eventos pero estos estan
intimamente
> > ligados a los mensajes que window envia a las ventanas.
> > >   Además, queria saber como saber cuales son los objetos interesados
en
> > algun evento.
> > >   Ya que no encuentro el mensaje apropiado para seber esto, si puedo
> saber
> > que eventos dispara un objeto pero no los registrados para cuando dicho
> > evento suceda.
> > >
> > >   saludos kiko
> > >
> > >
> > > ---------------------------------
> > >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> > >  El contenido más divertido para tu celular está en
> > > Yahoo! Móvil
> >
> >
> >
> > Para más información sobre la Asociación escribir a
info@...
> >
> > Smalltalking es un espacio colaborativo creado para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
> Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  Esa persona especial te espera en Yahoo! Encuentros
> > ¡Dejate encontrar!
> > Descubrilo aquí
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil

#14836 De: kikote gregoris <kikogregoris@...>
Fecha: Jue, 8 de Jun, 2006 2:42 pm
Asunto: Re: [objetos] Eventos Vs.
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Si, estoy usando las(ARSlls) .
El problema es que tanto este evento como otros no son usados por nadie.
Como vos decis:  puede que nadie este
interesado en escuchar ese evento...
 
Yo me pregunto para que un objeto dispara un evento que nadie esta escuchando ???.
 
saludos kiko



"Alejandro F. Reimondo" <aleReimondo@...> escribió:
Hola!

>   Si, de echo yo pregunte varias veces sobre el tema.
>   Lo que pasa es que no puedo encontrar los objetos interesados en algunos
eventos.
>   Lo que hago es buscar los sender de #whensend:to:

:-)  no me entendiste...
Cuando decía:
>> Buscá los sendes de ese evento; es decir, senders del selector.

Me refería alos senders del selector (del nombre) del evento.
En tu ejemplo...
>  self triggerEvent: #started.
si te interesa saber quien hace referencia
al evento de nombre #started... buscá los senders de #started
(no los de #when:... que serán muchisimos)

Si estas usando en VS mis SLLs (ARSlls) vas a tener
abajo, al final de menu de los paneles de texto,
un submenú con senders e implementors del texto selecto...
Es decir, seleccioná "started" en un text pane y busca
los senders...
Eso te encontrará los metodos que tienen en sus literales
ese simbolo; y entre ellos estará alguno que haga uso
del evento.

>   Digo, si aparese en algunos lugares pero no en forma de
>   #when:#started send:#display  to:self o lo que sea que debiera hacer.

Los objetos disparan eventos sin importar que a otros
objetos les interese; es decir, puede que nadie este
interesado en escuchar ese evento...

hasta pronto,
Ale.

Pdta.: Buscando con senders encontrás todas las referencias
al selector, es decir, siempre que se use ese nombre para el
envio de un mensaje o como argumento (por ejemplo en eventos).



----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Wednesday, June 07, 2006 11:27 AM
Subject: Re: [objetos] Eventos Vs.


> Hola ale
>
>   Si, de echo yo pregunte varias veces sobre el tema.
>   Lo que pasa es que no puedo encontrar los objetos interesados en algunos
eventos.
>   Lo que hago es buscar los sender de #whensend:to:
>   pero por ejemplo :
>
>   start
>  " Start the receiver's engine. "
>    started := true.
>  self manager
>   when: #rendered
>   send: #deferredStep
>   to: self.
>  self triggerEvent: #started.
>  self deferredStep.
>
>   El evento #started no figura en ninguna parte, ya que use un mensaje que
busca toda referencia a un string y no hay nada .
>   Digo, si aparese en algunos lugares pero no en forma de
>   #when:#started send:#display  to:self o lo que sea que debiera hacer.
>
>   Esa es la confución que se me presenta.
>
>   saludos kiko
>
>
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   Hola,
> Recuerdo que hemos hablado de este tema en la lista,
> fijate en los mails históricos, pues en ese entonces comenté
> varios detalles.
>
> >   Además, queria saber como saber cuales son los objetos
> > interesados en algun evento.
> >   Ya que no encuentro el mensaje apropiado para seber esto,
> > si puedo saber que eventos dispara un objeto pero no los
> > registrados para cuando dicho evento suceda.
>
> Buscá los sendes de ese evento; es decir, senders del selector.
>
> hasta pronto,
> Ale.
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 10:07 AM
> Subject: [objetos] Eventos Vs.
>
>
> > Hola
> >
> >
> >   Queria saber si el mecanismo de eventos de Vs, tiene que ver con los
> eventos que las ventanas de windows resiven.
> >
> >   En principio me pareseria que esta mecanismo es nativo de VS y que su
> uso se extendio a las ventanas y pane de VS.
> >
> >   Lo pregunto porque en MT existen eventos pero estos estan intimamente
> ligados a los mensajes que window envia a las ventanas.
> >   Además, queria saber como saber cuales son los objetos interesados en
> algun evento.
> >   Ya que no encuentro el mensaje apropiado para seber esto, si puedo
saber
> que eventos dispara un objeto pero no los registrados para cuando dicho
> evento suceda.
> >
> >   saludos kiko
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> >  El contenido más divertido para tu celular está en
> > Yahoo! Móvil
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.
>
>
>
>
> ---------------------------------
>  Esa persona especial te espera en Yahoo! Encuentros
> ¡Dejate encontrar!
> Descubrilo aquí



Horóscopos, Salud y belleza, Chistes, Consejos de amor.
El contenido más divertido para tu celular está en
Yahoo! Móvil

#14835 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 7 de Jun, 2006 6:16 pm
Asunto: Re: [objetos] Eventos Vs.
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola!

>   Si, de echo yo pregunte varias veces sobre el tema.
>   Lo que pasa es que no puedo encontrar los objetos interesados en algunos
eventos.
>   Lo que hago es buscar los sender de #whensend:to:

:-)  no me entendiste...
Cuando decía:
>> Buscá los sendes de ese evento; es decir, senders del selector.

Me refería alos senders del selector (del nombre) del evento.
En tu ejemplo...
>  self triggerEvent: #started.
  si te interesa saber quien hace referencia
  al evento de nombre #started... buscá los senders de #started
  (no los de #when:... que serán muchisimos)

Si estas usando en VS mis SLLs (ARSlls) vas a tener
  abajo, al final de menu de los paneles de texto,
  un submenú con senders e implementors del texto selecto...
Es decir, seleccioná "started" en un text pane y busca
  los senders...
Eso te encontrará los metodos que tienen en sus literales
  ese simbolo; y entre ellos estará alguno que haga uso
  del evento.

>   Digo, si aparese en algunos lugares pero no en forma de
>   #when:#started send:#display  to:self o lo que sea que debiera hacer.

Los objetos disparan eventos sin importar que a otros
  objetos les interese; es decir, puede que nadie este
  interesado en escuchar ese evento...

hasta pronto,
Ale.

Pdta.: Buscando con senders encontrás todas las referencias
  al selector, es decir, siempre que se use ese nombre para el
  envio de un mensaje o como argumento (por ejemplo en eventos).



----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Wednesday, June 07, 2006 11:27 AM
Subject: Re: [objetos] Eventos Vs.


> Hola ale
>
>   Si, de echo yo pregunte varias veces sobre el tema.
>   Lo que pasa es que no puedo encontrar los objetos interesados en algunos
eventos.
>   Lo que hago es buscar los sender de #whensend:to:
>   pero por ejemplo :
>
>   start
>  " Start the receiver's engine. "
>    started := true.
>  self manager
>   when: #rendered
>   send: #deferredStep
>   to: self.
>  self triggerEvent: #started.
>  self deferredStep.
>
>   El evento #started no figura en ninguna parte, ya que use un mensaje que
busca toda referencia a un string y no hay nada .
>   Digo, si aparese en algunos lugares pero no en forma de
>   #when:#started send:#display  to:self o lo que sea que debiera hacer.
>
>   Esa es la confución que se me presenta.
>
>   saludos kiko
>
>
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   Hola,
> Recuerdo que hemos hablado de este tema en la lista,
> fijate en los mails históricos, pues en ese entonces comenté
> varios detalles.
>
> >   Además, queria saber como saber cuales son los objetos
> > interesados en algun evento.
> >   Ya que no encuentro el mensaje apropiado para seber esto,
> > si puedo saber que eventos dispara un objeto pero no los
> > registrados para cuando dicho evento suceda.
>
> Buscá los sendes de ese evento; es decir, senders del selector.
>
> hasta pronto,
> Ale.
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 10:07 AM
> Subject: [objetos] Eventos Vs.
>
>
> > Hola
> >
> >
> >   Queria saber si el mecanismo de eventos de Vs, tiene que ver con los
> eventos que las ventanas de windows resiven.
> >
> >   En principio me pareseria que esta mecanismo es nativo de VS y que su
> uso se extendio a las ventanas y pane de VS.
> >
> >   Lo pregunto porque en MT existen eventos pero estos estan intimamente
> ligados a los mensajes que window envia a las ventanas.
> >   Además, queria saber como saber cuales son los objetos interesados en
> algun evento.
> >   Ya que no encuentro el mensaje apropiado para seber esto, si puedo
saber
> que eventos dispara un objeto pero no los registrados para cuando dicho
> evento suceda.
> >
> >   saludos kiko
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
> >  El contenido más divertido para tu celular está en
> > Yahoo! Móvil
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.
>
>
>
>
> ---------------------------------
>  Esa persona especial te espera en Yahoo! Encuentros
> ¡Dejate encontrar!
> Descubrilo aquí

#14834 De: Marcelo Diaz Cortez <mdc_marcelo@...>
Fecha: Mié, 7 de Jun, 2006 5:07 pm
Asunto: Re: [objetos] API: _fastcall
mdc_marcelo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola kiko , gente

Ok si no sabia que hay dos versiones..
>   Por ultimo, que significa __cplusplus.????.
mira en el script que mandaste segun recuerdo es un
simbolo que usa el script para evitar o agregar partes
o sea  ( de memoria)

1) if defined __cplusplus
2)    include #zaraza.h
3)    define zaraza
4) end

bastaba con poner

  define __cplusplus
  antes de  1)  para que este definido esto es
precompilador .

todo esto hasta donde yo se.
salud2
    MDC
  --- kikote gregoris <kikogregoris@...>
escribió:

> Hola marcelo
>
>   Mira, hay 2 versiones de genesis.
>   Una es la oficial y la otra no oficial.
>   No podria asegurarte  que los fuentes sean
> distintos en la convencion, ya que todabia no baje
> la versión original de genesis.
>   Lo que si puedo decir es que la versión no oficial
> tiene algunas funciones mas que la original.
>   Lo puedo asegurar por algunos tutorial que hay de
> genesis donde se comenta esto.
>   Lo seguro es que cuando use la versión que esta
> usando VS las funciones no estaban mangeadas  y todo
> salio de maravillas.
>
>   Por ultimo, que significa __cplusplus.????.
>
>   saludos kiko
>
>
> Marcelo Diaz Cortez <mdc_marcelo@...>
> escribió:
>   Kikote
>
> No no en mangleada por el  extern "C" {,claro que
> si esta definida __cplusplus.
> El _fastcall es la convencion de pasaje de
> parametros,
> lo que me parece sin tener muy claro que te pasa es
> ver en que convenion de parametros estas usando
> desde
> tu smalltalk ,y poner la misma en el genesis
> probablemente mandando un parametro al compiler ,
> tal
> vez el makefile acepte algun parametro para esto ,
> pero defiitivamente tienen que tener la misma
> convecion de pasaje de parametros , No creo que esto
> varie entre versiones del Genesis , genesis el
> codigo
> en este punto es portable la definicion de pasajes
> de
> parametros es para el compilador/linkerador mas para
> este ultimo.
> saludos
>   MDC
>
>
> --- kikote gregoris <kikogregoris@...>
> escribió:
>
> > Hola ALe , marcelo
> >
> >   OK, la funcion esta mangeada o lo que sea.
> >   El tema es que debo estar usando una version
> > distinta de genesis pues , no encuentro dentro de
> > genesis.h una version en C de la funcion.
> >   Esta es la convencion de genesis:
> >
> >   #ifdef __cplusplus
> > extern "C" {
> > #endif
> >   /******** The Genesis Calling Conventions
> > ***********/
> >   #define GENESISCC _fastcall
> >   #if defined(BUILDGENESIS) &&
> > defined(GENESISDLLVERSION)
> >   #define GENESISAPI _declspec(dllexport)
> > #else
> >   #if defined(GENESISDLLVERSION)
> >     #define GENESISAPI _declspec(dllimport)
> >   #else
> >     #define GENESISAPI
> >   #endif
> > #endif
> >
> >
> >   Luego todas las funciones de Camera estan de
> esta
> > manera:
> >
> >   GENESISAPI geCamera   *GENESISCC
> > geCamera_Create(geFloat Fov, const geRect *Rect);
> >
> >   Donde GENESISCC  es la famosa _fastcall.
> >
> >   No se o estoy usando una versión distinta de
> > genesis o ???.
> >
> >   No creo estar usando una versión distinta ya que
> > es la misma que ALe usa para VS.
> >   O sera un problema de MT de como ve las
> funciones
> > ???
> >
> >   Alguna idea ????.
> >
> >   saludos kiko
> >
> >   Si quieren hacer una prueba tonta, solo vasta
> con
> > ir a la opcion del menu Tools\image properties y
> en
> > la pestaña linkage agregar la DLL y una ves
> cargada
> > hacer doble clik sobre la misma y ver como muestra
> > las funciones.
> >   No es obligacion que lo hagan, solo si tienen
> > tiempo y ganas.
> >
> >
> > ejandro F. Reimondo"
> <aleReimondo@...>
> > escribió:
> >
> > >   @geCamera_Create@8.
> >
> > Creo que esta funcion no es de la interfaz C, sino
> > de la de C++;
> > pues el nombre está "mangleado".
> >
> > Usá la versión C de la función... segun pienso
> estas
> > "funciones C++"
> > están expuestas para poner alegres a las
> > aplicaciones que
> > interactúan via Cpuspus; que no debería ser
> > necesario
> > de usar en Smalltalk, ya que haría mas fragil aún
> tu
> > sistema.
> >
> > suerte,
> > Ale.
> >
> >
> > ----- Original Message -----
> > From: "kikote gregoris"
> <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Friday, June 02, 2006 4:52 PM
> > Subject: Re: [objetos] API: _fastcall
> >
> >
> > > Hola ALe
> > >
> > >   Estube mirando pero no hay nada de _fastcall
> > digo que, solo define API
> > ,C y otras .
> > >   API por lo que se, usa stdcall y es la
> > convencion que usan las APIs de
> > win y C es cdcall que es la convencion C por
> > defecto.
> > >
> > >   Lo que pasa es que las funciones que usan
> > _fastcall en Genesis MT me las
> > muestra con:
> > >
> > >   @geCamera_Create@8.
> > >
> > >   Cuando intento hacer la llama me dice que no
> se
> > puede carcar la funcion.
> > >
> > >   Lo que me llama la atencion es que yo uso la
> > convencion C que es la
> > misma de VS, creo.
> > >   Puedo hacer la llamada de otra forma mas
> > complicadam, que es tomando la
> > direccion de la funcion y con un par de metodos
> que
> > implementa MT lo hace
> > pero no creo que sea la manera de trabajar.
> > >
> > >   saludos kiko
> > >
> > > "Alejandro F. Reimondo"
> > <aleReimondo@...> escribió:
> > >   En VS tenes varias formas de definir un metodo
> > api,
> > > con un mecanismo incluso extensible.
> > > Fijate en los implementors de #apiPrimitiveMap
> > > Cada forma se corresponde con una manera de
> > > realizar la llamada nativa; si usas una que no
> > corresponde,
> > > ocurre lo que siempre ocurre con el lenguaje
> > > de máquina :-)
> > > suerte,
> > > Ale.
> > >
> > >
> > >
> > > ---- Original Message -----
> > > From: "kikote gregoris"
> > <kikogregoris@...>
> > > To: <smalltalking@...>
> > > Sent: Tuesday, May 30, 2006 11:06 PM
> > > Subject: [objetos] API: _fastcall
> > >
> > >
> > > > Hola
> > > >
> > > >   Tengo problemas para invocar una funcion
> > exportada como _fastcall
> > desde
> > > MT.
> > > >
> > > >   Desde VS no hay dramas ya que vasta con usar
> > la palabra reservada API
> > y
> > > listo.
> > > >   Lo que me llama la atencion es que en la
> ayuda
> > no hace diferencias
> > entre
> > > las distintas convenciones, incluso no nombra a
> > _fastcall la cual es
> > > diferente de las demas por que los parametros
> son
> > pasados en los registros
> > y
> > > no en la pila.
> > > >
> > > >   Por que en VS funcionan igual, sin hacer
> > diferencias entre
> > > convenciones.??
> > > >   Todo esto esta derivado del uso de
> genesis3d.
> > > >
> > > >   saludos kiko
> > > >
> > > >
> > > >
> > > > ---------------------------------
> > > >  1GB gratis, Antivirus y Antispam
> > > >  Correo Yahoo!, el mejor correo web del mundo
> > > >  Abrí tu cuenta aquí
> > >
> > >
> > >
> > > Para más información sobre la Asociación
> escribir
> > a info@...
> > >
> > > Smalltalking es un espacio colaborativo creado
> > para el estudio y
> > desarrollo en Ambientes de Objetos.
> > > Se sustenta gracias a la participación de sus
> > socios.
> > >
> > > Las reglas de etiqueta sobre la lista están en
> > http://www.smalltalking.net/join/netiquete.htm
> > >
> > >
> > >
> > >
> > > ---------------------------------
> > >   Enlaces de Yahoo! Grupos
> > >
> > >    Para visitar el sitio web del grupo, andá a:
> > > http://ar.groups.yahoo.com/group/smalltalking/
> > >
> > >    Para cancelar tu suscripción a este grupo,
> > enviá un mensaje a:
> > > smalltalking-unsubscribe@...
> > >
> > >    El uso de Yahoo! Grupos está sujeto a las
> > Condiciones del servicio de
> > Yahoo!.
> > >
> > >
> > >
> > >
> > > ---------------------------------
> > >  Horóscopos, Salud y belleza, Chistes, Consejos
> de
> > amor.
> > >  El contenido más divertido para tu celular está
> > en
> > > Yahoo! Móvil
> >
> >
> >
> > Para más información sobre la Asociación escribir
> a
> > info@...
> >
> > Smalltalking es un espacio colaborativo creado
> para
> > el estudio y desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus
> > socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> > http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo,
> enviá
> > un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las
> > Condiciones del servicio de Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  1GB gratis, Antivirus y Antispam
> >  Correo Yahoo!, el mejor correo web del mundo
> >  Abrí tu cuenta aquí
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y
> antispam ¡gratis!
> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
>
>
> Para más información sobre la Asociación escribir a
> info@...
>
> Smalltalking es un espacio colaborativo creado para
> el estudio y desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus
> socios.
>
> Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá
> un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de Yahoo!.
>
>
>
>
> ---------------------------------
>  Esa persona especial te espera en Yahoo! Encuentros
>
> ¡Dejate encontrar!
> Descubrilo aquí


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

#14833 De: kikote gregoris <kikogregoris@...>
Fecha: Mié, 7 de Jun, 2006 2:27 pm
Asunto: Re: [objetos] Eventos Vs.
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola ale
 
Si, de echo yo pregunte varias veces sobre el tema.
Lo que pasa es que no puedo encontrar los objetos interesados en algunos eventos.
Lo que hago es buscar los sender de #whensend:to:
pero por ejemplo :
 
start
 " Start the receiver's engine. "
 started := true.
 self manager
  when: #rendered
  send: #deferredStep
  to: self.
 self triggerEvent: #started.
 self deferredStep.
 
El evento #started no figura en ninguna parte, ya que use un mensaje que busca toda referencia a un string y no hay nada .
Digo, si aparese en algunos lugares pero no en forma de
#when:#started send:#display  to:self o lo que sea que debiera hacer.
 
Esa es la confución que se me presenta.
 
saludos kiko
 


"Alejandro F. Reimondo" <aleReimondo@...> escribió:
Hola,
Recuerdo que hemos hablado de este tema en la lista,
fijate en los mails históricos, pues en ese entonces comenté
varios detalles.

>   Además, queria saber como saber cuales son los objetos
> interesados en algun evento.
>   Ya que no encuentro el mensaje apropiado para seber esto,
> si puedo saber que eventos dispara un objeto pero no los
> registrados para cuando dicho evento suceda.

Buscá los sendes de ese evento; es decir, senders del selector.

hasta pronto,
Ale.


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Tuesday, May 30, 2006 10:07 AM
Subject: [objetos] Eventos Vs.


> Hola
>
>
>   Queria saber si el mecanismo de eventos de Vs, tiene que ver con los
eventos que las ventanas de windows resiven.
>
>   En principio me pareseria que esta mecanismo es nativo de VS y que su
uso se extendio a las ventanas y pane de VS.
>
>   Lo pregunto porque en MT existen eventos pero estos estan intimamente
ligados a los mensajes que window envia a las ventanas.
>   Además, queria saber como saber cuales son los objetos interesados en
algun evento.
>   Ya que no encuentro el mensaje apropiado para seber esto, si puedo saber
que eventos dispara un objeto pero no los registrados para cuando dicho
evento suceda.
>
>   saludos kiko
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil



Esa persona especial te espera en Yahoo! Encuentros
¡Dejate encontrar!
Descubrilo aquí

#14832 De: kikote gregoris <kikogregoris@...>
Fecha: Mié, 7 de Jun, 2006 2:19 pm
Asunto: Re: [objetos] API: _fastcall
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola marcelo
 
Mira, hay 2 versiones de genesis.
Una es la oficial y la otra no oficial.
No podria asegurarte  que los fuentes sean distintos en la convencion, ya que todabia no baje la versión original de genesis.
Lo que si puedo decir es que la versión no oficial tiene algunas funciones mas que la original.
Lo puedo asegurar por algunos tutorial que hay de genesis donde se comenta esto.
Lo seguro es que cuando use la versión que esta usando VS las funciones no estaban mangeadas  y todo salio de maravillas.
 
Por ultimo, que significa __cplusplus.????.
 
saludos kiko


Marcelo Diaz Cortez <mdc_marcelo@...> escribió:
Kikote

No no en mangleada por el  extern "C" {,claro que
si esta definida __cplusplus.
El _fastcall es la convencion de pasaje de
parametros,
lo que me parece sin tener muy claro que te pasa es
ver en que convenion de parametros estas usando desde
tu smalltalk ,y poner la misma en el genesis
probablemente mandando un parametro al compiler , tal
vez el makefile acepte algun parametro para esto ,
pero defiitivamente tienen que tener la misma
convecion de pasaje de parametros , No creo que esto
varie entre versiones del Genesis , genesis el codigo
en este punto es portable la definicion de pasajes de
parametros es para el compilador/linkerador mas para
este ultimo.
saludos
  MDC


--- kikote gregoris <kikogregoris@...>
escribió:

> Hola ALe , marcelo
>   
>   OK, la funcion esta mangeada o lo que sea.
>   El tema es que debo estar usando una version
> distinta de genesis pues , no encuentro dentro de
> genesis.h una version en C de la funcion.
>   Esta es la convencion de genesis:
>   
>   #ifdef __cplusplus
> extern "C" {
> #endif
>   /******** The Genesis Calling Conventions
> ***********/
>   #define GENESISCC _fastcall
>   #if defined(BUILDGENESIS) &&
> defined(GENESISDLLVERSION)
>   #define GENESISAPI _declspec(dllexport)
> #else
>   #if defined(GENESISDLLVERSION)
>     #define GENESISAPI _declspec(dllimport)
>   #else
>     #define GENESISAPI
>   #endif
> #endif
>   
>   
>   Luego todas las funciones de Camera estan de esta
> manera:
>   
>   GENESISAPI geCamera   *GENESISCC
> geCamera_Create(geFloat Fov, const geRect *Rect);
>   
>   Donde GENESISCC  es la famosa _fastcall.
>   
>   No se o estoy usando una versión distinta de
> genesis o ???.
>   
>   No creo estar usando una versión distinta ya que
> es la misma que ALe usa para VS.
>   O sera un problema de MT de como ve las funciones
> ???
>   
>   Alguna idea ????.
>   
>   saludos kiko
>   
>   Si quieren hacer una prueba tonta, solo vasta con
> ir a la opcion del menu Tools\image properties y en
> la pestaña linkage agregar la DLL y una ves cargada
> hacer doble clik sobre la misma y ver como muestra
> las funciones.
>   No es obligacion que lo hagan, solo si tienen
> tiempo y ganas.
>  
>
> ejandro F. Reimondo" <aleReimondo@...>
> escribió:
>  
> >   @geCamera_Create@8.
>
> Creo que esta funcion no es de la interfaz C, sino
> de la de C++;
> pues el nombre está "mangleado".
>
> Usá la versión C de la función... segun pienso estas
> "funciones C++"
> están expuestas para poner alegres a las
> aplicaciones que
> interactúan via Cpuspus; que no debería ser
> necesario
> de usar en Smalltalk, ya que haría mas fragil aún tu
> sistema.
>
> suerte,
> Ale.
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Friday, June 02, 2006 4:52 PM
> Subject: Re: [objetos] API: _fastcall
>
>
> > Hola ALe
> >
> >   Estube mirando pero no hay nada de _fastcall
> digo que, solo define API
> ,C y otras .
> >   API por lo que se, usa stdcall y es la
> convencion que usan las APIs de
> win y C es cdcall que es la convencion C por
> defecto.
> >
> >   Lo que pasa es que las funciones que usan
> _fastcall en Genesis MT me las
> muestra con:
> >
> >   @geCamera_Create@8.
> >
> >   Cuando intento hacer la llama me dice que no se
> puede carcar la funcion.
> >
> >   Lo que me llama la atencion es que yo uso la
> convencion C que es la
> misma de VS, creo.
> >   Puedo hacer la llamada de otra forma mas
> complicadam, que es tomando la
> direccion de la funcion y con un par de metodos que
> implementa MT lo hace
> pero no creo que sea la manera de trabajar.
> >
> >   saludos kiko
> >
> > "Alejandro F. Reimondo"
> <aleReimondo@...> escribió:
> >   En VS tenes varias formas de definir un metodo
> api,
> > con un mecanismo incluso extensible.
> > Fijate en los implementors de #apiPrimitiveMap
> > Cada forma se corresponde con una manera de
> > realizar la llamada nativa; si usas una que no
> corresponde,
> > ocurre lo que siempre ocurre con el lenguaje
> > de máquina :-)
> > suerte,
> > Ale.
> >
> >
> >
> > ---- Original Message -----
> > From: "kikote gregoris"
> <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Tuesday, May 30, 2006 11:06 PM
> > Subject: [objetos] API: _fastcall
> >
> >
> > > Hola
> > >
> > >   Tengo problemas para invocar una funcion
> exportada como _fastcall
> desde
> > MT.
> > >
> > >   Desde VS no hay dramas ya que vasta con usar
> la palabra reservada API
> y
> > listo.
> > >   Lo que me llama la atencion es que en la ayuda
> no hace diferencias
> entre
> > las distintas convenciones, incluso no nombra a
> _fastcall la cual es
> > diferente de las demas por que los parametros son
> pasados en los registros
> y
> > no en la pila.
> > >
> > >   Por que en VS funcionan igual, sin hacer
> diferencias entre
> > convenciones.??
> > >   Todo esto esta derivado del uso de genesis3d.
> > >
> > >   saludos kiko
> > >
> > >
> > >
> > > ---------------------------------
> > >  1GB gratis, Antivirus y Antispam
> > >  Correo Yahoo!, el mejor correo web del mundo
> > >  Abrí tu cuenta aquí
> >
> >
> >
> > Para más información sobre la Asociación escribir
> a info@...
> >
> > Smalltalking es un espacio colaborativo creado
> para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus
> socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo,
> enviá un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de
> Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de
> amor.
> >  El contenido más divertido para tu celular está
> en
> > Yahoo! Móvil
>
>
>
> Para más información sobre la Asociación escribir a
> info@...
>
> Smalltalking es un espacio colaborativo creado para
> el estudio y desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus
> socios.
>
> Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
>
>
>
>  
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>    
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>    
>    Para cancelar tu suscripción a este grupo, enviá
> un mensaje a:
> smalltalking-unsubscribe@...
>    
>    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de Yahoo!.
>
>
>
>            
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar


Esa persona especial te espera en Yahoo! Encuentros
¡Dejate encontrar!
Descubrilo aquí

#14831 De: Marcelo Diaz Cortez <mdc_marcelo@...>
Fecha: Dom, 4 de Jun, 2006 2:29 pm
Asunto: Re: [objetos] API: _fastcall
mdc_marcelo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Kikote

  No no en mangleada por el extern ,-
.,mdva
.aca el
  --- kikote gregoris <kikogregoris@...>
escribió:

> Hola ALe , marcelo
>
>   OK, la funcion esta mangeada o lo que sea.
>   El tema es que debo estar usando una version
> distinta de genesis pues , no encuentro dentro de
> genesis.h una version en C de la funcion.
>   Esta es la convencion de genesis:
>
>   #ifdef __cplusplus
> extern "C" {
> #endif
>   /******** The Genesis Calling Conventions
> ***********/
>   #define GENESISCC _fastcall
>   #if defined(BUILDGENESIS) &&
> defined(GENESISDLLVERSION)
>   #define GENESISAPI _declspec(dllexport)
> #else
>   #if defined(GENESISDLLVERSION)
>     #define GENESISAPI _declspec(dllimport)
>   #else
>     #define GENESISAPI
>   #endif
> #endif
>
>
>   Luego todas las funciones de Camera estan de esta
> manera:
>
>   GENESISAPI geCamera   *GENESISCC
> geCamera_Create(geFloat Fov, const geRect *Rect);
>
>   Donde GENESISCC  es la famosa _fastcall.
>
>   No se o estoy usando una versión distinta de
> genesis o ???.
>
>   No creo estar usando una versión distinta ya que
> es la misma que ALe usa para VS.
>   O sera un problema de MT de como ve las funciones
> ???
>
>   Alguna idea ????.
>
>   saludos kiko
>
>   Si quieren hacer una prueba tonta, solo vasta con
> ir a la opcion del menu Tools\image properties y en
> la pestaña linkage agregar la DLL y una ves cargada
> hacer doble clik sobre la misma y ver como muestra
> las funciones.
>   No es obligacion que lo hagan, solo si tienen
> tiempo y ganas.
>
>
> ejandro F. Reimondo" <aleReimondo@...>
> escribió:
>
> >   @geCamera_Create@8.
>
> Creo que esta funcion no es de la interfaz C, sino
> de la de C++;
> pues el nombre está "mangleado".
>
> Usá la versión C de la función... segun pienso estas
> "funciones C++"
> están expuestas para poner alegres a las
> aplicaciones que
> interactúan via Cpuspus; que no debería ser
> necesario
> de usar en Smalltalk, ya que haría mas fragil aún tu
> sistema.
>
> suerte,
> Ale.
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Friday, June 02, 2006 4:52 PM
> Subject: Re: [objetos] API: _fastcall
>
>
> > Hola ALe
> >
> >   Estube mirando pero no hay nada de _fastcall
> digo que, solo define API
> ,C y otras .
> >   API por lo que se, usa stdcall y es la
> convencion que usan las APIs de
> win y C es cdcall que es la convencion C por
> defecto.
> >
> >   Lo que pasa es que las funciones que usan
> _fastcall en Genesis MT me las
> muestra con:
> >
> >   @geCamera_Create@8.
> >
> >   Cuando intento hacer la llama me dice que no se
> puede carcar la funcion.
> >
> >   Lo que me llama la atencion es que yo uso la
> convencion C que es la
> misma de VS, creo.
> >   Puedo hacer la llamada de otra forma mas
> complicadam, que es tomando la
> direccion de la funcion y con un par de metodos que
> implementa MT lo hace
> pero no creo que sea la manera de trabajar.
> >
> >   saludos kiko
> >
> > "Alejandro F. Reimondo"
> <aleReimondo@...> escribió:
> >   En VS tenes varias formas de definir un metodo
> api,
> > con un mecanismo incluso extensible.
> > Fijate en los implementors de #apiPrimitiveMap
> > Cada forma se corresponde con una manera de
> > realizar la llamada nativa; si usas una que no
> corresponde,
> > ocurre lo que siempre ocurre con el lenguaje
> > de máquina :-)
> > suerte,
> > Ale.
> >
> >
> >
> > ---- Original Message -----
> > From: "kikote gregoris"
> <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Tuesday, May 30, 2006 11:06 PM
> > Subject: [objetos] API: _fastcall
> >
> >
> > > Hola
> > >
> > >   Tengo problemas para invocar una funcion
> exportada como _fastcall
> desde
> > MT.
> > >
> > >   Desde VS no hay dramas ya que vasta con usar
> la palabra reservada API
> y
> > listo.
> > >   Lo que me llama la atencion es que en la ayuda
> no hace diferencias
> entre
> > las distintas convenciones, incluso no nombra a
> _fastcall la cual es
> > diferente de las demas por que los parametros son
> pasados en los registros
> y
> > no en la pila.
> > >
> > >   Por que en VS funcionan igual, sin hacer
> diferencias entre
> > convenciones.??
> > >   Todo esto esta derivado del uso de genesis3d.
> > >
> > >   saludos kiko
> > >
> > >
> > >
> > > ---------------------------------
> > >  1GB gratis, Antivirus y Antispam
> > >  Correo Yahoo!, el mejor correo web del mundo
> > >  Abrí tu cuenta aquí
> >
> >
> >
> > Para más información sobre la Asociación escribir
> a info@...
> >
> > Smalltalking es un espacio colaborativo creado
> para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus
> socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo,
> enviá un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de
> Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de
> amor.
> >  El contenido más divertido para tu celular está
> en
> > Yahoo! Móvil
>
>
>
> Para más información sobre la Asociación escribir a
> info@...
>
> Smalltalking es un espacio colaborativo creado para
> el estudio y desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus
> socios.
>
> Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá
> un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de Yahoo!.
>
>
>
>
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

#14830 De: Marcelo Diaz Cortez <mdc_marcelo@...>
Fecha: Dom, 4 de Jun, 2006 2:34 pm
Asunto: Re: [objetos] API: _fastcall
mdc_marcelo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Kikote

  No no en mangleada por el  extern "C" {,claro que
si esta definida __cplusplus.
  El _fastcall es la convencion de pasaje de
parametros,
lo que me parece sin tener muy claro que te pasa es
ver en que convenion de parametros estas usando desde
tu smalltalk ,y poner la misma en el genesis
probablemente mandando un parametro al compiler , tal
vez el makefile acepte algun parametro para esto ,
pero defiitivamente tienen que tener la misma
convecion de pasaje de parametros , No creo que esto
varie entre versiones del Genesis , genesis el codigo
en este punto es portable la definicion de pasajes de
parametros es para el compilador/linkerador mas para
este ultimo.
saludos
   MDC


  --- kikote gregoris <kikogregoris@...>
escribió:

> Hola ALe , marcelo
>
>   OK, la funcion esta mangeada o lo que sea.
>   El tema es que debo estar usando una version
> distinta de genesis pues , no encuentro dentro de
> genesis.h una version en C de la funcion.
>   Esta es la convencion de genesis:
>
>   #ifdef __cplusplus
> extern "C" {
> #endif
>   /******** The Genesis Calling Conventions
> ***********/
>   #define GENESISCC _fastcall
>   #if defined(BUILDGENESIS) &&
> defined(GENESISDLLVERSION)
>   #define GENESISAPI _declspec(dllexport)
> #else
>   #if defined(GENESISDLLVERSION)
>     #define GENESISAPI _declspec(dllimport)
>   #else
>     #define GENESISAPI
>   #endif
> #endif
>
>
>   Luego todas las funciones de Camera estan de esta
> manera:
>
>   GENESISAPI geCamera   *GENESISCC
> geCamera_Create(geFloat Fov, const geRect *Rect);
>
>   Donde GENESISCC  es la famosa _fastcall.
>
>   No se o estoy usando una versión distinta de
> genesis o ???.
>
>   No creo estar usando una versión distinta ya que
> es la misma que ALe usa para VS.
>   O sera un problema de MT de como ve las funciones
> ???
>
>   Alguna idea ????.
>
>   saludos kiko
>
>   Si quieren hacer una prueba tonta, solo vasta con
> ir a la opcion del menu Tools\image properties y en
> la pestaña linkage agregar la DLL y una ves cargada
> hacer doble clik sobre la misma y ver como muestra
> las funciones.
>   No es obligacion que lo hagan, solo si tienen
> tiempo y ganas.
>
>
> ejandro F. Reimondo" <aleReimondo@...>
> escribió:
>
> >   @geCamera_Create@8.
>
> Creo que esta funcion no es de la interfaz C, sino
> de la de C++;
> pues el nombre está "mangleado".
>
> Usá la versión C de la función... segun pienso estas
> "funciones C++"
> están expuestas para poner alegres a las
> aplicaciones que
> interactúan via Cpuspus; que no debería ser
> necesario
> de usar en Smalltalk, ya que haría mas fragil aún tu
> sistema.
>
> suerte,
> Ale.
>
>
> ----- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Friday, June 02, 2006 4:52 PM
> Subject: Re: [objetos] API: _fastcall
>
>
> > Hola ALe
> >
> >   Estube mirando pero no hay nada de _fastcall
> digo que, solo define API
> ,C y otras .
> >   API por lo que se, usa stdcall y es la
> convencion que usan las APIs de
> win y C es cdcall que es la convencion C por
> defecto.
> >
> >   Lo que pasa es que las funciones que usan
> _fastcall en Genesis MT me las
> muestra con:
> >
> >   @geCamera_Create@8.
> >
> >   Cuando intento hacer la llama me dice que no se
> puede carcar la funcion.
> >
> >   Lo que me llama la atencion es que yo uso la
> convencion C que es la
> misma de VS, creo.
> >   Puedo hacer la llamada de otra forma mas
> complicadam, que es tomando la
> direccion de la funcion y con un par de metodos que
> implementa MT lo hace
> pero no creo que sea la manera de trabajar.
> >
> >   saludos kiko
> >
> > "Alejandro F. Reimondo"
> <aleReimondo@...> escribió:
> >   En VS tenes varias formas de definir un metodo
> api,
> > con un mecanismo incluso extensible.
> > Fijate en los implementors de #apiPrimitiveMap
> > Cada forma se corresponde con una manera de
> > realizar la llamada nativa; si usas una que no
> corresponde,
> > ocurre lo que siempre ocurre con el lenguaje
> > de máquina :-)
> > suerte,
> > Ale.
> >
> >
> >
> > ---- Original Message -----
> > From: "kikote gregoris"
> <kikogregoris@...>
> > To: <smalltalking@...>
> > Sent: Tuesday, May 30, 2006 11:06 PM
> > Subject: [objetos] API: _fastcall
> >
> >
> > > Hola
> > >
> > >   Tengo problemas para invocar una funcion
> exportada como _fastcall
> desde
> > MT.
> > >
> > >   Desde VS no hay dramas ya que vasta con usar
> la palabra reservada API
> y
> > listo.
> > >   Lo que me llama la atencion es que en la ayuda
> no hace diferencias
> entre
> > las distintas convenciones, incluso no nombra a
> _fastcall la cual es
> > diferente de las demas por que los parametros son
> pasados en los registros
> y
> > no en la pila.
> > >
> > >   Por que en VS funcionan igual, sin hacer
> diferencias entre
> > convenciones.??
> > >   Todo esto esta derivado del uso de genesis3d.
> > >
> > >   saludos kiko
> > >
> > >
> > >
> > > ---------------------------------
> > >  1GB gratis, Antivirus y Antispam
> > >  Correo Yahoo!, el mejor correo web del mundo
> > >  Abrí tu cuenta aquí
> >
> >
> >
> > Para más información sobre la Asociación escribir
> a info@...
> >
> > Smalltalking es un espacio colaborativo creado
> para el estudio y
> desarrollo en Ambientes de Objetos.
> > Se sustenta gracias a la participación de sus
> socios.
> >
> > Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
> >
> >
> >
> >
> > ---------------------------------
> >   Enlaces de Yahoo! Grupos
> >
> >    Para visitar el sitio web del grupo, andá a:
> > http://ar.groups.yahoo.com/group/smalltalking/
> >
> >    Para cancelar tu suscripción a este grupo,
> enviá un mensaje a:
> > smalltalking-unsubscribe@...
> >
> >    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de
> Yahoo!.
> >
> >
> >
> >
> > ---------------------------------
> >  Horóscopos, Salud y belleza, Chistes, Consejos de
> amor.
> >  El contenido más divertido para tu celular está
> en
> > Yahoo! Móvil
>
>
>
> Para más información sobre la Asociación escribir a
> info@...
>
> Smalltalking es un espacio colaborativo creado para
> el estudio y desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus
> socios.
>
> Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá
> un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de Yahoo!.
>
>
>
>
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

#14829 De: kikote gregoris <kikogregoris@...>
Fecha: Sáb, 3 de Jun, 2006 2:43 pm
Asunto: Re: [objetos] API: _fastcall
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola
 
Ya esta, estaba usando una versión distinta a la de ALe.
No sabia que habían varias versiones de genesis3d.
Yo baje los fuentes y este corresponde a la version C++, tengo que ver donde esta la versión C para ver los fuentes.
 
saludos y disculpen las molestias.

kikote gregoris <kikogregoris@...> escribió:
Hola ALe , marcelo
 
OK, la funcion esta mangeada o lo que sea.
El tema es que debo estar usando una version distinta de genesis pues , no encuentro dentro de genesis.h una version en C de la funcion.
Esta es la convencion de genesis:
 
#ifdef __cplusplus
extern "C" {
#endif
/******** The Genesis Calling Conventions ***********/
#define GENESISCC _fastcall
#if defined(BUILDGENESIS) && defined(GENESISDLLVERSION)
  #define GENESISAPI _declspec(dllexport)
#else
  #if defined(GENESISDLLVERSION)
    #define GENESISAPI _declspec(dllimport)
  #else
    #define GENESISAPI
  #endif
#endif
 
 
Luego todas las funciones de Camera estan de esta manera:
 
GENESISAPI geCamera   *GENESISCC geCamera_Create(geFloat Fov, const geRect *Rect);
 
Donde GENESISCC  es la famosa _fastcall.
 
No se o estoy usando una versión distinta de genesis o ???.
 
No creo estar usando una versión distinta ya que es la misma que ALe usa para VS.
O sera un problema de MT de como ve las funciones ???
 
Alguna idea ????.
 
saludos kiko
 
Si quieren hacer una prueba tonta, solo vasta con ir a la opcion del menu Tools\image properties y en la pestaña linkage agregar la DLL y una ves cargada hacer doble clik sobre la misma y ver como muestra las funciones.
No es obligacion que lo hagan, solo si tienen tiempo y ganas.


ejandro F. Reimondo" <aleReimondo@...> escribió:

>   @geCamera_Create@8.

Creo que esta funcion no es de la interfaz C, sino de la de C++;
pues el nombre está "mangleado".

Usá la versión C de la función... segun pienso estas "funciones C++"
están expuestas para poner alegres a las aplicaciones que
interactúan via Cpuspus; que no debería ser necesario
de usar en Smalltalk, ya que haría mas fragil aún tu sistema.

suerte,
Ale.


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Friday, June 02, 2006 4:52 PM
Subject: Re: [objetos] API: _fastcall


> Hola ALe
>
>   Estube mirando pero no hay nada de _fastcall  digo que, solo define API
,C y otras .
>   API por lo que se, usa stdcall y es la convencion que usan las APIs de
win y C es cdcall que es la convencion C por defecto.
>
>   Lo que pasa es que las funciones que usan _fastcall en Genesis MT me las
muestra con:
>
>   @geCamera_Create@8.
>
>   Cuando intento hacer la llama me dice que no se puede carcar la funcion.
>
>   Lo que me llama la atencion es que yo uso la convencion C que es la
misma de VS, creo.
>   Puedo hacer la llamada de otra forma mas complicadam, que es tomando la
direccion de la funcion y con un par de metodos que implementa MT lo hace
pero no creo que sea la manera de trabajar.
>
>   saludos kiko
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   En VS tenes varias formas de definir un metodo api,
> con un mecanismo incluso extensible.
> Fijate en los implementors de #apiPrimitiveMap
> Cada forma se corresponde con una manera de
> realizar la llamada nativa; si usas una que no corresponde,
> ocurre lo que siempre ocurre con el lenguaje
> de máquina :-)
> suerte,
> Ale.
>
>
>
> ---- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 11:06 PM
> Subject: [objetos] API: _fastcall
>
>
> > Hola
> >
> >   Tengo problemas para invocar una funcion exportada como _fastcall
desde
> MT.
> >
> >   Desde VS no hay dramas ya que vasta con usar la palabra reservada API
y
> listo.
> >   Lo que me llama la atencion es que en la ayuda no hace diferencias
entre
> las distintas convenciones, incluso no nombra a _fastcall la cual es
> diferente de las demas por que los parametros son pasados en los registros
y
> no en la pila.
> >
> >   Por que en VS funcionan igual, sin hacer diferencias entre
> convenciones.??
> >   Todo esto esta derivado del uso de genesis3d.
> >
> >   saludos kiko
> >
> >
> >
> > ---------------------------------
> >  1GB gratis, Antivirus y Antispam
> >  Correo Yahoo!, el mejor correo web del mundo
> >  Abrí tu cuenta aquí
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil



1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí


1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí

#14828 De: kikote gregoris <kikogregoris@...>
Fecha: Sáb, 3 de Jun, 2006 2:24 pm
Asunto: Re: [objetos] API: _fastcall
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola ALe , marcelo
 
OK, la funcion esta mangeada o lo que sea.
El tema es que debo estar usando una version distinta de genesis pues , no encuentro dentro de genesis.h una version en C de la funcion.
Esta es la convencion de genesis:
 
#ifdef __cplusplus
extern "C" {
#endif
/******** The Genesis Calling Conventions ***********/
#define GENESISCC _fastcall
#if defined(BUILDGENESIS) && defined(GENESISDLLVERSION)
  #define GENESISAPI _declspec(dllexport)
#else
  #if defined(GENESISDLLVERSION)
    #define GENESISAPI _declspec(dllimport)
  #else
    #define GENESISAPI
  #endif
#endif
 
 
Luego todas las funciones de Camera estan de esta manera:
 
GENESISAPI geCamera   *GENESISCC geCamera_Create(geFloat Fov, const geRect *Rect);
 
Donde GENESISCC  es la famosa _fastcall.
 
No se o estoy usando una versión distinta de genesis o ???.
 
No creo estar usando una versión distinta ya que es la misma que ALe usa para VS.
O sera un problema de MT de como ve las funciones ???
 
Alguna idea ????.
 
saludos kiko
 
Si quieren hacer una prueba tonta, solo vasta con ir a la opcion del menu Tools\image properties y en la pestaña linkage agregar la DLL y una ves cargada hacer doble clik sobre la misma y ver como muestra las funciones.
No es obligacion que lo hagan, solo si tienen tiempo y ganas.


ejandro F. Reimondo" <aleReimondo@...> escribió:

>   @geCamera_Create@8.

Creo que esta funcion no es de la interfaz C, sino de la de C++;
pues el nombre está "mangleado".

Usá la versión C de la función... segun pienso estas "funciones C++"
están expuestas para poner alegres a las aplicaciones que
interactúan via Cpuspus; que no debería ser necesario
de usar en Smalltalk, ya que haría mas fragil aún tu sistema.

suerte,
Ale.


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Friday, June 02, 2006 4:52 PM
Subject: Re: [objetos] API: _fastcall


> Hola ALe
>
>   Estube mirando pero no hay nada de _fastcall  digo que, solo define API
,C y otras .
>   API por lo que se, usa stdcall y es la convencion que usan las APIs de
win y C es cdcall que es la convencion C por defecto.
>
>   Lo que pasa es que las funciones que usan _fastcall en Genesis MT me las
muestra con:
>
>   @geCamera_Create@8.
>
>   Cuando intento hacer la llama me dice que no se puede carcar la funcion.
>
>   Lo que me llama la atencion es que yo uso la convencion C que es la
misma de VS, creo.
>   Puedo hacer la llamada de otra forma mas complicadam, que es tomando la
direccion de la funcion y con un par de metodos que implementa MT lo hace
pero no creo que sea la manera de trabajar.
>
>   saludos kiko
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   En VS tenes varias formas de definir un metodo api,
> con un mecanismo incluso extensible.
> Fijate en los implementors de #apiPrimitiveMap
> Cada forma se corresponde con una manera de
> realizar la llamada nativa; si usas una que no corresponde,
> ocurre lo que siempre ocurre con el lenguaje
> de máquina :-)
> suerte,
> Ale.
>
>
>
> ---- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 11:06 PM
> Subject: [objetos] API: _fastcall
>
>
> > Hola
> >
> >   Tengo problemas para invocar una funcion exportada como _fastcall
desde
> MT.
> >
> >   Desde VS no hay dramas ya que vasta con usar la palabra reservada API
y
> listo.
> >   Lo que me llama la atencion es que en la ayuda no hace diferencias
entre
> las distintas convenciones, incluso no nombra a _fastcall la cual es
> diferente de las demas por que los parametros son pasados en los registros
y
> no en la pila.
> >
> >   Por que en VS funcionan igual, sin hacer diferencias entre
> convenciones.??
> >   Todo esto esta derivado del uso de genesis3d.
> >
> >   saludos kiko
> >
> >
> >
> > ---------------------------------
> >  1GB gratis, Antivirus y Antispam
> >  Correo Yahoo!, el mejor correo web del mundo
> >  Abrí tu cuenta aquí
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil



1GB gratis, Antivirus y Antispam
Correo Yahoo!, el mejor correo web del mundo
Abrí tu cuenta aquí

#14827 De: Marcelo Diaz Cortez <mdc_marcelo@...>
Fecha: Vie, 2 de Jun, 2006 8:19 pm
Asunto: Re: [objetos] API: _fastcall
mdc_marcelo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente

  Kiko parece que tenes problemas de mangling  lo que
pasa es qe el compilador maneja el nombre de las
funciones y no te deja el nombre conqe vos quisiera
escribiste el api
tenes que p
oner
extern "C"
para indicarle al compiler que desabilite el mangling

espero te sirva

  MDC

pd: googlea c++ mangling para mas data

  --- kikote gregoris <kikogregoris@...>
escribió:

> Hola ALe
>
>   Estube mirando pero no hay nada de _fastcall  digo
> que, solo define API ,C y otras .
>   API por lo que se, usa stdcall y es la convencion
> que usan las APIs de win y C es cdcall que es la
> convencion C por defecto.
>
>   Lo que pasa es que las funciones que usan
> _fastcall en Genesis MT me las muestra con:
>
>   @geCamera_Create@8.
>
>   Cuando intento hacer la llama me dice que no se
> puede carcar la funcion.
>
>   Lo que me llama la atencion es que yo uso la
> convencion C que es la misma de VS, creo.
>   Puedo hacer la llamada de otra forma mas
> complicadam, que es tomando la direccion de la
> funcion y con un par de metodos que implementa MT lo
> hace pero no creo que sea la manera de trabajar.
>
>   saludos kiko
>
> "Alejandro F. Reimondo"
> <aleReimondo@...> escribió:
>   En VS tenes varias formas de definir un metodo
> api,
> con un mecanismo incluso extensible.
> Fijate en los implementors de #apiPrimitiveMap
> Cada forma se corresponde con una manera de
> realizar la llamada nativa; si usas una que no
> corresponde,
> ocurre lo que siempre ocurre con el lenguaje
> de máquina :-)
> suerte,
> Ale.
>
>
>
> ---- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 11:06 PM
> Subject: [objetos] API: _fastcall
>
>
> > Hola
> >
> >   Tengo problemas para invocar una funcion
> exportada como _fastcall desde
> MT.
> >
> >   Desde VS no hay dramas ya que vasta con usar la
> palabra reservada API y
> listo.
> >   Lo que me llama la atencion es que en la ayuda
> no hace diferencias entre
> las distintas convenciones, incluso no nombra a
> _fastcall la cual es
> diferente de las demas por que los parametros son
> pasados en los registros y
> no en la pila.
> >
> >   Por que en VS funcionan igual, sin hacer
> diferencias entre
> convenciones.??
> >   Todo esto esta derivado del uso de genesis3d.
> >
> >   saludos kiko
> >
> >
> >
> > ---------------------------------
> >  1GB gratis, Antivirus y Antispam
> >  Correo Yahoo!, el mejor correo web del mundo
> >  Abrí tu cuenta aquí
>
>
>
> Para más información sobre la Asociación escribir a
> info@...
>
> Smalltalking es un espacio colaborativo creado para
> el estudio y desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus
> socios.
>
> Las reglas de etiqueta sobre la lista están en
> http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá
> un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las
> Condiciones del servicio de Yahoo!.
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de
> amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil


__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar

#14826 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Vie, 2 de Jun, 2006 8:30 pm
Asunto: Re: [objetos] API: _fastcall
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
>   @geCamera_Create@8.

Creo que esta funcion no es de la interfaz C, sino de la de C++;
  pues el nombre está "mangleado".

Usá la versión C de la función... segun pienso estas "funciones C++"
  están expuestas para poner alegres a las aplicaciones que
  interactúan via Cpuspus; que no debería ser necesario
  de usar en Smalltalk, ya que haría mas fragil aún tu sistema.

suerte,
Ale.


----- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Friday, June 02, 2006 4:52 PM
Subject: Re: [objetos] API: _fastcall


> Hola ALe
>
>   Estube mirando pero no hay nada de _fastcall  digo que, solo define API
,C y otras .
>   API por lo que se, usa stdcall y es la convencion que usan las APIs de
win y C es cdcall que es la convencion C por defecto.
>
>   Lo que pasa es que las funciones que usan _fastcall en Genesis MT me las
muestra con:
>
>   @geCamera_Create@8.
>
>   Cuando intento hacer la llama me dice que no se puede carcar la funcion.
>
>   Lo que me llama la atencion es que yo uso la convencion C que es la
misma de VS, creo.
>   Puedo hacer la llamada de otra forma mas complicadam, que es tomando la
direccion de la funcion y con un par de metodos que implementa MT lo hace
pero no creo que sea la manera de trabajar.
>
>   saludos kiko
>
> "Alejandro F. Reimondo" <aleReimondo@...> escribió:
>   En VS tenes varias formas de definir un metodo api,
> con un mecanismo incluso extensible.
> Fijate en los implementors de #apiPrimitiveMap
> Cada forma se corresponde con una manera de
> realizar la llamada nativa; si usas una que no corresponde,
> ocurre lo que siempre ocurre con el lenguaje
> de máquina :-)
> suerte,
> Ale.
>
>
>
> ---- Original Message -----
> From: "kikote gregoris" <kikogregoris@...>
> To: <smalltalking@...>
> Sent: Tuesday, May 30, 2006 11:06 PM
> Subject: [objetos] API: _fastcall
>
>
> > Hola
> >
> >   Tengo problemas para invocar una funcion exportada como _fastcall
desde
> MT.
> >
> >   Desde VS no hay dramas ya que vasta con usar la palabra reservada API
y
> listo.
> >   Lo que me llama la atencion es que en la ayuda no hace diferencias
entre
> las distintas convenciones, incluso no nombra a _fastcall la cual es
> diferente de las demas por que los parametros son pasados en los registros
y
> no en la pila.
> >
> >   Por que en VS funcionan igual, sin hacer diferencias entre
> convenciones.??
> >   Todo esto esta derivado del uso de genesis3d.
> >
> >   saludos kiko
> >
> >
> >
> > ---------------------------------
> >  1GB gratis, Antivirus y Antispam
> >  Correo Yahoo!, el mejor correo web del mundo
> >  Abrí tu cuenta aquí
>
>
>
> Para más información sobre la Asociación escribir a info@...
>
> Smalltalking es un espacio colaborativo creado para el estudio y
desarrollo en Ambientes de Objetos.
> Se sustenta gracias a la participación de sus socios.
>
> Las reglas de etiqueta sobre la lista están en
http://www.smalltalking.net/join/netiquete.htm
>
>
>
>
> ---------------------------------
>   Enlaces de Yahoo! Grupos
>
>    Para visitar el sitio web del grupo, andá a:
> http://ar.groups.yahoo.com/group/smalltalking/
>
>    Para cancelar tu suscripción a este grupo, enviá un mensaje a:
> smalltalking-unsubscribe@...
>
>    El uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de
Yahoo!.
>
>
>
>
> ---------------------------------
>  Horóscopos, Salud y belleza, Chistes, Consejos de amor.
>  El contenido más divertido para tu celular está en
> Yahoo! Móvil

#14825 De: kikote gregoris <kikogregoris@...>
Fecha: Vie, 2 de Jun, 2006 7:52 pm
Asunto: Re: [objetos] API: _fastcall
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola ALe
 
Estube mirando pero no hay nada de _fastcall  digo que, solo define API ,C y otras .
API por lo que se, usa stdcall y es la convencion que usan las APIs de win y C es cdcall que es la convencion C por defecto.
 
Lo que pasa es que las funciones que usan _fastcall en Genesis MT me las muestra con:
 
@geCamera_Create@8.
 
Cuando intento hacer la llama me dice que no se puede carcar la funcion.
 
Lo que me llama la atencion es que yo uso la convencion C que es la misma de VS, creo.
Puedo hacer la llamada de otra forma mas complicadam, que es tomando la direccion de la funcion y con un par de metodos que implementa MT lo hace pero no creo que sea la manera de trabajar.
 
saludos kiko

"Alejandro F. Reimondo" <aleReimondo@...> escribió:
En VS tenes varias formas de definir un metodo api,
con un mecanismo incluso extensible.
Fijate en los implementors de #apiPrimitiveMap
Cada forma se corresponde con una manera de
realizar la llamada nativa; si usas una que no corresponde,
ocurre lo que siempre ocurre con el lenguaje
de máquina :-)
suerte,
Ale.



---- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Tuesday, May 30, 2006 11:06 PM
Subject: [objetos] API: _fastcall


> Hola
>
>   Tengo problemas para invocar una funcion exportada como _fastcall desde
MT.
>
>   Desde VS no hay dramas ya que vasta con usar la palabra reservada API y
listo.
>   Lo que me llama la atencion es que en la ayuda no hace diferencias entre
las distintas convenciones, incluso no nombra a _fastcall la cual es
diferente de las demas por que los parametros son pasados en los registros y
no en la pila.
>
>   Por que en VS funcionan igual, sin hacer diferencias entre
convenciones.??
>   Todo esto esta derivado del uso de genesis3d.
>
>   saludos kiko
>
>
>
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí



Horóscopos, Salud y belleza, Chistes, Consejos de amor.
El contenido más divertido para tu celular está en
Yahoo! Móvil

#14824 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mié, 31 de May, 2006 2:52 pm
Asunto: Re: [objetos] API: _fastcall
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
En VS tenes varias formas de definir un metodo api,
  con un mecanismo incluso extensible.
Fijate en los implementors de #apiPrimitiveMap
Cada forma se corresponde con una manera de
  realizar la llamada nativa; si usas una que no corresponde,
  ocurre lo que siempre ocurre con el lenguaje
  de máquina :-)
suerte,
Ale.



---- Original Message -----
From: "kikote gregoris" <kikogregoris@...>
To: <smalltalking@...>
Sent: Tuesday, May 30, 2006 11:06 PM
Subject: [objetos] API: _fastcall


> Hola
>
>   Tengo problemas para invocar una funcion exportada como _fastcall desde
MT.
>
>   Desde VS no hay dramas ya que vasta con usar la palabra reservada API y
listo.
>   Lo que me llama la atencion es que en la ayuda no hace diferencias entre
las distintas convenciones, incluso no nombra a _fastcall la cual es
diferente de las demas por que los parametros son pasados en los registros y
no en la pila.
>
>   Por que en VS funcionan igual, sin hacer diferencias entre
convenciones.??
>   Todo esto esta derivado del uso de genesis3d.
>
>   saludos kiko
>
>
>
> ---------------------------------
>  1GB gratis, Antivirus y Antispam
>  Correo Yahoo!, el mejor correo web del mundo
>  Abrí tu cuenta aquí

Mensajes 14824 - 14853 de 17198   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
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