Julia (Español)

From ArchWiki
Estado de la traducción: esta traducción de Julia fue revisada el 2019-01-01. Si existen cambios puede actualizarla o avisar al equipo de traducción.
Nota: https://julialang.org/ contiene una documentación magnífica y de código abierto. La información no específica a Arch debería aportarse allí.

Julia es un lenguaje de programación dinámico de alto nivel y alto rendimiento para computación numérica. Proporciona un sofisticado compilador, ejecución paralela distribuida, precisión numérica y una extensa librería de funciones matemáticas.

Instalación

Instale el paquete julia. Para aprender cómo se utiliza Julia, lea por favor la documentación previa.

IJulia

Si intenta instalar ijulia ejecutando Pkg.add("IJulia") y aparece la advertencia MbedTLS had build errors., puede que necesite instalar el paquete mbedtls.

Errores de compilación de paquetes

Arpack

La compilación del paquete Arpack puede generar un error como el que se muestra a continuación (se ha omitido el stacktrace):

julia> Pkg.build("Arpack")
  Building Arpack → `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`:
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(~/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!

Se ha presentado un problema.

Arpack empaqueta su propio libarpack.so que requiere que el DSO libopenblas64_.so.0 esté presente en el sistema:

$ ldd ~/.julia/packages/Arpack/UiiMc/deps/usr/lib/libarpack.so | grep 'not found'
        libopenblas64_.so.0 => not found

La parte UiiMc de la ruta puede ser diferente en su sistema. Tal y como se muestra, el DSO requerido no está presente en el sistema, lo que causa el error de compilación. Una solución para este problema es crear un enlace simbólico al archivo DSO proporcionado por el paquete openblas, es decir

# ln -s /usr/lib/libopenblas.so /usr/lib/libopenblas64_.so.0 

y luego recompilar el paquete Arpack en Julia. Sin embargo, no está claro si el DSO /usr/lib/libopenblas.so del paquete openblas puede funcionar de manera estable como reemplazo directo, dado que el sufijo 64 parece usarse para indicar una diferencia en la interfaz y el sufijo 64 indica una versión diferente en lugar de una diferencia en la arquitectura de destino.

Integración con editores

Vim

Resaltado de sintaxis y más

julia-vim

Linting

El complemento julialint combinado con el paquete Lint.jl proporciona linting.

Rendimiento

Es recomendable que use una implementación BLAS de multihilo, como openblas. Esto puede llevar a aceleraciones de 10-50x para ciertas operaciones matriciales.