Skip to content

Latest commit

 

History

History
121 lines (92 loc) · 6.52 KB

README.md

File metadata and controls

121 lines (92 loc) · 6.52 KB
               _
   _       _ _(_)_     |
  (_)     | (_) (_)    |   A fresh approach to technical computing
   _ _   _| |_  __ _   |
  | | | | | | |/ _` |  |           http://julialang.org
  | | |_| | | | (_| |  |       julia-math@googlegroups.com
 _/ |\__'_|_|_|\__'_|  |
|__/                   |

Julia is a high-level, high-performance dynamic language for numerical and scientific computing. It provides a sophisticated compiler, parallel execution, and numerical accuracy. Key features include multiple dispatch, optional typing, and excellent performance through type inference and just-in-time (JIT) compilation. The language is multi-paradigm, combining features of functional, object-oriented, and imperative styles. For a more in-depth discussion of the rationale and advantages of Julia over other systems, see the Introduction in the wiki, or browse all of the wiki documentation.

## Resources ## Required Build Tools & External Libraries
  • GNU make — building dependencies.
  • gcc, g++, gfortran — compiling and linking C, C++ and Fortran code.
  • curl — to automatically download external libraries:
    • LLVM — compiler infrastructure
    • fdlibm — a portable implementation of much of the system-dependent libm math library's functionality.
    • MT — a fast Mersenne Twister pseudorandom number generator library.
    • OpenBLAS — a fast, open, and maintained basic linear algebra subprograms (BLAS) library, based on Kazushige Goto's famous GotoBLAS.
    • LAPACK — library of linear algebra routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems.
    • ARPACK — a collection of subroutines designed to solve large, sparse eigenvalue problems.
    • FFTW — library for computing fast Fourier transforms very quickly and efficiently.
    • PCRE — Perl-compatible regular expressions library.
    • GNU readline — library allowing shell-like line editing in the terminal, with history and familiar key bindings.
## Supported Platforms
  • GNU/Linux: x86/64 (64-bit); x86 (32-bit).
  • Darwin/OS X: x86/64 (64-bit); x86 (32-bit) is untested but should work.
## Download & Compilation

First, acquire the source code either by cloning the git repository (requires git to be installed):

git clone git://github.com/JuliaLang/julia.git

or, if you don't have git installed, by using curl and tar to fetch and unpack the source:

mkdir julia && curl -Lk https://github.com/JuliaLang/julia/tarball/master | tar -zxf- -C julia --strip-components 1

TODO: check that this actually works once the repository is public.

Next, enter the julia/ directory and run make to build the julia executable. When compiled the first time, it will automatically download and build its external dependencies. This takes a while, but only has to be done once.

No installation is required; julia is currently run from the directory where it was built. You might, however, want to make a symbolic link for the executable, for example ln -s JULIA_PATH/julia ~/bin/julia. Please note that the build process will not work if any of the build directory's parent directories have spaces in their names (this is due to a limitation in GNU make).

Congratulations, if you've gotten this far, you are ready to try out Julia. You can read about getting started in the manual.

## Directories
attic/         old, now-unused code
contrib/       emacs and textmate support for julia
doc/           miscellaneous documentation and notes
external/      external dependencies
j/             source code for julia's standard library
lib/           shared libraries loaded by julia's standard libraries
src/           source for julia language core
test/          unit and function tests for julia itself
ui/            source for various front ends
## Emacs Setup

Add the following line to ~/.emacs

(require 'julia-mode "JULIA_PATH/contrib/julia-mode.el")

where JULIA_PATH is the location of the top-level julia directory.

## TextMate Setup

Copy (or symlink) the TextMate Julia bundle into the TextMate application support directory:

cp -r JULIA_PATH/contrib/Julia.tmbundle ~/Library/Application\ Support/TextMate/Bundles/

where JULIA_PATH is the location of the top-level julia directory. Now select from the menu in TextMate Bundles > Bundle Editor > Reload Bundles. Julia should appear as a file type and be automatically detected for files with the .j extension.

## License

Julia is licensed under the three clause "Modified BSD License", with the exception of certain components that link against GPL-licensed libraries (e.g. GNU readline). See LICENSE for the full terms of the license.