aqua/build.sbt

318 lines
8.7 KiB
Plaintext
Raw Normal View History

import BundleJS.*
val aquaVersion = "0.13.4"
val scalaV = "3.3.1"
val catsV = "2.10.0"
val catsParseV = "0.3.10"
val monocleV = "3.1.0"
val scalaTestV = "3.2.17"
val scalaTestScalaCheckV = "3.2.17.0"
val sourcecodeV = "0.3.0"
// Snapshot is used to get latest fixes
val fs2V = "3.9.3-37-8badc91-SNAPSHOT"
val catsEffectV = "3.6-1f95fd7"
2022-08-01 19:20:45 +00:00
val declineV = "2.3.0"
val circeVersion = "0.14.2"
val scribeV = "3.13.0"
2021-04-08 12:53:54 +00:00
name := "aqua-hll"
val commons = Seq(
version := {
val aquaSnapshot = sys.env.getOrElse("SNAPSHOT", "")
if (aquaSnapshot.isEmpty()) aquaVersion else aquaVersion + "-" + aquaSnapshot,
},
scalaVersion := scalaV,
2021-05-24 08:00:45 +00:00
libraryDependencies ++= Seq(
"com.outr" %%% "scribe" % scribeV,
"org.scalatest" %%% "scalatest" % scalaTestV % Test,
"org.scalatestplus" %%% "scalacheck-1-17" % scalaTestScalaCheckV % Test
2021-05-24 08:00:45 +00:00
),
2021-08-06 10:33:58 +00:00
scalacOptions ++= {
Seq(
"-encoding",
"UTF-8",
"-feature",
"-language:implicitConversions",
"-unchecked",
"-Ykind-projector"
// "-Xfatal-warnings"
2021-08-06 10:33:58 +00:00
)
},
// Needed to resolve snapshot versions
resolvers ++= Resolver.sonatypeOssRepos("snapshots")
)
commons
2022-12-28 08:30:42 +00:00
lazy val `aqua-run` = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("aqua-run"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.dependsOn(compiler, `backend-air`, `backend-ts`, io, definitions, logging, constants)
2022-05-17 12:05:25 +00:00
lazy val io = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-05-17 12:05:25 +00:00
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-effect" % catsEffectV,
"co.fs2" %%% "fs2-io" % fs2V
)
)
.dependsOn(compiler, parser, helpers)
2022-05-17 12:05:25 +00:00
lazy val ioJS = io.js
.settings(
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule))
)
.dependsOn(`js-imports`)
2022-12-28 08:30:42 +00:00
lazy val `language-server-api` = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2022-12-28 08:30:42 +00:00
.in(file("language-server/language-server-api"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-05-17 12:05:25 +00:00
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-effect" % catsEffectV,
"co.fs2" %%% "fs2-io" % fs2V
)
)
.dependsOn(compiler, io)
lazy val `language-server-apiJS` = `language-server-api`.js
.settings(
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
scalaJSUseMainModuleInitializer := false
)
.settings(addBundleJS("../../language-server-npm/aqua-lsp-api.js"))
.enablePlugins(ScalaJSPlugin)
.dependsOn(`js-exports`, `js-imports`)
2022-05-17 12:05:25 +00:00
2022-12-28 08:30:42 +00:00
lazy val `js-exports` = project
.in(file("js/js-exports"))
.enablePlugins(ScalaJSPlugin)
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.dependsOn(`backend`.js, definitions.js)
lazy val `js-imports` = project
.in(file("js/js-imports"))
.enablePlugins(ScalaJSPlugin)
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.dependsOn(`js-exports`, transform.js)
lazy val `aqua-api` = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("api/api"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(`aqua-run`, `backend-api`)
lazy val `aqua-apiJS` = `aqua-api`.js
2022-12-28 08:30:42 +00:00
.settings(
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
scalaJSUseMainModuleInitializer := true,
Test / test := {}
2022-12-28 08:30:42 +00:00
)
.settings(addBundleJS("../../api-npm/aqua-api.js"))
.enablePlugins(ScalaJSPlugin)
.dependsOn(`js-exports`)
2022-12-28 08:30:42 +00:00
lazy val types = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.settings(commons)
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-core" % catsV
)
)
.dependsOn(errors)
lazy val parser = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2023-07-18 17:18:33 +00:00
.settings(commons)
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-parse" % catsParseV,
"org.typelevel" %%% "cats-free" % catsV
)
)
.dependsOn(types, helpers)
2021-02-01 13:17:46 +00:00
lazy val linker = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(parser)
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 11:48:13 +00:00
lazy val tree = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
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 11:48:13 +00:00
.in(file("model/tree"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-free" % catsV
)
)
.dependsOn(helpers)
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 11:48:13 +00:00
lazy val raw = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("model/raw"))
2023-07-18 17:18:33 +00:00
.settings(commons)
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 11:48:13 +00:00
.dependsOn(types, tree)
lazy val model = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(types, tree, raw, helpers, errors)
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 11:48:13 +00:00
lazy val res = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
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 11:48:13 +00:00
.in(file("model/res"))
2023-07-18 17:18:33 +00:00
.settings(commons)
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 11:48:13 +00:00
.dependsOn(model)
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 11:48:13 +00:00
lazy val inline = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
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 11:48:13 +00:00
.in(file("model/inline"))
2023-07-18 17:18:33 +00:00
.settings(commons)
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 11:48:13 +00:00
.dependsOn(raw, model)
lazy val transform = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("model/transform"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(model, res, inline, res % "test->test")
2021-06-18 14:01:31 +00:00
lazy val semantics = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2023-07-18 17:18:33 +00:00
.settings(commons)
2021-02-01 13:17:46 +00:00
.settings(
libraryDependencies ++= Seq(
"dev.optics" %%% "monocle-core" % monocleV,
"dev.optics" %%% "monocle-macro" % monocleV
2021-03-19 09:40:27 +00:00
)
2021-02-01 13:17:46 +00:00
)
.dependsOn(raw, parser, errors)
lazy val compiler = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2021-06-29 13:31:20 +00:00
.in(file("compiler"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(semantics, linker, backend, transform % "test->test", res % "test->test")
2021-06-29 13:31:20 +00:00
lazy val backend = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2021-06-25 07:25:27 +00:00
.in(file("backend"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.enablePlugins(BuildInfoPlugin)
.settings(
2021-11-04 16:22:57 +00:00
buildInfoKeys := Seq[BuildInfoKey](version),
buildInfoPackage := "aqua.backend"
)
2022-12-28 08:30:42 +00:00
.dependsOn(res, definitions)
lazy val definitions = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("backend/definitions"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.settings(
libraryDependencies ++= Seq(
"io.circe" %%% "circe-core",
"io.circe" %%% "circe-generic",
"io.circe" %%% "circe-parser"
).map(_ % circeVersion)
)
.dependsOn(res, types)
2022-12-28 08:30:42 +00:00
lazy val logging = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("utils/logging"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-core" % catsV
)
)
lazy val constants = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("utils/constants"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-core" % catsV
)
)
.dependsOn(parser, raw)
2021-06-25 07:25:27 +00:00
lazy val helpers = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("utils/helpers"))
.settings(commons)
.settings(
libraryDependencies ++= Seq(
"org.typelevel" %%% "cats-core" % catsV,
"org.typelevel" %%% "cats-free" % catsV
)
)
lazy val errors = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("utils/errors"))
.settings(commons)
.settings(
libraryDependencies ++= Seq(
"com.lihaoyi" %%% "sourcecode" % sourcecodeV
)
)
lazy val `backend-air` = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("backend/air"))
2023-07-18 17:18:33 +00:00
.settings(commons)
.dependsOn(backend, transform)
2021-03-02 16:46:27 +00:00
2022-12-28 08:30:42 +00:00
lazy val `backend-api` = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("backend/api"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2022-12-28 08:30:42 +00:00
.dependsOn(backend, transform, `backend-air`)
lazy val `backend-ts` = crossProject(JVMPlatform, JSPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
.in(file("backend/ts"))
2023-07-18 17:18:33 +00:00
.settings(commons)
2021-10-21 13:47:04 +00:00
.settings(
libraryDependencies ++= Seq(
"io.circe" %%% "circe-core",
"io.circe" %%% "circe-generic",
"io.circe" %%% "circe-parser"
).map(_ % circeVersion)
)
2022-12-28 08:30:42 +00:00
.dependsOn(`backend-air`, definitions)