1
0
mirror of https://github.com/fluencelabs/aqua.git synced 2024-12-04 22:50:18 +00:00
aqua/build.sbt

346 lines
9.9 KiB
Plaintext
Raw Normal View History

val aquaVersion = "0.12.1"
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 fs2V = "3.9.1"
val catsEffectV = "3.6-1f95fd7"
2022-08-01 19:20:45 +00:00
val declineV = "2.3.0"
val circeVersion = "0.14.2"
2022-04-20 11:45:42 +00:00
val scribeV = "3.7.1"
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
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
)
}
)
commons
lazy val cli = crossProject(JSPlatform, JVMPlatform)
.withoutSuffixFor(JVMPlatform)
.crossType(CrossType.Pure)
2022-12-28 08:30:42 +00:00
.in(file("cli/cli"))
.enablePlugins(GraalVMNativeImagePlugin)
2023-07-18 17:18:33 +00:00
.settings(commons)
.settings(
Compile / mainClass := Some("aqua.AquaCli"),
graalVMNativeImageOptions ++= Seq(
"--no-fallback",
"--diagnostics-mode",
"--initialize-at-build-time",
"--initialize-at-run-time=scala.util.Random$",
"-H:-DeleteLocalSymbols",
"-H:+PreserveFramePointer",
"-H:+ReportExceptionStackTraces",
"-H:+DashboardHeap",
"-H:+DashboardCode",
"-H:+DashboardPointsTo",
"-H:+DashboardAll"
) ++ sys.env
.get("COMPILE_STATIC")
.filter(_.trim.toLowerCase() == "true")
.map(_ => Seq("--static"))
.getOrElse(Seq.empty),
libraryDependencies ++= Seq(
2022-05-17 12:05:25 +00:00
"com.monovore" %%% "decline" % declineV,
"com.monovore" %%% "decline-effect" % declineV
)
)
2022-12-28 08:30:42 +00:00
.dependsOn(compiler, `backend-air`, `backend-ts`, io, definitions, logging, constants, `aqua-run`)
lazy val cliJS = cli.js
.settings(
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../cli-npm" / "aqua.js",
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
scalaJSUseMainModuleInitializer := true
)
.dependsOn(`js-exports`, `js-imports`)
lazy val cliJVM = cli.jvm
.settings(
2021-04-22 13:42:08 +00:00
Compile / run / mainClass := Some("aqua.AquaCli"),
assembly / mainClass := Some("aqua.AquaCli"),
assembly / assemblyJarName := "aqua-" + version.value + ".jar",
libraryDependencies ++= Seq(
)
)
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)
2022-12-28 08:30:42 +00:00
lazy val ioJS = io.js.dependsOn(`js-imports`)
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(
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../language-server-npm" / "aqua-lsp-api.js",
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../language-server-npm" / "aqua-lsp-api.js",
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.CommonJSModule)),
scalaJSUseMainModuleInitializer := true
)
.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(
Compile / fastOptJS / artifactPath := baseDirectory.value / "../../api-npm" / "aqua-api.js",
Compile / fullOptJS / artifactPath := baseDirectory.value / "../../api-npm" / "aqua-api.js",
2023-08-09 14:32:27 +00:00
scalaJSLinkerConfig ~= (_.withModuleKind(ModuleKind.ESModule)),
scalaJSUseMainModuleInitializer := true,
Test / test := {}
2022-12-28 08:30:42 +00:00
)
.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
)
)
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)
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
)
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, parser)
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 `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)