@@ -165,14 +165,16 @@ using StatsBase: mode
165165 model = compile (model_def, data, (;))
166166
167167 # single step
168- p_s, st_init = AbstractMCMC. step (
168+ p_s, st_init = Base. invokelatest (
169+ AbstractMCMC. step,
169170 Random. default_rng (),
170171 AbstractMCMC. LogDensityModel (model),
171172 Gibbs (model, IndependentMH ()),
172173 )
173174
174175 # following step
175- p_s, st = AbstractMCMC. step (
176+ p_s, st = Base. invokelatest (
177+ AbstractMCMC. step,
176178 Random. default_rng (),
177179 AbstractMCMC. LogDensityModel (model),
178180 Gibbs (model, IndependentMH ()),
@@ -230,7 +232,9 @@ using StatsBase: mode
230232
231233 # Test that sampling runs without error
232234 rng = Random. MersenneTwister (123 )
233- chain = sample (rng, model, gibbs, 100 ; progress= false , chain_type= Chains)
235+ chain = Base. invokelatest (
236+ sample, rng, model, gibbs, 100 ; progress= false , chain_type= Chains
237+ )
234238
235239 @test chain isa AbstractMCMC. AbstractChains
236240 @test size (chain, 1 ) == 100 # Number of samples
@@ -255,7 +259,8 @@ using StatsBase: mode
255259 # especially in a single-parameter model where Gibbs reduces to plain MH
256260 rng = Random. MersenneTwister (42 )
257261 gibbs = Gibbs (model, IndependentMH ())
258- chain = sample (
262+ chain = Base. invokelatest (
263+ sample,
259264 rng,
260265 model,
261266 gibbs,
@@ -312,7 +317,8 @@ using StatsBase: mode
312317 # Sample with Gibbs - need more samples for IndependentMH
313318 rng = Random. MersenneTwister (42 )
314319 gibbs = Gibbs (model, IndependentMH ())
315- chain = sample (
320+ chain = Base. invokelatest (
321+ sample,
316322 rng,
317323 model,
318324 gibbs,
@@ -350,7 +356,8 @@ using StatsBase: mode
350356 # Sample with Gibbs
351357 rng1 = Random. MersenneTwister (789 )
352358 gibbs = Gibbs (model, IndependentMH ())
353- chain_gibbs = sample (
359+ chain_gibbs = Base. invokelatest (
360+ sample,
354361 rng1,
355362 model,
356363 gibbs,
@@ -407,7 +414,8 @@ using StatsBase: mode
407414 gibbs = Gibbs (model, sampler_map)
408415
409416 rng = Random. MersenneTwister (999 )
410- chain = sample (
417+ chain = Base. invokelatest (
418+ sample,
411419 rng,
412420 model,
413421 gibbs,
@@ -448,11 +456,15 @@ using StatsBase: mode
448456
449457 # Take one step
450458 rng = Random. MersenneTwister (123 )
451- env1, state = AbstractMCMC . step (
452- rng, AbstractMCMC. LogDensityModel (model_init), gibbs
459+ env1, state = Base . invokelatest (
460+ AbstractMCMC . step, rng, AbstractMCMC. LogDensityModel (model_init), gibbs
453461 )
454- env2, _ = AbstractMCMC. step (
455- rng, AbstractMCMC. LogDensityModel (model_init), gibbs, state
462+ env2, _ = Base. invokelatest (
463+ AbstractMCMC. step,
464+ rng,
465+ AbstractMCMC. LogDensityModel (model_init),
466+ gibbs,
467+ state,
456468 )
457469
458470 # When updating a, b and c should remain fixed in that sub-step
@@ -541,8 +553,8 @@ using StatsBase: mode
541553 gibbs_invalid = Gibbs (model, sampler_map_invalid)
542554
543555 rng = Random. MersenneTwister (123 )
544- @test_throws ErrorException sample (
545- rng, model, gibbs_invalid, 10 ; progress= false , chain_type= Chains
556+ @test_throws ErrorException Base . invokelatest (
557+ sample, rng, model, gibbs_invalid, 10 ; progress= false , chain_type= Chains
546558 )
547559
548560 # Also test with NUTS
@@ -551,8 +563,8 @@ using StatsBase: mode
551563 @varname (σ) => IndependentMH (),
552564 )
553565 gibbs_nuts = Gibbs (model, sampler_map_nuts)
554- @test_throws ErrorException sample (
555- rng, model, gibbs_nuts, 10 ; progress= false , chain_type= Chains
566+ @test_throws ErrorException Base . invokelatest (
567+ sample, rng, model, gibbs_nuts, 10 ; progress= false , chain_type= Chains
556568 )
557569 end
558570
@@ -565,7 +577,9 @@ using StatsBase: mode
565577 gibbs2 = Gibbs (model, sampler_map2)
566578
567579 rng = Random. MersenneTwister (456 )
568- chain2 = sample (rng, model, gibbs2, 50 ; progress= false , chain_type= Chains)
580+ chain2 = Base. invokelatest (
581+ sample, rng, model, gibbs2, 50 ; progress= false , chain_type= Chains
582+ )
569583
570584 @test chain2 isa AbstractMCMC. AbstractChains
571585 @test size (chain2, 1 ) == 50
@@ -613,7 +627,8 @@ using StatsBase: mode
613627 model_init = initialize! (model, init_params)
614628
615629 rng = Random. MersenneTwister (789 )
616- chain = sample (
630+ chain = Base. invokelatest (
631+ sample,
617632 rng,
618633 model_init,
619634 gibbs,
@@ -664,7 +679,9 @@ using StatsBase: mode
664679 gibbs = Gibbs (model, sampler_map)
665680
666681 rng = StableRNG (1234 )
667- chain = sample (rng, model, gibbs, 1000 ; progress= false , chain_type= Chains)
682+ chain = Base. invokelatest (
683+ sample, rng, model, gibbs, 1000 ; progress= false , chain_type= Chains
684+ )
668685
669686 @test chain isa AbstractMCMC. AbstractChains
670687 @test size (chain, 1 ) == 1000
@@ -699,7 +716,9 @@ using StatsBase: mode
699716 gibbs = Gibbs (model, sampler_map)
700717
701718 rng = Random. MersenneTwister (123 )
702- chain = sample (rng, model, gibbs, 200 ; progress= false , chain_type= Chains)
719+ chain = Base. invokelatest (
720+ sample, rng, model, gibbs, 200 ; progress= false , chain_type= Chains
721+ )
703722
704723 @test chain isa AbstractMCMC. AbstractChains
705724 @test size (chain, 1 ) == 200
@@ -767,7 +786,8 @@ using StatsBase: mode
767786 model_init = initialize! (model, init_params)
768787
769788 rng = Random. MersenneTwister (789 )
770- chain = sample (
789+ chain = Base. invokelatest (
790+ sample,
771791 rng,
772792 model_init,
773793 gibbs,
@@ -828,14 +848,18 @@ using StatsBase: mode
828848
829849 # Manually step through to inspect states
830850 logdensitymodel = AbstractMCMC. LogDensityModel (model)
831- val, state = AbstractMCMC. step (rng, logdensitymodel, gibbs; model= model)
851+ val, state = Base. invokelatest (
852+ AbstractMCMC. step, rng, logdensitymodel, gibbs; model= model
853+ )
832854
833855 # Initial state should have empty sub_states
834856 @test isempty (state. sub_states)
835857
836858 # Step a few times
837859 for i in 1 : 3
838- val, state = AbstractMCMC. step (rng, logdensitymodel, gibbs, state; model= model)
860+ val, state = Base. invokelatest (
861+ AbstractMCMC. step, rng, logdensitymodel, gibbs, state; model= model
862+ )
839863 end
840864
841865 # After stepping, HMC samplers should have preserved states
@@ -846,7 +870,7 @@ using StatsBase: mode
846870 @test ! haskey (state. sub_states, [@varname (β)])
847871
848872 # Verify that the sampler still works correctly
849- chain = sample ( rng, model, gibbs, 100 ; progress= false )
873+ chain = Base . invokelatest (sample, rng, model, gibbs, 100 ; progress= false )
850874 @test length (chain) == 100
851875 end
852876end
0 commit comments