Skip to content

Commit f4fd607

Browse files
committed
Improved precompilation, bump version
1 parent 51d8bba commit f4fd607

File tree

3 files changed

+57
-3
lines changed

3 files changed

+57
-3
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "ArgMacros"
22
uuid = "dbc42088-9de8-42a0-8ec8-2cd114e1ea3e"
33
authors = ["zachmatson"]
4-
version = "0.2.1"
4+
version = "0.2.2"
55

66
[deps]
77
TextWrap = "b718987f-49a8-5099-9789-dcd902bef87d"

src/ArgMacros.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
module ArgMacros
22

33
# Lower the optimization level for faster startup times, if supported
4-
if isdefined(Base, :Experimental) && isdefined(Base.Experimental, Symbol("@optlevel"))
5-
@eval Base.Experimental.@optlevel 1
4+
if isdefined(Base, :Experimental)
5+
if isdefined(Base.Experimental, Symbol("@compiler_options"))
6+
@eval Base.Experimental.@compiler_options compile=min optimize=1 infer=false
7+
elseif isdefined(Base.Experimental, Symbol("@optlevel"))
8+
@eval Base.Experimental.@optlevel 1
9+
end
610
end
711

812
using TextWrap
@@ -28,6 +32,9 @@ TODO
2832
escaping behavior
2933
=#
3034

35+
include("precompile.jl")
36+
_precompile_()
37+
3138
"""
3239
Performant, macro-only, pure Julia package for parsing command line arguments.
3340
Uses macros to generate the parsing code within your main function, directly storing

src/precompile.jl

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# ArgMacros
2+
# precompile.jl
3+
4+
# Made with help of SnoopCompile.jl
5+
function _precompile_()
6+
ccall(:jl_generating_output, Cint, ()) == 1 || return nothing
7+
8+
arg_types = (Float64, Float32, Int64, Int32, String, Symbol)
9+
for T in arg_types
10+
Base.precompile(Tuple{typeof(ArgMacros._converttype!),Type{T},String,String})
11+
Base.precompile(Tuple{typeof(ArgMacros._converttype!),Type{T},Nothing,String})
12+
for T2 in arg_types
13+
Base.precompile(Tuple{typeof(ArgMacros._converttype!),Type{T},T2,String})
14+
end
15+
Base.precompile(Tuple{typeof(convert),Type{Union{Nothing, T}},T})
16+
Base.precompile(Tuple{typeof(something),String,T})
17+
end
18+
Base.precompile(Tuple{typeof(ArgMacros._getmacrocalls),Expr})
19+
Base.precompile(Tuple{typeof(ArgMacros._get_macroname),Expr})
20+
Base.precompile(Tuple{typeof(ArgMacros._getargumentpairs),Expr})
21+
Base.precompile(Tuple{typeof(ArgMacros._getargumentpair),Expr})
22+
Base.precompile(Tuple{typeof(ArgMacros._validateorder),Expr})
23+
Base.precompile(Tuple{typeof(ArgMacros._split_arguments),Array{String,1}})
24+
Base.precompile(Tuple{typeof(ArgMacros._split_multiflag),String})
25+
Base.precompile(Tuple{typeof(ArgMacros._split_multiflag),SubString{String}})
26+
Base.precompile(Tuple{typeof(ArgMacros._help_check),Array{String,1},Expr})
27+
Base.precompile(Tuple{typeof(ArgMacros._get_option_idx),Array{String,1},Array{String,1}})
28+
Base.precompile(Tuple{typeof(ArgMacros._pop_argval!),Array{String,1},Array{String,1}})
29+
Base.precompile(Tuple{typeof(ArgMacros._pop_count!),Array{String,1},String})
30+
Base.precompile(Tuple{typeof(ArgMacros._pop_flag!),Array{String,1},Array{String,1}})
31+
Base.precompile(Tuple{typeof(ArgMacros._validateflags),Symbol,Tuple{String,String}})
32+
Base.precompile(Tuple{typeof(ArgMacros._validateflags),Symbol,Tuple{String}})
33+
34+
Base.precompile(Tuple{typeof(Base.allocatedinline),Type{ArgMacros.Argument}})
35+
Base.precompile(Tuple{Type{Base.GC_Diff},Base.GC_Num,Base.GC_Num})
36+
Base.precompile(Tuple{typeof(getproperty),Base.GC_Diff,Symbol})
37+
Base.precompile(Tuple{typeof(Base.gc_alloc_count),Base.GC_Diff})
38+
Base.precompile(Tuple{typeof(Base.gc_num)})
39+
Base.precompile(Tuple{typeof(include),String})
40+
Base.precompile(Tuple{typeof(isnothing),String})
41+
Base.precompile(Tuple{Type{Base.Generator},Type{QuoteNode},Array{Any,1}})
42+
Base.precompile(Tuple{typeof(collect),Base.Generator{Array{Any,1},Type{QuoteNode}}})
43+
Base.precompile(Tuple{typeof(collect),Base.Generator{Array{Any,1},typeof(esc)}})
44+
Base.precompile(Tuple{typeof(Base._compute_eltype),Type{Tuple{String,Expr}}})
45+
Base.precompile(Tuple{typeof(deleteat!),Array{String,1},Tuple{Int64,Int64}})
46+
Base.precompile(Tuple{typeof(deleteat!),Array{String,1},Int64})
47+
end

0 commit comments

Comments
 (0)