Skip to content

Releases: xodio/xod

0.20.1

29 Apr 11:00
Compare
Choose a tag to compare

Bug fixes

  • [core] Fix resolving of abstract nodes nested deeply inside regular patches.

0.20.0

27 Apr 15:45
Compare
Choose a tag to compare

Features and enhancements

  • [core] Implement generic nodes. Such nodes may work with values type of which
    is not known in advance. See the user’s guide to learn more.
  • [core] Values of any type bound to pins are now stored as-is using strings.
    As a good side effect, one may now bind scientific notation numbers (3e-6
    for 0.000003), infinity (+Inf, -Inf), and NaN in the Inspector.
    Strings are now always enquoted. When you deal with regular (non-generic)
    pins, the required quotes will be added for you automatically. (#1164)
  • [ide] Allow relinking of occupied input pins. Now instead of showing an
    error, IDE removes the existing link, replacing it with the new one. (#1120)
  • [ide] Preserve window position and size across launches. (#1134)
  • [ide] The main window now can be as small as 700px in width. It allows quicker
    1-to-1 screenshoting for docs and Medium. (#1135)
  • [core] Create marker nodes to indicate a patch is an internal utility or
    deprecated legacy. In IDE’s project browser such nodes are hidden by default.
    To show them click the funnel button in the pane header. (#1137, #1141)
  • [cli] Implement a simple tabular testing feature that should become an xUnit
    of XOD. (#1148)
  • [c++] Add isSettingUp node API function to check whether the current
    evaluation is a part of the very first transaction which is run in setup().
    (#1152)
  • [core] More informative errors for many “bad program” scenarios. Now they
    always include a full path trace from the entry point patch to the patch
    having a problem. (#1155, #1156)
  • [nodes] xod/core/equal made generic and now can handle strings.
  • [nodes] xod/core/select made generic and now can handle strings and booleans.

Deprecations and removals

  • [nodes] cast-*-to-* are deprecated. Use specialized nodes like
    format-number instead.
  • [nodes] debounce-boolean is deprecated. Use generic xod/core/debounce
    instead.
  • [nodes] defer-* are deprecated. Use generic xod/core/defer instead.
  • [nodes] gate-* are deprecated. Use generic xod/core/gate instead.
  • [nodes] BREAKING ❗ The original gate (without a type suffix) is
    renamed to xod/core/branch.
  • [nodes] if-else-string is deprecated. Use generic if-else instead.
  • [nodes] nth-number is deprecated. Use generic nth-input instead.

Bug fixes

  • [ide] Remove actual C++ implementation when deleting the
    not-implemented-in-xod node. (#1142)
  • [ide] Make vertical and horizontal lines (links and nodes’ edges) always
    sharp (#1168)

0.19.2

12 Mar 14:33
Compare
Choose a tag to compare

Bug fixes

  • [nodes] Do not emit an unconditional pulse from xod/core/defer-pulse on
    boot (#1108)
  • [nodes] Remove extraneous utility output from xod/core/discretize (#1106)
  • [core] Fix IDE crashing when opening some patches with dead links (#1111)

0.19.0

02 Mar 13:10
Compare
Choose a tag to compare

Features and enhancements

  • [core] Implement variadic nodes. An ability to have an adjustable number of
    input pins on a node.
  • [nodes] Nodes from the standard library made variadic if applicable: add,
    multiply, bitwise-*, any, and, or, concat, discretize,
    select, and others.
  • [ide] Show richer tooltips on node hover. It shows the node label, fully
    qualified type, and errors if there are any.

New nodes

0.18.1

09 Feb 14:05
Compare
Choose a tag to compare

Bug fixes

  • [ide] Fix user-installed libraries not showing up when opening the project.

0.18.0

07 Feb 14:33
Compare
Choose a tag to compare

Features and enhancements

  • [core] Perform loop unroll optimization technique for the generated C++
    code. It dramatically improves RAM consumption and XOD execution performance.
    (thanks, @awgrover).
  • [ide] Eight new embedded tutorial chapters (21 through 28) explaining pulse
    basics and LCD interaction.
  • [ide] Support Markdown in patch comments. Your patches now can be more
    expressive. See the tutorial project for example.
  • [ide] Add OS file associations for *.xodball, project.xod, *.xodp and a
    list of recent items in the app system menu. Currently works on Windows and
    macOS, not Linux yet.
  • [ide] You’re not limited now in where on file system you save a project.
    Previously a project was saved in a “workspace,” now you may choose an
    arbitrary directory with the native OS “Save” dialog.
  • [ide] Blur the difference between single-file projects (xodballs) and regular
    multi-file projects. Both kinds can be seamlessly saved/loaded through “File
    → Save,” “File → Save as,” “File → Save a Copy,” and “File → Open.”
  • [ide] No more clunky project selection dialog on desktop IDE start: just a
    ready to use blank project with a welcoming comment.
  • [ide] Add “View → Pan to Origin” (Home) and “View → Pan to Center”
    (Ctrl+Home).
  • [ide] Upgrade and tweak IDE build toolchain (Webpack). A consequence is 2×
    smaller distributive code size which means IDE loads faster.
  • [ide] Unify font sizes and styles across all sidebars, popups, dialogs. The
    main font size now is 12px rather than 11px. That makes IDE more accessible
    and comfortable to work with.
  • [ide] Code editor has got block commenting (Ctrl+/), auto-close opening
    brackets, trailing space highlight, auto-clear trailing spaces on empty
    lines.

New nodes

Bug fixes

  • [ide] Fix few typos in UI (thanks, nick).
  • [ide] Quick help panel text is copyable now.
  • [ide] When starting debugger patch panning position is preserved, no more
    jumps out of work area. Breadcrumbs bar no longer overlaps the patch when
    appear.
  • [ide] Bring back grabbing and hand cursors while panning.
  • [ide] Fix C++ code editor improper syntax highlighting in the middle of
    identifiers and comments.
  • [ide] The not-implemented-in-xod node now carries C++ implementation when
    copied to the clipboard, the code template which appears with the node is
    applied immediately (thanks, bitrex).
  • [ide] Fix link to mouse and keyboard shortcuts in the top menu.
  • [ide] Make text in the deployment panel copyable.
  • [ide] Do not trim leading whitespace in an output of the compiler.
  • [ide] Gracefully handle USB connection lost while debugging.

0.17.1

27 Dec 13:30
Compare
Choose a tag to compare

Bug fixes

  • [ide] Fix help panel content overflow.
  • [ide] Fix quick search help box text moire (best noticable on Windows).
  • [ide] Fix background size for a view when no patches are open.
  • [ide] Fix cursor shapes for various UI elements.
  • [ide] Fix long lines truncation in the deployment log.
  • [ide] Fix aliasing of IDE desktop icon on Windows.

0.17.0

26 Dec 13:20
Compare
Choose a tag to compare

Features and enhancements

  • [ide] General user interface facelift. Updated icons, reduced visual noise, more accurate accents. Better messages and the main menu.
  • [ide] Make panels dockable. Now you can tweak location of any sidebar panel: dock it to the left or right, hide, resize.
  • [ide] The project browser, quick search suggester, and selected node got own help boxes. All available with H key as it was before.
  • [ide] Introduce deploy pane. Now all output during upload and debug messages go here.
  • [ide] Improve syntax highlighting in the embedded code editor. Match XOD C++ node API symbols, inttypes, and few Arduino built-in functions.

Bug fixes

  • [nodes] Fix wrong description of xod/core/pulse-on-false (thanks @awgrover)

0.16.1

13 Dec 10:20
Compare
Choose a tag to compare

Features and enhancements

  • [ide] Patch crafting optimized. Performance gain is ~35%

Bug fixes

  • [core] Fix code generation for C++ nodes local to the current project: no more @ symbols in the code
  • [ide] Trigger library search when a library name is pasted from the clipboard
  • [ide] Fix regression of macOS auto-update failure introduced in 0.16.0
  • [ide] Fix patch board break when trying to drag-n-drop the patch node on itself or adjacent UI elements
  • [ide] Fix embedded code editor overflow past the window boundaries when source code is too long
  • [ide] Handle network connection problems gracefully while authorization and library publishing
  • [ide] Escape regular expression symbols while searching for a node (thanks @awgrover)
  • [ide] In the account pane, send credentials on Enter press

0.16.0

01 Dec 13:13
Compare
Choose a tag to compare

Features and enhancements

  • [ide] Add a feature to install libraries right from IDE. Hit “File → Add Library”, enter a name as seen at https://xod.io/libs/, and you’re ready to use new nodes.
  • [ide] Add a feature to publish your project as a library. Hit “File → Publish Library” and you’re done. See your library at https://xod.io/libs/. Others can immediately install it for themselves.
  • [ide] Add account pane to login/logout from within IDE. Hit “View → Toggle Account Pane” to access it. Login is required to publish a library.
  • [ide] Embed C++ editor for low-level nodes. Double-click a not-implemented-in-xod node to open and edit the code.
  • [ide] Click and drag for bulk selection with a marquee. Move, copy, paste, delete faster. Drag from left to right to select only items completely covered by the rectangle, drag from right to left to also include intersected entities. Hold Ctrl (⌘ on macOS) key to add/remove items from the selection.
  • [ide] Tweak paste behavior so that the entities are inserted to the left of the current selection, not at the origin. That means you can Ctrl+C and then Ctrl+V multiple times to build a row of similar nodes very quickly.
  • [ide] Track changes in patches and save project incrementally. That means faster saves, removing deleted patches’ files, and keeping files not related to XOD intact.
  • [ide] “Save Project” is generalized to “Save All.” Libraries, if they have changed are saved too, and effectively create a fork automatically.
  • [ide] Allow resizing of the project browser and inspector panes. Drag a handle between them to adjust the height proportion.
  • [ide] Automatically adjust panning position when opening a patch so that the patch aligns with the top left corner.
  • [ide] Inserted comments are a bit wider by default.
  • [core] BREAKING ❗ node C++ implementations are now read from files named patch.cpp. Former any.cpp and arduino.cpp are ignored. A patch must include not-implemented-in-xod node to take it’s C++ implementation into account.
  • [core] BREAKING ❗ untitled pins changed numbering scheme. Instead of IN_0, IN_1, IN_2, ... and OUT_0, OUT_1, OUT_2, ..., now they are IN1, IN2, IN3, ... and OUT1, OUT2, OUT3, ....
  • [core] *.xod* files are now terminated with newline symbol on save. It makes them a bit friendlier for manual editing.
  • [cli] xodc install now installs all transient library dependencies automatically.

New nodes

Bug fixes

  • [core] Fix upload to Arduino Mega 2560 boards when compiling locally.
  • [core] Fix yet more bugs related to invalid initial values after transpile.
  • [ide] Fix possible single slot offset when placing nodes with a double-click.