Skip to content

Releases: xodio/xod

0.25.0

16 Oct 11:07
Compare
Choose a tag to compare

Features and enhancements

  • [c++] Make the runtime code compatible with ESP8266 MCUs. (#1456, #1460)
  • [ide] Employ arduino-cli for hardware packages installing, compiling, and
    uploading. It makes possible to use the same variety of target boards which
    Arduino IDE supports. In other words, you can install third-party hardware
    packages to be used by XOD. In particular, ESP8266-based boards like WEMOS
    and NodeMCU board index is included out of the box. (#1459, #1465, #1469)
  • [ide] Rather than silently starting to download a potentially big hardware
    package on the first upload, an explicit offer to download and install is
    shown. The download process is visualized with the progress bar. (#1459)
  • [ide] Add a new item to the Deploy menu to upgrade already installed
    toolchains to their latest versions. As a consequence, after the upgrade, XOD
    is capable of uploading to Arduino Nano with the new bootloader, manufactured
    after Jan 2018. (#1467)
  • [ide] Show all compilation/upload options for a given board, not only MCU.
    In particular, it allows compiling and uploading to ESP8266-based boards.
    (#1462)

New nodes

Bug fixes

  • [ide] The switch to arduino-cli allowed to abandon toolchain repackaging.
    Now they are downloaded from the original vendor locations. It should remove
    all errors related to SSL, TLS, and Kaspersky antivirus while uploading to a
    new board for the first time.
  • [ide] Fix IDE crashing when trying to change the arity level of a node having
    variadic pins labeled as plain numbers, like 1, 2, 3. (#1470)
  • [nodes] Fixed DHT11 and DHT2x reading on some sensor/board combinations.
    (#1464)

0.24.1

17 Sep 15:37
Compare
Choose a tag to compare

Bug fixes

  • [ide] Fixed a bug that caused bundled Arduino libraries to be unreachable by build tools. (#1449)

0.24.0

13 Sep 10:50
Compare
Choose a tag to compare

Features and enhancements

  • [core] Implemented the #pragma XOD require directive. Now a XOD library
    author can declare a dependency on a regular Arduino C++ library hosted on
    GitHub. It will be automatically downloaded and installed for library users.
    (#1425, #1426)
  • [core] Optimize one of the transpilation stages: topological graph sorting.
    For complex projects, it brings 10 to 100× faster transpilation. (#1430)
  • [ide] A patch can now be scrolled with mouse scroll or the scroll gesture on
    a laptop touchpad. (#1412)
  • [nodes] xod/uart/uart-* constructor nodes now initialize the interface on
    their own. No need to use the begin node separately. (#1442)
  • [chore] Upgrade to NodeJS v10 and the latest Electron Builder. It gives
    slightly better performance and will bring much faster and traffic-saving IDE
    updates starting from the release following the current. (#1429, #1435)

New nodes

Deprecations and removals

  • xod/common-hardware/ds1307-rtc-* are deprecated in favor of the new
    xod-dev/ds-rtc library.
  • xod/uart/begin is deprecated now because the base uart-* nodes now
    initialize the interface on their own.

Bug fixes

  • [ide] Deprecated and utility nodes started to appear in quick search results
    due to a regression in 0.23.0. That’s fixed. (#1418)
  • [ide] Revert horizontal space amount for node labels which caused shortening
    of terminal and bus labels longer than 2-3 characters in 0.23.0. (#1420)

0.23.0

17 Aug 14:38
Compare
Choose a tag to compare

Features and enhancements

  • [core] The buses concept is introduced. (#1392, #1397)
  • [ide] Dramatic optimizations while working with patches and debugging: moving
    nodes, binding values, creating links, searching for nodes, watching values,
    etc. (#1396, #1400, #1402, #1404)
  • [ide] Show constant nodes’ values as their labels unless overriden rather
    than static constant-number, constant-string, etc. (#1366)
  • [ide] Do not auto-stop a debug session on patch changes, show a note about
    the change instead. (#1374)
  • [ide] Split deployment pane output into several tabs dedicated to Compiler,
    Uploader, and Debugger. (#1409)
  • [ide] Make constant and watch nodes resizable like comments. (#1375)
  • [core] Comment out XOD pragmas in C++ code so that GCC produces no
    compilation warnings. (#1360)

Bug fixes

  • [core] Detect and report pin name clashes. (#1356)
  • [ide] Make possible re-opening the same project. (#1407)
  • [nodes] Fix the uart node for Uno-like boards which previously produced
    a compilation error about undefined SERIAL_PORT_HARDWARE_OPEN. (#1382)

0.22.0

11 Jul 14:57
Compare
Choose a tag to compare

Features and enhancements

  • [ide] Most of the error messages appearing on the snackbar made persistent,
    that is they don’t hide automatically. (#1284)
  • [ide] Don’t try to auto-fix ambiguous byte literals like 15abc or 7C in
    the inspector. (#1313)
  • [core] Now a character surrounded by single quotes ('G') is a valid byte
    literal which denotes a corresponding value from the ASCII table. (#1317)
  • [core] Make some error messages more clear and consistent (#1330).
  • [ide] Add View menu items to toggle the project browser and inspector (#1340).
  • [ide] Allow links between inputs and outputs of the same node. It will
    transpile successfully if the node contains a defer on the loop path inside
    it. (#1349).

New nodes

Libraries for dealing with the internet connection and UART interface:

Bug fixes

  • [core] Properly transpile programs with patch specializations containing
    abstract nodes. They were not resolved recursively. (#1343)
  • [core] Adjust code generation so that it produces no warnings other than
    unknown #pragma’s. It also fixes compiler errors for the string
    concatenation when compiling for Arduino Due. (#1347)
  • [ide] When saving a project with File → Save Copy As don’t mark the original
    ongoing project as saved. (#1282)
  • [ide] Do not show a hard to escape suggestion to switch the workspace when a
    damaged project failed to load. (#1290)
  • [ide] View → Pan to Origin used to break IDE when hit on an empty patch.
    Fixed. (#1314)
  • [ide] Inspector now always show a disabled input with a “custom type”
    placeholder for custom type pins. (#1331)
  • [nodes] Fix xod/math/log-bx broken
    during the recent xod/math extraction. (#1320)
  • [ide] Tweak library sorting in the project browser so that x/foo comes
    before x/foo-bar. (#1332)
  • [ide] Creating a patch with a very long name no longer cause project browser
    controls elements to shift out of its view area. (#1338)
  • [ide] Get rid of white stripes appearing near sidebars on some computers,
    notably, on Linux and when zooming in. (#1339, #1344)

0.21.2

27 Jun 10:59
Compare
Choose a tag to compare

Bug fixes

  • [core] Fix transpilation error caused by values bound to collapsed variadic node. (#1306)
  • [nodes] Fix implementation of xod/math/clip. (#1307)
  • [core] Fix a very rare case where constant values could be overwritten. (#1308)

0.21.1

25 Jun 12:38
Compare
Choose a tag to compare

Bug fixes

  • [c++] Fix isSettingUp function that returned opposite value. (#1297)
  • [tutorial] Update tutorial to use proper PORT literals, mention new pins and nodes. (#1296)

0.21.0

09 Jun 15:39
Compare
Choose a tag to compare

Features and enhancements

  • [core] Add a custom type system which allows defining own complex types.
    (#1216, #1224)
  • [core] Add a new built-in type: Port. Port specifies a board hardware pin
    like A4 or D4. Port specification became more straightforward rather than
    plain numbers used before. (#1232)
  • [core] Add a new built-in type: Byte. A byte is a group of eight bits
    specified in a binary, decimal, or hexadecimal form. (#1192)
  • [core] Clarify error messages related to generic type conflicts. (#1246)
  • [nodes] Add byte-to-number and number-to-byte conversion nodes to
    xod/bits. (#1186)
  • [nodes] Make nodes in xod/bits use the new Byte type. (#1261)
  • [nodes] Make nodes in xod/common-hardware use the new Byte and Port types.
    They now also expose unified pins for an explicit update, update
    acknowledgment, and error signaling. (#1274)
  • [nodes] Nodes related to mathematics moved from xod/core to
    xod/math (#1251)
  • [nodes] Nodes related to general purpose input/output moved from xod/core
    to xod/gpio (#1256)
  • [nodes] Nodes for the I²C bus communication moved from xod/core to
    xod/i2c (#1270)
  • [tutorial] Links in the welcome-to-xod tutorial no longer use goo.gl link
    shortener and point to web-pages directly (#1217)

Deprecations and removals

  • All nodes related to mathematics in xod/core are deprecated now. Use
    corresponding nodes from xod/math instead.
  • Nodes analog-input, pwm-output, digital-input, and digital-output
    from xod/core are deprecated now. Use analog-read, pwm-write,
    digital-read, digital-write from the new xod/gpio, or
    xod/common-hardware/analog-sensor instead.
  • Plain numbers for pins defining a port are deprecated now. Although value 3
    is still valid, prefer explicit A3 or D3. IDE will auto-correct wrong
    values on input commit.
  • Plain numbers for pins storing a byte are deprecated now. Although value 3
    is still valid, prefer explicit 3d, 03h, or 11b. IDE will auto-correct
    wrong values on input commit.

Bug fixes

  • [core] Correctly pick up values bound to generic terminals and use them as
    default values for pins created by these terminals. (#1250)
  • [ide] Fix some cases when generic pins were not colored even if their types
    can be deduced. (#1248)
  • [ide] Reset project preferences when creating a new project. (#1252)
  • [ide] Make toolchain installation immune to download interruptions. (#1255)

0.20.3

22 May 14:13
Compare
Choose a tag to compare

Bug fixes

  • [build] Fix macOS distro download filename. Now it has proper .dmg
    extension. (#1198)
  • [core] Fix opening projects saved prior to 0.20.0 with some pins explicitly
    bound to Never. Notably, the bug led to a transpilation error when using
    digital-output from own xod/core fork. (#1207)
  • [core] Fix untitled outputs name assignment for C++. Previously, all
    untitled outputs got name output_OUT. Now they are output_OUT1,
    output_OUT2, and so on. (#1204)
  • [core] Fix C++ generation from generic nodes containing
    not-implemented-in-xod which previously was silently failing. (#1225)
  • [ide] Minimize performance regression in 0.20.x caused by generics resolution
    (#1213, #1214)
  • [ide] Fix occasional [Object object] errors when deploying. Now they are
    still there but formatted properly. (#1203)
  • [ide] Format transpilation errors that previously appeared as cryptic
    objects. (#1230)
  • [ide] Fix uncaught error handling. Now they pop up as a regular error for
    easier reporting. (#1230)
  • [ide] Fix canceling when opening a project. Previously it broke the current
    project (#1202)

0.20.2

08 May 15:27
Compare
Choose a tag to compare

Bug fixes

  • [core] Fix crash on creating a variadic patch with non-matching pin types. (#1194)
  • [core] Recognize legacy defer nodes(xod/core/defer-*) and don't complain about a graph cycle when they are used. (#1195)