Hello, dear xoders! v0.15.1 is here. Finally, the feedback loops are possible in XOD.
Note for existing users
Whoa! Nothing special is required. We’ve improved library lookup method so you’re no longer required to tweak the workspace on version update.
All changes done listed below.
Features and enhancements
- [core] Feedback loops! Previously, you could not upload a program containing graph cycles, in other words, your program’s “now” had no easy way to depend on the past. Now, you can place a special
defernode in the way of a feedback link, and such program will be accepted. The
defernodes act as loop breakers to define execution priorities and escape points for potential dead-locks.
- [core] The standard node library (
xod/*) is now tied to the distributive, not to a workspace. You’re no longer required to clear the workspace to get new version goodness.
- [core] Local libraries are now searched in
$workspace/lib. It allows to have a project with name
liband makes the previous enhancement work for existing users.
- [ide] We’ve upgraded XOD build toolchain. Distributives lost in size from 25 to 60% (depends on OS), the IDE now takes less time to start and eats less RAM.
- [ide] The IDE now warns about unsaved changes when a project is about to close. No more work loss.
- [ide] Double-click a node to drill down. That is a quicker way of browsing a program. The feature also works in the debug mode and lets you see watches of nested patches.
- [ide] Ctrl+A (⌘ A on macOS) selects all entities when the focus is on the patch board.
- [ide] Cloud compilation limit is shown explicitly now in the Upload dialog.
- [nodes] The
delaynode got an extra
ACToutput. It addresses many cases when you have had to use an extra
flip-flopalong with the
- [nodes] The
clocknode got the
input. Now you can temporary disable a clock when necessary.
- [c++] BREAKING The way strings are represented in C++ changed significantly. Now they are more memory-efficient. Iteration interface is backward-compatible, but creation interface is not. An action can be required only if you make native (C++) nodes which operate on strings.
- [docs] Add mouse and keyboard shortuts.
Also available via “Help” menu in the IDE.
- [docs] Add supported hardware reference.
- [ide] You can scroll the Inspector if its contents are too tall. Now 13" laptop users should not be disappointed while editing a
- [ide] If a project has integrity violations it no longer crashes an IDE. That could happen if a library your project depends on made some breaking changes, or if you made a mistake while editing
*.xodpfiles manually. Now missing pins and patches are drawn in red giving you an opportunity to fix the project and go on.
- [ide] Fix a bug when an extra click was required to close the last tab.
- [ide] Fix a regression bug when deleting a patch lead to errors.
- [ide] Restore ESC behavior to cancel linking.
- [ide] Fix tab reordering behavior. Now it works the same way as you expect. Previously a dragged tab was swapped with the target tab instead of being inserted there.
- [ide] Fix crash on patch rename if the debugger is active.
- [ide] Ctrl+A (⌘ A on macOS) now work as expected on all text inputs where it did not before.
- [ide] The contents of dialogs is no longer selectable like it is a regular web-page.
- [core] Fix scenarios when values bound to inputs “leaked” to initial output values in C++. The simplest case to reproduce was to make a patch with
lednode. On boot, the LED should be turned off, but it was on.
falseif a node was not even scheduled with
Download the new version
Follow to the downloads page or start existing desktop IDE and confirm the upgrade (in-IDE upgrade available on Windows and macOS, not Linux yet).