In [19]:
Pkg.rm("BuildExecutable")


INFO: Removing BuildExecutable v0.0.3
INFO: Package database updated

In [20]:
Pkg.add("BuildExecutable")


INFO: Installing BuildExecutable v0.0.3
INFO: Building BuildExecutable
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of BuildExecutable
INFO: Use `Pkg.update()` to get the latest versions of your packages

In [2]:
Pkg.test("BuildExecutable")


INFO: Computing test dependencies for BuildExecutable...
INFO: No packages to install, update or remove
INFO: Testing BuildExecutable
running: /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia /Users/utensil/.julia/v0.4/BuildExecutable/src/build_sysimg.jl /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable native /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpm5cBRK/userimg.jl --force
INFO: Building inference0.o...
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.o coreimg.jl
essentials.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
abstractarray.jl
array.jl
hashing.jl
nofloat_hashing.jl
functors.jl
reduce.jl
intset.jl
dict.jl
iterator.jl
inference.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.o coreimg.jl
INFO: Building inference.o...
essentials.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
abstractarray.jl
array.jl
hashing.jl
nofloat_hashing.jl
functors.jl
reduce.jl
intset.jl
dict.jl
iterator.jl
inference.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable.o -J /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji --startup-file=no sysimg.jl
INFO: Building sys.o...
exports.jl
essentials.jl
docs/bootstrap.jl
base.jl
reflection.jl
build_h.jl
version_git.jl
c.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refpointer.jl
functors.jl
abstractarray.jl
subarray.jl
array.jl
hashing.jl
rounding.jl
float.jl
complex.jl
rational.jl
abstractarraymath.jl
arraymath.jl
simdloop.jl
reduce.jl
bitarray.jl
intset.jl
dict.jl
set.jl
iterator.jl
osutils.jl
char.jl
ascii.jl
iobuffer.jl
string.jl
strings/types.jl
strings/basic.jl
strings/search.jl
strings/util.jl
strings/io.jl
unicode.jl
unicode/UnicodeError.jl
unicode/types.jl
unicode/checkstring.jl
unicode/utf8.jl
unicode/utf16.jl
unicode/utf32.jl
unicode/utf8proc.jl
parse.jl
shell.jl
regex.jl
pcre.jl
base64.jl
io.jl
iostream.jl
libc.jl
libdl.jl
env.jl
path.jl
intfuncs.jl
nullable.jl
task.jl
lock.jl
show.jl
stream.jl
uv_constants.jl
socket.jl
stat.jl
fs.jl
process.jl
multimedia.jl
grisu.jl
file.jl
methodshow.jl
floatfuncs.jl
math.jl
float16.jl
cartesian.jl
multidimensional.jl
primes.jl
reducedim.jl
ordering.jl
collections.jl
sort.jl
version.jl
gmp.jl
mpfr.jl
combinatorics.jl
hashing2.jl
dSFMT.jl
random.jl
printf.jl
meta.jl
Enums.jl
serialize.jl
channels.jl
multi.jl
managers.jl
loading.jl
poll.jl
mmap.jl
sharedarray.jl
datafmt.jl
deepcopy.jl
interactiveutil.jl
replutil.jl
test.jl
i18n.jl
Terminals.jl
LineEdit.jl
REPLCompletions.jl
REPL.jl
client.jl
util.jl
linalg.jl
broadcast.jl
statistics.jl
sparse.jl
irrationals.jl
dft.jl
dsp.jl
sysinfo.jl
quadgk.jl
fastmath.jl
pkg.jl
profile.jl
Dates.jl
markdown/Markdown.jl
docs/Docs.jl
deprecated.jl
require.jl
docs/helpdb.jl
docs/basedocs.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/share/julia/base/precompile.jl
INFO: Linking sys.dylib

INFO: System image successfully built at /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable.dylib
INFO: To run Julia with this image loaded, run: julia -J /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable.dylib
running: gcc -g `` -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/include/julia -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/src -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/src/support -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/usr/include /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpm5cBRK/start_func.c -o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/test_executable -Wl,-rpath,/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia -L/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia -ljulia -ltest_executable

running: rm -rf /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpm5cBRK /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libtest_executable.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.ji

/Users/utensil/.julia/v0.4/BuildExecutable/test/test_dir/test_executable successfully created.
INFO: BuildExecutable tests passed
INFO: No packages to install, update or remove

In [4]:
include("hello.jl")


Out[4]:
main (generic function with 1 method)

In [5]:
main()


Hello Julia

In [6]:
using BuildExecutable

In [7]:
mkdir("dist")

In [8]:
readdir(".")


Out[8]:
4-element Array{ByteString,1}:
 ".ipynb_checkpoints"   
 "BuildExecutable.ipynb"
 "dist"                 
 "hello.jl"             

In [18]:
println(readall(open("hello.jl")))


function main()
  @printf "Hello %s" "Julia"
end


In [9]:
build_executable("hello", "hello.jl", "dist", "native")


running: /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia /Users/utensil/.julia/v0.4/BuildExecutable/src/build_sysimg.jl /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello native /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpCED36A/userimg.jl --force
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.o coreimg.jl
INFO: Building inference0.o...
essentials.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
abstractarray.jl
array.jl
hashing.jl
nofloat_hashing.jl
functors.jl
reduce.jl
intset.jl
dict.jl
iterator.jl
inference.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.o coreimg.jl
INFO: Building inference.o...
essentials.jl
reflection.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
abstractarray.jl
array.jl
hashing.jl
nofloat_hashing.jl
functors.jl
reduce.jl
intset.jl
dict.jl
iterator.jl
inference.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/julia -C native --output-ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello.ji --output-o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello.o -J /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji --startup-file=no sysimg.jl
INFO: Building sys.o...
exports.jl
essentials.jl
docs/bootstrap.jl
base.jl
reflection.jl
build_h.jl
version_git.jl
c.jl
options.jl
promotion.jl
tuple.jl
range.jl
expr.jl
error.jl
bool.jl
number.jl
int.jl
operators.jl
pointer.jl
refpointer.jl
functors.jl
abstractarray.jl
subarray.jl
array.jl
hashing.jl
rounding.jl
float.jl
complex.jl
rational.jl
abstractarraymath.jl
arraymath.jl
simdloop.jl
reduce.jl
bitarray.jl
intset.jl
dict.jl
set.jl
iterator.jl
osutils.jl
char.jl
ascii.jl
iobuffer.jl
string.jl
strings/types.jl
strings/basic.jl
strings/search.jl
strings/util.jl
strings/io.jl
unicode.jl
unicode/UnicodeError.jl
unicode/types.jl
unicode/checkstring.jl
unicode/utf8.jl
unicode/utf16.jl
unicode/utf32.jl
unicode/utf8proc.jl
parse.jl
shell.jl
regex.jl
pcre.jl
base64.jl
io.jl
iostream.jl
libc.jl
libdl.jl
env.jl
path.jl
intfuncs.jl
nullable.jl
task.jl
lock.jl
show.jl
stream.jl
uv_constants.jl
socket.jl
stat.jl
fs.jl
process.jl
multimedia.jl
grisu.jl
file.jl
methodshow.jl
floatfuncs.jl
math.jl
float16.jl
cartesian.jl
multidimensional.jl
primes.jl
reducedim.jl
ordering.jl
collections.jl
sort.jl
version.jl
gmp.jl
mpfr.jl
combinatorics.jl
hashing2.jl
dSFMT.jl
random.jl
printf.jl
meta.jl
Enums.jl
serialize.jl
channels.jl
multi.jl
managers.jl
loading.jl
poll.jl
mmap.jl
sharedarray.jl
datafmt.jl
deepcopy.jl
interactiveutil.jl
replutil.jl
test.jl
i18n.jl
Terminals.jl
LineEdit.jl
REPLCompletions.jl
REPL.jl
client.jl
util.jl
linalg.jl
broadcast.jl
statistics.jl
sparse.jl
irrationals.jl
dft.jl
dsp.jl
sysinfo.jl
quadgk.jl
fastmath.jl
pkg.jl
profile.jl
Dates.jl
markdown/Markdown.jl
docs/Docs.jl
deprecated.jl
require.jl
docs/helpdb.jl
docs/basedocs.jl
/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/share/julia/base/precompile.jl
INFO: Linking sys.dylib

INFO: System image successfully built at /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello.dylib
INFO: To run Julia with this image loaded, run: julia -J /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello.dylib
running: gcc -g `` -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/include/julia -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/src -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/src/support -I/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/usr/include /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpCED36A/start_func.c -o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/bin/hello -Wl,-rpath,/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia -L/opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia -ljulia -lhello

running: rm -rf /var/folders/5w/p0cqvqwd0j13vs3z4rl18t840000gn/T/tmpCED36A /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/libhello.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference.ji /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.o /opt/homebrew-cask/Caskroom/julia/0.4.5/Julia-0.4.5.app/Contents/Resources/julia/lib/julia/inference0.ji

/Users/utensil/experiments/julia-playground/BuildExecutable/dist/hello successfully created.
Out[9]:
0

In [1]:
readdir("dist")


Out[1]:
51-element Array{ByteString,1}:
 "hello"                       
 "libRmath-julia.dylib"        
 "libamd.dylib"                
 "libarpack.2.dylib"           
 "libarpack.dylib"             
 "libcamd.dylib"               
 "libccalltest.dylib"          
 "libccalltest.dylib.dSYM"     
 "libccolamd.dylib"            
 "libcholmod.dylib"            
 "libcolamd.dylib"             
 "libdSFMT.dylib"              
 "libfftw3.3.dylib"            
 ⋮                             
 "libopenspecfun.dylib.1.0"    
 "libpcre2-8.0.dylib"          
 "libpcre2-8.dylib"            
 "libpcre2-posix.0.dylib"      
 "libpcre2-posix.dylib"        
 "libquadmath.0.dylib"         
 "libspqr.dylib"               
 "libsuitesparse_wrapper.dylib"
 "libsuitesparseconfig.dylib"  
 "libumfpack.dylib"            
 "sys-debug.dylib"             
 "sys.dylib"                   

In [25]:
isexecutable("./dist/hello")


Out[25]:
true

In [13]:
run(`./dist/hello`)


Hello Julia

In [14]:
str = readall(`./dist/hello`)


Out[14]:
"Hello Julia"

In [16]:
println(str)


Hello Julia

In [ ]: