Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 0.35.x into master #2057

Merged
merged 4 commits into from
Oct 28, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

<a name="0.35.3"></a>

## 0.35.3 (2020-09-30)

### Bug fixes

* [c++] Fix dirtiness propagation of outputs of tweak nodes (#2048)

<a name="0.35.2"></a>

## 0.35.2 (2020-09-18)
Expand Down
2 changes: 1 addition & 1 deletion lerna.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
"packages": [
"packages/*"
],
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion packages/xod-arduino/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-arduino",
"version": "0.35.2",
"version": "0.35.3",
"description": "XOD project: Arduino transpiler",
"scripts": {
"build:nearley": "nearleyc src/implementationGrammar.ne -o src/implementationGrammar.ne.js",
Expand Down
8 changes: 6 additions & 2 deletions packages/xod-arduino/platform/program.tpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,11 @@ void handleDebugProtocolMessages() {
rewindToEol = true;
// to run evaluate and mark all downstream nodes as dirty
g_transaction.node_{{ id }}_isNodeDirty = true;
g_transaction.node_{{ id }}_isOutputDirty_OUT = true;
{{#each outputs}}
{{#if (shouldOutputStoreDirtyness this)}}
g_transaction.node_{{ ../id }}_isOutputDirty_{{ pinKey }} = true;
{{/if}}
{{/each}}
}
break;
{{/eachLinkedTweakNode}}
Expand Down Expand Up @@ -417,7 +421,7 @@ void runTransaction() {
// initialize temporary output dirtyness state in the context,
// where it can be modified from `raiseError` and `emitValue`
{{#eachDirtyablePin outputs}}
ctxObj._isOutputDirty_{{ pinKey }} = {{#if (isLinkedTweakNode ../this) ~}}
ctxObj._isOutputDirty_{{ pinKey }} = {{#if (doesTweakNodeOutputDirtienessUsed ../this this) ~}}
g_transaction.node_{{ ../id }}_isOutputDirty_{{ pinKey }}
{{~else~}}
false
Expand Down
17 changes: 13 additions & 4 deletions packages/xod-arduino/src/templates.js
Original file line number Diff line number Diff line change
Expand Up @@ -274,12 +274,15 @@ Handlebars.registerHelper(

const isOutputLinked = R.pipe(R.pathOr(0, ['to', 'length']));

// :: TNodeOutput -> Boolean
const shouldOutputStoreDirtyness = R.both(
isOutputLinked,
R.propSatisfies(R.any(R.prop('doesAffectDirtyness')), 'to')
);

Handlebars.registerHelper(
'shouldOutputStoreDirtyness',
R.both(
isOutputLinked,
R.propSatisfies(R.any(R.prop('doesAffectDirtyness')), 'to')
)
shouldOutputStoreDirtyness
);

const isLinkedTweakNode = R.both(
Expand All @@ -289,6 +292,12 @@ const isLinkedTweakNode = R.both(

Handlebars.registerHelper('isLinkedTweakNode', isLinkedTweakNode);

Handlebars.registerHelper(
'doesTweakNodeOutputDirtienessUsed',
(tNode, tOutput) =>
isLinkedTweakNode(tNode) && shouldOutputStoreDirtyness(tOutput)
);

const isTweakStringNode = R.pipe(
R.path(['patch', 'patchPath']),
XP.getTweakType,
Expand Down
6 changes: 3 additions & 3 deletions packages/xod-cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-cli",
"version": "0.35.2",
"version": "0.35.3",
"description": "XOD project: Command Line Interface",
"author": "XOD Team <dev@xod.io>",
"bin": {
Expand All @@ -24,12 +24,12 @@
"node-fetch": "^2.3.0",
"ramda": "^0.24.1",
"source-map-support": "^0.5.9",
"xod-arduino": "^0.35.2",
"xod-arduino": "^0.35.3",
"xod-deploy-bin": "^0.35.2",
"xod-fs": "^0.35.2",
"xod-func-tools": "^0.34.0",
"xod-project": "^0.35.2",
"xod-tabtest": "^0.35.2"
"xod-tabtest": "^0.35.3"
},
"devDependencies": {
"@oclif/dev-cli": "^1.19.4",
Expand Down
6 changes: 3 additions & 3 deletions packages/xod-client-browser/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-client-browser",
"version": "0.35.2",
"version": "0.35.3",
"description": "XOD project: Client browser application",
"scripts": {
"build:tutorial-project": "node ./tools/loadTutorialProject.js",
Expand All @@ -24,8 +24,8 @@
"redux": "^3.0.5",
"redux-thunk": "^2.1.0",
"url-parse": "^1.2.0",
"xod-arduino": "^0.35.2",
"xod-client": "^0.35.2",
"xod-arduino": "^0.35.3",
"xod-client": "^0.35.3",
"xod-func-tools": "^0.34.0",
"xod-project": "^0.35.2"
},
Expand Down
6 changes: 3 additions & 3 deletions packages/xod-client-electron/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"license": "AGPL-3.0",
"main": "src-babel/app/main.js",
"name": "xod-client-electron",
"version": "0.35.2",
"version": "0.35.3",
"scripts": {
"build:workspace": "cpx \"../../workspace/**/*\" \"src-babel/workspace\"",
"build:gui": "webpack --colors",
Expand Down Expand Up @@ -44,8 +44,8 @@
"redux": "^3.0.5",
"redux-thunk": "^2.1.0",
"serialport": "^7.0.2",
"xod-arduino": "^0.35.2",
"xod-client": "^0.35.2",
"xod-arduino": "^0.35.3",
"xod-client": "^0.35.3",
"xod-deploy": "^0.35.2",
"xod-deploy-bin": "^0.35.2",
"xod-fs": "^0.35.2",
Expand Down
8 changes: 4 additions & 4 deletions packages/xod-client/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-client",
"version": "0.35.2",
"version": "0.35.3",
"description": "XOD project: Client application",
"scripts": {
"build": "babel src/ -d dist/ --source-maps",
Expand Down Expand Up @@ -64,13 +64,13 @@
"url-search-params-polyfill": "^2.0.1",
"vec-la-fp": "^1.5.2",
"wait-for-element": "^1.0.2",
"xod-arduino": "^0.35.2",
"xod-cloud-compile": "^0.35.2",
"xod-arduino": "^0.35.3",
"xod-cloud-compile": "^0.35.3",
"xod-func-tools": "^0.34.0",
"xod-patch-search": "^0.35.2",
"xod-pm": "^0.35.2",
"xod-project": "^0.35.2",
"xod-tabtest": "^0.35.2"
"xod-tabtest": "^0.35.3"
},
"devDependencies": {
"@storybook/addon-actions": "^3.2.17",
Expand Down
4 changes: 2 additions & 2 deletions packages/xod-cloud-compile/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-cloud-compile",
"version": "0.35.2",
"version": "0.35.3",
"description": "",
"main": "dist/index.js",
"scripts": {
Expand All @@ -21,7 +21,7 @@
"ramda": "^0.24.1",
"string-to-arraybuffer": "^1.0.2",
"xod-func-tools": "^0.34.0",
"xod-tabtest": "^0.35.2"
"xod-tabtest": "^0.35.3"
},
"devDependencies": {
"babel-plugin-inline-import": "^2.0.4",
Expand Down
4 changes: 2 additions & 2 deletions packages/xod-tabtest/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xod-tabtest",
"version": "0.35.2",
"version": "0.35.3",
"scripts": {
"refmt": "find src/ test/ -name '*.re*' -exec refmt --in-place {} +",
"build:lib": "node ./tools/loadTabtestLibPatches.js",
Expand All @@ -18,7 +18,7 @@
"main": "src/Tabtest_Js.bs.js",
"dependencies": {
"belt-holes": "^0.34.0",
"xod-arduino": "^0.35.2",
"xod-arduino": "^0.35.3",
"xod-func-tools": "^0.34.0",
"xod-project": "^0.35.2"
},
Expand Down
4 changes: 2 additions & 2 deletions workspace/__ardulib__/Graphics/Bitmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ using xod::XColor;
* A structure to hold basic bitmap parameters.
*/
struct Bitmap {
Bitmap(uint8_t* newBuffer = nullptr, uint8_t newColorDepth = 0, uint16_t newWidth = 0, uint16_t newHeight = 0, uint16_t newKeyColor = 0x0000) {
Bitmap(const uint8_t* newBuffer, uint8_t newColorDepth = 0, uint16_t newWidth = 0, uint16_t newHeight = 0, uint16_t newKeyColor = 0x0000) {
buffer = newBuffer;
colorDepth = newColorDepth;
width = newWidth;
height = newHeight;
keyColor = newKeyColor;
}

uint8_t* buffer;
const uint8_t* buffer;
uint8_t colorDepth; // 0 = Black and white bitmap, 1 = Colored bitmap (565 format), 2 = Colored bitmap (565) with mask color;
uint16_t width;
uint16_t height;
Expand Down
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-cloud/basics/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes to get some basic data from the XOD Cloud API",
"license": "AGPL-3.0",
"name": "basics",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-cloud/feeds/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes for communicating with the XOD Cloud Feeds service",
"license": "AGPL-3.0",
"name": "feeds",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/dht/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to work with DHT11 or DHT21 sensors, or compatible sensors: RHT01, DHT22, DHT33, DHT44, AM2301, HM2301, AM2302, AM2303, RHT02, RHT03, RHT04, RHT05.",
"license": "AGPL-3.0",
"name": "dht",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/ds-rtc/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "This library operates DS1302/DS1307/DS3231 based breakout RTC boards",
"license": "AGPL-3.0",
"name": "ds-rtc",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/esp8266-mcu/lan-ip/patch.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
node {
void evaluate(Context ctx) {
auto inet = getValue<input_INET>(ctx);
emitValue<output_IP>(ctx, (typeof_IP)inet->localIP());
emitValue<output_IP>(ctx, (typeof_IP)inet.wifi->localIP());
}
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/esp8266-mcu/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Support for ESP8266-based MCUs.",
"license": "AGPL-3.0",
"name": "esp8266-mcu",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/esp8266/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Support for ESP8266 as a slave module",
"license": "AGPL-3.0",
"name": "esp8266",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/hc-sr04/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to work with the HC-SR04 ultrasonic range meters.",
"license": "AGPL-3.0",
"name": "hc-sr04",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/pn532-nfc/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Support for RFID/NFC modules based on a PN532 chip.",
"license": "MIT",
"name": "pn532-nfc",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/servo/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes to control RC hobby servos",
"license": "AGPL-3.0",
"name": "servo",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/sharp-irm/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes to read analog infrared range meters by Sharp (GP2Y0A) and convert the signal to distance values.",
"license": "AGPL-3.0",
"name": "sharp-irm",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/ssd1306-display/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to drive SD1306-based monochrome LCDs with I2C interface.",
"license": "AGPL-3.0",
"name": "ssd1306-display",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/st-mems/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to work with gyroscopes, accelerometers and barometers based on chips by STMicroelectronics: L3G4200, L3GD20H, LIS331DLH, LIS331HH, LIS3DH, LPS331.",
"license": "AGPL-3.0",
"name": "st-mems",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/st7735-display/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to drive ST7735 based TFT LCD displays. This library supports 128x160 resolution displays which are connected through the hardware SPI interface. Physically, some displays based on the 7735 chip may differ from each other and have different sets of instructions for initialization. To solve this, the library contains several device nodes for different types of displays. These nodes are labeled \"B\", \"G\", \"RG\", and \"RR\".",
"license": "AGPL-3.0",
"name": "st7735-display",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/text-lcd/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to drive a common text liquid crystal displays with I²C or parallel interfaces.",
"license": "AGPL-3.0",
"name": "text-lcd",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/w5500/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Support for ethernet shields that use Wiznet W5500 chipset.",
"license": "AGPL-3.0",
"name": "w5500",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod-dev/ws2812/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"description": "Nodes to work with WS2812 (NeoPixel). The main difference from the other libraries that this library does not use a buffer to light up the LEDs. So it gives a possibility to light up a really long LED strip with a small microcontroller without a huge amount of RAM.",
"license": "AGPL-3.0",
"name": "ws2812",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/bits/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Low-level bits and bytes operations",
"license": "AGPL-3.0",
"name": "bits",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/color/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Library to work with color",
"license": "AGPL-3.0",
"name": "color",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/common-hardware/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Hardware drivers for popular and simple peripherals",
"license": "AGPL-3.0",
"name": "common-hardware",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/core/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "The very basic nodes of XOD",
"license": "AGPL-3.0",
"name": "core",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/datetime/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Date and timestamp operations",
"license": "AGPL-3.0",
"name": "datetime",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/debug/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Debug nodes for XOD",
"license": "AGPL-3.0",
"name": "debug",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/gpio/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes of XOD to deal with GPIO (hardware pins)",
"license": "AGPL-3.0",
"name": "gpio",
"version": "0.35.2"
"version": "0.35.3"
}
2 changes: 1 addition & 1 deletion workspace/__lib__/xod/graphics/project.xod
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@
"description": "Nodes to work with graphics in XOD",
"license": "AGPL-3.0",
"name": "graphics",
"version": "0.35.2"
"version": "0.35.3"
}
Loading