¿El soporte the Threads en Perl es experimental?
Publicado por josevnz 13 Noviembre 2005 en General, Herramientas, Perl, Software Libre / Abierto. Etiquetas: No Tags. english • españolTodo comenzó al tratar de instalar un script en Perl con soporte para Threads en el sitio en donde hospedo mi Blog. Al correrlo usando cron, me encuentro que ela versión de Perl instalada no tenía soporte para Threads:
/home/kodeg2/bin/import_geo_data.pl line 5:
This Perl hasn’t been configured and built properly for the threads
module to work. (The ‘useithreads’ configuration option hasn’t been
used.)Having threads support requires all of Perl and all of the XS modules
in
the Perl installation to be rebuilt, it is not just a question of
adding
the threads module. (In other words, threaded and non-threaded Perls
are binary incompatible.)If you want to the use the threads module, please contact the people
who built your Perl.Cannot continue, aborting.
BEGIN failed–compilation aborted at
/usr/lib/perl5/5.8.6/i686-linux/threads.pm line 28.
Compilation failed in require at /home/kodeg2/bin/import_geo_data.pl
line 5.
BEGIN failed–compilation aborted at
/home/kodeg2/bin/import_geo_data.pl line 5.
Me imagine que no podria correrlo, pero lo que me llamó la atención fué la respuesta de el personal de soporte técnico:
Reply:
Hello,Unfortunately we do not support Perl with threads. Enabling threads would, as
the message states, require a complete recompile of the Perl installation.Because customers are able to install custom modules, including XS code, on
their accounts, re-compiling with threads support would require these modules
be re-compiled.Additionally, there are different forms of Perl thread support and they cannot
be used simultaneously. So if someone were to request 5.005 version support
and somone else requested the new threading support, we would be unable to
provide the requested support to one of the customers.Finally, because threads in Perl are relatively new, many scripts and exsting
modules, even those modules in the core installation, are not thread safe and
could potentially cause issues in the shared environment.In order to have perl threads, you would need a dedicated server where you
could recompile Perl with any additional options you desired.
–
Kind Regards,
En efecto, nada de lo que dice el muchacho es mentira… pero también está lleno de verdades a medias:
- El soporte de Threads en Perl no es tan nuevo: Existe desde 5.xxx. Además de que ellos tienen instalado Perl 5.8.0,
- Existe 3 modelos de threads. En la compañia en donde trabajo (un banco de inversiones) lo tienen instalado con el soporte completo. En particular ithreads es bastante estable
- Tengo que tener un servidor dedicado para tener threads: JAJAJAJA. Ellos puede instalar una copia local con soporte para threads. Lo que ocurrió es que compilaron más de 100 modulos con esa versión de Perl (sin soporte) y el cambio es costoso. La culpa fué de quien tomó la decisión de hacerlo
.
Sin embargo, y jugando al abogado de el diablo debo admitir que Perl haga “opcional” la compilación the threads. En una era en donde Java (y seguro Ruby) tienen eso de gratis, es arrechante ver como no se opuede programar como Dios manda.
En fin, al final me tocará hacer el script en Java o Python porque no creo que esta empresa de hospedaje soporte Ruby :D
Vaya, nunca hubiese pensado que el manejo de threads en Perl fuese “opcional” :-O
Y tienes razon en cuanto al soporte de threads en Java y Ruby :-)
BTW, es probable que en tu hosting si tengas Ruby, lo que a lo mejor no tienes es soporte para RubyOnRails
Yo tengo un servidor dedicado en Chile, y estoy aprendiendo a crear aplicaciones cliente servidor concurrentes. Necesito el módulo threads funcionando. El problema es que no sé compilar Perl denuevo jajaja…