Releases: xodio/xod
Releases · xodio/xod
0.25.0
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
xod-dev/esp8266-mcu
— a new
library for accessing the internet using the onboard Wi-Fi of an
ESP8266-based board when it is used as a target. (#1456, #1463, #1466)
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, like1
,2
,3
. (#1470) - [nodes] Fixed DHT11 and DHT2x reading on some sensor/board combinations.
(#1464)
0.24.1
0.24.0
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 thebegin
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
xod/core/pad-with-zeroes
—
add leading zeroes to numbers. (#1436)xod/datetime
— a new standard library
to deal with timestamps, dates, and time. (#1436)xod-dev/ds-rtc
— a rewrite of now
obsoleteds1307-*
nodes fromcommon-hardware
. More consistent and using
the newdatetime
structure. (#1438)xod-dev/pn532-nfc
— a new library
to scan, read, and write RFID/NFC tags. (#1424)
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 baseuart-*
nodes now
initialize the interface on their own.
Bug fixes
0.23.0
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 staticconstant-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
0.22.0
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
or7C
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 adefer
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 recentxod/math
extraction. (#1320) - [ide] Tweak library sorting in the project browser so that
x/foo
comes
beforex/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
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
0.21.0
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
likeA4
orD4
. 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
toxod/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 fromxod/math
instead. - Nodes
analog-input
,pwm-output
,digital-input
, anddigital-output
fromxod/core
are deprecated now. Useanalog-read
,pwm-write
,
digital-read
,digital-write
from the newxod/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 explicitA3
orD3
. 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 explicit3d
,03h
, or11b
. 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
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 toNever
. Notably, the bug led to a transpilation error when using
digital-output
from ownxod/core
fork. (#1207) - [core] Fix untitled outputs name assignment for C++. Previously, all
untitled outputs got nameoutput_OUT
. Now they areoutput_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)