Necesito escribir un módulo XS para Perl. Tengo entendido que h2xs está prácticamente obsoleto en la actualidad, ¿cuál es el método preferido para iniciar un módulo XS hoy? Miré Module :: Starter, pero solo maneja módulos Perl puros.¿Cuál es la forma moderna de crear un módulo XS desde cero?
Respuesta
No, h2xs no está en desuso. Module :: Starter es ciertamente más conveniente si creas muchos módulos Perl puros, pero no hay razón para evitar h2xs. Sin embargo, recomendaría leer todo el documento antes de usarlo, para que sepa qué es lo que desea que haga o no haga.
Personalmente solo uso Module :: Starter y agrego el archivo .xs yo mismo. Depende de cuál sea tu objetivo: si estás haciendo un mapeo de uno a uno para una C api, entonces h2xs puede hacerte un montón de repeticiones, pero si estás haciendo una interfaz completamente nueva, o cuando estás ' Solo estoy haciendo cosas con Perl en sí (y no con alguna biblioteca externa), no agrega mucho, pero sí problemas en mi humilde opinión.
Bueno saber. Nunca le presté atención a la magia que ocurre en el archivo pm, pero parece que solo necesita agregar dos líneas para que necesite XSLoader; XSLoader :: load ('Pax :: PerlHash', $ VERSION); ¿Es correcto, y simplemente copia ppport.h desde otro módulo, o es innecesario? –
ppport.h es para la portabilidad de versiones anteriores de Perl. El tipo de cosas que hago usualmente lo hacen imposible (la mayoría de mis módulos XS requieren 5.8 de todos modos, uno incluso requiere 5.10), pero en su caso puede ser diferente. La forma correcta de generar ppport.h es usando Devel :: PPPort. –
También debe buscar en el uso Inline::C
Bueno, como estoy reescribiendo algo para no necesitar/usar Inline :: C, sería una tontería (sonreír). Inline :: C es ideal para el prototipado rápido, pero apesta para implementarlo en la producción (algunos usuarios no tienen directorios de inicio, por lo que los archivos de objeto terminan en/_Inline y otros problemas). –
Personalmente, cada vez que empezar a hacer un nuevo módulo sólo lo hago por cp
archivos ING y de edición de otro módulo de la mina que es similar a ella, y la edición según corresponda. Por supuesto, nada en ese enfoque dice que tiene que ser uno de los míos. Hay un montón de código en CPAN que puede tomar copias de e inspirarse en ...
- 1. ¿Cuál es el mejor módulo Perl que se puede usar para crear un .pdf desde cero?
- 2. Cuál es la forma correcta para extender un método de la clase padre en Python moderna
- 3. ¿Cuál es la forma más moderna de iniciar sesión en syslog con un manejador java.util.logging?
- 4. ¿La forma moderna de borrar contenido flotante?
- 5. Cómo crear un sonido desde cero C#
- 6. ¿Cuál es la forma de haskell para copiar un directorio?
- 7. ¿Cuál es la forma más fácil de crear un sitio web de reserva de citas?
- 8. Crear texto/editor de código desde cero
- 9. ¿cuál es la forma correcta de probar xs: decimal en XSL?
- 10. ¿Cómo crear un control rápido de WPF Datagrid desde cero?
- 11. ¿Cuál es la forma moderna de estructurar una "clase" en JavaScript?
- 12. ¿Cómo crear NSCollectionView programáticamente desde cero?
- 13. ¿Cuál es la forma más rápida de calcular la potencia grande de 2 módulo un número
- 14. ¿Cuál es el cero para la cadena?
- 15. ¿Cuál es la forma más eficiente de crear ListBuffer vacío?
- 16. ¿Cuál es la forma más eficiente de crear rutas en google maps desde archivos gps?
- 17. ¿Cuál es la forma más eficiente de crear un sistema de permisos?
- 18. ¿Cuál es la forma correcta de agregar un módulo de utilidad a una distribución de CPAN?
- 19. ¿Cómo crear un archivo DBF desde cero en C#?
- 20. ¿Cuál es la forma correcta de exponer un módulo requireJS al espacio de nombre global?
- 21. Python: ¿Cuál es la forma recomendada de establecer las configuraciones de un módulo cuando lo importa?
- 22. ¿Cuál es la forma más fácil de instalar un módulo Perl perdido?
- 23. ¿Qué herramientas pueden ayudar a construir un proyecto XS?
- 24. Crear módulo individual desde el pomo multimodular
- 25. ¿Cuál es la mejor forma de devolver varias etiquetas desde un Rails Helper?
- 26. ¿Cuál es la diferencia entre @ y @@ en un módulo?
- 27. ¿Cuál es la forma más sencilla de conectar un dispositivo a un iPad desde una aplicación?
- 28. ¿Cuál es la forma más fácil de restablecer ERRORLEVEL a cero?
- 29. ¿Cuál es la forma más eficiente de copiar de forma masiva a SQL Server desde Java?
- 30. Cuál es la mejor arquitectura moderna escalable para un sitio web de alto volumen (Java)
Lo usé hace años, solo pensé que había sido reemplazado. –
Solo ha sido reemplazado por personas que no usan XS (que es la mayoría de los autores). –