Created
August 30, 2021 14:54
-
-
Save devmotion/077af8c2a35d49964fdde7d1b3a593ea to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
julia> using DynamicPPL | |
julia> @model function demo4(n, ::Type{TV}=Vector{Float64}) where {TV} | |
m ~ Normal() | |
x = TV(undef, n) | |
@show __varinfo__ | |
for i in eachindex(x) | |
x[i] ~ Normal(m, 1.0) | |
end | |
end | |
(type-error car cons ()) | |
unexpected error: #0 (caddr (:: (curly Type TV))) | |
#1 (resolve-expansion-vars- | |
(kw (:: (curly Type TV)) (curly Vector Float64)) | |
((n . |#118#n|) (|#unused#| . |#119##unused#|) (TV . |#120#TV|)) | |
#<julia: DynamicPPL> () #t) | |
#2 (resolve-in-function-lhs | |
(call (escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) (curly Vector Float64))) | |
((n . |#118#n|) (|#unused#| . |#119##unused#|) (TV . |#120#TV|)) | |
#<julia: DynamicPPL> () #f) | |
#3 (resolve-in-function-lhs | |
(where (call (escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) (curly Vector Float64))) | |
TV) | |
((n . |#118#n|) (|#unused#| . |#119##unused#|) (TV . |#120#TV|)) | |
#<julia: DynamicPPL> () #f) | |
#4 (resolve-expansion-vars- | |
(function (where (call (escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) | |
(curly Vector Float64))) | |
TV) | |
(block (line 1 |REPL[4]|) (return (call #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F> | |
(inert demo4) (escape demo4) | |
(call (curly NamedTuple (tuple | |
(inert n) (inert TV))) | |
(tuple n TV)) | |
(call (curly NamedTuple (tuple | |
(inert TV))) | |
(tuple (curly Vector | |
Float64))))))) | |
((n . |#118#n|) (|#unused#| . |#119##unused#|) (TV . |#120#TV|)) | |
#<julia: DynamicPPL> () #f) | |
#5 (resolve-expansion-vars- | |
(block (meta doc) (function (where (call (escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) | |
(curly Vector Float64))) | |
TV) | |
(block (line 1 |REPL[4]|) | |
(return (call #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F> | |
(inert demo4) (escape demo4) | |
(call (curly NamedTuple (tuple | |
(inert n) (inert TV))) | |
(tuple n TV)) | |
(call (curly NamedTuple (tuple | |
(inert TV))) | |
(tuple (curly Vector | |
Float64)))))))) | |
() #<julia: DynamicPPL> () #f) | |
#6 (resolve-expansion-vars- | |
(block (function (where (call (escape demo4) (parameters) | |
(:: __model__ #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F>) | |
(:: __varinfo__ #<julia: DynamicPPL.AbstractVarInfo>) | |
(:: __context__ #<julia: DynamicPPL.AbstractContext>) | |
n (:: (curly Type TV))) | |
TV) | |
(block (line 1 |REPL[4]|) | |
(block (line 1 |REPL[4]|) | |
(line 2 |REPL[4]|) | |
(block (= |##vn#286| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert m)))) | |
(= |##inds#287| (tuple)) | |
(= |##isassumption#288| (block (if (call | |
#<julia: DynamicPPL.contextual_isassumption> __context__ |##vn#286|) | |
(block (if (|\|\|| (call ! (call #<julia: DynamicPPL.inargnames> |##vn#286| | |
__model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#286| __model__)) | |
(block (true)) (block (call === m missing)))) | |
(block (false))))) | |
(if |##isassumption#288| (block (= m (call | |
#<julia: DynamicPPL.tilde_assume!> __context__ (... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal)) | |
|##vn#286|)) | |
|##inds#287| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#286| | |
__model__)) | |
(block (= m (call #<julia: DynamicPPL.getvalue_nested> | |
__context__ |##vn#286|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal)) | |
m |##vn#286| |##inds#287| | |
__varinfo__)))) | |
(line 3 |REPL[4]|) | |
(= x (call TV undef n)) | |
(line 4 |REPL[4]|) | |
(block (call (globalref #<julia: Base> println) | |
#<julia: "__varinfo__ = "> | |
(call (globalref #<julia: Base> | |
repr) | |
(block (line 1040 show.jl) | |
(local (= |#101#value| | |
__varinfo__))))) | |
|#101#value|) | |
(line 5 |REPL[4]|) | |
(for (= i (call eachindex x)) | |
(block (= |##vn#289| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert x)) | |
(tuple (tuple i)))) | |
(= |##inds#290| (tuple (tuple i))) | |
(= |##isassumption#291| (block (if (call | |
#<julia: DynamicPPL.contextual_isassumption> __context__ |##vn#289|) | |
(block (if (|\|\|| (call ! (call #<julia: DynamicPPL.inargnames> |##vn#289| | |
__model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#289| __model__)) | |
(block (true)) (block (call === (call #<julia: Base.maybeview> x | |
i) | |
missing)))) | |
(block (false))))) | |
(if |##isassumption#291| (block (= (ref | |
x i) | |
(call #<julia: DynamicPPL.tilde_assume!> __context__ | |
(... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal m | |
#<julia: 1>)) | |
|##vn#289|)) | |
|##inds#290| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#289| __model__)) | |
(block (= (ref x i) | |
(call #<julia: DynamicPPL.getvalue_nested> | |
__context__ |##vn#289|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal m | |
#<julia: 1>)) | |
(call #<julia: Base.maybeview> | |
x i) | |
|##vn#289| |##inds#290| | |
__varinfo__)))))))) | |
(block (meta doc) (function (where (call (escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) | |
(curly Vector Float64))) | |
TV) | |
(block (line 1 |REPL[4]|) | |
(return (call #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F> | |
(inert demo4) (escape | |
demo4) | |
(call (curly | |
NamedTuple (tuple | |
(inert n) (inert TV))) | |
(tuple n TV)) | |
(call (curly | |
NamedTuple (tuple | |
(inert TV))) | |
(tuple (curly | |
Vector Float64))))))))) | |
() #<julia: DynamicPPL> () #f) | |
#7 (julia-expand-macroscopes- | |
(block (softscope (true)) (hygienic-scope (block (function (where (call (escape | |
demo4) | |
(parameters) (:: __model__ #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F>) | |
(:: __varinfo__ #<julia: DynamicPPL.AbstractVarInfo>) | |
(:: __context__ #<julia: DynamicPPL.AbstractContext>) n (:: (curly Type TV))) | |
TV) | |
(block (line 1 | |
|REPL[4]|) | |
(block (line | |
1 |REPL[4]|) | |
(line 2 |REPL[4]|) (block (= |##vn#286| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert m)))) | |
(= |##inds#287| (tuple)) | |
(= |##isassumption#288| (block (if (call #<julia: DynamicPPL.contextual_isassumption> | |
__context__ |##vn#286|) | |
(block (if (|\|\|| | |
(call ! (call #<julia: DynamicPPL.inargnames> |##vn#286| __model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#286| __model__)) | |
(block (true)) (block (call === m missing)))) | |
(block (false))))) | |
(if |##isassumption#288| (block (= m (call #<julia: DynamicPPL.tilde_assume!> | |
__context__ (... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> (call | |
Normal)) | |
|##vn#286|)) | |
|##inds#287| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#286| __model__)) | |
(block (= m (call #<julia: DynamicPPL.getvalue_nested> | |
__context__ | |
|##vn#286|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal)) | |
m |##vn#286| |##inds#287| | |
__varinfo__)))) | |
(line 3 |REPL[4]|) (= x (call TV undef n)) | |
(line 4 |REPL[4]|) (block (call (globalref #<julia: Base> println) | |
#<julia: "__varinfo__ = "> | |
(call (globalref #<julia: Base> repr) | |
(block (line 1040 show.jl) | |
(local (= |#101#value| | |
__varinfo__))))) | |
|#101#value|) | |
(line 5 |REPL[4]|) (for (= i (call eachindex x)) | |
(block (= |##vn#289| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert x)) | |
(tuple (tuple i)))) | |
(= |##inds#290| (tuple (tuple i))) | |
(= |##isassumption#291| (block (if (call #<julia: DynamicPPL.contextual_isassumption> | |
__context__ |##vn#289|) | |
(block (if (|\|\|| | |
(call ! (call #<julia: DynamicPPL.inargnames> |##vn#289| __model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#289| __model__)) | |
(block (true)) (block (call === (call #<julia: Base.maybeview> x i) missing)))) | |
(block (false))))) | |
(if |##isassumption#291| (block (= (ref x i) | |
(call #<julia: DynamicPPL.tilde_assume!> | |
__context__ (... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal m | |
#<julia: 1>)) | |
|##vn#289|)) | |
|##inds#290| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#289| __model__)) | |
(block (= (ref x i) | |
(call #<julia: DynamicPPL.getvalue_nested> | |
__context__ | |
|##vn#289|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal | |
m #<julia: 1>)) | |
(call #<julia: Base.maybeview> | |
x i) | |
|##vn#289| |##inds#290| | |
__varinfo__)))))))) | |
(block (meta doc) | |
(function (where (call | |
(escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) (curly Vector Float64))) | |
TV) | |
(block (line | |
1 |REPL[4]|) | |
(return (call #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F> | |
(inert demo4) (escape demo4) | |
(call (curly NamedTuple (tuple (inert n) (inert TV))) | |
(tuple n TV)) | |
(call (curly NamedTuple (tuple (inert TV))) | |
(tuple (curly Vector Float64))))))))) | |
#<julia: DynamicPPL>))) | |
#8 (expand-toplevel-expr-- | |
(block (softscope (true)) (hygienic-scope (block (function (where (call (escape | |
demo4) | |
(parameters) (:: __model__ #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F>) | |
(:: __varinfo__ #<julia: DynamicPPL.AbstractVarInfo>) | |
(:: __context__ #<julia: DynamicPPL.AbstractContext>) n (:: (curly Type TV))) | |
TV) | |
(block (line 1 | |
|REPL[4]|) | |
(block (line | |
1 |REPL[4]|) | |
(line 2 |REPL[4]|) (block (= |##vn#286| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert m)))) | |
(= |##inds#287| (tuple)) | |
(= |##isassumption#288| (block (if (call #<julia: DynamicPPL.contextual_isassumption> | |
__context__ |##vn#286|) | |
(block (if (|\|\|| | |
(call ! (call #<julia: DynamicPPL.inargnames> |##vn#286| __model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#286| __model__)) | |
(block (true)) (block (call === m missing)))) | |
(block (false))))) | |
(if |##isassumption#288| (block (= m (call #<julia: DynamicPPL.tilde_assume!> | |
__context__ (... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> (call | |
Normal)) | |
|##vn#286|)) | |
|##inds#287| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#286| __model__)) | |
(block (= m (call #<julia: DynamicPPL.getvalue_nested> | |
__context__ | |
|##vn#286|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal)) | |
m |##vn#286| |##inds#287| | |
__varinfo__)))) | |
(line 3 |REPL[4]|) (= x (call TV undef n)) | |
(line 4 |REPL[4]|) (block (call (globalref #<julia: Base> println) | |
#<julia: "__varinfo__ = "> | |
(call (globalref #<julia: Base> repr) | |
(block (line 1040 show.jl) | |
(local (= |#101#value| | |
__varinfo__))))) | |
|#101#value|) | |
(line 5 |REPL[4]|) (for (= i (call eachindex x)) | |
(block (= |##vn#289| (call (curly #<julia: AbstractPPL.VarName{sym, T} where T<:Tuple where sym> | |
(inert x)) | |
(tuple (tuple i)))) | |
(= |##inds#290| (tuple (tuple i))) | |
(= |##isassumption#291| (block (if (call #<julia: DynamicPPL.contextual_isassumption> | |
__context__ |##vn#289|) | |
(block (if (|\|\|| | |
(call ! (call #<julia: DynamicPPL.inargnames> |##vn#289| __model__)) | |
(call #<julia: DynamicPPL.inmissings> |##vn#289| __model__)) | |
(block (true)) (block (call === (call #<julia: Base.maybeview> x i) missing)))) | |
(block (false))))) | |
(if |##isassumption#291| (block (= (ref x i) | |
(call #<julia: DynamicPPL.tilde_assume!> | |
__context__ (... (call #<julia: DynamicPPL.unwrap_right_vn> | |
(call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal m | |
#<julia: 1>)) | |
|##vn#289|)) | |
|##inds#290| __varinfo__))) | |
(block (if (call ! (call #<julia: DynamicPPL.inargnames> | |
|##vn#289| __model__)) | |
(block (= (ref x i) | |
(call #<julia: DynamicPPL.getvalue_nested> | |
__context__ | |
|##vn#289|)))) | |
(call #<julia: DynamicPPL.tilde_observe!> | |
__context__ (call #<julia: DynamicPPL.check_tilde_rhs> | |
(call Normal | |
m #<julia: 1>)) | |
(call #<julia: Base.maybeview> | |
x i) | |
|##vn#289| |##inds#290| | |
__varinfo__)))))))) | |
(block (meta doc) | |
(function (where (call | |
(escape demo4) (parameters) n | |
(kw (:: (curly Type TV)) (curly Vector Float64))) | |
TV) | |
(block (line | |
1 |REPL[4]|) | |
(return (call #<julia: DynamicPPL.Model{F, argnames, defaultnames, missings, Targs, Tdefaults, Ctx} where Ctx<:DynamicPPL.AbstractContext where Tdefaults where Targs where missings where defaultnames where argnames where F> | |
(inert demo4) (escape demo4) | |
(call (curly NamedTuple (tuple (inert n) (inert TV))) | |
(tuple n TV)) | |
(call (curly NamedTuple (tuple (inert TV))) | |
(tuple (curly Vector Float64))))))))) | |
#<julia: DynamicPPL>)) | |
|REPL[4]| 1) | |
ERROR: syntax: malformed expression | |
Stacktrace: | |
[1] top-level scope | |
@ REPL[4]:1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment