Commit Graph

90 Commits

Author SHA1 Message Date
InversionSpaces
68425ed42a
feat(compiler)!: Prohibit mutating options [LNG-277] (#960)
* Parse any nested type

* Refactor type system

* Fix restriction

* Refactor type resolution

* Return stream definition

* Update examples

* Refactor

* Refactor

* Refactor integration tests

* Export service

* Add integration test

* Fix args provider

* Add parser unit tests

* Add type resolution unit tests

* Add more unit tests

* DataTypeToken -> CompositeTypeToken

* GeneralStreamType -> MutableStreamType

* Refactor

* Refactor TypeResolution

* colType -> collectionType

* Refactor

* Fix PushToStreamSem

* BasicTypeToken -> ScalarTypeToken

* CompositeTypeToken -> BasicTypeToken

* Fix for nil

* Make stream collectible

* Refactor collectible type

* Use internalError

* Add unit tests
2023-11-13 11:58:36 +03:00
InversionSpaces
78ee753c7b
feat(compiler): Always generate last argument of fold [LNG-265] (#947)
* Always generate last in fold

* Fix unit tests

* Add methods
2023-10-30 12:58:51 +03:00
Dima
878990a837
feat: Create structs with stream maps [fixes LNG-244] (#893) 2023-09-27 15:07:22 +03:00
Akim
0f9ede09fb
feat(js-client)!: Move to new js-client interface (#855)
* js-client.api -> js.client

* fix types

* Update js-client

* Remove redundant connect

* Set latest js-client
2023-08-25 11:39:10 +03:00
Dima
8060695dbb
feat: parseq implementation (fixes LNG-223) (#840)
* parsec implementation

* add test code

* parsec expression

* Refactor

* Refactor

* Add return strategy to on

* Add ExitStrategy

* Add TopologyPath

* Add ExitStrategy.ToRelay

* Handle ToRelay

* Refactor

* Refactor

* Refactor

* Handle OnModel with Relay strategy

* parsec -> parseq

* parsec -> parseq

* Add semantics test

* Add topology tests

* Add comments

---------

Co-authored-by: InversionSpaces <InversionSpaces@vivaldi.net>
2023-08-21 14:26:30 +04:00
Dima
ef4b0143ac
fix(compiler): Runtime error on compilation exported functions with top types [fixes LNG-218] (#822) 2023-08-09 16:21:18 +03:00
Dima
63a9f42e86
feat(compiler): Abilities (#731) 2023-07-18 17:18:33 +00:00
InversionSpaces
b8b0fafda0
feat(compiler): Make on propagate errors [fixes LNG-203] (#788)
* Add fail model

* Make `on` propagate error

* Fix unit tests

* Fix TryTag inlining

* Update XorModel.wrap

* Add comments

* Remove wrapWithXor parameter

* Add unit tests

* Add integration tests

* Add comments

* Fix XorBranch topology
2023-07-12 16:18:47 +03:00
InversionSpaces
c1fe24b04d
feat(compiler): Make topology hop with non-FFI snippet [fixes LNG-125] (#764)
* Remove MakeRes.canon

* Replace noop with hop

* Rewrite join

* Remove JoinModel, fix tests

* Share code between tests

* Pass type in RestrictionTag(Model)

* Fix MakeRes.hop

* Fix wrapping

* Rename vars, add comments

* Fix XorBranch topology

* Fix tests
2023-07-06 12:44:37 +03:00
Dima
0b66aa96ec
feat(aqua-api): return JS and TS sources from API [LNG-164] (#730) 2023-06-07 14:07:14 +02:00
Dima
480720f26e
feat: Remove bang in lambdas in AIR (#688) 2023-03-28 14:44:47 +03:00
Dima
e35944e3c8
refactor: Store generated AIR string in exorted constant (#689) 2023-03-28 14:44:26 +03:00
Dima
00ee8b5312
fix: name uniqueness in stream gate (#676)
* fix name uniqueness in gate

* fix unit test
2023-02-25 12:12:40 +07:00
Dima
94cbb85b40
feat!: DXJ-283 support new JS client (#668) 2023-02-16 18:53:11 +03:00
Dima
9991a07140
chore: Disable TS and eslint checks in generated files (fixes LNG-113) (#662)
disable ts and eslint checks in generated files
2023-02-08 14:40:46 +03:00
Dima
269c68ad59
Add errors to API results, fix AquaConfig, fix types (#620) 2022-12-29 20:03:57 +03:00
Dima
aa89b85b41
Api for fluence cli (#611) 2022-12-28 11:30:42 +03:00
Dima
b73b72b2de
disable checks in generated files (#585) 2022-10-28 13:57:53 +03:00
Dima
176cad360c
LNG-87 add null and never modes to fold instruction (#563) 2022-10-09 20:11:27 +03:00
Pavel
5b2e08920c
Switch to compiler support v4 in FluenceJS (#566) 2022-10-09 16:45:10 +03:00
Dima
95d3dc2d9e
LNG-86 Stream canonicalization (#553) 2022-09-30 19:06:55 +03:00
Dima
db016288b0
LNG-40 AIR validation on compilation (#546) 2022-08-22 16:37:02 +03:00
Dima
aa4f3413e9
Fix imports in generated JS (#543) 2022-07-28 18:54:50 +03:00
Dima
9bba41abbe
fix type definition for literals, increase version (#527) 2022-06-24 11:46:18 +03:00
Dima
6064659610
DXJ-21 Save token definitions for LSP (#514) 2022-05-24 17:05:26 +03:00
Dima
2ed1d8cf08
V3 types (#453) 2022-03-17 14:25:12 +03:00
Dmitry Kurinskiy
6772c1d0fa
Sugar for collections (#445) 2022-03-03 17:54:45 +03:00
Dmitry Kurinskiy
012cba493c
Op model (#403)
* Separating raw FuncOp from OpModel WIP

* Model compiles, fighting with transform

* Refactoring WIP

* transform compiles

* Fixing AquaCompiler WIP

* Compiler compiles WIP

* AquaContext's allFuncs, allValues

* WIP trying to compile the CLI

* It compiles

* It runs and fails to compile

* Compiles wrong way

* fix TopologySpec

* Sugar bugfix

* fix TransformSpec compilation

* fix test compilation

* fix SemanticSpec

* Topology debugging

* TransformSpec fixed

* Do not import aqua.model

* Take parts in Semantics

* Fix for re-exports

* Maybe a fix for streams

* Maybe a fix for declarations

* streamArgs.aqua in test examples

* more aqua code with bugs

* FuncOp removed

* removed wrapNonEmpty

* fix TransformSpec

* fix SemanticSpec compilation, delete FuncOps

* Separated model/res, model/inline

* tiny fix

* Tests fixed

* TreeNode to wrap labels into cofree standard way

* TreeNodeCompanion with defauls show, equalsOrShowDiff for all Cofree trees we have

* Simple TagInlinerSpec

* Failing test in TagInlinerSpec

* test wip

* test fixed

* delete Node

* delete test-kit, move tests

* fix constants

* Failing TagInliner test

* More complex case for TagInlinerSpec

* TagInlinerSpec fix

* Split RawValueInliner, TagInliner

* Dumb case for ArrowInlinerSpec

* spec for stream renaming

* renaming stream test

* Exports fixed

* SeqModel.wrapWithEmpty for tests

* Deleted EmptyModel

* Bring back EmptyModel

* ArrowInlinerSpec wip

* ArrowInlinerSpec fixed

* Test fixed

* fix

* stream in callback test WIP

* Slightly better logging for TagInliner

* add example in aqua

* test update

* Removed occasional abilities override

* test

* AquaCompilerSpec WIP

* AquaCompilerSpec failing

* AquaCompilerSpec fixed

* fix test

* compiler test, add RestrictionTag

* break test

* fix stream passing to box arguments

* fix exports in context

* Do not reexport builtins

* init for topology bug

* test for topology

* Reproduced the import-reexport bug

* Hops are working...

* Issue #397 does not reproduce!

* foldJoin reproduces the bug

* Reexports inefficiently fixed

* Topology test fixed

* topology bug

* Cache compiled parts

* Cache compiled parts

* ignore the wip topology test

* delete test

* hanging

* add builtin

* Use linked-data-structure `equals` instead of recursive `hashCode`

* A bit more logs

* eq is faster than ==

* Try to join one by one

* op.identity for join

* reverting op.noop for join

* Fix for renaming when value has the same name as argument

* Bump the version to .6

* broken test for names

* second test for renaming

* this test works but i must break it

* add index in call

* JoinModel breaks test

* the test works fine with a fix, but we should check it closely. and `foldJoin.aqua` integration test become broken

* broken test with xor

* Fixed naming issue for lambda's variables substitution

* Topology bug wip

* Fixes #397

* Maybe fix

Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2022-01-31 14:48:13 +03:00
Dmitry Kurinskiy
061e896b63
Model/raw refactoring (#398)
* Introducing model/raw subproject

* ValueRaw WIP

* ValueRaw WIP

* ValueModel.fromRaw WIP

* Recursive variables renaming

* Tests

* recursiveRaw

* Arrow Inliner refactoring

* desugarize takes its place WIP

* Sugar.desugarize maybe works

* Some movings/renamings

* Compile bug fixed

* Updated scalafmt

* Fix for service defaultId

* Map values recursively
2022-01-13 10:32:59 +03:00
Dima
7ec3575a84
Add features #362 #363 #367 #357 to run command (#368) 2021-11-25 11:01:08 +03:00
Dima
4eb272e953
Support new fluenceJS version in run command. Print results of a function (#358) 2021-11-17 10:56:42 +03:00
Dmitry Kurinskiy
27b885f12d
#321 restricted stream scopes (#359) 2021-11-17 08:25:06 +03:00
Dima
3c7d81ba17
#343 Compare option types properly (#354) 2021-11-02 17:18:18 +03:00
Dima
9933b38ded
Replace null to undefined in json to register services and functions properly (#335) 2021-10-22 00:08:08 +03:00
Dima
2f1d5a0760
Async fluence js (#334) 2021-10-21 16:47:04 +03:00
Dima
3844d8f2db
Run aqua code from CLI (#324) 2021-10-13 11:10:10 +03:00
Dima
4e63da83f5
Combine js and ts backends (#307) 2021-09-23 13:45:27 +03:00
Dima
93dec7846c
Check service definition fields in TS and JS, fix functions and services count in output (#305) 2021-09-17 11:21:04 +03:00
Dima
c4248640af
ts format (#302) 2021-09-14 13:46:48 +03:00
Pavel
5c67987346
Adjust ts and js backend to support updated JS SDK public interface (#298) 2021-09-10 19:53:52 +03:00
Dima
7362b46384
Fix incorrect resolving pushing stream from func to a value (#275) (#297) 2021-09-10 14:36:01 +03:00
Pavel
dc1f6c2faa
Fix type convertion for option type (#294) 2021-09-09 19:47:23 +03:00
Pavel
68281cfca2
Add explicit any types to satisfy typescript compiler (#285) 2021-09-08 17:31:56 +03:00
Pavel
3e1618c734
Add support for the new features of JS SDK API (#251) 2021-09-08 13:16:59 +03:00
Dima
d881f5bdbe
Upper cased constants (#260) 2021-09-07 11:09:48 +03:00
Dima
621e06dd9c
Fixes version display and empty module compilation (fixes #264 #265) (#274) 2021-09-07 11:02:36 +03:00
Dima
835a7f7672
add .js to import (#267) 2021-09-03 14:37:10 +03:00
Dmitry Kurinskiy
7e0fe470ec
Support for the new (ap instruction (#241) 2021-08-24 18:59:51 +03:00
folex
2124b88442
JS Backend: add the missing single quote (') (#252) 2021-08-24 14:51:33 +03:00
Dmitry Kurinskiy
96bc76ef2a
Separate Transform from Model (#244)
* Separate Result from Model

* Result->Transform, docs in README.md
2021-08-16 17:58:15 +03:00