Commit Graph

385 Commits

Author SHA1 Message Date
Kirill Shumilov
034ca0030d test(xod-project): cover new functions isDeprecatedPatch and getDeprecationPatchReason with tests 2018-03-21 12:37:20 +03:00
Kirill Shumilov
299d19f679 feat(xod-client, xod-project): show deprecation reason in the helpbox & help panel 2018-03-21 12:37:20 +03:00
Kirill Shumilov
279d2455f2 feat(xod-project): add deprecated marker into built-in patches and add isDeprecatedPatch function 2018-03-20 16:18:32 +03:00
Evgeny Kochetkov
5706f87746 tweak(xod-project): add start of the string to regxeps checking paths of constant-*, variadic-* and internal terminals 2018-03-20 15:56:50 +03:00
Evgeny Kochetkov
f9cfce6c33 feat(xod-project, stdlib, workspace): use xod/core/cast(*,*) instead of xod/core/cast-*-to-* 2018-03-20 15:50:38 +03:00
Evgeny Kochetkov
4cc39d51d4 feat(xod-project): recognize xod/core/defer(*) nodes as defer nodes 2018-03-20 15:50:37 +03:00
Evgeny Kochetkov
6afe369dda tweak(xod-project): make canCastTypes always pass strict type check 2018-03-20 13:41:06 +03:00
Evgeny Kochetkov
b11d259dc6 tweak(xod-project): add PatchBaseName type 2018-03-20 13:41:06 +03:00
Kirill Shumilov
f6cdb1fe1d test(xod-project): add tests for validateLinkPins function 2018-03-19 13:36:57 +03:00
Kirill Shumilov
2ffeec0f40 feat(xod-client): draw links with incompatible pin types as broken and show tooltips with error message for any broken link 2018-03-19 13:36:57 +03:00
Kirill Shumilov
7787a4e8a6 feat(xod-project): validate links for compatibility of pin types and show error on transpile. Tweak errors in xod-project to show it with title in the IDE. Show "Dead reference error" only in actual errors. 2018-03-19 13:36:57 +03:00
Evgeny Kochetkov
0ef2e2f1a0 feat(xod-project, xod-client): allow to create abstract nodes 2018-03-16 15:41:38 +03:00
Kirill Shumilov
683bb050d2 feat(xod-client): allow to create and rename patches using new rules (with types) 2018-03-15 11:54:14 +03:00
Kirill Shumilov
6aa2cfc86f feat(xod-project): allow to specify types in the patch path (E.G. @/some-patch(string,number)) and fix not working validation of patch paths 2018-03-15 11:54:14 +03:00
Kirill Shumilov
ac4a6ead30 tweak(xod-client): allow to relink occupied pins 2018-03-13 17:04:34 +03:00
Evgeny Kochetkov
a0709375ae chore(infra): release 0.19.2 2018-03-12 16:47:47 +03:00
Evgeny Kochetkov
f433438233 fix(xod-project): check for dead links more strictly
Closes #1105
2018-03-12 14:57:41 +03:00
Evgeny Kochetkov
e6ab08e297 chore(infra): format code with prettier
Just `yarn lint  --fix`
2018-03-05 17:59:03 +03:00
Evgeny Kochetkov
448dc09c9b chore(infra): release 0.19.0 2018-03-02 14:22:03 +03:00
Kirill Shumilov
fca389eccc feat(xod-client): make possible to change Node arityLevel within GUI 2018-03-01 12:01:25 +03:00
Evgeny Kochetkov
f82d813240 fix(xod-project): fix links orientation when expanding variadic patches 2018-02-28 13:05:56 +03:00
Evgeny Kochetkov
cf96d942f2 fix(xod-project): start indexing additional terminals from 1 when expanding variadic patches 2018-02-28 13:05:56 +03:00
Kirill Shumilov
2decb1c6e0 fix(xod-project): fix rendering of one superfluous variadic group (arityLevel === 2 means that there is only one additional pin) 2018-02-27 18:53:35 +03:00
Kirill Shumilov
51fddba3e6 feat(xod-client): mark latest variadic Pins with "dots" and improve drawing of the Links in moving mode to prevent ugly overlapping of link enging over "dots" symbol 2018-02-27 17:54:35 +03:00
Kirill Shumilov
e6f50bcf87 feat(xod-project, xod-client): compute and render variadic pins for Nodes with arityLevel > 1 and allow to link them 2018-02-27 17:54:35 +03:00
Evgeny Kochetkov
775498a9f2 feat(xod-project): expand variadic nodes
Closes #1065
2018-02-26 20:13:05 +03:00
Kirill Shumilov
77ea7c2ce8 feat(xod-client, xod-project): show custom tooltips with errors for Nodes, add validation of variadics into validatePatchContent (ProjectBrowser will mark Patch as broken if it has variadic errors or dead ref errors) 2018-02-21 16:08:18 +03:00
Kirill Shumilov
4e510b7957 feat(xod-project): add basic features for variadics: new types, getters/setters, path utils, built-in patches, function that computes variadic Pins and validates variadic Patch 2018-02-20 15:38:17 +03:00
Evgeny Kochetkov
3e60017a07 chore(infra): release 0.18.0 2018-02-07 16:45:38 +03:00
Kirill Shumilov
21b726460f feat, refactor(xod-project, xod-fs, xod-client, xod-client-electron, xod-client-browser): unify save/load UX 2018-01-30 19:28:26 +03:00
Victor Nakoryakov
272c82ae04 optimize(xod-arduino): perform loop unroll
Now the generated code *is* the main loop expanded.
2018-01-18 15:35:00 +03:00
Evgeny Kochetkov
399a6a48b2 fix(xod-project): forbid using non-native patches as entry points 2018-01-18 14:03:28 +03:00
Kirill Shumilov
6d37728937 chore(xod): update hm-def and sanctuary-def, fix some wrong function definitions that brokes runtime 2018-01-16 11:46:02 +03:00
Kirill Shumilov
d2027e79b3 chore(xod): update Webpack to v3 (bundle reduced x2), update Ramda versions, prepare it for further updates
Squashed commits:
[af77987] refactor(xod-client, xod-client-browser, xod-client-electron): move common webpack config into xod-client, and extend it with specific options in other endpoint clients (browser/electron)
[ddae62d] chore(xod): update `hm-def` to latest `0.2.1` version (that uses the same Ramda version)
[5d80680] chore(xod): prepare all Ramda imports and some functions to migrate to 0.25.1 to be optimized better by tree-shaker (0.25.0 already has a features for better tree shaking, but it has a lot of bugs and perfomance regressions, so we’ll stay at 0.24.1 for a while)
[9c05d6c] chore(xod-client-browser, xod-client-electron): enable UglifyJS webpack plugin to eliminate dead code and minify bundle (7.8MB -> 3.8MB)
[cafbfcf] chore(xod, xod-client-browser, xod-client-electron): update webpack to version 3, update loaders,
2017-12-29 13:31:32 +03:00
Victor Nakoryakov
ec5946a00e chore(infra): release 0.17.0 2017-12-26 15:56:11 +03:00
Victor Nakoryakov
2a9c2f3f5e chore(infra): release 0.16.0 2017-12-01 13:46:09 +03:00
Evgeny Kochetkov
02d8f86cdd tweak(xod-project): change version validation regexp to match server-side validation rules 2017-11-30 19:54:13 +03:00
Kirill Shumilov
163ca993ba feat(xod-pm, xod-fs, xod-cli, xod-project): implement and integrate functions that (a) fetches libraries with dependencies and (b) saves it to the file system 2017-11-24 14:05:54 +03:00
Kirill Shumilov
24a416118c feat(xod-project): add functions that returns lists of installed library names, of used libraries (somewhere in patches) and missed library names (based on previvous two functions), add PatchPathUtil function getOwnerName 2017-11-24 14:05:54 +03:00
Kirill Shumilov
4e52e9a72b chore(xod-project): update chai to latest 4.1.2 version, fix few tests (breaking changes + some tests falsy passed in the past) 2017-11-24 14:05:54 +03:00
Kirill Shumilov
aeb8a97a3b feat(xod-fs): implement dff functions that find changed patches and find a kind of changes and saveAll function that saves all project using diff function to detect what to save, what to skip 2017-11-22 12:08:47 +03:00
Kirill Shumilov
ab299eac82 tweak(xod-project): make listPatchWithoutBuiltIns more robust (and slower), add convertToLocalPath function that converts any PathPath into local PatchPath 2017-11-22 12:08:47 +03:00
Evgeny Kochetkov
d9e787a07a fix(xod-project): don’t propagate bound values to occupied outputs 2017-11-21 19:25:09 +03:00
Victor Nakoryakov
4a9bfd3d74 tweak(xod-project): change automatic pin naming scheme
IN_0 → IN1
IN_1 → IN2
OUT_7 → OUT8
2017-11-17 11:42:23 +03:00
Evgeny Kochetkov
65030ac698 refactor(xod-project, xod-fs, xod-arduino): single target platform, single implementation file
- `xod-project`

  - no notion of different impl types
  - because there is only one kind of implementation left, no need to store them in `impls`, it can be extracted straight from attachments

  - API changes:
    - removed:
      - `listImpls`
      - `hasImpls`
      - `getImplByArray`

    - added:
      - `hasImpl :: Patch -> Boolean`
      - `setImpl :: Source -> Patch -> Patch`

    - changed signatures:
      - `getImpl` is now `Patch -> Maybe Source`
      - `hasImpl` is now `Patch -> Boolean`
      - `flatten` is now `Project -> PatchPath -> Either Error Project`

- `xod-fs`
  - does not know about implementation files — they all are just attachments

+ minor changes in other backages
2017-11-15 13:16:21 +03:00
Kirill Shumilov
e9b2eb15a1 feat(xod-client, xod-client-browser, xod-client-electron, xod-fs): add feature to install libraries from cloud in the IDE, integrate in both clients, add saving on FS for desktop client 2017-11-15 10:49:10 +03:00
Kirill Shumilov
28e1b2761b refactor(xod-project): move some functions into proper places, extract on function from composition into separate function (resolveNodeTypesInPatch) 2017-11-15 10:49:09 +03:00
Kirill Shumilov
3a8596b51a refactor, test(xod-func-tools): move functions into separate modules, cover almost all functions (complex or derivative), move tests into separate specs, add foldMaybe 2017-11-15 10:49:09 +03:00
Victor Nakoryakov
dbafc6d8ee chore(infra): release 0.15.0 2017-10-31 12:00:02 +03:00
Evgeny Kochetkov
df70f0a5b5 fix(xod-project): fix values bound to inputs leaking to outputs in some cases
Closes #828
2017-10-26 14:08:26 +03:00