From raul en dervishd.net Mon Mar 3 08:24:04 2008 From: raul en dervishd.net (=?ISO-8859-1?Q?Ra=FAl_N=FA=F1ez?= de Arenas Coronado) Date: Mon, 03 Mar 2008 17:24:04 +0100 Subject: [Madrid-pm] Perl 5.10 y el MRO "C3" Message-ID: <1204561444.28512.11.camel@DervishD> Muy buenas :) Ahora que veo el subject, espero que no haga saltar ningún filtro antispam XDDDDD En fin, al grano: he visto que a partir de 5.9.algo Perl soporta el Method Ordering Resolution "C3", que es el que usa también Python, Dylan, etc. He estado buscando un poco sin mucho éxito acerca de los posibles problemas que pueda acarrear esto de "use mro 'c3';" en futuros scripts de Perl. Reconozcámoslo, el soporte de objetos de Perl es "tricky" y he visto más de una vez jerarquías reveladas en la implementación. O para ser más preciso, he visto jerarquías en las que la implementación asumía un orden concreto en la búsqueda de métodos. Se me ha pasado por la cabeza que una forma de combatir el aburrimiento con Perl 5.10 va a ser coger algún módulo algo complejo de CPAN, cambiar el MRO a "c3" e intentar corregir los bugs chulos que aparezcan. ¿Sabéis si hay algo publicado sobre el tema? ¿Alguien ha probado ya el MRO nuevo? Ahora en serio: ¿alguien *ha necesitado cambiar el MRO*?. No es por pinchar, pero en cuestión de objetos Perl está pidiendo a gritos una ruptura de compatibilidad hacia atrás. Por ejemplo, haciendo que la sintáxis estándar para clases y objetos sea la que propone Conway pero no implementada como un core-module, sino en el propio lenguaje. Igual hay que esperar a Perl 6 (u 8) para eso... Gracias por adelantado :) Raúl "DervishD" Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From diego en kuperman.com.ar Mon Mar 3 10:49:14 2008 From: diego en kuperman.com.ar (Diego Kuperman) Date: Mon, 03 Mar 2008 19:49:14 +0100 Subject: [Madrid-pm] Perl 5.10 y el MRO "C3" In-Reply-To: <1204561444.28512.11.camel@DervishD> References: <1204561444.28512.11.camel@DervishD> Message-ID: <47CC482A.7050204@kuperman.com.ar> Hola!, Raúl Núñez de Arenas Coronado wrote: > Muy buenas :) > > Ahora que veo el subject, espero que no haga saltar ningún filtro > antispam XDDDDD > :-p > En fin, al grano: he visto que a partir de 5.9.algo Perl soporta el > Method Ordering Resolution "C3", que es el que usa también Python, > Dylan, etc. > Hombre, la verdad es que hace ya tiempo que se utiliza C3 en perl 5.8.x (quizas inferiores tambien) via Class::C3. Nosotros utilizamos mucho DBIx::Class que es uno de los primeros modulos que lo ha utilizado intensivamente. > He estado buscando un poco sin mucho éxito acerca de los posibles > problemas que pueda acarrear esto de "use mro 'c3';" en futuros scripts > de Perl. Reconozcámoslo, el soporte de objetos de Perl es "tricky" y he > visto más de una vez jerarquías reveladas en la implementación. O para > ser más preciso, he visto jerarquías en las que la implementación asumía > un orden concreto en la búsqueda de métodos. > Bueno, los objetos de perl tienen pocas reglas, y eso ha permitido, ademas de genialidades, muchas cosas raras. Entre ellas los revolucionarios inside-out objects o que exista una clase que implementa C3 :-p > Se me ha pasado por la cabeza que una forma de combatir el aburrimiento > con Perl 5.10 va a ser coger algún módulo algo complejo de CPAN, cambiar > el MRO a "c3" e intentar corregir los bugs chulos que aparezcan. > > ¿Sabéis si hay algo publicado sobre el tema? ¿Alguien ha probado ya el > MRO nuevo? Ahora en serio: ¿alguien *ha necesitado cambiar el MRO*?. > Leete la documentacion de Class::C3, creo que contesta estas preguntas: http://search.cpan.org/~blblack/Class-C3-0.19/lib/Class/C3.pm > No es por pinchar, pero en cuestión de objetos Perl está pidiendo a > gritos una ruptura de compatibilidad hacia atrás. Por ejemplo, haciendo > que la sintáxis estándar para clases y objetos sea la que propone Conway > pero no implementada como un core-module, sino en el propio lenguaje. > Igual hay que esperar a Perl 6 (u 8) para eso... > A mi no me gustaria que la rompa la verdad, dependo de cientos de modulos que esperan que no se rompa... Y como te decia antes, en general , sabiendo las pocas reglas, usos y costumbres es muy flexible (sobre todo aprovechandose de los varios modulos que añaden/cambian funcionalidad al modelo de objetos). Supongo que puedes completar la lectura mirado algo de Moose: http://search.cpan.org/dist/Moose/lib/Moose.pm Un abrazo, Diego From raul en dervishd.net Mon Mar 3 11:13:19 2008 From: raul en dervishd.net (=?ISO-8859-1?Q?Ra=FAl_N=FA=F1ez?= de Arenas Coronado) Date: Mon, 03 Mar 2008 20:13:19 +0100 Subject: [Madrid-pm] Perl 5.10 y el MRO "C3" In-Reply-To: <47CC482A.7050204@kuperman.com.ar> References: <1204561444.28512.11.camel@DervishD> <47CC482A.7050204@kuperman.com.ar> Message-ID: <1204571599.28512.60.camel@DervishD> Hola Diego :) On lun, 2008-03-03 at 19:49 +0100, Diego Kuperman wrote: > Raúl Núñez de Arenas Coronado wrote: > > En fin, al grano: he visto que a partir de 5.9.algo Perl soporta el > > Method Ordering Resolution "C3", que es el que usa también Python, > > Dylan, etc. > > > Hombre, la verdad es que hace ya tiempo que se utiliza C3 en perl 5.8.x > (quizas inferiores tambien) via Class::C3. Ya, esa fue la primera referencia que ví, pero me refería a la integración en el propio lenguaje. > > He estado buscando un poco sin mucho éxito acerca de los posibles > > problemas que pueda acarrear esto de "use mro 'c3';" en futuros scripts > > de Perl. Reconozcámoslo, el soporte de objetos de Perl es "tricky" y he > > visto más de una vez jerarquías reveladas en la implementación. O para > > ser más preciso, he visto jerarquías en las que la implementación asumía > > un orden concreto en la búsqueda de métodos. > > > Bueno, los objetos de perl tienen pocas reglas, y eso ha permitido, > ademas de genialidades, muchas cosas raras. Entre ellas los > revolucionarios inside-out objects o que exista una clase que implementa > C3 :-p Lo malo es que por cada genialidad (generalmente del Conway), veo cada burrada que... Lo bueno es lo que tú dices: da igual si el propio interprete hace algo de forma poco adecuada para una tarea, puedes cambiar casi cualquier cosa. Simplemente con los source filters ya se pueden hacer maravillas). El problema que le veo a que el C3 se implemente en una clase, especialmente porque esa clase no es un core module, es que al final algunos modulos usarán el MRO original, otros el C3 y luego están los que ni siquiera tienen interfaz de objetos, así que pegarlo todo junto deja unos códigos que dan mala fama al Perl XDDD En serio, creo que algo así debería estar en el propio interprete. En mi opinión (y sólo eso, una opinión) es peor que el C3 esté implementado fuera que el que haya un MRO que pueda hacer cosas raras cuando la jerarquía es enrevesada: total, cuando una jerarquía es así, simplemente inicializar los objetos ya requiere de hacer malabares, así que... > > No es por pinchar, pero en cuestión de objetos Perl está pidiendo a > > gritos una ruptura de compatibilidad hacia atrás. Por ejemplo, haciendo > > que la sintáxis estándar para clases y objetos sea la que propone Conway > > pero no implementada como un core-module, sino en el propio lenguaje. > > Igual hay que esperar a Perl 6 (u 8) para eso... > > > A mi no me gustaria que la rompa la verdad, dependo de cientos de > modulos que esperan que no se rompa... Te entiendo, no es práctica la ruptura, pero sigo pensando que vendría muy bien. La flexibilidad en el tema de la orientación a objetos en Perl no está mal, pero es como el resto de Perl: invita a escribir mal código. A mí no me importaría que se rompiera la compatibilidad, y no sé cómo se llevará el tema en Perl6 (porque yo, hasta que no lo vea publicado de forma oficial, prefiero no elucubrar ni opinar sobre lo que ahora mismo hay hecho). Creo que es buen momento para esa ruptura, pero soy consciente de la base de código que tiene Perl. Quizá una solución de compromiso sería añadir un nuevo soporte de clases, hecho en condiciones: por ejemplo, que todos los objetos sean inside-out, que las facilidades de los modulos de Conway estén en el core (¿no se ha hecho ya eso en la 5.10?), etc. Hasta ahora ese método ha funcionado para otras cosas. Pero vamos, que son idas de olla, ya se verá qué hacen los desarrolladores y qué pasa con Perl6. > Supongo que puedes completar la lectura mirado algo de Moose: > > http://search.cpan.org/dist/Moose/lib/Moose.pm De hecho, es a algo como esto a lo que me refería, a esto o a los módulos de Conway, pero meterlos en el core para invitar a que el nuevo código no reinvente ruedas y a que sea mejor. Lo dicho, el futuro dirá ;)) Raúl "DervishD" Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From pancho en pancho.name Sat Mar 15 00:49:18 2008 From: pancho en pancho.name (Pancho Horrillo) Date: Sat, 15 Mar 2008 08:49:18 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?b=FAsqueda_de_padre_adoptivo_para_mi_a?= =?iso-8859-1?q?ntiguo_PC_de_juegos_MS-DOS=AE?= Message-ID: <20080315074918.GA4313@pancho.name> Saludos, fellow mongers! Me pongo en contacto con vosotros para ofreceros la custodia de mi antiguo y entrañable PC de la época del DOS, por no poder atenderle como se merece. Se trata de un ordenador de sobremesa con el siguiente hardware: cpu: intel pentium 233 MMX m/b: gigabyte GA-586ATX mem: 64 MiB SDRAM vga: creative labs voodoo banshee hdd: western digital 6 GB (*), UltraDMA/33 cdrom: asus x34 audio: Gravis Ultrasound Extreme audio2: creative labs SoundBlaster SB32 psu: chieftec ~250 W cha: chieftec desktop, ventiladores enermax ball-bearing. keyb: cherry mecánico ergonómico G80-5000, con teclado numérico externo *) El disco duro tiene MS-DOG 6.22 en inglés, totalmente configurado, con scripts (archivos .bat? :-) para configurar ambas tarjetas de sonido. Además hay unos cuantos juegos «Vintage», tal como Ironman, Micromachines 2, duke nukem, quake (I y II), StarGunner, o el Pinball Extreme. Se entrega con CDs de drivers y manuales, así como CDs con algunos juegos (originales). Estuve jugando con él hace poco y parece que el disco duro está fallando, necesitando ser substituído. Con un poco de suerte se podrá hacer una imagen de él antes de que casque definitivamente. La gravis ultrasound le da un valor intrínseco grande, pudiendo ejecutar nativamente grandes clásicos como la demo "Second Reality", o el aforementioned "Pinball Extreme". Si estáis interesados, o conocéis a alguien que pueda estarlo, no dudéis en poneros en contacto conmigo. Nada me haría más feliz que alguien pudiese aprovecharlo. Últimamente me echa unas miradas el pobre... Si os interesa, tanto completo como alguna parte del mismo, decidmelo lo antes posible, porque si nadie me dice nada, lo llevaré al punto limpio la semana que viene. Por cierto, responde al nombre de 01010110. Un saludo a todos! pancho. -- pancho horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://mail.pm.org/pipermail/madrid-pm/attachments/20080315/bac9157c/attachment.bin