Giter Site home page Giter Site logo

gsl.jl's People

Contributors

alanedelman avatar andygreenwell avatar ararslan avatar dependabot[bot] avatar dilumaluthge avatar giordano avatar ivarne avatar jagot avatar jiahao avatar juliatagbot avatar lucifer1004 avatar ludvigak avatar lxvm avatar mvkma avatar pallharaldsson avatar ranjanan avatar ranocha avatar sethaxen avatar simonbyrne avatar spaette avatar staticfloat avatar stevengj avatar timholy avatar tkelman avatar viralbshah avatar yha avatar yuyichao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gsl.jl's Issues

GSL does not build on Windows7 64

I cannot add GSL under Windows7 64 bits.
This is the message I get after wiping out the .julia directory.

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.8 (2015-04-30 23:40 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-w64-mingw32

julia> Pkg.init()
INFO: Initializing package repository H:\.julia\v0.3
INFO: Cloning METADATA from git://github.com/JuliaLang/METADATA.jl

julia> Pkg.add("GSL")
INFO: Cloning cache of BinDeps from git://github.com/JuliaLang/BinDeps.jl.git
INFO: Cloning cache of Compat from git://github.com/JuliaLang/Compat.jl.git
INFO: Cloning cache of GSL from git://github.com/jiahao/GSL.jl.git
INFO: Cloning cache of SHA from git://github.com/staticfloat/SHA.jl.git
INFO: Cloning cache of URIParser from git://github.com/JuliaWeb/URIParser.jl.git
INFO: Installing BinDeps v0.3.12
INFO: Installing Compat v0.4.4
INFO: Installing GSL v0.1.2
INFO: Installing SHA v0.0.4
INFO: Installing URIParser v0.0.5
INFO: Building GSL
=====================================================[ ERROR: GSL ]=====================================================


WinRPM not found
while loading H:\.julia\v0.3\GSL\deps\build.jl, in expression starting on line 21

========================================================================================================================


====================================================[ BUILD ERRORS ]====================================================


WARNING: GSL had build errors.

 - packages with build errors remain installed in H:\.julia\v0.3
 - build the package(s) and all dependencies with `Pkg.build("GSL")`
 - build a single package by running its `deps/build.jl` script

========================================================================================================================

INFO: Package database updated

julia> Pkg.add("WinRPM")
INFO: Cloning cache of LibExpat from git://github.com/amitmurthy/LibExpat.jl.git
INFO: Cloning cache of WinRPM from git://github.com/JuliaLang/WinRPM.jl.git
INFO: Cloning cache of Zlib from git://github.com/dcjones/Zlib.jl.git
INFO: Installing LibExpat v0.0.8
INFO: Installing WinRPM v0.1.7
INFO: Installing Zlib v0.1.8
INFO: Building WinRPM
WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download
WARNING: skipping repodata/repomd.xml, not in cache -- call WinRPM.update() to download
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1//repodata/repomd.xml
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1//repodata/43d71ec7f3cb30
4bb266478e0b47535ba43a94c79eac6b7f8a2fa02d4125020f-primary.xml.gz
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1//repodata/repomd.xml
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1//repodata/6d143658b43c07
112ea05bd0d12c2c6316e82af871dd5442e2326fd36329a052-primary.xml.gz
INFO: Package database updated
INFO: METADATA might be out-of-date - you may not have the latest version of WinRPM
INFO: Use `Pkg.update()` to get the latest versions of your packages

julia> Pkg.update()
INFO: Updating METADATA...
INFO: Computing changes...
INFO: No packages to install, update or remove

julia> Pkg.add("GSL")
INFO: Nothing to be done

julia> Pkg.build("GSL")
INFO: Building GSL
INFO: Updating WinRPM package list
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_13.1//repodata/repomd.xml
INFO: Downloading http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_13.1//repodata/repomd.xml
INFO: Multiple package candidates found for mingw64-cross-pkg-config, picking newest.
WARNING: Multiple package candidates have the same version, picking one at random
WARNING: Package not found that provides libglib-2.0.so.0
WARNING: Package not found that provides libc.so.6(GLIBC_2.4)
WARNING: Package not found that provides pkg-config
WARNING: Package not found that provides rpm
WARNING: Package not found that provides /bin/sh
WARNING: Package not found that provides /bin/bash
INFO: Multiple package candidates found for mingw64-cross-breakpad-tools, picking newest.
WARNING: Multiple package candidates have the same version, picking one at random
WARNING: Package not found that provides libstdc++.so.6
WARNING: Package not found that provides libstdc++.so.6(GLIBCXX_3.4.9)
WARNING: Package not found that provides libstdc++.so.6(GLIBCXX_3.4)
WARNING: Package not found that provides libm.so.6(GLIBC_2.0)
WARNING: Package not found that provides libstdc++.so.6(GLIBCXX_3.4.15)
WARNING: Package not found that provides libm.so.6
WARNING: Package not found that provides libstdc++.so.6(GLIBCXX_3.4.11)
WARNING: Package not found that provides libstdc++.so.6(CXXABI_1.3)
WARNING: Package not found that provides libgcc_s.so.1(GCC_3.0)
WARNING: Package not found that provides libgcc_s.so.1
WARNING: Package not found that provides libstdc++.so.6(GLIBCXX_3.4.10)
INFO: Packages to install: mingw64-cross-breakpad-tools, filesystem, libgsl0, mingw64-cross-pkg-config, gsl
INFO: Downloading: mingw64-cross-breakpad-tools
INFO: Extracting: mingw64-cross-breakpad-tools
INFO: Downloading: filesystem
INFO: Extracting: filesystem
INFO: Downloading: libgsl0
INFO: Extracting: libgsl0
INFO: Downloading: mingw64-cross-pkg-config
INFO: Extracting: mingw64-cross-pkg-config
INFO: Downloading: gsl
INFO: Extracting: gsl
INFO: Complete
=====================================================[ ERROR: GSL ]=====================================================


Provider PackageManager failed to satisfy dependency libgsl
while loading H:\.julia\v0.3\GSL\deps\build.jl, in expression starting on line 29

========================================================================================================================


====================================================[ BUILD ERRORS ]====================================================


WARNING: GSL had build errors.

 - packages with build errors remain installed in H:\.julia\v0.3
 - build the package(s) and all dependencies with `Pkg.build("GSL")`
 - build a single package by running its `deps/build.jl` script

========================================================================================================================

Build error: MethodError: no method matching installed(::String)

┌ Error: Error building `GSL`: 
│ WARNING: Base.Pkg is deprecated, run `using Pkg` instead
│   likely near /Users/sheehanolver/.julia/packages/GSL/TcP5m/deps/build.jl:13
│ ┌ Warning: `is_apple` is deprecated, use `Sys.isapple` instead.
│ │   caller = top-level scope at none:0
│ └ @ Core none:0
│ ERROR: LoadError: MethodError: no method matching installed(::String)
│ Closest candidates are:
│   installed() at /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:261
│ Stacktrace:
│  [1] top-level scope at /Users/sheehanolver/.julia/packages/GSL/TcP5m/deps/build.jl:14
│  [2] include at ./boot.jl:317 [inlined]
│  [3] include_relative(::Module, ::String) at ./loading.jl:1038
│  [4] include(::Module, ::String) at ./sysimg.jl:29
│  [5] include(::String) at ./client.jl:398
│  [6] top-level scope at none:0
│ in expression starting at /Users/sheehanolver/.julia/packages/GSL/TcP5m/deps/build.jl:13
└ @ Pkg.Operations /U

remove use of `Ref{Void}` as a struct field type

I believe we need more changes of the kind made in #40. For example _35_3_Providing_the_function_to_solve.jl still has a use of Ref{Void} in a struct. This is only correct if you want the struct to contain exactly a pointer to the object nothing. @vtjnash am I right about that?

Problems arise when storing a Ptr{Void} to such a field, because Ptr{Void} is no-op convertible to Ref{Void}, so the field ends up pointing to a boxed pointer. This strikes me as a bug in the type safety of Ref.

missing integrand in QAWF routine?

Is the integrand missing in integration_qawf signature?

Other integration routines have the integrand as the first argument:

integration_cquad(f::Ref{gsl_function}, ...)
integration_qng(f::Ref{gsl_function},...)

Post on discourse

Planning upgrade to GSL 2

Currently this package is based on GSL 1.16, which is quite old now. I've already prepared a build for GSL 2.5: https://github.com/giordano/GSLBuilder.jl/releases/tag/v2.5 As soon as maintainers decide to upgrade, you only need to take https://github.com/giordano/GSLBuilder.jl/releases/download/v2.5/build_GSL.v2.5.0.jl (and probably adapt to support Julia 0.6).

One thing that could be improved is to use OpenBLAS, instead of the internal GSLCBLAS, as suggested by @simonbyrne at #71 (comment). I know how to use another build script as a dependency, but I don't know how to convince GSL to build against OpenBLAS. I couldn't find a configuration option for that, probably I should somehow replace GSLCBLAS with OpenBLAS?

Travis CI build error

Hi, I am have a package that uses GSL.jl, but it won't build on Travis due to

INFO: Building GSL
Installing dependency libgsl0-dev via `apt-get install libgsl0-dev`:
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

It seems like the GSL build requires root permissions? Is there some way around this?

Problem `using GSL`

I'm getting the following error for negative values of the third parameter.

julia> sf_hyperg_U(-1.0,-1.0,1.0)
2.0

julia> sf_hyperg_U(-1.0,-1.0,-1.0)
ERROR: DomainError
 in custom_error_handler at /home/mweastwood/.julia/GSL/src/ConvertGSL.jl:20

Now, I don't know anything about the hypergeometric functions, but because sf_hyperg_U(-1.0, -1.0, randn()) is used to test whether GSL has been correctly loaded, I get a spurious error half the time when I type using GSL.

For example:

               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" to list help topics
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.0-rc1+59 (2014-07-17 17:31 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit e963643 (0 days old master)
|__/                   |  x86_64-unknown-linux-gnu

julia> using GSL
ERROR: The GNU Scientific Library does not appear to be installed.
 in error at error.jl:21
 in include at ./boot.jl:245
 in include_from_node1 at ./loading.jl:128
 in reload_path at loading.jl:152
 in _require at loading.jl:67
 in require at loading.jl:51
while loading /home/mweastwood/.julia/GSL/src/GSL.jl, in expression starting on line 29

julia> sf_hyperg_U(-1.0,-1.0,1.0)
2.0

vector_view should be a type (probably a subtype of `AbstractArray`)

The GSL vector_view type is pretty much totally redundant with the Julia SubArray type, so I would tend to not include it at all (issue #12).

However, if you are going to include it, you must define it as a type which contains a reference to the original Array that was used to construct it, as otherwise the latter may be garbage-collected by Julia, which would lead to a crash when GSL next tries to access the vector contents.

how to get a pointer to gsl_interp_type?

Hi!
i was trying to implement this example: http://www.gnu.org/software/gsl/manual/html_node/Interpolation-Example-programs.html#Interpolation-Example-programs

it seems all pretty straightforward except the point where I want to do

pS = spline_alloc(interp_cspline,n)

and it tells me that interp_cspline is not defined. I tried to do something like Ptr(gsl_interp_type) or Ptr{gsl_interp_type}. I'm lacking some basic "how to allocate a pointer" knowledge, sorry.

the rest seems to work just fine, for example that

julia> A = interp_accel_alloc()
Ptr{gsl_interp_accel} @0x0000000101385110

i was looking for an equivalent interp_type_alloc() but couldnt find any. thanks!

vectorize functions

Many of the GSL functions, especially the various special functions, should be vectorized so that they can operate on Array arguments in addition to scalars. This is easily accomplished with Julia's built-in @vectorize_1arg and @vectorize_2arg macros (from base/operators.jl).

For example the gsl_sf_gamma(x) function can be vectorized with:

@vectorize_1arg Number gsl_sf_gamma

and the gsl_sf_beta(a,b) function can be vectorized with

@vectorize_2arg Number gsl_sf_beta

Note that you should use the generic Number type (or possibly Real), not Cdouble or whatever specific type the C interface wants---Julia will throw an error if the user passes an array type that cannot be converted to the correct scalar argument type. (See also issue #1.)

There isn't a @vectorize_3arg macro, but it would be easy to write one (based on those in operators.jl) for 3-argument functions like gsl_sf_laguerre_n.

Domain error for sf_hyperg_U in GSL.jl

It seems that line 29 in GSL.jl, namely

sf_hyperg_U(-1.0, -1.0, randn())

causes a DomainError, since randn could produce negative values, . Changing it to

sf_hyperg_U(-1.0, -1.0, rand())

seems to fix the issue.

MethodError: `convert` has no method matching convert(::Type{Ptr{GSL.gsl_sf_result}}, ::Array{GSL.gsl_sf_result,1})

With Julia 0.4 (but not with Julia 0.3), the unit tests for GSL don't pass on my system (Ubuntu Trusty, with libgsl 1.16 installed). I get the error message below:

julia> Pkg.clone("https://github.com/jiahao/GSL.jl.git")
INFO: Cloning GSL from https://github.com/jiahao/GSL.jl.git
INFO: Computing changes...
INFO: No packages to install, update or remove
INFO: Package database updated

julia> Pkg.build("GSL")
INFO: Building GSL
WARNING: beginswith is deprecated, use startswith instead.
 in depwarn at ./deprecated.jl:40
 in beginswith at deprecated.jl:10
 in available_versions at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:116
 in package_available at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:111
 in can_provide at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:608
 in _find_library at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:451
 in satisfy! at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:738 (repeats 2 times)
 in anonymous at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:778
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in evalfile at loading.jl:174 (repeats 2 times)
 in anonymous at pkg/entry.jl:626
 in cd at ./file.jl:20
 in build! at pkg/entry.jl:625
 in build at pkg/entry.jl:637
 in anonymous at pkg/dir.jl:29
 in cd at file.jl:20
 in cd at pkg/dir.jl:29
 in build at pkg.jl:62
WARNING: beginswith is deprecated, use startswith instead.
 in depwarn at ./deprecated.jl:40
 in beginswith at deprecated.jl:10
 in available_versions at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:124
 in package_available at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:111
 in can_provide at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:608
 in _find_library at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:451
 in satisfy! at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:738 (repeats 2 times)
 in anonymous at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:778
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in evalfile at loading.jl:174 (repeats 2 times)
 in anonymous at pkg/entry.jl:626
 in cd at ./file.jl:20
 in build! at pkg/entry.jl:625
 in build at pkg/entry.jl:637
 in anonymous at pkg/dir.jl:29
 in cd at file.jl:20
 in cd at pkg/dir.jl:29
 in build at pkg.jl:62

julia> Pkg.test("GSL")
INFO: Testing GSL
WARNING: beginswith is deprecated, use startswith instead.
 in depwarn at ./deprecated.jl:40
 in beginswith at deprecated.jl:10
 in available_versions at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:116
 in package_available at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:111
 in can_provide at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:608
 in _find_library at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:451
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in reload_path at ./loading.jl:156
 in _require at ./loading.jl:68
 in require at ./loading.jl:51
 in include at ./boot.jl:250
 in include_from_node1 at loading.jl:132
 in process_options at ./client.jl:308
 in _start at ./client.jl:407
WARNING: beginswith is deprecated, use startswith instead.
 in depwarn at ./deprecated.jl:40
 in beginswith at deprecated.jl:10
 in available_versions at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:124
 in package_available at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:111
 in can_provide at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:608
 in _find_library at /home/jeff/.julia/v0.4/BinDeps/src/dependencies.jl:451
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in reload_path at ./loading.jl:156
 in _require at ./loading.jl:68
 in require at ./loading.jl:51
 in include at ./boot.jl:250
 in include_from_node1 at loading.jl:132
 in process_options at ./client.jl:308
 in _start at ./client.jl:407
WARNING: int(x::FloatingPoint) is deprecated, use round(Int,x) instead.
 in depwarn at ./deprecated.jl:40
 in int at deprecated.jl:29
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in include at ./boot.jl:250
 in include_from_node1 at loading.jl:132
 in process_options at ./client.jl:308
 in _start at ./client.jl:407
ERROR: LoadError: LoadError: MethodError: `convert` has no method matching convert(::Type{Ptr{GSL.gsl_sf_result}}, ::Array{GSL.gsl_sf_result,1})
This may have arisen from a call to the constructor Ptr{GSL.gsl_sf_result}(...),
since type constructors fall back to convert methods.
Closest candidates are:
  convert{T}(::Type{Ptr{T}}, ::UInt64)
  convert{T}(::Type{Ptr{T}}, ::Int64)
  convert{T}(::Type{Ptr{T}}, ::Ptr{T})
  ...
 in anonymous at no file:16
 in include at ./boot.jl:250
 in include_from_node1 at ./loading.jl:132
 in include at ./boot.jl:250
 in include_from_node1 at loading.jl:132
 in process_options at ./client.jl:308
 in _start at ./client.jl:407
while loading /home/jeff/.julia/v0.4/GSL/test/basic.jl, in expression starting on line 11
while loading /home/jeff/.julia/v0.4/GSL/test/runtests.jl, in expression starting on line 7

Incorrect values in hypergeometric_2F1

My coworker @nicolasdidier noticed this strange issue with sf_hyperg_2F1 on half of the domain:

image

(I wasn't able to test it on 1.0 due to unsatisfiable package requirements.) Is there any way this could be an issue with this package or is this definitely due to GSL?

Cannot build GSL

Hello, I canot build the package with the following error:

julia> Pkg.build("GSL")
INFO: Building GSL
Installing dependency gsl via `sudo pacman -S --needed gsl`:
warning: gsl-2.5-1 is up to date -- skipping
 there is nothing to do
=====================================[ ERROR: GSL ]=====================================

LoadError: Provider BinDeps.PackageManager failed to satisfy dependency libgsl
while loading /home/gluon/.julia/v0.6/GSL/deps/build.jl, in expression starting on line 30

gsl is installed as it can be seen from the message. What is the issue here?

I am on julia 0.6.2.

Remove use of deprecated functions

gsl_sf_legendre_Plm_array and gsl_sf_legendre_Plm_deriv_array are deprecated according to the document and seems to be missing from version 2.1 of the library (or at least it's not in the ArchLinux package).

Methods from underscore files not being overridden as expected

Using Julia v0.4.3 and GSL.jl v0.3.1, when executing the example in 35_Multidimensional_Root_Finding.jl, the value for status that is returned when executing

status = GSL.multiroot_fsolver_iterate(dnewton_solver)

in the final for loop returns a value of 0 instead of GSL.gsl_errno(0) corresponding to SUCCESS.

This behavior implies that the version of multiroot_fsolver_iterate that is being executed is from the file _35_4_Iteration.jl (which currently returns errno) and not 35_4_Iteration.jl (which returns gsl_errno).

Within the file GSL.jl, the file __FILELIST.jl (which includes _35_4_Iteration.jl) is being included before 35_4_Iteration.jl is included.

Does the strategy of maintaining methods in the original output of the generator script in "underscore" files, while placing modified versions of those same methods in "no-underscore" files, need to be revisited?

how to use gsl_vector_complex?

I'm trying to convert some code from C++/GSL to Julia/GSL.jl

The C++ code I have uses gsl_vector_complex variables. Are there plans to implement that in GSL.jl? Would that make sense? Thanks in advance.

Roots of multidimensional systems - pointer to solver type

Hello,

I would like to use the GSL package in order to find the roots of a multidimensional system of equations.
According to the reference manual, I have to allocate memory to the solver. But to do so, I have to give a pointer to a fslover_type. Indeed, methods(multiroot_fsolver_alloc) prints out:
multiroot_fsolver_alloc(T::Ptr{gsl_multiroot_fsolver_type},n::Integer)

But I cannot find any fsolver_type that could be used. The only one that is given is: gsl_multiroot_fsolver_hybrid and it is not defined. I don't know what to do.

Besides, I don't know how to convert julia vector to gsl vector. As mentionned in issue #12, gsl_vectors_* have been deleted.

Thanks for helping,

AM.

ERROR: ReadOnlyMemoryError()

The function GSL.deriv_central no longer seems to work:

jeff@arina~/git/Celeste.jl/test $ rm -rf ~/.julia/lib/
jeff@arina~/git/Celeste.jl/test $ rm -rf ~/.julia/.cache/
jeff@arina~/git/Celeste.jl/test $ rm -rf ~/.julia/v0.4/
jeff@arina~/git/Celeste.jl/test $ julia4 
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.0-rc3 (2015-09-27 20:34 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-unknown-linux-gnu

julia> Pkg.status()
INFO: Initializing package repository /home/jeff/.julia/v0.4
INFO: Cloning METADATA from git://github.com/JuliaLang/METADATA.jl
No packages installed

julia> Pkg.add("GSL")
INFO: Cloning cache of BinDeps from git://github.com/JuliaLang/BinDeps.jl.git
INFO: Cloning cache of Compat from git://github.com/JuliaLang/Compat.jl.git
INFO: Cloning cache of GSL from git://github.com/jiahao/GSL.jl.git
INFO: Cloning cache of SHA from git://github.com/staticfloat/SHA.jl.git
INFO: Cloning cache of URIParser from git://github.com/JuliaWeb/URIParser.jl.git
INFO: Installing BinDeps v0.3.18
INFO: Installing Compat v0.7.5
INFO: Installing GSL v0.2.0
INFO: Installing SHA v0.1.2
INFO: Installing URIParser v0.1.1
INFO: Building GSL
INFO: Precompiling module Compat...
INFO: Precompiling module URIParser...
INFO: Precompiling module SHA...
INFO: Package database updated

julia> import GSL.deriv_central

julia> function f2(x) 1. end
f2 (generic function with 1 method)

julia> deriv_central(f2, 0., 1e-3)
ERROR: ReadOnlyMemoryError()

convert pass-by-reference functions into return values

GSL uses pass-by-"reference" (pointer arguments) in order to return multiple values, as is natural in C. In Julia, it would be good to convert these to just returning tuples.

For example, gsl_poly_solve_cubic should really be something like:

function gsl_poly_solve_cubic(a::Real, b::Real, c::Real)
    x0 = Array(Cdouble,1); x1 = Array(Cdouble,1); x2 = Array(Cdouble, 2)
    nroot = ccall( (:gsl_poly_solve_cubic, "libgsl"), Cint, (Cdouble, Cdouble,
                        Cdouble, Ptr{Cdouble}, Ptr{Cdouble}, Ptr{Cdouble}), a, b, c, x0, x1, x2)
    return nroot == 3 ? (x0[1],x1[1],x2[1]) : nroot == 2 ? (x0[1],x1[1]) : nroot == 1 ? (x0[1],) : ()
end

Declaring arrays to pass pointers is somewhat ugly and annoying for simple scalar output arguments, not to mention being suboptimal; hopefully this will be fixed in the future. See Julia issue #2322.

declare unique opaque pointer types rather than using Ptr{Void} for everything

GSL uses a lot of "opaque" pointer types (pointers to undocumented/hidden structs) in its interface, a typical abstraction technique in C. Currently, GSL.jl represents these all as Ptr{Void}. This prevents Julia's type-checking from working, since the user could pass the wrong Ptr{Void} to a function and crash GSL. It also leads to a less-comprehensible method signature, and prevents future overloading by method dispatch on the pointer type.

A better solution would be to declare an opaque pointer type in Julia. For example, the GSL gsl_rng* type could be represented as:

type gsl_rng; end
typealias GSL_rng Ptr{gsl_rng}

Then you could define e.g. gsl_ran_gamma(r::GSL_rng, a::Cdouble, b::Cdouble) rather than using Ptr{Void} for the first argument. Note that the contents of the gsl_rng type in Julia are irrelevant since you will never instantiate this type; you will only pass around GSL_rng pointers (which are, of course, the same size as Ptr{Void}.)

Mathieu functions

Hi!

I am having trouble computing values of Mathieu functions using the GSL.jl wrapper. For example:

julia> using GSL

julia> sf_mathieu_ce(1, 0., 1.0)
GSL.gsl_sf_result(5.0e-324,0.0)

julia> sf_mathieu_ce(1, 0., 2.0)
GSL.gsl_sf_result(1.0e-323,0.0)

julia> sf_mathieu_ce(1, 0., 3.0)
GSL.gsl_sf_result(1.0e-323,0.0)

If I am not mistaken, the value of $ce_1(0, x)$ should be equal to that of $\cos(x)$ (maybe up to some normalization).

Other functions return "zero" too:

julia> sf_mathieu_se(4, 10., 30.0)
GSL.gsl_sf_result(6.93008513984393e-310,6.9296557058916e-310)

Am I missing something? I will be happy to provide more info if needed.

Levenberg-Marquardt Solver

Has the Levenberg-Marquardt solver described in section 38.8 of the manual been implemented? It seems to have been only partially wrapped. For example, there is multifit_fdfsolver_alloc but I cannot figure out how to get a pointer T to Ptr{gsl_multifit_fdfsolver_type}. It should be gsl_multifit_fdfsolver_lmder or gsl_multifit_fdfsolver_lmsder but I cannot find them.

Am I missing something simple?

[PackageEvaluator.jl] Your package GSL may have a testing issue.

This issue is being filed by a script, but if you reply, I will see it.

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their test (if available) on both the stable version of Julia (0.2) and the nightly build of the unstable version (0.3).

The results of this script are used to generate a package listing enhanced with testing results.

The status of this package, GSL, on...

  • Julia 0.2 is 'Package doesn't load.' PackageEvaluator.jl
  • Julia 0.3 is 'Package doesn't load.' PackageEvaluator.jl

'No tests, but package loads.' can be due to their being no tests (you should write some if you can!) but can also be due to PackageEvaluator not being able to find your tests. Consider adding a test/runtests.jl file.

'Package doesn't load.' is the worst-case scenario. Sometimes this arises because your package doesn't have BinDeps support, or needs something that can't be installed with BinDeps. If this is the case for your package, please file an issue and an exception can be made so your package will not be tested.

This automatically filed issue is a one-off message. Starting soon, issues will only be filed when the testing status of your package changes in a negative direction (gets worse). If you'd like to opt-out of these status-change messages, reply to this message.

Using GSL.jl on MacOSX fails

When I have installed GSL.jl with Pkg.add("GSL") everything appears to have worked correctly, however when I try to use it I get this error:

Johns-MacBook-Pro:nuppe john$ julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "help()" to list help topics
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.3.0-prerelease+2628 (2014-04-15 11:08 UTC)
 _/ |\__'_|_|_|\__'_|  |  Commit 3766e86* (0 days old master)
|__/                   |  x86_64-apple-darwin13.1.0

julia> using GSL
ERROR: Could not find the GNU Scientific Library.
Please ensure that libgsl is installed on your system and is available on the system path.
 in error at error.jl:21
 in reload_path at loading.jl:152
 in _require at loading.jl:67
 in require at loading.jl:51
while loading /Users/john/.julia/v0.3/GSL/src/ConvertGSL.jl, in expression starting on line 49
while loading /Users/john/.julia/v0.3/GSL/src/GSL.jl, in expression starting on line 6

julia> 

The install log is available here:
https://gist.github.com/jtravs/262557d67866430ca8b7

I don't think this is connected to #16

Any help appreciated!

Installing libgsl is broken on OSX 10.9

Instead of installing GSL, it somehow gets homebrew to install zeromq instead.

julia> Pkg.add("GSL")
INFO: Installing GSL v0.1.1
INFO: Building Homebrew
HEAD is now at c588ffb Remove git rebasing code that slipped through
HEAD is now at b8b84ed Update hdf5 and szip
Uninstalling /Users/jiahao/.julia/v0.3/Homebrew/deps/usr/Cellar/zeromq/3.2.4...
==> Downloading http://archive.org/download/julialang/bottles/zeromq-3.2.4.snow_leopard_or_later.bottle.1.tar.gz
Already downloaded: /Users/jiahao/Library/Caches/Homebrew.jl/zeromq-3.2.4.snow_leopard_or_later.bottle.1.tar.gz
==> Pouring zeromq-3.2.4.snow_leopard_or_later.bottle.1.tar.gz
  /Users/jiahao/.julia/v0.3/Homebrew/deps/usr/Cellar/zeromq/3.2.4: 54 files, 2.3M
INFO: Building GSL
INFO: Package database updated

:(

Consider eliminating gsl_ prefix in favor of GSL namespace

GSL uses a gsl_ prefix for every function, type, etcetera, because C lacks namespace encapsulation.

Since Julia modules live in their own namespace, this is not necessary. So, you can just remove all of the gsl_ prefixes. Then, the user can either do:

 using GSL
 y = sf_laguerre_n(3, 2.3, 4.6)

if they want to import everything into the global namespace, or

import GSL
y = GSL.sf_laguerre_n(3, 2.3, 4.6)

if they want to use prefixes, or

import GSL.sf_laguerre_n
y = sf_laguerre_n(3, 2.3, 4.6)

to import specific functions into the global namespace.

take AbstractVector arguments (not just Vector)

The functions that take Vector{T} arguments and convert them to the type GSL expects should really take AbstractVector{T} arguments instead, in order to handle more general array types.

memory bug passing arrays to C

For example in _7_16_2_Relative_Exponential_Functions.jl:

    result = convert(Ptr{gsl_sf_result}, Array(gsl_sf_result, 1))

This creates an array and immediately drops any references to it, leading to a serious memory bug (use after free). Fortunately direct conversion to Ptr has been disallowed in Julia 0.4, so this line raises
an error now.

There is seldom any need to manually convert to Ptr. ccall handles this for you; just pass the array and index it to read the result. Actually now a Ref should be used instead of an array, but an array still works.

set gsl_rng_type from Julia

Hi, I try to call the GSL random number generator from Julia. It works well, but I can't change gsl_rng_type and can only take the default algorithm. I found the following code from the package. Could you please give an example about setting "gsl_rng_type"? Many thanks! Danke schön!

best
Chong

function rng_alloc(T::Ref{gsl_rng_type})
output_ptr = ccall( (:gsl_rng_alloc, libgsl), Ptr{gsl_rng},
(Ref{gsl_rng_type}, ), T )
output_ptr==C_NULL ? throw(GSL_ERROR(8)) : output_ptr
end

Rename gsl.jl to GSL.jl

My version of Julia complains because src/GSL.jl is missing; it looks like you should rename src/gsl.jl?

don't wrap GSL functionality that is redundant with the Julia standard library

There are some portions of GSL that are so redundant with the Julia standard library that it is almost inconceivable that anyone would want to use them.

The whole GSL vector and matrix interface, the BLAS interface, the linear algebra and eigensystems interfaces, the FFT functions, and the basic complex-number routines are vastly inferior to those bundled with Julia, for example, and I would tend to just omit them from GSL.jl.

Including them increases your maintenance load, requires special care to avoid crashing interactions with the garbage collection (issue #11), and slows down the loading of the GSL package (using GSL is pretty slow as it is, so anything to trim the library would be an improvement).

Function arrays not working

Hi,

In sf_legendre_Pl_array and perhaps similar functions, Julia raises the following error on a variety of inputs (on a Mac at least):

`convert` has no method matching convert(::Type{Float64},::Array{Float64,1})
in sf_legendre_Pl_array at _7_24_1_Legendre_Polynomials.jl:116

Not really sure what's going on here as I'm not familiar with C/ccall at all, but hope that helps.

Multiroot not working / v0.4?

Dear Jiahao:
I tried to test the gsl multiroot finding code, but failed. Using v0.3.11, I tried the test file examples/35_Multidimensional_Root_Finding.jl and it gives the error message
ERROR: Ref not defined
in include at /Applications/Julia-0.3.11.app/Contents/Resources/julia/lib/julia/sys.dylib
in include_from_node1 at /Applications/Julia-0.3.11.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading /Users/laurent/test.jl, in expression starting on line 34

I also tried GSL with v0.4, and there the package GSL shows lots of warnings upon loading; and then
ERROR: LoadError: MethodError: multiroot_fsolver_iterate has no method matching multiroot_fsolver_iterate(::Ptr{GSL.gsl_multiroot_fsolver})
in anonymous at no file:57
in include at ./boot.jl:259
in include_from_node1 at ./loading.jl:267

Thanks in advance! Laurent

Install failure on Fedora 24, 25, 26, and 27

Here's an install attempt:

$ SUDO_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass ./julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.5.0 (2016-09-19 18:14 UTC)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-redhat-linux

julia> Pkg.build("GSL")
INFO: Building GSL
Installing dependency gsl-devel via `sudo yum install gsl-devel`:
Redirecting to '/usr/bin/dnf install gsl-devel' (see 'man yum2dnf')

Last metadata expiration check: 0:02:21 ago on Mon Oct 24 16:15:24 2016.
Package gsl-devel-2.1-4.fc24.x86_64 is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
=================================[ ERROR: GSL ]=================================

LoadError: Provider BinDeps.PackageManager failed to satisfy dependency libgsl
while loading /home/rick/.julia/v0.5/GSL/deps/build.jl, in expression starting on line 30

================================================================================

================================[ BUILD ERRORS ]================================

WARNING: GSL had build errors.

 - packages with build errors remain installed in /home/rick/.julia/v0.5
 - build the package(s) and all dependencies with `Pkg.build("GSL")`
 - build a single package by running its `deps/build.jl` script

================================================================================

vector argument bugs

It looks like a lot of the functions that take vector arguments have a bug, apparently a bug in your generating script. For example:

function ran_discrete_preproc{tA<:Real}(K::Integer, P_in::Vector{tA})
    convert(Vector{Cdouble}, P_in)
    ccall( (:gsl_ran_discrete_preproc, :libgsl), Ptr{gsl_ran_discrete_t},
        (Csize_t, Ptr{Cdouble}), K, P )
end

is missing the P = assignment in the first line, so P is not defined.

Also, it should probably not take an argument K, and instead determine K from length(P_in). Similarly for other functions that take Vector args: the length should not be a separate argument.

(Also, it should check the return value for C_NULL (see issue #9), which happens on an out-of-memory situation or for invalid arguments (negative probability inputs).)

GSL.hypergeom error reporting failure due to bytestring on v0.6

First of all, thanks for GSL.jl! It's great!

Minor problem:

Incorrect inputs to the hypergeometric function 2F1 yielded this:

julia> using GSL
julia> a, b = [1.0, 2.0], 3.0
julia> GSL.hypergeom(a, b, 1.0)
ERROR: UndefVarError: bytestring not defined
Stacktrace:
 [1] custom_error_handler(::Ptr{UInt8}, ::Ptr{UInt8}, ::Int32, ::Int32) at /Users/james/.julia/v0.6/GSL/src/ConvertGSL.jl:18
 [2] hypergeom(::Array{Float64,1}, ::Float64, ::Float64) at /Users/james/.julia/v0.6/GSL/src/7_21_HypergeometricFunctions.jl:21

but after

cd /Users/james/.julia/v0.6/GSL/src/
for i in *; do sed -i 's/bytestring/string/g' "$i"; done

I get a DomainError

julia> GSL.hypergeom(a, b, 1.0)
ERROR: GSL Error: Ptr{Int8} @0x00000001233f4e28 -- Ptr{UInt8} @0x00000001233fd388 at Ptr{UInt8} @0x00000001233fe8cf:685
ERROR: DomainError:
Stacktrace:
 [1] custom_error_handler(::String, ::String, ::Int32, ::Int32) at /Users/james/.julia/v0.6/GSL/src/ConvertGSL.jl:35
 [2] custom_error_handler(::Ptr{UInt8}, ::Ptr{UInt8}, ::Int32, ::Int32) at /Users/james/.julia/v0.6/GSL/src/ConvertGSL.jl:18
 [3] hypergeom(::Array{Float64,1}, ::Float64, ::Float64) at /Users/james/.julia/v0.6/GSL/src/7_21_HypergeometricFunctions.jl:21

Got exception when calling julia from c++

Hi ,

I have a java test program that calling C++ (JNI) and the C++ calling Julia.
It works fine when running one instance, but when repeatedly running the instance, I got following
error (In our real application, it killed the running processor).

Julia 0.4.6 : julia-0.4.6-linux-x86_64
Linux : 2.6.32-358.el6.x86_64
gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)

Thanks
Jason

fatal: error thrown and no exception handler available.
ReadOnlyMemoryError()
rec_backtrace at /home/Julia/julia-2e358ce975/lib/julia/libjulia.so (unknown line)
jl_throw at /home/Julia/julia-2e358ce975/lib/julia/libjulia.so (unknown line)
jl_exit_on_sigint at /home/Julia/julia-2e358ce975/lib/julia/libjulia.so (unknown line)
unknown function (ip: 0x3e8a40f500)
unknown function (ip: 0x7f9244ddf1e4)
unknown function (ip: 0x7f9244dd8365)
unknown function (ip: 0x7f9244f1992f)
unknown function (ip: 0x7f9244f19a35)
unknown function (ip: 0x7f9244de04b8)
unknown function (ip: 0x3e8a407851)
clone at /lib64/libc.so.6 (unknown line)
unknown function (ip: (nil))

Types are over-specified

In a lot of cases the types are a bit overspecified: the Julia functions should accept any argument type that can be convert-ed into the C argument type. The Julia interface does not need to be restricted to the C argument type.

For example:

gsl_sf_pow_int (x::Cdouble, n::Cint) = ccall( (:gsl_sf_pow_int, "libgsl"), Cdouble, (Cdouble, Cint), x, n)

could be declared as merely

gsl_sf_pow_int (x::Real, n::Integer) = ...

or even:

gsl_sf_pow_int (x, n) = ...

Julia will throw an error if you call it with arguments for which convert(Cdouble, x) or convert(Cint, n) fail. There is no need to specify the Julia argument types except as a hint to the user about what types are expected (e.g. if they just type gsl_sf_pow_int it will print something helpful), or if you are planning to overload the function with different definitions for different types.

GSL build errors on travis-ci.org

My Julia package requires GSL.jl. Its unit tests pass on my system, but on travis-ci.org, I get the error message below from listing GSL in the REQUIRE file. Do I just need to modify my package's .travis.yml file, or is there a way to change the GSL installation scripts to work even when sudo isn't available?

INFO: Building GSL
Installing dependency libgsl0-dev via `sudo apt-get install libgsl0-dev`:
sudo: must be setuid root
=================================[ ERROR: GSL ]=================================
failed process: Process(`sudo apt-get install libgsl0-dev`, ProcessExited(1)) [1]
while loading /home/travis/.julia/v0.3/GSL/deps/build.jl, in expression starting on line 29
================================================================================
================================[ BUILD ERRORS ]================================
WARNING: GSL had build errors.
 - packages with build errors remain installed in /home/travis/.julia/v0.3
 - build the package(s) and all dependencies with `Pkg.build("GSL")`
 - build a single package by running its `deps/build.jl` script

hypergeom doesn't work for complex arguments

hypergeom([1.0; 2.0],2.0*im,2.)

returns

MethodError: no method matching hypergeom(::Array{Float64,1}, ::Complex{Float64}, ::Float64)
Closest candidates are:
  hypergeom(::Union{Array{Float64,1}, Array{Union{},1}, Float64}, ::Union{Array{Float64,1}, Array{Union{},1}, Float64}, ::Float64) at /Users/nataliesheils/.julia/v0.6/GSL/src/7_21_HypergeometricFunctions.jl:11

GSL warnings from Julia 0.4.0-rc3

I'm seeing a lot of warnings in output from travis-cI from my calls to GSL.jl. Unfortunately I don't think I can instruct travis-ci to use the master branch for GSL, though it looks like there have been some improvements since the last release.

WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:1456250880
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:-1
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.MemoryError is deprecated, use OutOfMemoryError instead.
in custom_error_handler at /home/travis/.julia/v0.4/GSL/src/ConvertGSL.jl:29
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
in strerror at /home/travis/.julia/v0.4/GSL/src/../src/_3_2_Error_Codes.jl:22
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
in strerror at /home/travis/.julia/v0.4/GSL/src/../src/_3_2_Error_Codes.jl:22
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
in strerror at /home/travis/.julia/v0.4/GSL/src/../src/_3_2_Error_Codes.jl:22
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
in strerror at /home/travis/.julia/v0.4/GSL/src/../src/_3_2_Error_Codes.jl:22
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: Base.Uint8 is deprecated, use UInt8 instead.
WARNING: deprecated syntax "poly_solve_quadratic (" at /home/travis/.julia/v0.4/GSL/src/6_3_QuadraticEquations.jl:26.
Use "poly_solve_quadratic(" instead.
WARNING: deprecated syntax "poly_complex_solve_quadratic (" at /home/travis/.julia/v0.4/GSL/src/6_3_QuadraticEquations.jl:52.
Use "poly_complex_solve_quadratic(" instead.
WARNING: deprecated syntax "poly_solve_cubic (" at /home/travis/.julia/v0.4/GSL/src/6_4_CubicEquations.jl:22.
Use "poly_solve_cubic(" instead.
WARNING: deprecated syntax "poly_complex_solve_cubic (" at /home/travis/.julia/v0.4/GSL/src/6_4_CubicEquations.jl:46.
Use "poly_complex_solve_cubic(" instead.
WARNING: Base.None is deprecated, use Union{} instead.
WARNING: Union(args...) is deprecated, use Union{args...} instead.
 in depwarn at deprecated.jl:73
 in call at deprecated.jl:50
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:304
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:304
 in require at ./loading.jl:243
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:304
 in include at ./boot.jl:261
 in include_from_node1 at ./loading.jl:304
 in process_options at ./client.jl:308
 in _start at ./client.jl:411
while loading /home/travis/.julia/v0.4/GSL/src/7_21_HypergeometricFunctions.jl, in expression starting on line 7
WARNING: deprecated syntax "ran_dir_3d (" at /home/travis/.julia/v0.4/GSL/src/20_23_SphericalVectorDistributions.jl:31.
Use "ran_dir_3d(" instead.
WARNING: deprecated syntax "ran_dir_nd (" at /home/travis/.julia/v0.4/GSL/src/20_23_SphericalVectorDistributions.jl:50.
Use "ran_dir_nd(" instead.

Confusing error message when GSL was not built yet

When GSL was not built with Pkg.build("GSL") the error message, which is supposed to tell the user to run Pkg.build("GSL"), is not shown. Instead there is an error constructing the error.

julia> using GSL
ERROR: `LoadError` has no method matching LoadError(::ASCIIString)
 in include at /usr/bin/../lib/julia/sys.so
 in include_from_node1 at /usr/bin/../lib/julia/sys.so
 in reload_path at loading.jl:152
 in _require at loading.jl:67
 in require at loading.jl:51
while loading /home/slangangular/.julia/v0.3/GSL/src/GSL.jl, in expression starting on line 5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.