Skip to content

Commit

Permalink
Merge branch 'refs/heads/jlmaster'
Browse files Browse the repository at this point in the history
  • Loading branch information
HarlanH committed Dec 10, 2012
2 parents a8db0bd + 5c61fc6 commit dd410cb
Show file tree
Hide file tree
Showing 601 changed files with 21,090 additions and 51,960 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
@@ -1,3 +1,6 @@
[submodule "deps/libuv"]
path = deps/libuv
url = git://github.com/JuliaLang/libuv.git
[submodule "deps/openlibm"]
path = deps/openlibm
url = git://github.com/JuliaLang/openlibm.git
22 changes: 22 additions & 0 deletions .mailmap
Expand Up @@ -64,3 +64,25 @@ Harlan Harris <harlan@harris.name> <harlan@harris.name>
Harlan Harris <harlan@harris.name> <harlan.harris@kaplan.com>

Douglas Bates <dmbates@gmail.com> <dmbates@gmail.com>

Andreas Noack Jensen <andreasnoackjensen@gmail.com> <andreasnoackjensen@gmail.com>
Andreas Noack Jensen <andreasnoackjensen@gmail.com> <andreas@Andreass-MacBook-Pro.local>

Westley Argentum Hennigh <WestleyArgentum@gmail.com> <WestleyArgentum@gmail.com>
Westley Argentum Hennigh <WestleyArgentum@gmail.com> <whennigh@forio.com>

George V. Neville-Neil <gnn@freebsd.org> <gnn@freebsd.org>
George V. Neville-Neil <gnn@freebsd.org> <gvnn3>

Alessandro Andrioni Silva <alessandroandrioni@gmail.com> <alessandroandrioni@gmail.com>
Alessandro Andrioni Silva <alessandroandrioni@gmail.com> <jakedust@gmail.com>

Toivo Henningsson <toivo.h.h@gmail.com> <toivo.h.h@gmail.com>
Toivo Henningsson <toivo.h.h@gmail.com> <toivo@control.lth.se>

Adam Savitzky <adam.savitzky@gmail.com> <adam.savitzky@gmail.com>
Adam Savitzky <adam.savitzky@gmail.com> <asavitzky@forio.com>

David Slate <dslate@speakeasy.net> <dslate@speakeasy.net>

Francois Pepin <fpepin@gmail.com> <fpepin@gmail.com>
19 changes: 19 additions & 0 deletions .travis.yml
@@ -0,0 +1,19 @@
language: cpp
compiler:
- clang
- gcc
notifications:
email: false
before_install:
- BUILDOPTS="LLVM_CONFIG=llvm-config-3.1 USE_QUIET=0"; for lib in LLVM ZLIB SUITESPARSE ARPACK BLAS FFTW LAPACK LIGHTTPD GMP PCRE LIBUNWIND READLINE GLPK; do export BUILDOPTS="$BUILDOPTS USE_SYSTEM_$lib=1"; done
- sudo apt-get update -qq -y
- sudo apt-get install zlib1g-dev
- sudo add-apt-repository ppa:staticfloat/julia-deps -y
- sudo apt-get update -qq -y
- sudo apt-get install gfortran llvm-3.1-dev libsuitesparse-dev libncurses5-dev libopenblas-dev libarpack2-dev libfftw3-dev libpcre3-dev libglpk-dev lighttpd libgmp-dev libunwind7-dev libreadline-dev -y
script: make $BUILDOPTS PREFIX=/tmp/julia install
after_script:
- cd .. && mv julia julia2
- cd /tmp/julia/share/julia/test && /tmp/julia/bin/julia runtests.jl all
- cd - && mv julia2 julia
- echo "Ready for packaging..."
49 changes: 49 additions & 0 deletions CONTRIBUTING.md
@@ -0,0 +1,49 @@
Hi! Thanks for checking out Julia. If you have questions or problems, the [Julia dev list](https://groups.google.com/forum/?fromgroups#!forum/julia-dev) is a good place to post them, but you should check out the [online Julia docs](http://docs.julialang.org/en/latest/) first. If you have changes you'd like to contribute, you'll need a [free GitHub account](https://github.com/signup/free). (If you're reading this on GitHub, you probably already have one.) You'll also want a working copy of Julia, built from source (you can still contribute with a binary install, but it's harder and not really recommended). In list form, here's what to do to become a contributor:

* Join the [dev list](https://groups.google.com/forum/?fromgroups#!forum/julia-dev).

* Create a [GitHub account](https://github.com/signup/free).

* [Fork Julia](https://github.com/JuliaLang/julia/fork_select).

* Build the software and libraries (the first time takes a while, but it's fast after that). Detailed build instructions are in the [README](https://github.com/JuliaLang/julia/tree/master/README.md). Julia depends on several external packages; most are automatically downloaded and installed, but are less frequently updated than Julia itself.

* Keep Julia current. Julia is a fast-moving target, and many details of the language are still settling out. Keep your repository up-to-date and rebase your work in progress frequently.

* Relax and have fun.

## Submitting your contributions

Julia now has a [package manager](https://github.com/JuliaLang/METADATA.jl). Most developers writing julia libraries are encouraged to provide them as a julia package. In case you are contributing to the core functionality or the base libraries, the process is as follows.

The Julia team uses [GitHub issues](https://github.com/JuliaLang/julia/issues) to track and discuss problems, feature requests, and pull requests.

You can make pull requests for incomplete features to get code review. The convention is to prefix the pull request title with "WIP:" or "RFC:" as appropriate to indicate that the work is incomplete, so that it is not accidentally merged.

Before submitting, make sure that all tests pass by running `make testall`. Add your own tests for the new functionality in `test/`. If your contribution includes changes to Makefiles or external dependencies, make sure you can build Julia from a clean tree using `git clean -fdx` or equivalent (be careful – this command will delete any files lying around that aren't checked into git). Make sure that [Travis](http://www.travis-ci.org) greenlights the pull request with a `Good to merge` message.

*By contributing code to Julia, you are agreeing to release it under the [MIT License](https://github.com/JuliaLang/julia/tree/master/LICENSE.md).*

## Getting help

While getting familiar with Julia, remember to check out [the docs](http://docs.julialang.org/en/latest/), keeping in mind that they are [searchable](http://docs.julialang.org/en/latest/search/). (If you use a script blocker then you'll have to unblock that page.) The [source code](https://github.com/JuliaLang/julia) is an excellent source of examples (and it's mostly pretty approachable). If you're still stumped, post something on [the dev list](https://groups.google.com/forum/?fromgroups#!forum/julia-dev), but you may want to search the archives first to see if there's already been a discussion about what you're stuck on.

## Resources

* Julia
- **Homepage:** <http://julialang.org>
- **Mailing lists:** <http://julialang.org/mailing_lists>
- **IRC:** <http://webchat.freenode.net/?channels=julia>
- **Source code:** <https://github.com/JuliaLang/julia>
- **Git clone URL:** <git://github.com/JuliaLang/julia.git>
- **Documentation:** <http://julialang.org/manual/>
* Design of Julia
- [Julia: A Fast Dynamic Language for Technical Computing](http://julialang.org/images/julia-dynamic-2012-tr.pdf)
* Working with Types
- [Some Type Patterns](https://github.com/JuliaLang/julia/wiki/Code-Patterns)
- [The Type Hierarchy](https://github.com/JuliaLang/julia/wiki/Types-Hierarchy)
* Using GitHub
- [Using Julia with GitHub (video)](http://www.youtube.com/watch?v=wnFYV3ZKtOg&feature=youtu.be)
- [Using Julia on GitHub (notes for video)](https://gist.github.com/2712118#file_julia_git_pull_request.md)
- [General GitHub documentation](http://help.github.com/)
- [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
8 changes: 6 additions & 2 deletions LICENSE.md
Expand Up @@ -45,18 +45,22 @@ is licensed under the GNU General Public License Version 2:
External libraries, if used, include their own licenses:

- [AMOS](http://www.netlib.org/slatec/guide)
- [ARPACK](http://www.caam.rice.edu/software/ARPACK/RiceBSD.txt#LICENSE)
- [D3](https://github.com/mbostock/d3/raw/master/LICENSE)
- [FDLIBM](http://www.netlib.org/fdlibm/fdlibm.h)
- [DOUBLE-CONVERSION](https://code.google.com/p/double-conversion/)
- [DSFMT](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/LICENSE.txt)
- [OPENLIBM](https://github.com/JuliaLang/openlibm/blob/master/LICENSE.md)
- [FEMTOLISP](https://github.com/JeffBezanson/femtolisp)
- [FFTW](http://fftw.org/doc/License-and-Copyright.html)
- [GLPK](http://www.gnu.org/software/glpk)
- [GMP](http://gmplib.org/manual/Copying.html#Copying)
- [LAPACK](http://netlib.org/lapack/LICENSE.txt)
- [LIBUNWIND](http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=blob_plain;f=LICENSE;hb=master)
- [LLVM](http://llvm.org/releases/3.0/LICENSE.TXT)
- [MERSENNE TWISTER](http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/LICENSE.txt)
- [OPENBLAS](https://raw.github.com/xianyi/OpenBLAS/master/LICENSE)
- [PCRE](http://www.pcre.org/licence.txt)
- [READLINE](http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html)
- [RMATH](http://www.r-project.org/Licenses/)
- [SUITESPARSE](http://www.cise.ufl.edu/research/sparse/SuiteSparse/current/SuiteSparse/)
- [ZLIB](http://zlib.net/zlib_license.html)
105 changes: 62 additions & 43 deletions Make.inc
Expand Up @@ -4,12 +4,22 @@ JULIA_VERSION = $(shell cat $(JULIAHOME)/VERSION)
JULIA_COMMIT = $(shell git rev-parse --short=10 HEAD)

USR = $(JULIAHOME)/usr
USRLIB = $(USR)/lib
USRBIN = $(USR)/bin
USRINC = $(USR)/include
LLVMROOT = $(USR)
BUILD = $(USR)

# Directories where said libraries get installed to
JL_PRIVATE_LIBDIR = lib/julia
JL_LIBDIR = lib

# If we're on debian, default to arch-dependent library dirs
ifeq ($(USE_DEBIAN), 1)
MULTIARCH = $(shell gcc -print-multiarch)
JL_PRIVATE_LIBDIR = lib/$(MULTIARCH)/julia
JL_LIBDIR = lib/$(MULTIARCH)/
endif

OS = $(shell uname)
ARCH = $(shell uname -m)

Expand Down Expand Up @@ -38,8 +48,13 @@ USE_COPY_STACKS = 1
FC = gfortran
JFFLAGS = -O2 $(fPIC)

ifeq ($(CC), clang)
USEGCC = 0
USECLANG = 1
else
USEGCC = 1
USECLANG = 0
endif

ifeq ($(OS), Darwin)
OSVER = $(shell uname -r | cut -b 1-2)
Expand Down Expand Up @@ -79,7 +94,7 @@ endif
endif

# if not absolute, then relative to JULIA_HOME
JCFLAGS += '-DJL_SYSTEM_IMAGE_PATH="../lib/julia/sys.ji"'
JCFLAGS += '-DJL_SYSTEM_IMAGE_PATH="../$(JL_PRIVATE_LIBDIR)/sys.ji"'

# OPENBLAS build options
OPENBLAS_DYNAMIC_ARCH=0
Expand Down Expand Up @@ -126,7 +141,7 @@ endif
ifeq ($(USE_SYSTEM_LIBUNWIND), 1)
LIBUNWIND=-lunwind-generic -lunwind
else
LIBUNWIND=$(USRLIB)/libunwind-generic.a $(USRLIB)/libunwind.a
LIBUNWIND=$(USR)/lib/libunwind-generic.a $(USR)/lib/libunwind.a
endif

ifeq ($(USE_SYSTEM_LLVM), 1)
Expand All @@ -150,7 +165,7 @@ endif
ifeq ($(USE_SYSTEM_PCRE), 1)
PCRE_CONFIG = pcre-config
else
PCRE_CONFIG = $(USR)/bin/pcre-config
PCRE_CONFIG = $(USRBIN)/pcre-config
endif

ifeq ($(USE_SYSTEM_BLAS), 1)
Expand All @@ -162,14 +177,9 @@ LIBBLAS = -lblas
LIBBLASNAME = libblas
endif
else
ifeq ($(OS), WINNT)
LIBBLAS = $(USRLIB)/libopenblas-r0.2.2.$(SHLIB_EXT) #necessary due to some stupid Windows behavoir - will try yto fix soon
LIBBLASNAME = libopenblas-r0.2.2
else
LIBBLAS = -L$(USRLIB) -lopenblas
LIBBLAS = -L$(USR)/lib -lopenblas
LIBBLASNAME = libopenblas
endif
endif

ifeq ($(USE_SYSTEM_LAPACK), 1)
ifeq ($(OS), Darwin)
Expand All @@ -186,59 +196,67 @@ endif

# OS specific stuff

# must end with a / and have no trailing spaces
INSTALL_NAME_ID_DIR = @rpath/
# install_name_tool
ifeq ($(OS), Darwin)
# must end with a / and have no trailing spaces
INSTALL_NAME_ID_DIR = @rpath/
INSTALL_NAME_CMD = install_name_tool -id $(INSTALL_NAME_ID_DIR)
INSTALL_NAME_CHANGE_CMD = install_name_tool -change
else
INSTALL_NAME_ID_DIR =
INSTALL_NAME_CMD = true -ignore
INSTALL_NAME_CHANGE_CMD = true -ignore
endif

RPATH =
RPATH_ORIGIN =
# shared library runtime paths
ifeq ($(OS), WINNT)
RPATH =
RPATH_ORIGIN =
else ifeq ($(OS), Darwin)
RPATH = -Wl,-rpath,'@executable_path/../$(JL_PRIVATE_LIBDIR)' -Wl,-rpath,'@executable_path/../$(JL_LIBDIR)'
RPATH_ORIGIN =
else
RPATH = -Wl,-rpath,'$$ORIGIN/../$(JL_PRIVATE_LIBDIR)' -Wl,-rpath,'$$ORIGIN/../$(JL_LIBDIR)' -Wl,-z,origin
RPATH_ORIGIN = -Wl,-rpath,'$$ORIGIN' -Wl,-z,origin
endif

# file extensions
ifeq ($(OS), WINNT)
SHELL_EXT = bat
SHLIB_EXT = dll
SHELL_EXT = bat
else ifeq ($(OS), Darwin)
SHLIB_EXT = dylib
SHELL_EXT = sh
else
SHELL_EXT = sh
SHLIB_EXT = so
SHELL_EXT = sh
endif

# --whole-archive
ifeq ($(OS), Darwin)
WHOLE_ARCHIVE = -Xlinker -all_load
NO_WHOLE_ARCHIVE =
else
WHOLE_ARCHIVE = -Wl,--whole-archive
NO_WHOLE_ARCHIVE = -Wl,--no-whole-archive
endif

ifeq ($(OS), Linux)
INSTALL_NAME_CMD = true -ignore
INSTALL_NAME_CHANGE_CMD = true -ignore
SHLIB_EXT = so
RPATH = -Wl,-rpath,'$$ORIGIN/../lib'
RPATH_ORIGIN = -Wl,-rpath,'$$ORIGIN'
OSLIBS += -ldl -lrt -Wl,--export-dynamic -Wl,--version-script=$(JULIAHOME)/src/julia.expmap -Wl,--no-whole-archive $(LIBUNWIND)
WHOLE_ARCHIVE = -Wl,--whole-archive
NO_WHOLE_ARCHIVE = -Wl,--no-whole-archive
JLDFLAGS = -Wl,-Bdynamic
endif

ifeq ($(OS), FreeBSD)
INSTALL_NAME_CMD = true -ignore
INSTALL_NAME_CHANGE_CMD = true -ignore
SHLIB_EXT = so
RPATH = -Wl,-rpath,'$$ORIGIN/../lib' -Wl,-z,origin
RPATH_ORIGIN = -Wl,-rpath,'$$ORIGIN' -Wl,-z,origin
WHOLE_ARCHIVE = -Wl,--whole-archive
NO_WHOLE_ARCHIVE = -Wl,--no-whole-archive
JLDFLAGS = -Wl,-Bdynamic
OSLIBS += -lkvm -lrt -Wl,--export-dynamic -Wl,--version-script=$(JULIAHOME)/src/julia.expmap $(NO_WHOLE_ARCHIVE) $(LIBUNWIND)
endif

ifeq ($(OS), Darwin)
INSTALL_NAME_CMD = install_name_tool -id $(INSTALL_NAME_ID_DIR)
INSTALL_NAME_CHANGE_CMD = install_name_tool -change
RPATH = -Wl,-rpath,@executable_path/../lib
SHLIB_EXT = dylib
OSLIBS += -ldl -Wl,-w -framework ApplicationServices
WHOLE_ARCHIVE = -Xlinker -all_load
NO_WHOLE_ARCHIVE =
OSLIBS += -ldl -Wl,-w -framework CoreFoundation -framework CoreServices
JLDFLAGS =
endif

ifeq ($(OS), WINNT)
INSTALL_NAME_CMD = true -ignore
INSTALL_NAME_CHANGE_CMD = true -ignore
SHLIB_EXT = dll
WHOLE_ARCHIVE = -Wl,--whole-archive
NO_WHOLE_ARCHIVE = -Wl,--no-whole-archive
OSLIBS += -Wl,--export-all-symbols -Wl,--version-script=$(JULIAHOME)/src/julia.expmap -lpthread $(NO_WHOLE_ARCHIVE) -lPsapi -lkernel32 -lWs2_32 -lIphlpapi
endif

Expand Down Expand Up @@ -309,8 +327,9 @@ endif


# Colors for make

ifndef USE_QUIET
USE_QUIET = 1
endif
ifeq ($(USE_QUIET), 1)

CCCOLOR="\033[34m"
Expand Down

0 comments on commit dd410cb

Please sign in to comment.