InversionSpaces
54ddcc8b62
fix(compiler): Do not restrict stream args when ability is present [fixes LNG-233] ( #902 )
...
Add test
2023-09-18 14:43:22 +00:00
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
69a808e243
fix(compiler): Error on not arrow call after <-
( #876 )
...
* Add error report
* Add tests
2023-09-08 14:21:19 +02:00
InversionSpaces
443e65e3d8
fix(compiler): Fix closure stream capture [fixes LNG-58] ( #857 )
2023-09-01 16:05:32 +03:00
InversionSpaces
2a0b207633
feat(compiler): Restrict abilities usage [fixes LNG-208] ( #854 )
...
* Refactor
* Refactor
* Refactor
* Remove ScopeRaw
* Refactor, forbid exporting
* Add export checks
* Refactor
* Forbid exporting abilities
* Fix integration tests
* Forbid implicit ability export
* Simplify exports
* Fordbid using non data types in collections
* Forbid unappropriate struct field types
* Refactor
* Add export tests
* Add collection tests
* Add struct fields test
* Fixes
* Fix
2023-08-24 16:09:39 +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
InversionSpaces
eb4cdb0dd1
fix(compiler): Generate stream restriction for scoped exprs [fixes LNG-222] ( #841 )
...
* Add show for AST
* Update ForSem
* Fix if and try
* Fix else, otherwise, catch, add tests
* Add integration tests
2023-08-17 10:30:02 +04:00
InversionSpaces
f562bd40b6
fix(compiler): Refactor values [fixes LNG-57] ( #821 )
...
* Refactor parser
* Savepoint
* Refactor CliFunc and TypesInterpreter
* Fix CliFunc
* Fix parser tests
* Fix tests compilation
* Fix callArrowToRaw
* Fix co parsing, add tests
* Add par tests
* Fix field parsing, add test
* Return ability to CallArrowToken
* Fix names
* Refactor and add comments
* Refactor, add comments
* Fix
2023-08-15 13:33:34 +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
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
fabf8d7d61
feat(compiler): Restrict exporting functions that return arrow types or ability types [fixes LNG-209] ( #815 )
2023-07-26 12:55:16 +03:00
InversionSpaces
50ba194b86
fix(compiler): Fix math ops for u64
[fixes LNG-204] ( #811 )
2023-07-25 12:53:50 +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
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
e4205dfbbf
feat!: add name scopes to if/else/try blocks ( #715 )
2023-05-17 17:10:18 +03:00
Dima
670e779ba0
refactor: fix: LNG-143 LNG-144 definitions and locations algebras ( #705 )
2023-05-03 16:24:19 +03:00
Dima
dac8fb5774
refactor: Move LSP logic to LSP package ( #701 )
2023-04-20 13:01:47 +03:00
Dima
8fa979cd33
feat: Return arrows from functions ( #693 )
2023-04-14 16:28:17 +03:00
Dima
50f0723a32
feat: copy structures implementation [fixes LNG-102] ( #646 )
2023-01-20 12:02:05 +07:00
Dima
63433f2c91
LNG-96 object creation ( #592 )
2022-11-30 15:28:06 +03:00
Dima
85b8f31e74
Fix join behavior when using .length
( #584 )
2022-11-16 15:20:32 +03:00
Dima
e46cd0b550
small change ( #580 )
2022-10-19 19:45:13 +03: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
95d3dc2d9e
LNG-86 Stream canonicalization ( #553 )
2022-09-30 19:06:55 +03:00
Dima
d452070b9f
DXJ-82 DXJ-42 Go-to definition for data structs and imports in VSCode extension ( #541 )
2022-07-26 16:58:28 +03:00
Dmitry Kurinskiy
f0cc65e2ad
Fixes LNG-63: introduced ShadowRaw ( #528 )
2022-06-27 15:54:21 +03:00
Dima
5f2de1b9d5
DXJ-44 JSON services support ( #520 )
2022-06-23 15:02:41 +03:00
Dima
5a7450bce1
Go-to definitions location between files ( #516 )
2022-06-02 13:31:31 +03:00
Dima
6064659610
DXJ-21 Save token definitions for LSP ( #514 )
2022-05-24 17:05:26 +03:00
Dima
0892a72afd
#484 Improve type mismatch
error messages ( #488 )
2022-04-13 17:09:58 +07:00
Dmitry Kurinskiy
abd101c4f9
Fix for greedy par ( #487 )
2022-04-12 16:27:04 +03:00
Dima
e9a686aac6
Math sequence fixes ( #476 )
2022-04-11 15:36:01 +03:00
Dima
8ff57625f0
#478 throw compilation error if service returns multiple results ( #479 )
2022-04-04 18:14:57 +07: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
Dima
2ed1d8cf08
V3 types ( #453 )
2022-03-17 14:25:12 +03:00
Dmitry Kurinskiy
ab0990dd72
Capture and apply topology ( #451 )
2022-03-15 14:52:43 +03:00
Dima
04e68b553f
Use global node_modules
path to find aqua dependencies ( #450 )
2022-03-09 18:54:28 +03:00
Dmitry Kurinskiy
2fa3a09548
Empty collections creation ( #447 )
2022-03-04 14:07:30 +03:00
Dmitry Kurinskiy
6772c1d0fa
Sugar for collections ( #445 )
2022-03-03 17:54:45 +03:00
Dmitry Kurinskiy
d5d7b8b5fd
Fix for greedy XOR tags ( #412 )
2022-02-02 19:06:35 +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
f795edfaf7
Join expression ( #402 )
2022-01-13 13:58:20 +03:00
Dmitry Kurinskiy
5a8a702f1c
Scalar index access ( #401 )
...
* Access index by scalar value
* Decomposed resolveField/resolveIndex semantics
* valueToRaw with recursive lambda support
* P.defer for recursive parser
* Desugarize all tags
* .backtrack
* Recursion bugfix
* Some code readability improvement
* Compile bugfix
2022-01-13 13:39:43 +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
Dmitry Kurinskiy
8c22a69840
Detach for par ( #369 )
2021-11-25 12:11:45 +03:00