Package evaluation to load ToolipsUDP on Julia 1.14.0-DEV.2309 (6e1a27e459*) started at 2026-06-06T09:39:50.694 ################################################################################ # Set-up # Set-up completed after 0.14s ################################################################################ # Installation # Installing ToolipsUDP... Resolving package versions... Installed ConcurrentUtilities ─ v2.5.1 Installed CodecZlib ─────────── v0.7.8 Installed ExceptionUnwrapping ─ v0.1.11 Installed Toolips ───────────── v0.3.15 Installed URIs ──────────────── v1.6.1 Installed MbedTLS ───────────── v1.1.10 Installed TranscodingStreams ── v0.11.3 Installed BitFlags ──────────── v0.1.10 Installed ParametricProcesses ─ v0.1.3 Installed PrecompileTools ───── v1.3.4 Installed OpenSSL ───────────── v1.6.1 Installed SimpleBufferStream ── v1.2.0 Installed MbedTLS_jll ───────── v2.28.1010+0 Installed LoggingExtras ─────── v1.2.0 Installed ToolipsServables ──── v0.2.11 Installed ToolipsUDP ────────── v0.3.0 Installed Crayons ───────────── v4.1.1 Installed HTTP ──────────────── v1.11.0 Installed JLLWrappers ───────── v1.8.0 Installed Preferences ───────── v1.5.2 Installing 1 artifacts Installed artifact MbedTLS 2.2 MiB Updating `~/.julia/environments/v1.14/Project.toml` [c24f5779] + ToolipsUDP v0.3.0 Updating `~/.julia/environments/v1.14/Manifest.toml` [d1d4a3ce] + BitFlags v0.1.10 [944b1d66] + CodecZlib v0.7.8 [f0e56b4a] + ConcurrentUtilities v2.5.1 [a8cc5b0e] + Crayons v4.1.1 [460bff9d] + ExceptionUnwrapping v0.1.11 ⌅ [cd3eb016] + HTTP v1.11.0 [692b3bcd] + JLLWrappers v1.8.0 [e6f89c97] + LoggingExtras v1.2.0 [739be429] + MbedTLS v1.1.10 [4d8831e6] + OpenSSL v1.6.1 [9ce9415f] + ParametricProcesses v0.1.3 [aea7be01] + PrecompileTools v1.3.4 [21216c6a] + Preferences v1.5.2 [777ac1f9] + SimpleBufferStream v1.2.0 [a47e2ad8] + Toolips v0.3.15 [bf3a9e68] + ToolipsServables v0.2.11 [c24f5779] + ToolipsUDP v0.3.0 [3bb67fe8] + TranscodingStreams v0.11.3 [5c2747f8] + URIs v1.6.1 [c8ffd9c3] + MbedTLS_jll v2.28.1010+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [f43a241f] + Downloads v1.7.0 [7b1f6079] + FileWatching v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [ac6e5ff7] + JuliaSyntaxHighlighting v1.13.0 [b27032c2] + LibCURL v1.0.0 [76f85450] + LibGit2 v1.11.0 [8f399da3] + Libdl v1.11.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [ca575930] + NetworkOptions v1.3.0 [44cfe95a] + Pkg v1.14.0 [de0858da] + Printf v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v1.13.0 [9e88b42a] + Serialization v1.11.0 [6462fe0b] + Sockets v1.11.0 [f489334b] + StyledStrings v1.13.0 [fa267f1f] + TOML v1.0.3 [a4e569a6] + Tar v1.10.0 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.5.2+0 [deac9b47] + LibCURL_jll v8.20.0+1 [e37daf67] + LibGit2_jll v1.9.4+0 [29816b5a] + LibSSH2_jll v1.11.101+0 [14a3606d] + MozillaCACerts_jll v2026.5.14 [458c3c95] + OpenSSL_jll v3.5.6+0 [efcefdf7] + PCRE2_jll v10.47.0+0 [83775a58] + Zlib_jll v1.3.2+0 [3161d3a3] + Zstd_jll v1.5.7+1 [8e850ede] + nghttp2_jll v1.69.0+0 [3f19e933] + p7zip_jll v17.8.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 13.06s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Project No packages added to or removed from `~/.julia/environments/pkgeval/Project.toml` Manifest No packages added to or removed from `~/.julia/environments/pkgeval/Manifest.toml` Precompiling package dependencies... Precompiling project... 40.2 s ✓ URIs 39.4 s ✓ BitFlags 55.3 s ✓ TranscodingStreams 0.7 s ✓ SimpleBufferStream 2.3 s ✓ Crayons 1.6 s ✓ ConcurrentUtilities 21.8 s ✓ ParametricProcesses 214.0 s ✓ ToolipsServables 2.6 s ✓ LoggingExtras 2.8 s ✓ Preferences 39.6 s ✓ ExceptionUnwrapping 80.9 s ✓ OpenSSL 20.0 s ✓ CodecZlib 3.2 s ✓ JLLWrappers 3.2 s ✓ PrecompileTools 3.7 s ✓ MbedTLS_jll 4.1 s ✓ MbedTLS ┌ Info: Ignoring an error that occurred during the precompilation workload │ exception = │ HTTP.RequestError: │ HTTP.Request: │ HTTP.Messages.Request: │ """ │ GET / HTTP/1.1 │ Host: localhost:57813 │ Accept: */* │ User-Agent: HTTP.jl/1.14.0-DEV.2309 │ Content-Length: 0 │ Accept-Encoding: gzip │ │ """Underlying error: │ MethodError: objects of type ReentrantLock are not callable. │ In case you did not try calling it explicitly, check if a ReentrantLock has been passed as an argument to a method that expects a callable instead. │ The object of type `ReentrantLock` exists, but no method is defined for this combination of argument types when trying to treat it as a callable object. │ Stacktrace: │ [1] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:143 [inlined] │ [2] (::HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}})(req::HTTP.Messages.Request; proxy::Nothing, socket_type::Type, socket_type_tls::Nothing, readtimeout::Int64, connect_timeout::Int64, logerrors::Bool, logtag::Nothing, closeimmediately::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.ConnectionRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:51 │ [3] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:60 [inlined] │ [4] (::Base.var"#45#46"{Base.var"#47#48"{ExponentialBackOff, HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##->###0"{HTTP.Messages.Request, Int64, typeof(HTTP.RetryRequest.FALSE), Base.RefValue{Int64}}, HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(args::HTTP.Messages.Request; kwargs::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ Base error.jl:311 │ [5] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:75 [inlined] │ [6] (::HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(req::HTTP.Messages.Request; retry::Bool, retries::Int64, retry_delays::ExponentialBackOff, retry_check::Function, retry_non_idempotent::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.RetryRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:10 │ [7] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:30 [inlined] │ [8] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:42 [inlined] │ [9] (::HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}})(req::HTTP.Messages.Request; cookies::Bool, cookiejar::HTTP.Cookies.CookieJar, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ @ HTTP.CookieRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:11 │ [10] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:19 [inlined] │ [11] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:71 [inlined] │ [12] (::HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}})(req::HTTP.Messages.Request; iofunction::Nothing, decompress::Nothing, basicauth::Bool, detect_content_type::Bool, canonicalize_headers::Bool, kw::@Kwargs{verbose::Int64}) │ @ HTTP.HeadersRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:8 │ [13] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:14 [inlined] │ [14] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:25 [inlined] │ [15] (::HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}})(req::HTTP.Messages.Request; redirect::Bool, redirect_limit::Int64, redirect_method::Nothing, forwardheaders::Bool, response_stream::Nothing, kw::@Kwargs{verbose::Int64}) │ @ HTTP.RedirectRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:8 │ [16] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:14 [inlined] │ [17] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:30 [inlined] │ [18] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}; copyheaders::Bool, response_stream::Nothing, http_version::HTTP.Strings.HTTPVersion, verbose::Int64, kw::@Kwargs{}) │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ [19] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:24 [inlined] │ [20] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}) │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ [21] request(stack::Function, method::String, url::String, h::Nothing, b::Vector{UInt8}, q::Nothing; headers::Nothing, body::Vector{UInt8}, query::Nothing, kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:463 │ [22] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [23] request(method::String, url::String, h::Nothing, b::Vector{UInt8}; headers::Nothing, body::Vector{UInt8}, query::Nothing, observelayers::Bool, kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [24] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [25] request(method::String, url::String, h::Nothing, b::Vector{UInt8}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [26] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ [27] request(method::String, url::String) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ [28] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ [29] get(a::String; kw::@Kwargs{}) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ [30] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ [31] get(a::String) │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ [32] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:36 [inlined] │ [33] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ [34] (::HTTP.var"##->###3"{String})() │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 [inlined] │ [35] withenv(::HTTP.var"##->###3"{String}, ::Pair{String, Union{Nothing, String}}, ::Vararg{Pair{String, Union{Nothing, String}}}) │ @ Base env.jl:265 │ [36] macro expansion │ @ ~/.julia/packages/PrecompileTools/QUxvR/src/workloads.jl:75 [inlined] │ [37] macro expansion │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ [38] top-level scope │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 │ [39] include(mapexpr::Function, mod::Module, _path::String) │ @ Base Base.jl:327 │ [40] top-level scope │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:651 │ [41] include(mod::Module, _path::String) │ @ Base Base.jl:326 │ [42] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ @ Base loading.jl:3296 │ [43] top-level scope │ @ stdin:5 │ [44] eval(m::Module, e::Any) │ @ Core boot.jl:521 │ [45] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [46] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [47] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [48] _start() └ @ Base client.jl:596 148.5 s ✓ HTTP ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ path::String │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ page::Function │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ function Route(path::String, f::Function) │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ params = ((methods(f))[1]).sig.parameters │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ rtype::Type{<:AbstractConnection} = Connection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ if length(params) > 1 │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ if params[2] <: AbstractConnection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ rtype = params[2] │ end │ end │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ new{rtype}(path, f) │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ │ [struct] │ │ true :: Value │ │ [<:] │ │ [curly] │ │ Route :: Identifier │ │ [<:] │ │ T :: Identifier │ │ AbstractConnection :: Identifier │ │ AbstractHTTPRoute :: Identifier │ │ [block] │ │ [::] │ │ path :: Identifier │ │ String :: Identifier │ │ [::] │ │ page :: Identifier │ │ Function :: Identifier │ │ [function] │ │ [call] │ │ Route :: Identifier │ │ [::] │ │ path :: Identifier │ │ String :: Identifier │ │ [::] │ │ f :: Identifier │ │ Function :: Identifier │ │ [block] │ │ [=] │ │ params :: Identifier │ │ [.] │ │ [.] │ │ [ref] │ │ [call] │ │ methods :: Identifier │ │ f :: Identifier │ │ 1 :: Value │ │ [inert] │ │ sig :: Identifier │ │ [inert] │ │ parameters :: Identifier │ │ [=] │ │ [::] │ │ rtype :: Identifier │ │ [curly] │ │ Type :: Identifier │ │ [<:] │ │ AbstractConnection :: Identifier │ │ Connection :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ params :: Identifier │ │ 1 :: Value │ │ [block] │ │ [if] │ │ [<:] │ │ [ref] │ │ params :: Identifier │ │ 2 :: Value │ │ AbstractConnection :: Identifier │ │ [block] │ │ [=] │ │ rtype :: Identifier │ │ [ref] │ │ params :: Identifier │ │ 2 :: Value │ │ [call] │ │ [curly] │ │ new :: Identifier │ │ rtype :: Identifier │ │ path :: Identifier │ │ f :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [struct] │ │ true :: Value │ macro_source=77 │ [<:] │ scope_layer=1 │ [curly] │ │ Route :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ AbstractConnection :: Identifier │ scope_layer=1 │ AbstractHTTPRoute :: Identifier │ scope_layer=1 │ [block] │ │ [::] │ │ path :: Identifier │ scope_layer=1 │ String :: Identifier │ scope_layer=1 │ [::] │ │ page :: Identifier │ scope_layer=1 │ Function :: Identifier │ scope_layer=1 │ [function] │ │ [call] │ │ Route :: Identifier │ scope_layer=1 │ [::] │ │ path :: Identifier │ scope_layer=1 │ String :: Identifier │ scope_layer=1 │ [::] │ │ f :: Identifier │ scope_layer=1 │ Function :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ params :: Identifier │ scope_layer=1 │ [.] │ │ [.] │ │ [ref] │ │ [call] │ │ methods :: Identifier │ scope_layer=1 │ f :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=77 │ [inert] │ │ sig :: Identifier │ │ [inert] │ │ parameters :: Identifier │ │ [=] │ │ [::] │ │ rtype :: Identifier │ scope_layer=1 │ [curly] │ │ Type :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ AbstractConnection :: Identifier │ scope_layer=1 │ Connection :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ params :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=77 │ [block] │ │ [if] │ │ [<:] │ scope_layer=1 │ [ref] │ │ params :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=77 │ AbstractConnection :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ rtype :: Identifier │ scope_layer=1 │ [ref] │ │ params :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=77 │ [call] │ │ [curly] │ │ new :: Identifier │ scope_layer=1 │ rtype :: Identifier │ scope_layer=1 │ path :: Identifier │ scope_layer=1 │ f :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=77 │ Toolips :: Value │ macro_source=77 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=77 │ Toolips :: Value │ │ [inert] │ jl_source=L65 │ Route :: Identifier │ │ [call] │ │ Base.Docs.docstr :: Value │ macro_source=77 │ [call] │ macro_source=77 │ Core.svec :: Value │ macro_source=77 │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ macro_source=77 │ [call] │ │ Dict{Symbol, Any} :: Value │ macro_source=77 │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value │ macro_source=77 │ :linenumber => 814 :: Value │ macro_source=77 │ :module => Toolips :: Value │ macro_source=77 │ [call] │ │ Pair :: Value │ macro_source=77 │ [inert] │ │ fields :: Identifier │ │ [call] │ macro_source=77 │ Dict{Symbol, Any} :: Value │ macro_source=77 │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ line = 814 └ mod = Toolips ERROR: LoadError: internal lowering bug: #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue Expression:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) Containing expressions:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection))  Detailed provenance:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =#  └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =#  └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =#  └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =#  └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection))  └─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3013 =#  └─ (<: AbstractConnection)  └─ (<: AbstractConnection)  └─ (<: AbstractConnection)  ├─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  Stacktrace:  [1] macro expansion  @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined]  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1130  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1251  [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854  [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [6] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1031  [7] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1191  [8] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1281  [9] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [10] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [11] top-level scope  @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144  [12] include(mod::Module, _path::String)  @ Base Base.jl:326  [13] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [14] top-level scope  @ stdin:5  [15] eval(m::Module, e::Any)  @ Core boot.jl:521  [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [17] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [18] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [19] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 in expression starting at stdin:5 ✗ Toolips ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:207  [12] top-level scope  @ ~/.julia/packages/ToolipsUDP/2NNDC/src/ToolipsUDP.jl:48  [13] include(mod::Module, _path::String)  @ Base Base.jl:326  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:521  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsUDP/2NNDC/src/ToolipsUDP.jl:1 in expression starting at stdin:5 ✗ ToolipsUDP 18 dependencies successfully precompiled in 931 seconds. 31 already precompiled. 1 dependency had output during precompilation: ┌ HTTP │ ┌ Info: Ignoring an error that occurred during the precompilation workload │ │ exception = │ │ HTTP.RequestError: │ │ HTTP.Request: │ │ HTTP.Messages.Request: │ │ """ │ │ GET / HTTP/1.1 │ │ Host: localhost:57813 │ │ Accept: */* │ │ User-Agent: HTTP.jl/1.14.0-DEV.2309 │ │ Content-Length: 0 │ │ Accept-Encoding: gzip │ │ │ │ """Underlying error: │ │ MethodError: objects of type ReentrantLock are not callable. │ │ In case you did not try calling it explicitly, check if a ReentrantLock has been passed as an argument to a method that expects a callable instead. │ │ The object of type `ReentrantLock` exists, but no method is defined for this combination of argument types when trying to treat it as a callable object. │ │ Stacktrace: │ │ [1] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:143 [inlined] │ │ [2] (::HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}})(req::HTTP.Messages.Request; proxy::Nothing, socket_type::Type, socket_type_tls::Nothing, readtimeout::Int64, connect_timeout::Int64, logerrors::Bool, logtag::Nothing, closeimmediately::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.ConnectionRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:51 │ │ [3] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/ConnectionRequest.jl:60 [inlined] │ │ [4] (::Base.var"#45#46"{Base.var"#47#48"{ExponentialBackOff, HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##->###0"{HTTP.Messages.Request, Int64, typeof(HTTP.RetryRequest.FALSE), Base.RefValue{Int64}}, HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(args::HTTP.Messages.Request; kwargs::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ Base error.jl:311 │ │ [5] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:75 [inlined] │ │ [6] (::HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}})(req::HTTP.Messages.Request; retry::Bool, retries::Int64, retry_delays::ExponentialBackOff, retry_check::Function, retry_non_idempotent::Bool, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.RetryRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:10 │ │ [7] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RetryRequest.jl:30 [inlined] │ │ [8] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:42 [inlined] │ │ [9] (::HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}})(req::HTTP.Messages.Request; cookies::Bool, cookiejar::HTTP.Cookies.CookieJar, kw::@Kwargs{iofunction::Nothing, decompress::Nothing, verbose::Int64}) │ │ @ HTTP.CookieRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:11 │ │ [10] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/CookieRequest.jl:19 [inlined] │ │ [11] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:71 [inlined] │ │ [12] (::HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}})(req::HTTP.Messages.Request; iofunction::Nothing, decompress::Nothing, basicauth::Bool, detect_content_type::Bool, canonicalize_headers::Bool, kw::@Kwargs{verbose::Int64}) │ │ @ HTTP.HeadersRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:8 │ │ [13] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/HeadersRequest.jl:14 [inlined] │ │ [14] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:25 [inlined] │ │ [15] (::HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}})(req::HTTP.Messages.Request; redirect::Bool, redirect_limit::Int64, redirect_method::Nothing, forwardheaders::Bool, response_stream::Nothing, kw::@Kwargs{verbose::Int64}) │ │ @ HTTP.RedirectRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:8 │ │ [16] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/RedirectRequest.jl:14 [inlined] │ │ [17] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:30 [inlined] │ │ [18] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}; copyheaders::Bool, response_stream::Nothing, http_version::HTTP.Strings.HTTPVersion, verbose::Int64, kw::@Kwargs{}) │ │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ │ [19] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:24 [inlined] │ │ [20] (::HTTP.MessageRequest.var"#messagelayer#makerequest##0"{HTTP.MessageRequest.var"#messagelayer##kw_body#makerequest#0##0"{HTTP.RedirectRequest.var"#redirectlayer#redirects##0"{HTTP.RedirectRequest.var"#redirectlayer##kw_body#redirects#0##0"{HTTP.HeadersRequest.var"#headerslayer#defaultheaders##0"{HTTP.HeadersRequest.var"#headerslayer##kw_body#defaultheaders#0##0"{HTTP.CookieRequest.var"#cookielayer#managecookies##0"{HTTP.CookieRequest.var"#cookielayer##kw_body#managecookies#0##0"{HTTP.RetryRequest.var"#retrylayer#manageretries##0"{HTTP.RetryRequest.var"#retrylayer##kw_body#manageretries#0##0"{HTTP.ConnectionRequest.var"#connectionlayer#connections##0"{HTTP.ConnectionRequest.var"#connectionlayer##kw_body#connections#0##0"{HTTP.TimeoutRequest.var"#timeoutlayer#timeouts##0"{HTTP.TimeoutRequest.var"#timeoutlayer##kw_body#timeouts#0##0"{HTTP.ExceptionRequest.var"#exceptionlayer#exceptions##0"{HTTP.ExceptionRequest.var"#exceptionlayer##kw_body#exceptions#0##0"{typeof(HTTP.StreamRequest.streamlayer)}}}}}}}}}}}}}}}})(method::String, url::URIs.URI, headers::Nothing, body::Vector{UInt8}) │ │ @ HTTP.MessageRequest ~/.julia/packages/HTTP/Y97L1/src/clientlayers/MessageRequest.jl:17 │ │ [21] request(stack::Function, method::String, url::String, h::Nothing, b::Vector{UInt8}, q::Nothing; headers::Nothing, body::Vector{UInt8}, query::Nothing, kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:463 │ │ [22] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [23] request(method::String, url::String, h::Nothing, b::Vector{UInt8}; headers::Nothing, body::Vector{UInt8}, query::Nothing, observelayers::Bool, kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [24] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [25] request(method::String, url::String, h::Nothing, b::Vector{UInt8}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [26] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:321 [inlined] │ │ [27] request(method::String, url::String) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:88 [inlined] │ │ [28] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ │ [29] get(a::String; kw::@Kwargs{}) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ │ [30] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:526 [inlined] │ │ [31] get(a::String) │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:521 [inlined] │ │ [32] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:36 [inlined] │ │ [33] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ │ [34] (::HTTP.var"##->###3"{String})() │ │ @ HTTP ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 [inlined] │ │ [35] withenv(::HTTP.var"##->###3"{String}, ::Pair{String, Union{Nothing, String}}, ::Vararg{Pair{String, Union{Nothing, String}}}) │ │ @ Base env.jl:265 │ │ [36] macro expansion │ │ @ ~/.julia/packages/PrecompileTools/QUxvR/src/workloads.jl:75 [inlined] │ │ [37] macro expansion │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:34 [inlined] │ │ [38] top-level scope │ │ @ ~/.julia/packages/HTTP/Y97L1/src/precompile.jl:4 │ │ [39] include(mapexpr::Function, mod::Module, _path::String) │ │ @ Base Base.jl:327 │ │ [40] top-level scope │ │ @ ~/.julia/packages/HTTP/Y97L1/src/HTTP.jl:651 │ │ [41] include(mod::Module, _path::String) │ │ @ Base Base.jl:326 │ │ [42] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ │ @ Base loading.jl:3296 │ │ [43] top-level scope │ │ @ stdin:5 │ │ [44] eval(m::Module, e::Any) │ │ @ Core boot.jl:521 │ │ [45] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ │ @ Base loading.jl:3132 │ │ [46] include_string(m::Module, txt::String, fname::String) │ │ @ Base loading.jl:3142 [inlined] │ │ [47] exec_options(opts::Base.JLOptions) │ │ @ Base client.jl:353 │ │ [48] _start() │ └ @ Base client.jl:596 └ Precompilation completed after 951.2s ################################################################################ # Loading # Loading ToolipsUDP... ┌ Info: JuliaLowering threw given input: │ code = │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ path::String │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ page::Function │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ function Route(path::String, f::Function) │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ params = ((methods(f))[1]).sig.parameters │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ rtype::Type{<:AbstractConnection} = Connection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ if length(params) > 1 │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ if params[2] <: AbstractConnection │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ rtype = params[2] │ end │ end │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ new{rtype}(path, f) │ end │ end) │ st0 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ [macrocall] │ │ @doc :: Identifier │ mod │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ │ [struct] │ │ true :: Value │ │ [<:] │ │ [curly] │ │ Route :: Identifier │ │ [<:] │ │ T :: Identifier │ │ AbstractConnection :: Identifier │ │ AbstractHTTPRoute :: Identifier │ │ [block] │ │ [::] │ │ path :: Identifier │ │ String :: Identifier │ │ [::] │ │ page :: Identifier │ │ Function :: Identifier │ │ [function] │ │ [call] │ │ Route :: Identifier │ │ [::] │ │ path :: Identifier │ │ String :: Identifier │ │ [::] │ │ f :: Identifier │ │ Function :: Identifier │ │ [block] │ │ [=] │ │ params :: Identifier │ │ [.] │ │ [.] │ │ [ref] │ │ [call] │ │ methods :: Identifier │ │ f :: Identifier │ │ 1 :: Value │ │ [inert] │ │ sig :: Identifier │ │ [inert] │ │ parameters :: Identifier │ │ [=] │ │ [::] │ │ rtype :: Identifier │ │ [curly] │ │ Type :: Identifier │ │ [<:] │ │ AbstractConnection :: Identifier │ │ Connection :: Identifier │ │ [if] │ │ [call] │ │ > :: Identifier │ │ [call] │ │ length :: Identifier │ │ params :: Identifier │ │ 1 :: Value │ │ [block] │ │ [if] │ │ [<:] │ │ [ref] │ │ params :: Identifier │ │ 2 :: Value │ │ AbstractConnection :: Identifier │ │ [block] │ │ [=] │ │ rtype :: Identifier │ │ [ref] │ │ params :: Identifier │ │ 2 :: Value │ │ [call] │ │ [curly] │ │ new :: Identifier │ │ rtype :: Identifier │ │ path :: Identifier │ │ f :: Identifier │ │ │ st1 = │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ [block] │ │ [=] │ │ val :: Identifier │ scope_layer=3 │ [struct] │ │ true :: Value │ macro_source=77 │ [<:] │ scope_layer=1 │ [curly] │ │ Route :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ T :: Identifier │ scope_layer=1 │ AbstractConnection :: Identifier │ scope_layer=1 │ AbstractHTTPRoute :: Identifier │ scope_layer=1 │ [block] │ │ [::] │ │ path :: Identifier │ scope_layer=1 │ String :: Identifier │ scope_layer=1 │ [::] │ │ page :: Identifier │ scope_layer=1 │ Function :: Identifier │ scope_layer=1 │ [function] │ │ [call] │ │ Route :: Identifier │ scope_layer=1 │ [::] │ │ path :: Identifier │ scope_layer=1 │ String :: Identifier │ scope_layer=1 │ [::] │ │ f :: Identifier │ scope_layer=1 │ Function :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ params :: Identifier │ scope_layer=1 │ [.] │ │ [.] │ │ [ref] │ │ [call] │ │ methods :: Identifier │ scope_layer=1 │ f :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=77 │ [inert] │ │ sig :: Identifier │ │ [inert] │ │ parameters :: Identifier │ │ [=] │ │ [::] │ │ rtype :: Identifier │ scope_layer=1 │ [curly] │ │ Type :: Identifier │ scope_layer=1 │ [<:] │ scope_layer=1 │ AbstractConnection :: Identifier │ scope_layer=1 │ Connection :: Identifier │ scope_layer=1 │ [if] │ │ [call] │ │ > :: Identifier │ scope_layer=1 │ [call] │ │ length :: Identifier │ scope_layer=1 │ params :: Identifier │ scope_layer=1 │ 1 :: Value │ macro_source=77 │ [block] │ │ [if] │ │ [<:] │ scope_layer=1 │ [ref] │ │ params :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=77 │ AbstractConnection :: Identifier │ scope_layer=1 │ [block] │ │ [=] │ │ rtype :: Identifier │ scope_layer=1 │ [ref] │ │ params :: Identifier │ scope_layer=1 │ 2 :: Value │ macro_source=77 │ [call] │ │ [curly] │ │ new :: Identifier │ scope_layer=1 │ rtype :: Identifier │ scope_layer=1 │ path :: Identifier │ scope_layer=1 │ f :: Identifier │ scope_layer=1 │ [call] │ │ Base.Docs.doc! :: Value │ macro_source=77 │ Toolips :: Value │ macro_source=77 │ [call] │ │ Base.Docs.Binding :: Value │ macro_source=77 │ Toolips :: Value │ │ [inert] │ jl_source=L65 │ Route :: Identifier │ │ [call] │ │ Base.Docs.docstr :: Value │ macro_source=77 │ [call] │ macro_source=77 │ Core.svec :: Value │ macro_source=77 │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ macro_source=77 │ [call] │ │ Dict{Symbol, Any} :: Value │ macro_source=77 │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value │ macro_source=77 │ :linenumber => 814 :: Value │ macro_source=77 │ :module => Toolips :: Value │ macro_source=77 │ [call] │ │ Pair :: Value │ macro_source=77 │ [inert] │ │ fields :: Identifier │ │ [call] │ macro_source=77 │ Dict{Symbol, Any} :: Value │ macro_source=77 │ [curly] │ │ Union :: Identifier │ scope_layer=1 │ val :: Identifier │ scope_layer=3 │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ line = 814 └ mod = Toolips ERROR: LoadError: internal lowering bug: #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue Expression:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) Containing expressions:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection))  Detailed provenance:  (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =#  └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =#  └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =#  └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =#  └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection))  └─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3013 =#  └─ (<: AbstractConnection)  └─ (<: AbstractConnection)  └─ (<: AbstractConnection)  ├─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859  └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f))))))  └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814  Stacktrace:  [1] macro expansion  @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined]  [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1130  [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1251  [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854  [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715  [6] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1031  [7] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1191  [8] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}})  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1281  [9] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33  [10] include(mapexpr::Function, mod::Module, _path::String)  @ Base Base.jl:327  [11] top-level scope  @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144  [12] include(mod::Module, _path::String)  @ Base Base.jl:326  [13] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [14] top-level scope  @ stdin:5  [15] eval(m::Module, e::Any)  @ Core boot.jl:521  [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [17] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [18] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [19] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 in expression starting at stdin:5 ERROR: LoadError: Precompiled image Base.PkgId(Base.UUID("a47e2ad8-fcf7-417c-9746-32b9bdf220bd"), "Toolips") not available with flags CacheFlags(; use_pkgimages=false, debug_level=1, check_bounds=1, inline=true, opt_level=0) Stacktrace:  [1] error(s::String)  @ Base error.jl:56  [2] __require_prelocked(pkg::Base.PkgId, env::String)  @ Base loading.jl:2837  [3] _require_prelocked(uuidkey::Base.PkgId, env::String)  @ Base loading.jl:2685  [4] macro expansion  @ loading.jl:2599 [inlined]  [5] macro expansion  @ lock.jl:376 [inlined]  [6] __require(into::Module, mod::Symbol)  @ Base loading.jl:2563  [7] require(into::Module, mod::Symbol)  @ Base loading.jl:2539 [inlined]  [8] eval_import_path(at::Module, from::Nothing, path::Expr, keyword::String)  @ Base module.jl:36 [inlined]  [9] eval_import_path_all(at::Module, path::Expr, keyword::String)  @ Base module.jl:60  [10] _eval_using(to::Module, path::Expr, flags::UInt8)  @ Base module.jl:137 [inlined]  [11] eval_using(to::Module, path::Expr)  @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/runtime.jl:207  [12] top-level scope  @ ~/.julia/packages/ToolipsUDP/2NNDC/src/ToolipsUDP.jl:48  [13] include(mod::Module, _path::String)  @ Base Base.jl:326  [14] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)  @ Base loading.jl:3296  [15] top-level scope  @ stdin:5  [16] eval(m::Module, e::Any)  @ Core boot.jl:521  [17] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)  @ Base loading.jl:3132  [18] include_string(m::Module, txt::String, fname::String)  @ Base loading.jl:3142 [inlined]  [19] exec_options(opts::Base.JLOptions)  @ Base client.jl:353  [20] _start()  @ Base client.jl:596 in expression starting at /home/pkgeval/.julia/packages/ToolipsUDP/2NNDC/src/ToolipsUDP.jl:1 in expression starting at stdin:5 2 dependencies had output during precompilation: ┌ ToolipsUDP │ [Output was shown above] └ ┌ Toolips │ ┌ Info: JuliaLowering threw given input: │ │ code = │ │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =# Core.@doc "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" mutable struct Route{T <: AbstractConnection} <: AbstractHTTPRoute │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:855 =# │ │ path::String │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:856 =# │ │ page::Function │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ │ function Route(path::String, f::Function) │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:857 =# │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:858 =# │ │ params = ((methods(f))[1]).sig.parameters │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# │ │ rtype::Type{<:AbstractConnection} = Connection │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:860 =# │ │ if length(params) > 1 │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:861 =# │ │ if params[2] <: AbstractConnection │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:862 =# │ │ rtype = params[2] │ │ end │ │ end │ │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:865 =# │ │ new{rtype}(path, f) │ │ end │ │ end) │ │ st0 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source,__macro_ctx__ │ │ [macrocall] │ │ │ @doc :: Identifier │ mod │ │ :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) :: Value │ │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ │ │ [struct] │ │ │ true :: Value │ │ │ [<:] │ │ │ [curly] │ │ │ Route :: Identifier │ │ │ [<:] │ │ │ T :: Identifier │ │ │ AbstractConnection :: Identifier │ │ │ AbstractHTTPRoute :: Identifier │ │ │ [block] │ │ │ [::] │ │ │ path :: Identifier │ │ │ String :: Identifier │ │ │ [::] │ │ │ page :: Identifier │ │ │ Function :: Identifier │ │ │ [function] │ │ │ [call] │ │ │ Route :: Identifier │ │ │ [::] │ │ │ path :: Identifier │ │ │ String :: Identifier │ │ │ [::] │ │ │ f :: Identifier │ │ │ Function :: Identifier │ │ │ [block] │ │ │ [=] │ │ │ params :: Identifier │ │ │ [.] │ │ │ [.] │ │ │ [ref] │ │ │ [call] │ │ │ methods :: Identifier │ │ │ f :: Identifier │ │ │ 1 :: Value │ │ │ [inert] │ │ │ sig :: Identifier │ │ │ [inert] │ │ │ parameters :: Identifier │ │ │ [=] │ │ │ [::] │ │ │ rtype :: Identifier │ │ │ [curly] │ │ │ Type :: Identifier │ │ │ [<:] │ │ │ AbstractConnection :: Identifier │ │ │ Connection :: Identifier │ │ │ [if] │ │ │ [call] │ │ │ > :: Identifier │ │ │ [call] │ │ │ length :: Identifier │ │ │ params :: Identifier │ │ │ 1 :: Value │ │ │ [block] │ │ │ [if] │ │ │ [<:] │ │ │ [ref] │ │ │ params :: Identifier │ │ │ 2 :: Value │ │ │ AbstractConnection :: Identifier │ │ │ [block] │ │ │ [=] │ │ │ rtype :: Identifier │ │ │ [ref] │ │ │ params :: Identifier │ │ │ 2 :: Value │ │ │ [call] │ │ │ [curly] │ │ │ new :: Identifier │ │ │ rtype :: Identifier │ │ │ path :: Identifier │ │ │ f :: Identifier │ │ │ │ │ st1 = │ │ SyntaxTree with attributes mod,kind,var_id,toplevel_pure,scope_type,macro_source,name_val,syntax_flags,meta,scope_layer,value,jl_source,is_toplevel_thunk,source │ │ [block] │ │ │ [=] │ │ │ val :: Identifier │ scope_layer=3 │ │ [struct] │ │ │ true :: Value │ macro_source=77 │ │ [<:] │ scope_layer=1 │ │ [curly] │ │ │ Route :: Identifier │ scope_layer=1 │ │ [<:] │ scope_layer=1 │ │ T :: Identifier │ scope_layer=1 │ │ AbstractConnection :: Identifier │ scope_layer=1 │ │ AbstractHTTPRoute :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [::] │ │ │ path :: Identifier │ scope_layer=1 │ │ String :: Identifier │ scope_layer=1 │ │ [::] │ │ │ page :: Identifier │ scope_layer=1 │ │ Function :: Identifier │ scope_layer=1 │ │ [function] │ │ │ [call] │ │ │ Route :: Identifier │ scope_layer=1 │ │ [::] │ │ │ path :: Identifier │ scope_layer=1 │ │ String :: Identifier │ scope_layer=1 │ │ [::] │ │ │ f :: Identifier │ scope_layer=1 │ │ Function :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [=] │ │ │ params :: Identifier │ scope_layer=1 │ │ [.] │ │ │ [.] │ │ │ [ref] │ │ │ [call] │ │ │ methods :: Identifier │ scope_layer=1 │ │ f :: Identifier │ scope_layer=1 │ │ 1 :: Value │ macro_source=77 │ │ [inert] │ │ │ sig :: Identifier │ │ │ [inert] │ │ │ parameters :: Identifier │ │ │ [=] │ │ │ [::] │ │ │ rtype :: Identifier │ scope_layer=1 │ │ [curly] │ │ │ Type :: Identifier │ scope_layer=1 │ │ [<:] │ scope_layer=1 │ │ AbstractConnection :: Identifier │ scope_layer=1 │ │ Connection :: Identifier │ scope_layer=1 │ │ [if] │ │ │ [call] │ │ │ > :: Identifier │ scope_layer=1 │ │ [call] │ │ │ length :: Identifier │ scope_layer=1 │ │ params :: Identifier │ scope_layer=1 │ │ 1 :: Value │ macro_source=77 │ │ [block] │ │ │ [if] │ │ │ [<:] │ scope_layer=1 │ │ [ref] │ │ │ params :: Identifier │ scope_layer=1 │ │ 2 :: Value │ macro_source=77 │ │ AbstractConnection :: Identifier │ scope_layer=1 │ │ [block] │ │ │ [=] │ │ │ rtype :: Identifier │ scope_layer=1 │ │ [ref] │ │ │ params :: Identifier │ scope_layer=1 │ │ 2 :: Value │ macro_source=77 │ │ [call] │ │ │ [curly] │ │ │ new :: Identifier │ scope_layer=1 │ │ rtype :: Identifier │ scope_layer=1 │ │ path :: Identifier │ scope_layer=1 │ │ f :: Identifier │ scope_layer=1 │ │ [call] │ │ │ Base.Docs.doc! :: Value │ macro_source=77 │ │ Toolips :: Value │ macro_source=77 │ │ [call] │ │ │ Base.Docs.Binding :: Value │ macro_source=77 │ │ Toolips :: Value │ │ │ [inert] │ jl_source=L65 │ │ Route :: Identifier │ │ │ [call] │ │ │ Base.Docs.docstr :: Value │ macro_source=77 │ │ [call] │ macro_source=77 │ │ Core.svec :: Value │ macro_source=77 │ │ "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" :: Value │ macro_source=77 │ │ [call] │ │ │ Dict{Symbol, Any} :: Value │ macro_source=77 │ │ :path => "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" :: Value │ macro_source=77 │ │ :linenumber => 814 :: Value │ macro_source=77 │ │ :module => Toolips :: Value │ macro_source=77 │ │ [call] │ │ │ Pair :: Value │ macro_source=77 │ │ [inert] │ │ │ fields :: Identifier │ │ │ [call] │ macro_source=77 │ │ Dict{Symbol, Any} :: Value │ macro_source=77 │ │ [curly] │ │ │ Union :: Identifier │ scope_layer=1 │ │ val :: Identifier │ scope_layer=3 │ │ │ │ file = "/home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl" │ │ line = 814 │ └ mod = Toolips │ ERROR: LoadError: internal lowering bug: │ #= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 =# - `jl_assert(!(haskey(ssa_rewrites, lhs_id)), _)`: multiple assignments to ssavalue │ Expression: │ (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) │ Containing expressions: │ (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) │ │ Detailed provenance: │ (= #₁₇ (call core.TypeVar :#T1 #₈₈/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:370 =# │ └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/closure_conversion.jl:197 =# │ └─ (= #₁₇ (call core.TypeVar :#T1 #₂₂/AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =# │ └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:233 =# │ └─ (= #₁₇ (call core.TypeVar :#T1 AbstractConnection)) │ └─ (call core.TypeVar :#T1 AbstractConnection) @#= /source/usr/share/julia/JuliaLowering/src/desugaring.jl:3013 =# │ └─ (<: AbstractConnection) │ └─ (<: AbstractConnection) │ └─ (<: AbstractConnection) │ ├─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:859 │ └─ (macrocall @doc :(#= /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 =#) "```julia\nRoute{T <: AbstractConnection} <: AbstractHTTPRoute\n```\n- path**::String**\n- page**::Function**\n\nThe `Route` is the most basic form of `AbstractRoute` -- the `AbstractHTTPRoute` that comes with `Toolips` and \nfills the role of basic routing for the framework. This constructor will likely *not* be called directly, \ninstead use `route(\"/\") do c::Connection` (or) `route(::Function, ::String)` to create routes.\n```julia\nusing Toolips\n\nroute(\"/\") do c::AbstractConnection\n write!(c, \"Hello world!\")\nend\n```\nRoutes are parametric `Toolips` types. `route!` is called once on the `Vector{<:AbstractRoute}`, \nyour `Connection.routes` -- the routes for your server, and then again on the `route` directly. \nThe base `Route` type, provided by `route`, is **parametric**. This allows for multiple dispatch routing \nbased on the annotated `Connection` type. For this, simply route two annotated `Routes` with `route`. \nConsider the following example:\n```julia\nmodule SampleServer\nusing Toolips\n\ndesktop = route(\"/\") do c::Connection\n write!(c, \"this client is on desktop\")\nend\n\nmobile = route(\"/\") do c::MobileConnection\n write!(c, \"this client is on mobile\")\nend\n\nhome = route(desktop, mobile)\n\nexport home\nend\n```\n" (struct true (<: (curly Route (<: T AbstractConnection)) AbstractHTTPRoute) (block (:: path String) (:: page Function) (function (call Route (:: path String) (:: f Function)) (block (= params (. (. (ref (call methods f) 1) (inert sig)) (inert parameters))) (= (:: rtype (curly Type (<: AbstractConnection))) Connection) (if (call > (call length params) 1) (block (if (<: (ref params 2) AbstractConnection) (block (= rtype (ref params 2)))))) (call (curly new rtype) path f)))))) │ └─ @ /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ │ Stacktrace: │ [1] macro expansion │ @ /source/usr/share/julia/JuliaLowering/src/ast.jl:23 [inlined] │ [2] renumber_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, input_code::Base.JuliaSyntax.SyntaxList{Dict{Symbol, Dict{Int64, Any}}, Vector{Int64}}, slot_rewrites::Dict{Int64, Int64}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1130 │ [3] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1251 │ [4] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:854 │ [5] compile(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}, needs_value::Bool, in_tail_pos::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:715 │ [6] compile_body(ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1031 │ [7] compile_lambda(outer_ctx::Base.JuliaLowering.LinearIRContext{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1191 │ [8] linearize_ir(ctx::Base.JuliaLowering.ClosureConversionCtx{Dict{Symbol, Dict{Int64, Any}}}, ex::Base.JuliaSyntax.SyntaxTree{Dict{Symbol, Dict{Int64, Any}}}) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/linear_ir.jl:1281 │ [9] core_lowering_hook(code::Any, mod::Module, file::String, line::UInt64, world::UInt64, _warn::Bool) │ @ Base.JuliaLowering /source/usr/share/julia/JuliaLowering/src/hooks.jl:33 │ [10] include(mapexpr::Function, mod::Module, _path::String) │ @ Base Base.jl:327 │ [11] top-level scope │ @ ~/.julia/packages/Toolips/JjQqz/src/Toolips.jl:144 │ [12] include(mod::Module, _path::String) │ @ Base Base.jl:326 │ [13] include_package_for_output(pkg::Base.PkgId, input::String, syntax_version::VersionNumber, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing) │ @ Base loading.jl:3296 │ [14] top-level scope │ @ stdin:5 │ [15] eval(m::Module, e::Any) │ @ Core boot.jl:521 │ [16] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String) │ @ Base loading.jl:3132 │ [17] include_string(m::Module, txt::String, fname::String) │ @ Base loading.jl:3142 [inlined] │ [18] exec_options(opts::Base.JLOptions) │ @ Base client.jl:353 │ [19] _start() │ @ Base client.jl:596 │ in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/core.jl:814 │ in expression starting at /home/pkgeval/.julia/packages/Toolips/JjQqz/src/Toolips.jl:11 │ in expression starting at stdin:5 └ ERROR: The following 2 packages failed to precompile: ToolipsUDP Failed to precompile ToolipsUDP [c24f5779-9d3b-4059-90d7-a34104ea6889] to "/home/pkgeval/.julia/compiled/v1.14/ToolipsUDP/jl_xcBL5z" (ProcessExited(1)). Toolips Failed to precompile Toolips [a47e2ad8-fcf7-417c-9746-32b9bdf220bd] to "/home/pkgeval/.julia/compiled/v1.14/Toolips/jl_YdtbrP" (ProcessExited(1)). Loading failed after 252.0s ERROR: LoadError: failed process: Process(`/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so -g1 --check-bounds=yes --inline=yes --check-bounds=yes --pkgimages=existing -e 'using ToolipsUDP'`, ProcessExited(1)) [1] Stacktrace: [1] pipeline_error(proc::Base.Process) @ Base process.jl:612 [inlined] [2] run(::Cmd; wait::Bool) @ Base process.jl:525 [3] run(::Cmd) @ Base process.jl:522 [4] top-level scope @ /PkgEval.jl/scripts/evaluate.jl:197 [5] include(mod::Module, _path::String) @ Base Base.jl:326 [6] exec_options(opts::Base.JLOptions) @ Base client.jl:355 [7] _start() @ Base client.jl:596 in expression starting at /PkgEval.jl/scripts/evaluate.jl:188 PkgEval failed after 1239.51s: package fails to precompile