InversionSpaces
6be2a3d5da
feat(compiler): Services as abilities [fixes LNG-206] ( #873 )
...
* Refactor ServiceSem
* Refactor AbilityIdSem
* Remove tokens from state
* Refactor
* Add mangler
* Fix tests
* Refactor valueToRaw
* ServiceIdTag
* AbilityId -> ServiceId
* Add ServiceType
* Fix defineServiceType
* Refactor resolveArrowDef
* Refactor TypesHelper
* Add ServiceIdTag inlining
* Implement resolution
* Add service as ability passing
* Fix importing services
* Fix cli
* Implement default service
* Remove println
* Fix capture
* Add integration test
* Fix id
* Fix test
* Fix test
* Refactor test
* Do not resolve id
* Refactor FuncArrow creation
* Refactor FuncArrow wrapper creation
* Add named arguments
* Add comment
* ensureIsString -> valueToStringRaw, refactor OnSem
* Resolve services as abilities
* Add name to varNames
* Remove service hack
* Capture services, do not rename captured
* Rename arrows along with values
* Fix CallArrowRaw.map
* Fix unit tests
* Remove service case
* Refactor abilities state
* Propagate rootServiceIds
* Remove unused
* Add comments
* Refactor
* Refactor
* Add test
---------
Co-authored-by: Dima <dmitry.shakhtarin@fluence.ai>
2023-09-15 10:34:21 +02:00
InversionSpaces
443e65e3d8
fix(compiler): Fix closure stream capture [fixes LNG-58] ( #857 )
2023-09-01 16:05:32 +03:00
InversionSpaces
bf0b51fa5b
fix(compiler): Fix nested abilities [fixes LNG-220] ( #852 )
...
* Fix fields gathering
* Remove println
* Add test
* Remove println
* Add comments
* Add comments
2023-08-22 11:53:06 +02: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
019611a89c
feat(compiler): Structural typing for data and abilities [fixes LNG-215] ( #843 )
2023-08-18 16:15:20 +03:00
InversionSpaces
a5e9354aeb
feat(compiler): Add equality ops [fixes LNG-217] ( #820 )
...
* Add eq ops
* Fixed if
* Fix return
* Fix tests
* Add parser tests
* Fix types, add semantics tests
* Add integration tests
* Add integration test
* Remove comment
2023-08-09 13:38:24 +00: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
4e3e70f4fc
fix(compiler): Nested abilities [fixes LNG-214] ( #816 )
2023-07-31 14:40:06 +03:00
InversionSpaces
a5b6102422
feat(compiler): Add boolean algebra [fixes LNG-211] ( #814 )
2023-07-27 14:11:36 +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
InversionSpaces
8ba7021cd4
refactor(semantics): Refactor semantics to produce concrete tags [fixes LNG-201] ( #776 )
...
* Introduce IfTag, TryTag; Remove XorTag
* Add IfTag, TryTag inlining
* Fix test compilation
* Fix test
* Hack to fix topology
* Support try otherwise syntax
* Add comments
* Refactor diff show
* Handle ParTag.Par in single check, add tests
2023-06-29 16:20:47 +00:00
Dima
339d3a8217
refactor: ArrowInliner refactoring ( #777 )
2023-06-29 11:43:38 +00:00
InversionSpaces
e22fff7c8a
fix(compiler): Fix incorrect service method renaming [fixes LNG-199] ( #757 )
...
* Rename only arrows, not service calls
* Add tests
* Fix comment
2023-06-16 15:05:41 +03:00
InversionSpaces
d6e3ec725c
refactor(compiler): Remove ShadowRaw ( #742 )
2023-06-14 16:41:38 +03:00
InversionSpaces
f1abd587b7
fix(compiler): Fix closure passing [fixes LNG-92] ( #747 )
2023-06-14 16:09:50 +03:00
InversionSpaces
c5534a964c
fix(compiler): Fix closure call compilation [fixes LNG-193] ( #741 )
2023-06-13 12:56:17 +03:00
InversionSpaces
e9c004452e
feat(tracing): Introduce function calls tracing [fixes LNG-169] ( #732 )
...
* Introduced MetaModel.CallArrowModel
* Fixed ArrowInlinerSpec
* Implemented trace calls injection
* Propagate TracingConfig
* Add tracing flag to js api
* Use detach instead of xor
* Write tests
* ScalarType -> LiteralType
* Add tests
* Fix after rebase
* Fixed tests
* Add tests
* Remove debug prints
* Clean up and add comments
* Fix issues
* Add tracing flag to js api
* Rename liftString -> quote
* Change literal type
* Use CallServiceModel constructor
* Fix js args
* Fixed tests
* Add tracing option to cli
2023-06-12 15:28:27 +02:00
Dima
ddb758cee0
fix(inline): Nullable value in a nested struct [LNG-160] ( #724 )
...
Co-authored-by: InversionSpaces <InversionSpaces@vivaldi.net>
2023-06-01 15:54:19 +00:00
Dima
5f00b1ea8d
fix: ParRes with no children converted to Null
log ( #699 )
2023-04-19 12:14:46 +03:00
Dima
8fa979cd33
feat: Return arrows from functions ( #693 )
2023-04-14 16:28:17 +03:00
Dima
bb24a63abb
fix: Fix type for functor [fixes LNG-119] ( #677 )
2023-02-28 10:56:49 +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
439f2cde03
perf: Unfold variables in parallel where it is possible (fixes LNG-109 ) ( #656 )
2023-02-01 10:50:43 +03:00
Dima
fedd743721
fix: Canonicalize variable in object creation or copy if variable is a stream ( #649 )
2023-01-27 13:24:52 +03:00
Dima
50f0723a32
feat: copy structures implementation [fixes LNG-102] ( #646 )
2023-01-20 12:02:05 +07:00
Dima
7ab980a5f0
fix: nil
in return [DXJ-226] ( #629 )
2023-01-17 20:50:47 +03:00
Dima
63433f2c91
LNG-96 object creation ( #592 )
2022-11-30 15:28:06 +03:00
Dima
2b36dbea40
fix gate ( #590 )
2022-11-17 12:17:28 +03:00
Dima
85b8f31e74
Fix join behavior when using .length
( #584 )
2022-11-16 15:20:32 +03:00
Dima
61f483e16b
Fix empty streams as result ( #582 )
2022-10-21 21:16:39 +02:00
DieMyst
2b99cba0d1
push to stream as a result of inner function only if stream is declared in outer function
2022-10-19 19:07:08 +03:00
Dima
176cad360c
LNG-87 add null
and never
modes to fold instruction ( #563 )
2022-10-09 20:11:27 +03:00
Dima
befa534c57
LNG-88 Canonicalize streams in service calls and if statements ( #565 )
2022-10-06 15:42:11 +03:00
Dima
1fa312e7c3
Fix par in properties resolving ( #564 )
2022-10-06 11:27:46 +03:00
Dima
95d3dc2d9e
LNG-86 Stream canonicalization ( #553 )
2022-09-30 19:06:55 +03:00
Dima
792e174641
LNG-78 parser error on negative array indexes ( #538 )
2022-07-12 21:59:58 +03:00
Dmitry Kurinskiy
f0cc65e2ad
Fixes LNG-63: introduced ShadowRaw ( #528 )
2022-06-27 15:54:21 +03:00
Dima
a0805068f3
#499 rename vars in for ( #500 )
2022-04-26 08:49:28 +03:00
Dima
ef0091175c
fix and add unit test ( #477 )
2022-04-04 11:08:02 +03:00
Dmitry Kurinskiy
12ee2d52fa
Arrow Call as a Raw Value ( #461 )
...
* CallArrowToken in the parser
* CallArrowRawTag
* unfoldArrow
* handle IntoIndexRaw for CallArrowRaw
* Removed useless CallArrowRawTag.service argument
* RawValueInliner split into several classes
* cliJS compiles
* Parser tests compile
* Semantics spec compile but fail
* Allow braces around values
* infix token WIP
* InfixToken WIP
* Fixes #423
* Infix (arithmetic) operations order
* Infix (arithmetic) operations parallelism fix
* seq it!
* fix inline test
* fix transform test
* fix semantics spec
* fix CallArrowSem
* bugfix
* Fix for CLI help typo
* merge
* Order fix
* Order fix
* optional space after `func` in closures
* some doc comments
Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2022-03-25 17:23:41 +03:00
Dmitry Kurinskiy
ab0990dd72
Capture and apply topology ( #451 )
2022-03-15 14:52:43 +03:00
Dmitry Kurinskiy
6772c1d0fa
Sugar for collections ( #445 )
2022-03-03 17:54:45 +03:00
Dmitry Kurinskiy
6d03a0d95b
Fix for passing a stream argument with lambda to a function waiting for a scalar ( #420 )
2022-02-06 00:26:07 +03:00
Dmitry Kurinskiy
d5d7b8b5fd
Fix for greedy XOR tags ( #412 )
2022-02-02 19:06:35 +03:00
Dima
740a9ba653
run
manual (#407 )
2022-02-02 14:40:10 +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