InversionSpaces
9c23a9d4ef
feat(compiler): Allow redeclaring functions [LNG-357] ( #1127 )
...
* Allow dots in use ... as
* Add tests
* Refactor implicits
* Use QName in module name
* Fix test
* Refactor declares
* Add PName
* Propagate nested abilities
* Fix compilation
* Do not propagate context
* Use alignCombine
* Add test
* Add more tests
* Refactor test
* Remove unused function
* Refactor test
* Refactor, add comments
* Checkout aqua-src
2024-04-25 10:40:55 +00:00
Dima
e6c5d0039f
fix(compiler): Return error if SemanticError occures [LNG-356] ( #1126 )
2024-04-17 12:40:19 +00:00
InversionSpaces
f29e44e52a
fix(compiler): Refactor header semantics [LNG-352] ( #1113 )
...
* Initial
* Fix import
* Refactor RawSemantics
* Refactor RawSemantics
* Remove initCtx for export
* Add fromInit
* Remove setInit
* Use init ctx
* Add a hack to ModuleSem
* Remove initCtx
* Refactor HeaderSem finalization
* Remove RawContext#init
* Combine with semigroup op
* Remove unnecessary typeclass
* Remove unused typeclass
* Remove unnecessary typeclass
* Remove unnecessary monoid
* Remove contants from monoid
* Fix tests
* Remove unused monoids
* Refactor declares
* Refactor module sem
* Refactor module sem
* Update LspSemantics
* Remove unused typeclass
* Remove unnecessary method
* Add comments
2024-04-09 12:58:12 +02:00
Dima
49729ac40a
fix(compiler): Ordering in option inliner [LNG-351] ( #1114 )
2024-04-08 09:24:55 +00:00
Dima
14748c7646
fix(compiler): Create restrictions in inliner [LNG-346] ( #1099 )
2024-03-28 11:10:13 +00:00
InversionSpaces
5c7f6a89c6
feat(compiler): Reimplement noXor
compiler flag [LNG-347] ( #1096 )
...
* Fix imports
* Remove constants
* Return constants
* Refactor
* Add config
* Do not propagate errors
* Do not propagate errors through on
* Rename hop ephemeral streams
* Add comments
* Add tests
2024-03-05 10:45:21 +07:00
Dima
d7fef3db5f
fix(compiler): Bug in renaming [LNG-346] ( #1094 )
2024-02-29 09:23:34 +00:00
Dima
b22762ca6d
fix(compiler): Recursively find abilities [LNG-338] ( #1086 )
2024-02-21 14:11:21 +03:00
Dima
1a0b3a22c1
fix(compiler): Streams in closures generates wrong AIR ( #1055 )
2024-01-30 11:34:50 +03:00
Dima
abcb63db3b
perf(compiler): Inliner optimization [LNG-322] ( #1047 )
2024-01-22 10:08:06 +00:00
Dima
85f3ecdf39
fix(compiler): Add outside context to closures [LNG-317] ( #1038 )
2024-01-11 11:00:32 +03:00
Dima
5241f522d8
fix(compiler): Passing closures with abilities [LNG-314] ( #1035 )
2024-01-09 19:31:37 +03:00
InversionSpaces
ae32f80277
feat(compiler): for ... rec
[LNG-307] ( #1026 )
...
* Add parser
* Add semantics
* Add inlining
* Add range test
* Rewrite to for ... rec
* Rewrite tests
* Fix import
* Add nested test
* Remove only
* Add yes|no test
* Add multi rec test
* Add pipeline test
* Unignore tests
* Change timeouts
* Add remote rec test
* Fix integration tests
* Add parser test
* Add semantics test
* Add inlining test
* Add comment
2024-01-09 12:48:02 +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
cee444862a
feat(compiler): Generate empty calls to responseHandlerSrv
[LNG-286] ( #979 )
...
* Add noEmptyResponse
* Fix tests
2023-11-17 10:43:13 +00:00
InversionSpaces
11c8970fd8
feat(compiler)!: Make nil
option bottom [LNG-279] ( #968 )
...
* Make nil option of bottom
* Fix tests
* Make literals of data type
* Add unit tests
* Remove print
2023-11-14 11:02:58 +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
Dima
a1576efad9
fix(compiler): Code generate wrong stream name in AIR [LNG-276] ( #958 )
2023-11-02 13:13:25 +00: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
38f77285f5
fix(compiler): Throw an error when comparing an alias and a named type with the same name [LNG-231] ( #946 )
2023-10-27 11:18:44 +00:00
Dima
45ca7bbf3e
fix(compiler): Multiple closures in one function [LNG-262] ( #941 )
2023-10-27 09:24:52 +02:00
Dima
fab46ee130
fix(compiler): Return ability arrow [LNG-258] ( #935 )
2023-10-23 16:59:55 +03:00
InversionSpaces
c83d69e689
fix(compiler): Passed function is not handled correctly [LNG-260] ( #940 )
...
* Fix renaming
* Add integration test
2023-10-23 11:54:09 +00:00
InversionSpaces
03d23eb577
feat(compiler): Handle error function exit in tracing mode [LNG-250] ( #921 )
...
* Wrap function calls with xor
* Do not detach tracing call in case of error exit
* Fix comment
2023-10-17 13:42:38 +00:00
InversionSpaces
ba15d9e06a
fix(compiler): Fix topology for adjacent on
s [LNG-257] ( #929 )
...
* Always enforce path
* Revert "Always enforce path"
This reverts commit 5ee1e37c9e
.
* Add integration test
* Force return to relay
* Remove unused import
* Add comment
* Add unit test
* Add TODO
* Remove println
* Fix typo
2023-10-17 11:59:30 +00: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
InversionSpaces
b298eebf5e
fix(compiler): Fix gate inlining [LNG-253] ( #924 )
...
* Fix gate inlining
* Remake stream gate inlining, fix unit tests
* Fix: add flat inline
* Refactor, add comments
2023-10-08 12:52:54 +02:00
Dima
878990a837
feat: Create structs with stream maps [fixes LNG-244] ( #893 )
2023-09-27 15:07:22 +03:00
InversionSpaces
ca6cae96ad
feat(compiler): Make if
propagate errors [fixes LNG-202] ( #779 )
...
* Change if inlining, add fail model
* Inline if
* Fix, add comments
* Add integration test
* Fix test
* Fix test
* toBe -> toEqual
---------
Co-authored-by: Dima <dmitry.shakhtarin@fluence.ai>
2023-09-27 09:52:52 +00:00
InversionSpaces
f158074c4e
fix(compiler): Handle errors from result handling [fixes LNG-247] ( #913 )
...
Move args and return under try
2023-09-27 12:29:06 +03:00
InversionSpaces
a80033b81c
feat(compiler): Replace %last_error%
with :error:
[fixes LNG-239] ( #883 )
...
* %last_error% -> :error:
* Add integration test
* Fix integration tests
* Update integration test
2023-09-26 13:28:13 +03:00
InversionSpaces
27a781dd3f
feat(compiler): Add warnings subsystem [fixes LNG117] ( #906 )
...
* ErrorsAlgebra -> ReportAlgebra
* Refactor ReportAlgebra
* Refactor
* Refactor AquaError
* Fixes
* Add warnings, refactor
* Refactor parser
* Move semantics
* Savepoint
* Refactor semantics and compiler
* Refactor types
* Refactor compiler
* Refactor compiler
* Refactor types
* Refactor retunr types
* Return warnings
* Add simple warning
* Refactor to ValidatedNec
* Refactor
* Add comment
* Propagate warnings to LspContext
* Propagate warnings to LSP
* Add warnings to js api
* Update LSP js api
* Use export declare
* Add comment
* Refactor span rendering
* Remove variable name warning
* Add warning on unused call results
* Add unit tests
* Remove println
2023-09-25 13:00:43 +00:00
InversionSpaces
8741c910be
feat(compiler): Fail on internal error [fixes LNG-229] ( #905 )
...
* Refactor utils
* Add errors project
* logger.error -> internalError
* Add comment
* Suppress stack trace
---------
Co-authored-by: Dima <dmitry.shakhtarin@fluence.ai>
2023-09-19 17:01:42 +02:00
InversionSpaces
ed9e708939
fix(compiler): Fix arrows capture in closures [fixes LNG-242] ( #903 )
...
* Fix arrows capture
* Add comment
* Add test
* Add integration test
2023-09-19 14:25:11 +03: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
c1fbea1a49
chore(compiler): Add PathFinder test ( #872 )
2023-09-04 11:22:57 +00: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
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
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
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
InversionSpaces
50ba194b86
fix(compiler): Fix math ops for u64
[fixes LNG-204] ( #811 )
2023-07-25 12:53:50 +03:00