Hi all,
The latests commits change the filesystem layout of the files generated by the preprocessor.
Ultimately, the goal is to have Dynare create only two subdirectories inside the current directory, for storing all model representations and all output. One of these two directories begin with a plus ("+") sign, which is recognized by MATLAB/Octave as a “package” (equivalent to what C++ calls a “namespace” or Python and Julia call a “module”); this directory contains files directly usable by MATLAB (i.e. only M and MEX files).
Assuming the modfile is called example.mod, here is the correspondence between old and new filenames:
– example.m ⇒ +example/driver.m (callable from MATLAB as example.driver)
– example_static.m ⇒ +example/static.m (callable as example.static)
– example_dynamic.m ⇒ +example/dynamic.m (callable as example.dynamic)
– example_steadystate2.m ⇒ +example/steadystate.m (note that this will not create a conflict with the user supplied example_steadystate.m, whose name is unchanged)
– example_set_auxiliary_variables ⇒ +example/set_auxiliary_variables.m
– example_objective_static ⇒ +example/+objective/static.m (callable as example.objective.static)
– example/dynamic_NNN.m ⇒ +example/+block/dynamic_NNN.m (for block decomposition, callable as example.block.dynamic_NNN)
– example_static.mex… ⇒ +example/static.mex…
– example_static.c ⇒ example/model/src/static.c
– example_static.{bin,cod} ⇒ example/model/bytecode/static.{bin,cod}
– example.json ⇒ example/model/json/modfile.json
– example_static.json ⇒ example/model/json/static.json
More similar changes are to come for all other Dynare outputs (MAT files, LaTeX, PDF, EPS, Julia representation…).
Of course this move will break some codes written by power-users, but we think it has become necessary because Dynare now generates so many files. It avoids cluttering the current directory, and organizes those files along a logical structure. Adapting existing codes should be easy (in most cases it’s just a matter of replacing a few underscores by dots).
Best,
--
Sébastien VillemotEconomist at CEPREMAP
Dynare developer