cc_staff
653
edits
(use of "source" tags caused MediaWiki to find Syntax-highlighting errors) |
No edit summary |
||
Line 4: | Line 4: | ||
{{Draft}} | {{Draft}} | ||
= Compiling Packages = | |||
Julia should be have properly when compiling packages: files will be added to <code>~/.julia</code>; but you may run into problems if the package depends on system-provided libraries. For instance, [https://github.com/JuliaIO/JLD.jl JLD] depends on a system-provided HDF5 library. On a desktop, Julia attempts to install such a dependency by spawning yum/apt operations with sudo. This doesn't work on ComputeCanada systems; instead, some extra information must be provided to allow the Pkg build system to find the HDF5 library. | Julia should be have properly when compiling packages: files will be added to <code>~/.julia</code>; but you may run into problems if the package depends on system-provided libraries. For instance, [https://github.com/JuliaIO/JLD.jl JLD] depends on a system-provided HDF5 library. On a desktop, Julia attempts to install such a dependency by spawning yum/apt operations with sudo. This doesn't work on ComputeCanada systems; instead, some extra information must be provided to allow the Pkg build system to find the HDF5 library. | ||
Line 17: | Line 17: | ||
This example happens to work on Graham without the <code>Libdl.DL_LOAD_PATH</code>, because Graham happens to have a copy of HDF5 installed system-wide from Centos. It fails on Cedar because Cedar's base image doesn't happen to include HDF5. And the real point is that we should probably want to use the ComputeCanada version anyway, which we load via "module", and works uniformly on all systems. (The HDF5 module provides the <code>HDF5_DIR</code> environment setting, which we use to show Pkg how to find and load via <code>Libdl</code>.) | This example happens to work on Graham without the <code>Libdl.DL_LOAD_PATH</code>, because Graham happens to have a copy of HDF5 installed system-wide from Centos. It fails on Cedar because Cedar's base image doesn't happen to include HDF5. And the real point is that we should probably want to use the ComputeCanada version anyway, which we load via "module", and works uniformly on all systems. (The HDF5 module provides the <code>HDF5_DIR</code> environment setting, which we use to show Pkg how to find and load via <code>Libdl</code>.) | ||
= Package file usage (and storage quotas) = | |||
In the example above, installing just the JLD package creates a <code>~/.julia</code> tree with 18673 files/directories and using 236M of space (4-5% of a standard user quota for /home). It's worth remembering that installing a lot of packages will consume a lot of space. | In the example above, installing just the JLD package creates a <code>~/.julia</code> tree with 18673 files/directories and using 236M of space (4-5% of a standard user quota for /home). It's worth remembering that installing a lot of packages will consume a lot of space. | ||
= Transitioning code from Julia 0.x to 1.x = | |||
In summer 2018 Julia released version 1.0, at which point they have stabilized the language API and removed deprecated (outdated) functionality. | In summer 2018 Julia released version 1.0, at which point they have stabilized the language API and removed deprecated (outdated) functionality. | ||
To help updating Julia-code for version 1.0, the developers have also released version 0.7.0 (which will soon be available as a [[Using_modules | module]] as well). | To help updating Julia-code for version 1.0, the developers have also released version 0.7.0 (which will soon be available as a [[Using_modules | module]] as well). | ||
Julia 0.7.0 contains all new functionality of 1.0 as well as the outdated functionalities from 0.x versions, which will give [https://en.wikipedia.org/wiki/Deprecation deprecation warnings] when used. | Julia 0.7.0 contains all new functionality of 1.0 as well as the outdated functionalities from 0.x versions, which will give [https://en.wikipedia.org/wiki/Deprecation deprecation warnings] when used. | ||
Code that runs in Julia 0.7 without warnings should be compatible Julia 1.0. | Code that runs in Julia 0.7 without warnings should be compatible Julia 1.0. |