Dynamic flow systems program to simulate economic flows (ie. complex system dynamics). For a full overview, please see the Manual
Minsky is an open source program with prebuilt binaries available for:
Official releases are available from SourceForge. You may also obtain later releases from this Github project, as release are tagged within git.
To compile Minsky, you will need a suitable posix compliant system, with a number of prerequisites installed.
Notes on using the REST Service.
console.log
works on minsky-electron codeelectronService.log
, which takes a single string argument. Best trick is to use typescript template literal types, which allows embedding variable values simply within a string, eg
this.electronService.log(`Var=${some javascript expression}`);
NB since the upgrade of electron, process is no longer available in the renderer (minsky-web) environment.
green(
some string)
or red(
some string)
to colorise log output to make it easier to spot your messages. With console.log, you only need to colourise the first argument.OPEN_DEV_TOOLS_IN_DEV_BUILD = true
in libs/shared/src/lib/constants/constants.ts
. This can be very useful in tracking down runtime errors, even syntax errors, as the renderer process fails silently.For those using emacs (comme moi-meme), I have configured the project so that typing tsc on the gui-js directory runs the typescript compiler. A convenience Makefile is in that directory, allowing the default "make -k" command to work.
M-x package-install
did not work for me, I had to download the tarfiles directly from Melpa, and run M-x package-install-file
to install the packages manually.npm start
session by using ps -ef|grep main.js
to find the minsky process, then use the pid to attach to in gdb.npm run export:package:linux
and open it with gdb gui-js/dist/executables/linux-unpacked/minsky
.jest.config.js
(eg gui-js/libs/shared), then run (eg)
gdb `which node`
r /usr/local/bin/jest src/lib/backend/minsky.test.ts
Regular jest CLI arguments can be provided. You will need to install the jest package (npm install jest perhaps?)
Unfortunately gperftools do not work with the JS frontend. Indeed, most of the time minsky will crash under profiling. For now, profiling requires the use of the old Tk version of minsky.
However, if you build the C++ source (actually only addon.cc necessary) with the TIMERS=1 make flag, this enables profiling of the backend commands, which is printed as a summary table on application exit.