InversionSpaces
b0f3a8c21e
fix(compiler): Fix CRDT Map in array handling [LNG-370] ( #1171 )
...
* Stricten CollectibleType
* Add test
* Add comment
2024-07-12 16:06:14 +07:00
Dima
4d49279569
feat(compiler): Add feature to insert map from a function result with correct type [LNG-367] ( #1159 )
2024-07-01 19:58:29 +07:00
InversionSpaces
4ad0655da6
chore: Update files headers to AGPLv3 ( #1161 )
2024-06-24 12:20:27 +00:00
Dima
934c20c98a
feat(compiler): CRDT-maps implementation ( #1142 )
2024-06-06 04:24:47 +00:00
Dima
35db82c767
fix(lsp): Go-to-definition for used types (LNG-345) ( #1128 )
2024-05-14 11:36:25 +00:00
Dima
1a0b3a22c1
fix(compiler): Streams in closures generates wrong AIR ( #1055 )
2024-01-30 11:34:50 +03:00
InversionSpaces
d057a5e695
feat(compiler)!: Force aqua
header [LNG-308] ( #1028 )
...
* Refactor
* deprecate `module`, force `aqua`, fix integration and unit tests
* fix ImportFromSpec
* Savepoint
* Fix
* Semantic error on module header
* Refactor
* Add begin token
* Fix tests
* Remove DHT examples
* Use git aqua-lib
* Fix headers
* Fix headers
* Fix headers
* Fix headers
* Fix headers
* Fix headers
* Fix headers
* Fix test
* Unignore tests
* Update aqua-lib
---------
Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2024-01-18 10:43:23 +01:00
InversionSpaces
d46ee0347f
fix(compiler): Type check arrow calls on services and abilities [LNG-315] ( #1037 )
...
* Rewrite resolveIntoArrow
* Refactor
* Refactor resolveIntoCopy
* Refactor resolveIntoIndex
* Refactor resolveIntoField
* Fix test
* Remove package-lock.json
* Add tests
* Add comment
2024-01-10 11:36:20 +01:00
Dima
74d02e1f63
feat(language-server): Pass token types to LSP [LNG-285] ( #999 )
2023-12-07 12:06:51 +00:00
Dima
4cecab1a26
fix(compiler): Use correct empty stream as argument [LNG-280, LNG-292] ( #967 )
2023-11-28 10:45:12 +00:00
InversionSpaces
2d4b2aece4
fix(compiler): Allow returning resolved service as ability [LNG-266] ( #977 )
...
* Refactor
* Refactor type system
* Remove println
* Fix renaming
* Add unit tests
* Do not convert to call arrow
* Check ability
* Refactor captured values resolution
* Remove println
* Fix fields gathering
* Remove println
* Remove println
* Fix renaming, export ability
* Rename only abilities
* Fix unit tests
* Fix captured arrows renaming
* Add comments
* Refactor
* Rename only arrows
* Add comments, refactor
* Add comments
* Rename method
* Add integration test
---------
Co-authored-by: Anatolios Laskaris <github_me@nahsi.dev>
Co-authored-by: Dima <dmitry.shakhtarin@fluence.ai>
2023-11-23 10:12:44 +00:00
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
5a3c5e6666
fix(compiler): Unknown service method call is ignored [LNG-273] ( #957 )
...
* Remove property token adjustment
* Revert "Remove property token adjustment"
This reverts commit 27d72f2bff4993fb58fd5125e0fe4ffae5c2aa77.
* Remove scope word
* Refactor
* Refactor, add error
* Add unit tests
* Fix specifier for struct
2023-11-01 14:55:59 +03:00
InversionSpaces
5f6c47ffea
feat(compiler): Optimize math in compile time [LNG-245] ( #922 )
...
* Move service calls for math to inlining
* Fix: add predo
* Introduce CallServiceRaw
* Add comment
* Add optimization to inlining
* Add tests
* map -> mapValues
* Refactor type
* Add optimization
* Add optimization test
* Fix unit tests
* Fix PR comments
* Restrict optimization
* Add substraction to optimization
* Apply optimizations in gate
* Fix sign, move optimization to unfold
* Fix type and tests
* Fix unit tests
* Add unit test
* Fix after merge
* Add optimization, fix unit tests
* Fix comment
2023-10-09 13:02:26 +03:00
Dima
878990a837
feat: Create structs with stream maps [fixes LNG-244] ( #893 )
2023-09-27 15:07:22 +03:00
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
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
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
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
4e3e70f4fc
fix(compiler): Nested abilities [fixes LNG-214] ( #816 )
2023-07-31 14:40:06 +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
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
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
63433f2c91
LNG-96 object creation ( #592 )
2022-11-30 15:28:06 +03:00
Dima
95d3dc2d9e
LNG-86 Stream canonicalization ( #553 )
2022-09-30 19:06:55 +03:00
Dima
10061ade3b
Generate types from JSON ( #492 )
2022-04-20 14:45:42 +03:00
Dima
0892a72afd
#484 Improve type mismatch
error messages ( #488 )
2022-04-13 17:09:58 +07:00
Dima
277bb5c8b8
Addr aliases and info fixes ( #470 )
2022-03-30 21:59:41 +07: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
271dbc87a1
Unite, intersect types ( #444 )
...
* Unite, intersect types
* intersection types tests wip
* Intersections fixed
* Hacky temporary solution for unions of products
* Okay it's good enough
* Generate ascii-compatible struct names
* Pluggable scalars combiners
* Scalar combiners
* A few lines of docs
2022-03-01 14:43:51 +03:00
Dima
5a79dbb76a
#426 aqua does not generate correct getDataSrv ( #429 )
2022-02-09 13:24:21 +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
Dmitry Kurinskiy
3e7b11db10
Imports/exports fixes ( #258 )
...
* Fix for export in headerless file
* Ability arrow resolution bugfix
* Trying to reproduce a bug
* Allow dots in module declaration
2021-08-31 13:05:26 +03:00
Dmitry Kurinskiy
f7aa118006
Multireturn bugfix ( #238 )
2021-08-11 10:55:25 +03:00
Dmitry Kurinskiy
3eb3ecc221
Return many values from a single function ( #229 )
2021-08-09 21:33:55 +03:00
Dmitry Kurinskiy
cd30ff8e8c
Introducing Product type ( #225 )
...
* Introducing Product type
* Main codebase compiles with Arrow(domain, codomain)
* Tests compile
* Tests passed
* Tiny fixes: use argument labels in js/ts generators
* Fix for return type in .ts
* Typescript fix
* Fix for option return in JS
* Arrow variance fix
* separated CompareTypes
* Added deprecation notices to ArrowType functions
* Compile error fixed
* Types doc comments
* Multi-value return is supported in the model
* Tests compilation fixes wip
* Test compiles
* Bugfix
* Bugfix
2021-08-06 16:31:47 +03:00
Dmitry Kurinskiy
83d5a7b2a3
Introducing top and bottom types ( #199 )
...
* - Added top and bottom types
- Added nil for empty streams, options, arrays
- Fixed product variance
* Version bump due to syntax changes in the type system
2021-07-13 17:43:24 +03:00
Dmitry Kurinskiy
985309d4eb
Fixes missing par ( #177 )
...
* Fixes missing par
* test for par
* Par topology bug fixed
* test `on` on every par branch
* Topology refactoring
* Tests compilation wip
* Tests compilation wip
* Tests compile
* Test fix
* Non-par tests fixed
* The last test remains
* Topology tests fixed
* SemanticsSpec compiles
* transformspec wip
* fix diff
* TransformSpec with diff
* test for error handling
* topology resolver spec wip
* delete test, rename test
* fixed
* par with export variable test
* test for try without catch
* Handle try without catch
* XorParTag fix
* Wake up target peer after par
* Increment version
* Fix xor par during func model resolution
* test with import and fold
* Linker bug fixed
Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2021-06-22 11:03:45 +03:00
Dmitry Kurinskiy
807c26619f
108 option type ( #146 )
...
* Option type support: arguments, values
* Aqua version 0.1.4
* Fix for optional return value in TS
* Tiny fixes
* Example for declaring local options
2021-06-02 12:29:12 +03:00
Dmitry Kurinskiy
54ff258513
Rename signed types to i...
( #116 )
...
* Rename signed types to `i...`
* Type variance for scalars
2021-05-14 12:51:06 +03:00
Dmitry Kurinskiy
27f2912c5f
Streams support ( #87 )
...
* #29 going to support streams
* Added StreamName
* StreamName removed
* Streams support works
* Debug println removed
Co-authored-by: Dima <dmitry.shakhtarin@fluence.ai>
2021-04-27 16:59:12 +03:00
Dmitry Kurinskiy
e2621f0008
Fixes #68 :fix return using relay ( #72 )
...
* Added test & some test routines
* Test usability improvements
* Failing script
* Failing test for #68
* Fix topology in case of a sequence of calls
* Formatting
* Formatting
2021-04-16 20:15:45 +03:00
Dima
2e5f986961
fix assembly, add u8 ( #45 )
2021-04-08 15:53:54 +03:00
Dmitry Kurinskiy
0de43b470e
39 fix callbacks ( #43 )
...
* Project layout reorganized
* Topology resolution extracted to a separate file
* FuncResolved class
* aqua.model.transform
* Basic bubbling
* Get more context into topology resolver
* Failing Topology test
* Get back in seq
* OnTag.via: List changed to Chain, as via is reversed and concatenated quite frequently
2021-04-06 19:01:25 +03:00