git: 106516fff7f1 - main - science/dynare: update 5.4 → 7.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 11 May 2026 07:15:35 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=106516fff7f11f27be0ed5241e4caf583042b78b
commit 106516fff7f11f27be0ed5241e4caf583042b78b
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-05-11 06:29:11 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-05-11 07:15:17 +0000
science/dynare: update 5.4 → 7.0
---
science/dynare/Makefile | 43 +-
science/dynare/distinfo | 6 +-
science/dynare/files/example.sh | 9 +
.../dynare/files/patch-dynare++_kord_journal.cc | 25 -
science/dynare/files/patch-meson.build | 26 +
.../dynare/files/patch-mex_build_octave_configure | 88 -
.../patch-mex_sources_libkorder_kord_journal.cc | 29 +
...tch-mex_sources_libkorder_utils_thread__pool.cc | 94 +
...iterations_local__state__space__iteration__2.cc | 46 +-
.../files/patch-preprocessor_src_DynareMain.cc | 16 +
.../files/patch-preprocessor_src_ModelTree.cc | 111 ++
.../files/patch-preprocessor_src_ModelTree.hh | 30 +
.../files/patch-preprocessor_src_meson.build | 21 +
science/dynare/pkg-plist | 1792 ++++++++++----------
14 files changed, 1293 insertions(+), 1043 deletions(-)
diff --git a/science/dynare/Makefile b/science/dynare/Makefile
index 5ea4a77940c6..4b8d1e2aa43a 100644
--- a/science/dynare/Makefile
+++ b/science/dynare/Makefile
@@ -1,6 +1,5 @@
PORTNAME= dynare
-DISTVERSION= 5.4
-PORTREVISION= 16
+DISTVERSION= 7.0
CATEGORIES= science # economics
MASTER_SITES= https://www.dynare.org/release/source/
@@ -16,42 +15,26 @@ BROKEN_aarch64= cannot open module file 'ieee_arithmetic.mod' for reading at (1)
BROKEN= requires OpenMP support that is missing on this architecture
.endif
-BUILD_DEPENDS= ${LOCALBASE}/include/boost/tokenizer.hpp:devel/boost-libs
-LIB_DEPENDS= libhdf5.so:science/hdf5 \
- libmatio.so:math/matio \
- libopenblas.so:math/openblas \
- libsz.so:science/libaec
+BUILD_DEPENDS= ${LOCALBASE}/include/boost/tokenizer.hpp:devel/boost-libs \
+ octave:math/octave
+LIB_DEPENDS= libopenblas.so:math/openblas \
+ libslicot.so:math/slicot \
+ libumfpack.so:math/suitesparse-umfpack
RUN_DEPENDS= epstool:graphics/epstool \
gnuplot:math/gnuplot \
+ octave:math/octave \
+ octave-forge-datatypes>0:math/octave-forge-datatypes \
+ octave-forge-statistics>0:math/octave-forge-statistics \
pstoedit:graphics/pstoedit \
- xfig:graphics/xfig # README says that these executables are required for the test suite
+ xfig:graphics/xfig
-USES= bison compiler:c++17-lang fortran gmake localbase:ldflags tar:xz tex
-USE_TEX= pdftex
+USES= bison compiler:c++20-lang fortran localbase:ldflags meson pkgconfig tar:xz
-GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --disable-matlab \
- --disable-doc
-
-FCFLAGS+= -fPIC # required because configure tests with -shared
+MESON_ARGS= -Dbuild_for=octave \
+ -Dpardiso=disabled
SUB_FILES= pkg-message
-OPTIONS_DEFINE= OCTAVE
-OPTIONS_DEFAULT= OCTAVE
-OPTIONS_SUB= yes
-
-OCTAVE_DESC= Integrate with Octave (main way to use Dynare)
-OCTAVE_CONFIGURE_ENABLE= octave
-OCTAVE_CONFIGURE_ON= --disable-mex-kalman-steady-state # Kalman Steady State MEX file for Octave - requires the non-free library slicot-5.0
-OCTAVE_BUILD_DEPENDS= octave:math/octave
-OCTAVE_LIB_DEPENDS= libfftw3.so:math/fftw3 \
- libfftw3f.so:math/fftw3-float \
- libgsl.so:math/gsl \
- libumfpack.so:math/suitesparse-umfpack
-OCTAVE_RUN_DEPENDS= octave:math/octave \
- octave-forge-statistics>0:math/octave-forge-statistics
-
post-install:
# remove empty directories, see https://git.dynare.org/Dynare/dynare/-/issues/1835
@${FIND} ${STAGEDIR}${PREFIX} -type d -empty -delete
diff --git a/science/dynare/distinfo b/science/dynare/distinfo
index 107aa2a671f1..7223caef9cd9 100644
--- a/science/dynare/distinfo
+++ b/science/dynare/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1679621855
-SHA256 (dynare-5.4.tar.xz) = c174a3ebcaf8c4566b9836abad8c04148011bec2ec610ded234f406bfbdd10f8
-SIZE (dynare-5.4.tar.xz) = 18005284
+TIMESTAMP = 1778438040
+SHA256 (dynare-7.0.tar.xz) = 3c1691f68386f4d74d3ca518d19df34d82644eba1db066964e77434487a3a083
+SIZE (dynare-7.0.tar.xz) = 23899676
diff --git a/science/dynare/files/example.sh b/science/dynare/files/example.sh
new file mode 100644
index 000000000000..955c3d260962
--- /dev/null
+++ b/science/dynare/files/example.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Run a Dynare example model (neo-classical Ramsey deterministic).
+# Dynare does not allow periods in directory names, so we copy the
+# .mod file to a temporary directory before running.
+tmpdir=$(mktemp -d)
+trap 'rm -rf "$tmpdir"' EXIT
+cp ./work/dynare-7.0/tests/optimal_policy/neo_ramsey_det_bytecode.mod "$tmpdir/"
+cd "$tmpdir"
+octave --eval 'dynare neo_ramsey_det_bytecode.mod'
diff --git a/science/dynare/files/patch-dynare++_kord_journal.cc b/science/dynare/files/patch-dynare++_kord_journal.cc
deleted file mode 100644
index 2abfa11f8d4a..000000000000
--- a/science/dynare/files/patch-dynare++_kord_journal.cc
+++ /dev/null
@@ -1,25 +0,0 @@
-- FreeBSD compatibility.
-
---- dynare++/kord/journal.cc.orig 2021-08-14 01:22:14 UTC
-+++ dynare++/kord/journal.cc
-@@ -33,7 +33,7 @@
- # include <sys/utsname.h> // For uname()
- # include <cstdlib> // For getloadavg()
- # include <unistd.h> // For sysconf()
--# ifdef __APPLE__
-+# if defined(__APPLE__) || defined(__FreeBSD__)
- # include <sys/types.h>
- # include <sys/sysctl.h>
- # endif
-@@ -57,9 +57,9 @@ SystemResources::pageSize()
- long
- SystemResources::availableMemory()
- {
--#if !defined(_WIN32) && !defined(__APPLE__)
-+#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__FreeBSD__)
- return sysconf(_SC_AVPHYS_PAGES)*pageSize();
--#elif defined(__APPLE__)
-+#elif defined(__APPLE__) || defined(__FreeBSD__)
- unsigned long usermem = 0;
- size_t len = sizeof usermem;
- static int mib[2] = { CTL_HW, HW_USERMEM };
diff --git a/science/dynare/files/patch-meson.build b/science/dynare/files/patch-meson.build
new file mode 100644
index 000000000000..3b33358e5ef6
--- /dev/null
+++ b/science/dynare/files/patch-meson.build
@@ -0,0 +1,26 @@
+-- FreeBSD compatibility: link the korder library and its test executables against pthreads.
+-- The korder library's thread_pool.cc uses std::thread which requires pthreads on FreeBSD.
+-- On Linux/macOS this is implicit; on FreeBSD it must be explicitly declared.
+
+--- meson.build.orig 2025-03-19 00:00:00 UTC
++++ meson.build 2025-03-19 00:00:00 UTC
+@@ -496,9 +496,10 @@
+ 'mex/sources/libkorder/dynamic_m.cc' ]
+ korder_incdir = include_directories('mex/sources/libkorder', 'mex/sources/libkorder/tl', 'mex/sources/libkorder/sylv',
+ 'mex/sources/libkorder/kord', 'mex/sources/libkorder/utils')
++threads_dep = dependency('threads')
+ korder_lib = static_library('korder', korder_src,
+ kwargs : static_library_kwargs + { 'include_directories' : static_library_kwargs.get('include_directories') + korder_incdir},
+- dependencies : [ blas_dep, lapack_dep, dl_dep ])
++ dependencies : [ blas_dep, lapack_dep, dl_dep, threads_dep ])
+
+ korder_mex_kwargs = mex_kwargs + { 'include_directories' : mex_kwargs.get('include_directories') + korder_incdir}
+ shared_module('gensylv', 'mex/sources/gensylv/gensylv.cc', kwargs : korder_mex_kwargs, link_with : korder_lib)
+@@ -515,6 +516,7 @@
+ 'cpp_args' : mex_kwargs['cpp_args'],
+ 'link_args' : exe_link_args,
+ 'build_rpath' : exe_rpath,
++ 'dependencies' : threads_dep,
+ 'link_with' : korder_lib }
+
+ k_order_sylv_test_exe = executable('k_order_sylv_test', [ 'mex/sources/libkorder/sylv/tests/MMMatrix.cc',
diff --git a/science/dynare/files/patch-mex_build_octave_configure b/science/dynare/files/patch-mex_build_octave_configure
deleted file mode 100644
index 774083adc441..000000000000
--- a/science/dynare/files/patch-mex_build_octave_configure
+++ /dev/null
@@ -1,88 +0,0 @@
-- remove fortran-related crashing section when fortran compiler is checked for cross-compilation
-- it's unclear why the fortran-built executable crashes
-
---- mex/build/octave/configure.orig 2022-04-23 05:48:46 UTC
-+++ mex/build/octave/configure
-@@ -3332,44 +3332,44 @@ _ACEOF
- ac_clean_files="$ac_clean_files conftest.out"
- # Check that the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
--$as_echo_n "checking whether we are cross compiling... " >&6; }
--if test "$cross_compiling" != yes; then
-- { { ac_try="$ac_link"
--case "(($ac_try" in
-- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-- *) ac_try_echo=$ac_try;;
--esac
--eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
--$as_echo "$ac_try_echo"; } >&5
-- (eval "$ac_link") 2>&5
-- ac_status=$?
-- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-- test $ac_status = 0; }
-- if { ac_try='./conftest$ac_cv_exeext'
-- { { case "(($ac_try" in
-- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-- *) ac_try_echo=$ac_try;;
--esac
--eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
--$as_echo "$ac_try_echo"; } >&5
-- (eval "$ac_try") 2>&5
-- ac_status=$?
-- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-- test $ac_status = 0; }; }; then
-- cross_compiling=no
-- else
-- if test "$cross_compiling" = maybe; then
-- cross_compiling=yes
-- else
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
--$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
--as_fn_error $? "cannot run Fortran compiled programs.
--If you meant to cross compile, use \`--host'.
--See \`config.log' for more details" "$LINENO" 5; }
-- fi
-- fi
--fi
-+#{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-+#$as_echo_n "checking whether we are cross compiling... " >&6; }
-+#if test "$cross_compiling" != yes; then
-+# { { ac_try="$ac_link"
-+#case "(($ac_try" in
-+# *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+# *) ac_try_echo=$ac_try;;
-+#esac
-+#eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+#$as_echo "$ac_try_echo"; } >&5
-+# (eval "$ac_link") 2>&5
-+# ac_status=$?
-+# $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+# test $ac_status = 0; }
-+# if { ac_try='./conftest$ac_cv_exeext'
-+# { { case "(($ac_try" in
-+# *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+# *) ac_try_echo=$ac_try;;
-+#esac
-+#eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-+#$as_echo "$ac_try_echo"; } >&5
-+# (eval "$ac_try") 2>&5
-+# ac_status=0
-+# $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+# test $ac_status = 0; }; }; then
-+# cross_compiling=no
-+# else
-+# if test "$cross_compiling" = maybe; then
-+# cross_compiling=yes
-+# else
-+# { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-+#$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+#as_fn_error $? "cannot run Fortran compiled programs.
-+#If you meant to cross compile, use \`--host'.
-+#See \`config.log' for more details" "$LINENO" 5; }
-+# fi
-+# fi
-+#fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
- $as_echo "$cross_compiling" >&6; }
-
diff --git a/science/dynare/files/patch-mex_sources_libkorder_kord_journal.cc b/science/dynare/files/patch-mex_sources_libkorder_kord_journal.cc
new file mode 100644
index 000000000000..ca7a6a3a4eb7
--- /dev/null
+++ b/science/dynare/files/patch-mex_sources_libkorder_kord_journal.cc
@@ -0,0 +1,29 @@
+-- FreeBSD compatibility: fix invalid preprocessor directive '#ifdef __APPLE__ || defined(__FreeBSD__)'
+-- (the '|| defined(...)' part is silently ignored by the preprocessor). The correct form is
+-- '#if defined(__APPLE__) || defined(__FreeBSD__)'.
+-- Also adds FreeBSD-specific memory query using sysctl(3) instead of sysconf(3), as
+-- _SC_AVPHYS_PAGES is not available on FreeBSD.
+
+--- mex/sources/libkorder/kord/journal.cc.orig 2025-03-19 00:00:00 UTC
++++ mex/sources/libkorder/kord/journal.cc 2025-03-19 00:00:00 UTC
+@@ -33,7 +33,7 @@
+ # include <sys/time.h> // For getrusage()
+ # include <sys/utsname.h> // For uname()
+ # include <unistd.h> // For sysconf()
+-# ifdef __APPLE__
++# if defined(__APPLE__) || defined(__FreeBSD__)
+ # include <sys/sysctl.h>
+ # include <sys/types.h>
+ # endif
+@@ -58,9 +58,9 @@
+ long
+ SystemResources::availableMemory()
+ {
+-#if !defined(_WIN32) && !defined(__APPLE__)
++#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ return sysconf(_SC_AVPHYS_PAGES) * pageSize();
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__FreeBSD__)
+ unsigned long usermem = 0;
+ size_t len = sizeof usermem;
+ static int mib[2] = {CTL_HW, HW_USERMEM};
diff --git a/science/dynare/files/patch-mex_sources_libkorder_utils_thread__pool.cc b/science/dynare/files/patch-mex_sources_libkorder_utils_thread__pool.cc
new file mode 100644
index 000000000000..01507a472805
--- /dev/null
+++ b/science/dynare/files/patch-mex_sources_libkorder_utils_thread__pool.cc
@@ -0,0 +1,94 @@
+-- FreeBSD compatibility: replace std::jthread and std::stop_token (C++20 features not yet
+-- available in FreeBSD's libc++) with std::thread and std::atomic<bool> for thread stop
+-- signalling.
+
+--- mex/sources/libkorder/utils/thread_pool.cc.orig 2026-05-10 20:43:59 UTC
++++ mex/sources/libkorder/utils/thread_pool.cc
+@@ -18,6 +18,7 @@
+ */
+
+ #include <algorithm>
++#include <atomic>
+ #include <cassert>
+ #include <condition_variable>
+ #include <map>
+@@ -45,7 +46,20 @@ std::mutex job_group_mut; // Shared by jobs in the job
+ std::map<job*, status> job_group_status;
+ std::mutex job_group_mut; // Shared by jobs in the job group
+
+-std::vector<std::jthread> threads;
++std::atomic<bool> stop_requested{false};
++std::vector<std::thread> threads;
++// Cleanup guard: destroyed before 'threads', so it joins all threads before they are destructed
++struct Cleanup
++{
++ ~Cleanup()
++ {
++ stop_requested = true;
++ thread_cv.notify_all();
++ for (auto& t : threads)
++ if (t.joinable())
++ t.join();
++ }
++} cleanup_guard;
+ } // End of unnamed namespace
+
+ void
+@@ -64,16 +78,19 @@ initialize(int thread_number)
+ if (static_cast<int>(threads.size()) == thread_number)
+ return;
+ else
+- threads.clear();
++ {
++ // Stop existing threads before clearing the vector
++ stop_requested = true;
++ thread_cv.notify_all();
++ for (auto& t : threads)
++ if (t.joinable())
++ t.join();
++ threads.clear();
++ stop_requested = false;
++ }
+
+ for (int i {0}; i < thread_number; i++)
+- /* Passing the stop_token by const reference is ok (and makes clang-tidy happier),
+- since the std::jthread constructor calls the lambda with the return argument of the
+- get_stop_token() method, which returns a stop_token by value; hence there is no lifetime
+- issue. See:
+- https://stackoverflow.com/questions/72990607/const-stdstop-token-or-just-stdstop-token-as-parameter-for-thread-funct
+- */
+- threads.emplace_back([](const std::stop_token& stoken) {
++ threads.emplace_back([]() {
+ std::unique_lock lk {global_mut};
+ job* selected_job;
+ status* selected_job_status;
+@@ -90,17 +107,20 @@ initialize(int thread_number)
+ return false;
+ };
+
+- while (!stoken.stop_requested())
+- if (thread_cv.wait(lk, stoken, pick_job))
+- {
+- lk.unlock();
+- selected_job->operator()(job_group_mut);
+- lk.lock();
++ while (!stop_requested)
++ {
++ thread_cv.wait(lk, [&] { return stop_requested.load() || pick_job(); });
++ if (!stop_requested)
++ {
++ lk.unlock();
++ selected_job->operator()(job_group_mut);
++ lk.lock();
+
+- *selected_job_status = status::done;
++ *selected_job_status = status::done;
+
+- director_cv.notify_one();
+- }
++ director_cv.notify_one();
++ }
++ }
+ });
+ }
+
diff --git a/science/dynare/files/patch-mex_sources_local__state__space__iterations_local__state__space__iteration__2.cc b/science/dynare/files/patch-mex_sources_local__state__space__iterations_local__state__space__iteration__2.cc
index 78fbffce6b66..c6380c9b904b 100644
--- a/science/dynare/files/patch-mex_sources_local__state__space__iterations_local__state__space__iteration__2.cc
+++ b/science/dynare/files/patch-mex_sources_local__state__space__iterations_local__state__space__iteration__2.cc
@@ -1,38 +1,42 @@
-- workaround for https://bugs.llvm.org/show_bug.cgi?id=49238
+-- FreeBSD compatibility: replace C++17 structured bindings with named tuple references.
+-- Clang's OpenMP implementation does not support capturing structured bindings in parallel
+-- regions (structured bindings have no address in the OpenMP data-sharing model).
---- mex/sources/local_state_space_iterations/local_state_space_iteration_2.cc.orig 2022-01-10 23:38:14 UTC
-+++ mex/sources/local_state_space_iterations/local_state_space_iteration_2.cc
-@@ -61,8 +61,14 @@ ss2Iteration_pruning(double *y2, double *y1, const dou
+--- mex/sources/local_state_space_iterations/local_state_space_iteration_2.cc.orig 2025-03-19 00:00:00 UTC
++++ mex/sources/local_state_space_iterations/local_state_space_iteration_2.cc 2025-03-19 00:00:00 UTC
+@@ -69,8 +69,15 @@
const double one = 1.0;
const blas_int ONE = 1;
#endif
- auto [ii1, ii2, ii3] = set_vector_of_indices(n, m); // vector indices for ghxx
- auto [jj1, jj2, jj3] = set_vector_of_indices(q, m); // vector indices for ghuu
-+ auto [ii1_, ii2_, ii3_] = set_vector_of_indices(n, m); // vector indices for ghxx
-+ auto ii1 = ii1_;
-+ auto ii2 = ii2_;
-+ auto ii3 = ii3_;
-+ auto [jj1_, jj2_, jj3_] = set_vector_of_indices(q, m); // vector indices for ghuu
-+ auto jj1 = jj1_;
-+ auto jj2 = jj2_;
-+ auto jj3 = jj3_;
++ // Use named tuple variables instead of structured bindings (clang OpenMP limitation)
++ auto ghxx_indices = set_vector_of_indices(n, m);
++ const auto& ii1 = std::get<0>(ghxx_indices);
++ const auto& ii2 = std::get<1>(ghxx_indices);
++ const auto& ii3 = std::get<2>(ghxx_indices);
++ auto ghuu_indices = set_vector_of_indices(q, m);
++ const auto& jj1 = std::get<0>(ghuu_indices);
++ const auto& jj2 = std::get<1>(ghuu_indices);
++ const auto& jj3 = std::get<2>(ghuu_indices);
#pragma omp parallel for num_threads(number_of_threads)
for (int particle = 0; particle < s; particle++)
{
-@@ -139,8 +145,14 @@ ss2Iteration(double *y, const double *yhat, const doub
+@@ -148,8 +155,15 @@
const double one = 1.0;
const blas_int ONE = 1;
#endif
- auto [ii1, ii2, ii3] = set_vector_of_indices(n, m); // vector indices for ghxx
- auto [jj1, jj2, jj3] = set_vector_of_indices(q, m); // vector indices for ghuu
-+ auto [ii1_, ii2_, ii3_] = set_vector_of_indices(n, m); // vector indices for ghxx
-+ auto ii1 = ii1_;
-+ auto ii2 = ii2_;
-+ auto ii3 = ii3_;
-+ auto [jj1_, jj2_, jj3_] = set_vector_of_indices(q, m); // vector indices for ghuu
-+ auto jj1 = jj1_;
-+ auto jj2 = jj2_;
-+ auto jj3 = jj3_;
++ // Use named tuple variables instead of structured bindings (clang OpenMP limitation)
++ auto ghxx_indices = set_vector_of_indices(n, m);
++ const auto& ii1 = std::get<0>(ghxx_indices);
++ const auto& ii2 = std::get<1>(ghxx_indices);
++ const auto& ii3 = std::get<2>(ghxx_indices);
++ auto ghuu_indices = set_vector_of_indices(q, m);
++ const auto& jj1 = std::get<0>(ghuu_indices);
++ const auto& jj2 = std::get<1>(ghuu_indices);
++ const auto& jj3 = std::get<2>(ghuu_indices);
#pragma omp parallel for num_threads(number_of_threads)
for (int particle = 0; particle < s; particle++)
{
diff --git a/science/dynare/files/patch-preprocessor_src_DynareMain.cc b/science/dynare/files/patch-preprocessor_src_DynareMain.cc
new file mode 100644
index 000000000000..3923dec9e352
--- /dev/null
+++ b/science/dynare/files/patch-preprocessor_src_DynareMain.cc
@@ -0,0 +1,16 @@
+-- FreeBSD compatibility: replace std::jthread and std::stop_token (C++20 features not yet
+-- available in FreeBSD's libc++ as of clang 19) with std::thread and std::atomic<bool> for
+-- thread stop signalling in the dynare preprocessor's MEX parallel compilation worker pool.
+-- Also adds a RAII MEXWorkersJoiner struct to safely join threads on program exit.
+
+--- preprocessor/src/DynareMain.cc.orig 2025-03-19 00:00:00 UTC
++++ preprocessor/src/DynareMain.cc 2025-03-19 00:00:00 UTC
+@@ -511,7 +511,7 @@
+ }
+
+ if (mod_file->use_dll)
+- ModelTree::initializeMEXCompilationWorkers(max(jthread::hardware_concurrency(), 1U), dynareroot,
++ ModelTree::initializeMEXCompilationWorkers(max(thread::hardware_concurrency(), 1U), dynareroot,
+ mexext);
+
+ if (json == JsonOutputPointType::parsing)
diff --git a/science/dynare/files/patch-preprocessor_src_ModelTree.cc b/science/dynare/files/patch-preprocessor_src_ModelTree.cc
new file mode 100644
index 000000000000..db16d1fcb0be
--- /dev/null
+++ b/science/dynare/files/patch-preprocessor_src_ModelTree.cc
@@ -0,0 +1,111 @@
+-- FreeBSD compatibility: replace std::jthread and std::stop_token (C++20 features not yet
+-- available in FreeBSD's libc++ as of clang 19) with std::thread and std::atomic<bool> for
+-- thread stop signalling in the dynare preprocessor's MEX parallel compilation worker pool.
+-- Also adds a RAII MEXWorkersJoiner struct to safely join threads on program exit.
+
+--- preprocessor/src/ModelTree.cc.orig 2025-03-19 00:00:00 UTC
++++ preprocessor/src/ModelTree.cc 2025-03-19 00:00:00 UTC
+@@ -47,7 +47,18 @@
+ vector<tuple<filesystem::path, set<filesystem::path>, string>> ModelTree::mex_compilation_queue;
+ set<filesystem::path> ModelTree::mex_compilation_ongoing, ModelTree::mex_compilation_done,
+ ModelTree::mex_compilation_failed;
+-vector<jthread> ModelTree::mex_compilation_workers;
++/* NB: stop_requested must be listed *before* workers so it is destroyed *after*
++ workers are joined (reverse destruction order). Workers rely on stop_requested
++ being valid while they run. */
++atomic<bool> ModelTree::mex_compilation_stop_requested{false};
++vector<thread> ModelTree::mex_compilation_workers;
++/* Declared after workers so it is destroyed first; its destructor signals all
++ worker threads to stop and joins them before the vector destructor runs
++ (which would call std::terminate on still-joinable threads). */
++static const struct MEXWorkersJoiner
++{
++ ~MEXWorkersJoiner() { ModelTree::stopMEXCompilationWorkers(); }
++} mex_workers_joiner;
+
+ void
+ ModelTree::copyHelper(const ModelTree& m)
+@@ -1961,13 +1972,7 @@
+ cout << "Spawning " << numworkers << " threads for compiling MEX files." << '\n';
+
+ for (int i {0}; i < numworkers; i++)
+- /* Passing the stop_token by const reference is ok (and makes clang-tidy happier),
+- since the std::jthread constructor calls the lambda with the return argument of the
+- get_stop_token() method, which returns a stop_token by value; hence there is no lifetime
+- issue. See:
+- https://stackoverflow.com/questions/72990607/const-stdstop-token-or-just-stdstop-token-as-parameter-for-thread-funct
+- */
+- mex_compilation_workers.emplace_back([](const stop_token& stoken) {
++ mex_compilation_workers.emplace_back([] {
+ unique_lock lk {mex_compilation_mut};
+ filesystem::path output;
+ string cmd;
+@@ -1989,23 +1994,27 @@
+ return false;
+ };
+
+- while (!stoken.stop_requested())
+- if (mex_compilation_cv.wait(lk, stoken, pick_job))
+- {
+- lk.unlock();
+- int r {system(cmd.c_str())};
+- lk.lock();
+- mex_compilation_ongoing.erase(output);
+- if (r)
+- mex_compilation_failed.insert(output);
+- else
+- mex_compilation_done.insert(output);
+- /* The object just compiled may be a prerequisite for several
+- other objects, so notify all waiting workers. Also needed to
+- notify the main thread when in
+- ModelTree::waitForMEXCompilationWorkers().*/
+- mex_compilation_cv.notify_all();
+- }
++ while (!mex_compilation_stop_requested)
++ {
++ mex_compilation_cv.wait(lk, [&pick_job] {
++ return mex_compilation_stop_requested.load() || pick_job();
++ });
++ if (mex_compilation_stop_requested)
++ break;
++ lk.unlock();
++ int r {system(cmd.c_str())};
++ lk.lock();
++ mex_compilation_ongoing.erase(output);
++ if (r)
++ mex_compilation_failed.insert(output);
++ else
++ mex_compilation_done.insert(output);
++ /* The object just compiled may be a prerequisite for several
++ other objects, so notify all waiting workers. Also needed to
++ notify the main thread when in
++ ModelTree::waitForMEXCompilationWorkers().*/
++ mex_compilation_cv.notify_all();
++ }
+ });
+
+ /* Set some environment variables needed for compilation on Windows/MATLAB
+@@ -2062,12 +2071,22 @@
+ for (const auto& p : mex_compilation_failed)
+ cerr << p.string() << " ";
+ cerr << '\n';
+- lk.unlock(); // So that threads can process their stoken
++ lk.unlock(); // Release lock so worker threads can exit
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ void
++ModelTree::stopMEXCompilationWorkers()
++{
++ mex_compilation_stop_requested = true;
++ mex_compilation_cv.notify_all();
++ for (auto& w : mex_compilation_workers)
++ if (w.joinable())
++ w.join();
++}
++
++void
+ ModelTree::computingPassBlock(const eval_context_t& eval_context, bool no_tmp_terms)
+ {
+ if (!heterogeneity_table.empty())
diff --git a/science/dynare/files/patch-preprocessor_src_ModelTree.hh b/science/dynare/files/patch-preprocessor_src_ModelTree.hh
new file mode 100644
index 000000000000..9bee40325319
--- /dev/null
+++ b/science/dynare/files/patch-preprocessor_src_ModelTree.hh
@@ -0,0 +1,30 @@
+-- FreeBSD compatibility: replace std::jthread and std::stop_token (C++20 features not yet
+-- available in FreeBSD's libc++ as of clang 19) with std::thread and std::atomic<bool> for
+-- thread stop signalling in the dynare preprocessor's MEX parallel compilation worker pool.
+
+--- preprocessor/src/ModelTree.hh.orig 2025-03-19 00:00:00 UTC
++++ preprocessor/src/ModelTree.hh 2025-03-19 00:00:00 UTC
+@@ -22,6 +22,7 @@
+
+ #include <array>
+ #include <cassert>
++#include <atomic>
+ #include <condition_variable>
+ #include <deque>
+ #include <filesystem>
+@@ -441,8 +442,14 @@
+ vector<int> endo2eq;
+
+ // Stores workers used for compiling MEX files in parallel
+- static vector<jthread> mex_compilation_workers;
++ static vector<thread> mex_compilation_workers;
++ static atomic<bool> mex_compilation_stop_requested;
+
++public:
++ static void stopMEXCompilationWorkers();
++
++private:
++
+ /* The following variables implement the thread synchronization mechanism for
+ limiting the number of concurrent GCC processes and tracking dependencies
+ between object files. */
diff --git a/science/dynare/files/patch-preprocessor_src_meson.build b/science/dynare/files/patch-preprocessor_src_meson.build
new file mode 100644
index 000000000000..58a3cc21e06f
--- /dev/null
+++ b/science/dynare/files/patch-preprocessor_src_meson.build
@@ -0,0 +1,21 @@
+-- FreeBSD compatibility: link the dynare preprocessor against pthreads.
+-- std::thread requires pthreads on FreeBSD; the original code used std::jthread
+-- whose thread support was implicitly pulled in by the C++ standard library.
+-- After replacing jthread with std::thread, an explicit threads dependency is needed.
+
+--- preprocessor/src/meson.build.orig 2025-03-19 00:00:00 UTC
++++ preprocessor/src/meson.build 2025-03-19 00:00:00 UTC
+@@ -1,4 +1,5 @@
+ boost_dep = dependency('boost')
++threads_dep = dependency('threads')
+
+ ## Flex stuff
+ flex_exe = find_program('flex')
+@@ -74,6 +75,6 @@
+ endif
+
+ executable('dynare-preprocessor', preprocessor_src, flex_src, flexlexer_h, bison_src,
+- include_directories : preprocessor_incdir, dependencies : boost_dep,
++ include_directories : preprocessor_incdir, dependencies : [boost_dep, threads_dep],
+ link_args : preprocessor_link_args,
+ install : true)
diff --git a/science/dynare/pkg-plist b/science/dynare/pkg-plist
index 4d4f681e37f0..edf5857ceec4 100644
--- a/science/dynare/pkg-plist
+++ b/science/dynare/pkg-plist
@@ -1,30 +1,4 @@
-bin/dynare++
bin/dynare-preprocessor
-lib/dynare/contrib/jsonlab/jsonlab/AUTHORS.txt
-lib/dynare/contrib/jsonlab/jsonlab/ChangeLog.txt
-lib/dynare/contrib/jsonlab/jsonlab/LICENSE_BSD.txt
-lib/dynare/contrib/jsonlab/jsonlab/LICENSE_GPLv3.txt
-lib/dynare/contrib/jsonlab/jsonlab/README.rst
-lib/dynare/contrib/jsonlab/jsonlab/README.txt
-lib/dynare/contrib/jsonlab/jsonlab/examples/demo_jsonlab_basic.m
-lib/dynare/contrib/jsonlab/jsonlab/examples/demo_ubjson_basic.m
-lib/dynare/contrib/jsonlab/jsonlab/examples/example1.json
-lib/dynare/contrib/jsonlab/jsonlab/examples/example2.json
-lib/dynare/contrib/jsonlab/jsonlab/examples/example3.json
-lib/dynare/contrib/jsonlab/jsonlab/examples/example4.json
-lib/dynare/contrib/jsonlab/jsonlab/examples/jsonlab_basictest.matlab
-lib/dynare/contrib/jsonlab/jsonlab/examples/jsonlab_selftest.m
-lib/dynare/contrib/jsonlab/jsonlab/examples/jsonlab_selftest.matlab
-lib/dynare/contrib/jsonlab/jsonlab/examples/jsonlab_speedtest.m
-lib/dynare/contrib/jsonlab/jsonlab/jsonopt.m
-lib/dynare/contrib/jsonlab/jsonlab/loadjson.m
-lib/dynare/contrib/jsonlab/jsonlab/loadubjson.m
-lib/dynare/contrib/jsonlab/jsonlab/mergestruct.m
-lib/dynare/contrib/jsonlab/jsonlab/package.json
-lib/dynare/contrib/jsonlab/jsonlab/savejson.m
-lib/dynare/contrib/jsonlab/jsonlab/saveubjson.m
-lib/dynare/contrib/jsonlab/jsonlab/struct2jdata.m
-lib/dynare/contrib/jsonlab/jsonlab/varargin2struct.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/a0asfun.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/a0asgrad.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/a0freefun.m
@@ -265,56 +239,152 @@ lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/tran_b2a.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/xydata.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/zimpulse.m
lib/dynare/contrib/ms-sbvar/TZcode/MatlabFiles/zroot.m
-lib/dynare/dynare++/dynare_simul.m
-lib/dynare/examples/Gali_2015.mod
-lib/dynare/examples/Gali_2015_PC_slope.m
-lib/dynare/examples/Gali_2015_prior_restrictions.m
-lib/dynare/examples/NK_baseline.mod
-lib/dynare/examples/NK_baseline_steadystate.m
-lib/dynare/examples/Occbin_example.mod
-lib/dynare/examples/Ramsey_Example.mod
-lib/dynare/examples/Ramsey_steady_file.mod
-lib/dynare/examples/Ramsey_steady_file_steadystate.m
-lib/dynare/examples/agtrend.mod
-lib/dynare/examples/bkk.mod
-lib/dynare/examples/dynare++/README.txt
-lib/dynare/examples/dynare++/example1.mod
-lib/dynare/examples/example1.mod
-lib/dynare/examples/example1_reporting.mod
-lib/dynare/examples/example2.mod
-lib/dynare/examples/example3.mod
-lib/dynare/examples/example3_steady_state_helper.m
-lib/dynare/examples/fs2000.mod
-lib/dynare/examples/fs2000_nonstationary.mod
-lib/dynare/examples/fsdat_simul.m
-lib/dynare/examples/ramst.mod
+lib/dynare/matlab/+backward_model/dynamic_model.m
+lib/dynare/matlab/+backward_model/forecast.m
+lib/dynare/matlab/+backward_model/initialize.m
+lib/dynare/matlab/+backward_model/inversion.m
+lib/dynare/matlab/+backward_model/irf.m
+lib/dynare/matlab/+backward_model/shock_decomposition.m
+lib/dynare/matlab/+backward_model/simul_linear_model.m
+lib/dynare/matlab/+backward_model/simul_nonlinear_model.m
+lib/dynare/matlab/+backward_model/simul_static_model.m
lib/dynare/matlab/+bgp/write.m
+lib/dynare/matlab/+bvar/density.m
+lib/dynare/matlab/+bvar/forecast.m
+lib/dynare/matlab/+bvar/graph_init.m
+lib/dynare/matlab/+bvar/irf.m
+lib/dynare/matlab/+bvar/toolbox.m
+lib/dynare/matlab/+conditional_forecasts/get_shock_paths.m
+lib/dynare/matlab/+conditional_forecasts/plot.m
+lib/dynare/matlab/+conditional_forecasts/run.m
lib/dynare/matlab/+equation/evaluate.m
lib/dynare/matlab/+estimate/nls.m
+lib/dynare/matlab/+forecasts/graph.m
+lib/dynare/matlab/+forecasts/run.m
+lib/dynare/matlab/+forecasts/stochastic_classical.m
+lib/dynare/matlab/+gsa/Morris_Measure_Groups.m
+lib/dynare/matlab/+gsa/Sampling_Function_2.m
+lib/dynare/matlab/+gsa/boxplot.m
+lib/dynare/matlab/+gsa/cumplot.m
+lib/dynare/matlab/+gsa/log_transform.m
+lib/dynare/matlab/+gsa/map_calibration.m
+lib/dynare/matlab/+gsa/map_identification.m
+lib/dynare/matlab/+gsa/monte_carlo_filtering.m
+lib/dynare/matlab/+gsa/monte_carlo_filtering_analysis.m
+lib/dynare/matlab/+gsa/monte_carlo_moments.m
+lib/dynare/matlab/+gsa/prior_draw.m
+lib/dynare/matlab/+gsa/priorcdf.m
+lib/dynare/matlab/+gsa/reduced_form_mapping.m
+lib/dynare/matlab/+gsa/reduced_form_screening.m
+lib/dynare/matlab/+gsa/run.m
+lib/dynare/matlab/+gsa/scatter_analysis.m
+lib/dynare/matlab/+gsa/scatter_mcf.m
+lib/dynare/matlab/+gsa/scatter_plots.m
+lib/dynare/matlab/+gsa/set_shocks_param.m
+lib/dynare/matlab/+gsa/skewness.m
+lib/dynare/matlab/+gsa/smirnov_test.m
+lib/dynare/matlab/+gsa/stability_mapping.m
+lib/dynare/matlab/+gsa/stability_mapping_bivariate.m
+lib/dynare/matlab/+gsa/stability_mapping_univariate.m
+lib/dynare/matlab/+gsa/standardize_columns.m
+lib/dynare/matlab/+gsa/tcrit.m
+lib/dynare/matlab/+gsa/teff.m
+lib/dynare/matlab/+gsa/th_moments.m
lib/dynare/matlab/+gui/+perfect_foresight/run.m
lib/dynare/matlab/+gui/+stochastic-simulation/read.m
-lib/dynare/matlab/+mom/check_plot.m
-lib/dynare/matlab/+mom/data_moments.m
+lib/dynare/matlab/+heterogeneity/check_steady_state_input.m
+lib/dynare/matlab/+heterogeneity/compute_steady_state.m
+lib/dynare/matlab/+heterogeneity/load_steady_state.m
+lib/dynare/matlab/+heterogeneity/plot_irfs.m
+lib/dynare/matlab/+heterogeneity/plot_simulation.m
+lib/dynare/matlab/+heterogeneity/simulate.m
+lib/dynare/matlab/+heterogeneity/simulate_irfs.m
+lib/dynare/matlab/+heterogeneity/simulate_news_shocks.m
+lib/dynare/matlab/+heterogeneity/simulate_stochastic_shocks.m
+lib/dynare/matlab/+heterogeneity/solve.m
+lib/dynare/matlab/+identification/analysis.m
+lib/dynare/matlab/+identification/bruteforce.m
+lib/dynare/matlab/+identification/checks.m
+lib/dynare/matlab/+identification/checks_via_subsets.m
+lib/dynare/matlab/+identification/cosn.m
+lib/dynare/matlab/+identification/display.m
+lib/dynare/matlab/+identification/fjaco.m
+lib/dynare/matlab/+identification/get_jacobians.m
+lib/dynare/matlab/+identification/get_minimal_state_representation.m
+lib/dynare/matlab/+identification/get_perturbation_params_derivs.m
+lib/dynare/matlab/+identification/get_perturbation_params_derivs_numerical_objective.m
+lib/dynare/matlab/+identification/hessian_sparse.m
+lib/dynare/matlab/+identification/legacy_dynamic_g1.m
+lib/dynare/matlab/+identification/legacy_dynamic_g1p.m
+lib/dynare/matlab/+identification/legacy_dynamic_g1pp.m
+lib/dynare/matlab/+identification/legacy_dynamic_g2.m
+lib/dynare/matlab/+identification/legacy_dynamic_g2p.m
+lib/dynare/matlab/+identification/legacy_dynamic_g3.m
+lib/dynare/matlab/+identification/legacy_dynamic_g3p.m
+lib/dynare/matlab/+identification/legacy_dynamic_g4.m
+lib/dynare/matlab/+identification/legacy_idx.m
+lib/dynare/matlab/+identification/legacy_static_g1p.m
+lib/dynare/matlab/+identification/numerical_objective.m
+lib/dynare/matlab/+identification/plot.m
+lib/dynare/matlab/+identification/run.m
+lib/dynare/matlab/+identification/simulated_moment_uncertainty.m
+lib/dynare/matlab/+identification/unfold_g3.m
+lib/dynare/matlab/+identification/unfold_g4.m
+lib/dynare/matlab/+identification/vnorm.m
+lib/dynare/matlab/+mom/Jtest.m
+lib/dynare/matlab/+mom/check_irf_matching_file.m
+lib/dynare/matlab/+mom/default_option_mom_values.m
+lib/dynare/matlab/+mom/display_comparison_moments_irfs.m
+lib/dynare/matlab/+mom/get_data_moments.m
+lib/dynare/matlab/+mom/graph_comparison_irfs.m
+lib/dynare/matlab/+mom/matched_irfs_blocks.m
+lib/dynare/matlab/+mom/matched_moments_block.m
+lib/dynare/matlab/+mom/mode_compute_gmm_smm.m
+lib/dynare/matlab/+mom/mode_compute_irf_matching.m
lib/dynare/matlab/+mom/objective_function.m
lib/dynare/matlab/+mom/optimal_weighting_matrix.m
+lib/dynare/matlab/+mom/print_info_on_estimation_settings.m
lib/dynare/matlab/+mom/run.m
+lib/dynare/matlab/+mom/set_correct_bounds_for_stderr_corr.m
lib/dynare/matlab/+mom/standard_errors.m
+lib/dynare/matlab/+mom/transform_prior_to_laplace_prior.m
+lib/dynare/matlab/+occbin/+ppf/compute_weights.m
+lib/dynare/matlab/+occbin/+ppf/conditional_data_density.m
+lib/dynare/matlab/+occbin/+ppf/draw_particles.m
+lib/dynare/matlab/+occbin/+ppf/engine.m
+lib/dynare/matlab/+occbin/+ppf/graphs.m
+lib/dynare/matlab/+occbin/+ppf/joint_density.m
+lib/dynare/matlab/+occbin/+ppf/marginal_density.m
+lib/dynare/matlab/+occbin/+ppf/mcmc_draws.m
+lib/dynare/matlab/+occbin/+ppf/simulated_density.m
+lib/dynare/matlab/+occbin/+ppf/state_importance_sampling.m
+lib/dynare/matlab/+occbin/+ppf/state_priordens.m
lib/dynare/matlab/+occbin/DSGE_smoother.m
lib/dynare/matlab/+occbin/IVF_core.m
lib/dynare/matlab/+occbin/IVF_posterior.m
+lib/dynare/matlab/+occbin/backward_map_regime.m
lib/dynare/matlab/+occbin/check_regimes.m
+lib/dynare/matlab/+occbin/cost_function.m
lib/dynare/matlab/+occbin/dynare_resolve.m
+lib/dynare/matlab/+occbin/findmin.m
+lib/dynare/matlab/+occbin/forecast.m
lib/dynare/matlab/+occbin/get_deriv.m
lib/dynare/matlab/+occbin/get_pq.m
lib/dynare/matlab/+occbin/graph.m
+lib/dynare/matlab/+occbin/irf.m
lib/dynare/matlab/+occbin/kalman_update_algo_1.m
lib/dynare/matlab/+occbin/kalman_update_algo_3.m
+lib/dynare/matlab/+occbin/kalman_update_engine.m
lib/dynare/matlab/+occbin/make_chart.m
lib/dynare/matlab/+occbin/map_regime.m
lib/dynare/matlab/+occbin/match_function.m
lib/dynare/matlab/+occbin/mkdata.m
lib/dynare/matlab/+occbin/mkdatap_anticipated_2constraints_dyn.m
lib/dynare/matlab/+occbin/mkdatap_anticipated_dyn.m
+lib/dynare/matlab/+occbin/pkf_conditional_density.m
+lib/dynare/matlab/+occbin/plot_irfs.m
+lib/dynare/matlab/+occbin/plot_regimes.m
+lib/dynare/matlab/+occbin/posterior_importance_sampling.m
lib/dynare/matlab/+occbin/set_default_options.m
lib/dynare/matlab/+occbin/set_option.m
lib/dynare/matlab/+occbin/setup.m
@@ -322,8 +392,14 @@ lib/dynare/matlab/+occbin/shock_decomposition.m
lib/dynare/matlab/+occbin/solve_one_constraint.m
lib/dynare/matlab/+occbin/solve_two_constraints.m
lib/dynare/matlab/+occbin/solver.m
+lib/dynare/matlab/+occbin/squeeze_shock_decomposition.m
lib/dynare/matlab/+occbin/unpack_simulations.m
lib/dynare/matlab/+occbin/write_regimes_to_xls.m
+lib/dynare/matlab/+osr/get_variance_of_endogenous_variables.m
+lib/dynare/matlab/+osr/objective.m
+lib/dynare/matlab/+osr/run.m
+lib/dynare/matlab/+pac/+bgp/get.m
+lib/dynare/matlab/+pac/+bgp/set.m
lib/dynare/matlab/+pac/+estimate/init.m
lib/dynare/matlab/+pac/+estimate/iterative_ols.m
lib/dynare/matlab/+pac/+estimate/nls.m
@@ -334,11 +410,36 @@ lib/dynare/matlab/+pac/+update/parameters.m
lib/dynare/matlab/+pac/check.m
lib/dynare/matlab/+pac/initialize.m
lib/dynare/matlab/+pac/print.m
+lib/dynare/matlab/+pruned_SS/Q6_plication.m
+lib/dynare/matlab/+pruned_SS/allVL1.m
+lib/dynare/matlab/+pruned_SS/bivmom.m
+lib/dynare/matlab/+pruned_SS/commutation.m
+lib/dynare/matlab/+pruned_SS/duplication.m
+lib/dynare/matlab/+pruned_SS/prodmom.m
+lib/dynare/matlab/+pruned_SS/prodmom_deriv.m
+lib/dynare/matlab/+pruned_SS/pruned_state_space_system.m
+lib/dynare/matlab/+pruned_SS/quadruplication.m
+lib/dynare/matlab/+pruned_SS/uperm.m
lib/dynare/matlab/+var_expectation/initialize.m
lib/dynare/matlab/+var_expectation/print.m
lib/dynare/matlab/+var_expectation/update.m
lib/dynare/matlab/+var_expectation/update_parameters.m
-lib/dynare/matlab/AHessian.m
+lib/dynare/matlab/+wait_bar/close.m
+lib/dynare/matlab/+wait_bar/multi.m
+lib/dynare/matlab/+wait_bar/run.m
+lib/dynare/matlab/@dprior/admissible.m
+lib/dynare/matlab/@dprior/densities.m
+lib/dynare/matlab/@dprior/density.m
+lib/dynare/matlab/@dprior/dprior.m
+lib/dynare/matlab/@dprior/draw.m
+lib/dynare/matlab/@dprior/draws.m
+lib/dynare/matlab/@dprior/length.m
+lib/dynare/matlab/@dprior/mean.m
+lib/dynare/matlab/@dprior/median.m
+lib/dynare/matlab/@dprior/mode.m
+lib/dynare/matlab/@dprior/moments.m
+lib/dynare/matlab/@dprior/subsref.m
+lib/dynare/matlab/@dprior/variance.m
lib/dynare/matlab/AIM/README.txt
lib/dynare/matlab/AIM/SPAimerr.m
lib/dynare/matlab/AIM/SPAmalg.m
@@ -350,145 +451,91 @@ lib/dynare/matlab/AIM/SPNumeric_shift.m
lib/dynare/matlab/AIM/SPObstruct.m
lib/dynare/matlab/AIM/SPReduced_form.m
lib/dynare/matlab/AIM/SPShiftright.m
-lib/dynare/matlab/AIM/dynAIMsolver1.m
-lib/dynare/matlab/AIM_first_order_solver.m
lib/dynare/matlab/CheckPath.m
-lib/dynare/matlab/CutSample.m
-lib/dynare/matlab/DsgeSmoother.m
-lib/dynare/matlab/GetAllPosteriorDraws.m
-lib/dynare/matlab/GetOneDraw.m
-lib/dynare/matlab/GetPosteriorMeanVariance.m
-lib/dynare/matlab/GetPosteriorParametersStatistics.m
lib/dynare/matlab/MakeAllFigures.m
-lib/dynare/matlab/PlotPosteriorDistributions.m
-lib/dynare/matlab/PosteriorIRF.m
-lib/dynare/matlab/PosteriorIRF_core1.m
-lib/dynare/matlab/PosteriorIRF_core2.m
-lib/dynare/matlab/Q6_plication.m
-lib/dynare/matlab/ReshapeMatFiles.m
-lib/dynare/matlab/TaRB_optimizer_wrapper.m
lib/dynare/matlab/Tracing.m
-lib/dynare/matlab/UnivariateSpectralDensity.m
-lib/dynare/matlab/WriteShockDecomp2Excel.m
lib/dynare/matlab/accessors/get_irf.m
lib/dynare/matlab/accessors/get_mean.m
+lib/dynare/matlab/accessors/get_mean_no_globals.m
lib/dynare/matlab/accessors/get_param_by_name.m
+lib/dynare/matlab/accessors/get_parameter_set_name.m
lib/dynare/matlab/accessors/get_posterior_covariance.m
lib/dynare/matlab/accessors/get_posterior_irf.m
lib/dynare/matlab/accessors/get_posterior_timeseries.m
+lib/dynare/matlab/accessors/get_shock_skew_by_name.m
lib/dynare/matlab/accessors/get_shock_stderr_by_name.m
lib/dynare/matlab/accessors/get_smooth.m
lib/dynare/matlab/accessors/get_update.m
lib/dynare/matlab/accessors/set_param_value.m
+lib/dynare/matlab/accessors/set_param_value_locally.m
*** 1909 LINES SKIPPED ***