Skip to content

Instantly share code, notes, and snippets.

@pfitzseb
Created October 10, 2017 17:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pfitzseb/1619a54e77f0d3346748b5647f0381c0 to your computer and use it in GitHub Desktop.
Save pfitzseb/1619a54e77f0d3346748b5647f0381c0 to your computer and use it in GitHub Desktop.
requires
~/Documents/julia  master  j6  ✓  19:55:43
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.6.1-pre.unknown (2017-10-07 01:18 UTC)
_/ |\__'_|_|_|\__'_| | Commit 389b23c* (3 days old release-0.6)
|__/ | x86_64-redhat-linux
julia> module Foo
using Requires
@show @macroexpand @init println("init")
@init println("init")
end
@macroexpand(@init(println("init"))) = quote # /home/basti/.julia/v0.6/Requires/src/init.jl, line 16:
begin # /home/basti/.julia/v0.6/Requires/src/init.jl, line 5:
if !((Requires.isdefined)(:__inits__)) # /home/basti/.julia/v0.6/Requires/src/init.jl, line 6:
const __inits__ = (Requires.Function)[]
end # /home/basti/.julia/v0.6/Requires/src/init.jl, line 8:
if !((Requires.isdefined)(:__init__)) # /home/basti/.julia/v0.6/Requires/src/init.jl, line 9:
__init__() = begin # /home/basti/.julia/v0.6/Requires/src/init.jl, line 9:
for f = __inits__ # /home/basti/.julia/v0.6/Requires/src/init.jl, line 24:
f()
end
end
end
end # /home/basti/.julia/v0.6/Requires/src/init.jl, line 17:
(Requires.push!)(__inits__, (()->begin # /home/basti/.julia/v0.6/Requires/src/init.jl, line 17:
println("init")
end)) # /home/basti/.julia/v0.6/Requires/src/init.jl, line 18:
Requires.nothing
end
init
Foo
---------------------------------------------------------- vs ---------------------------------------------------------
~/Documents/julia  master  julia --depwarn=no  ✓  19:55:19
_
_ _ _(_)_ | A fresh approach to technical computing
(_) | (_) (_) | Documentation: https://docs.julialang.org
_ _ _| |_ __ _ | Type "?help" for help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 0.7.0-DEV.2097 (2017-10-10 05:01 UTC)
_/ |\__'_|_|_|\__'_| | Commit c61aa27 (0 days old master)
|__/ | x86_64-redhat-linux
julia> module Foo
using Requires
@show @macroexpand @init println("init")
@init println("init")
end
#= REPL[1]:3 =# @macroexpand(#= REPL[1]:3 =# @init(println("init"))) = quote
#= /home/basti/.julia/v0.7/Requires/src/init.jl:16 =#
begin
#= /home/basti/.julia/v0.7/Requires/src/init.jl:5 =#
if !((Requires.isdefined)(:__inits__))
#= /home/basti/.julia/v0.7/Requires/src/init.jl:6 =#
const Requires.__inits__ = (Requires.Function)[]
end
#= /home/basti/.julia/v0.7/Requires/src/init.jl:8 =#
if !((Requires.isdefined)(:__init__))
#= /home/basti/.julia/v0.7/Requires/src/init.jl:9 =#
(Requires.__init__)() = begin
#= /home/basti/.julia/v0.7/Requires/src/init.jl:9 =#
for #2#f = Requires.__inits__
#= /home/basti/.julia/v0.7/Requires/src/init.jl:24 =#
#2#f()
end
end
end
end
#= /home/basti/.julia/v0.7/Requires/src/init.jl:17 =#
(Requires.push!)(__inits__, (()->begin
#= /home/basti/.julia/v0.7/Requires/src/init.jl:17 =#
println("init")
end))
#= /home/basti/.julia/v0.7/Requires/src/init.jl:18 =#
Requires.nothing
end
ERROR: UndefVarError: __inits__ not defined
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment