aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/aedifex/profile.lux
diff options
context:
space:
mode:
authorEduardo Julian2021-07-12 22:51:25 -0400
committerEduardo Julian2021-07-12 22:51:25 -0400
commit86bcfadb774618defaa27bbb9361a93d288fb985 (patch)
tree48c8422b872ec21d60810a88e47f38c9583f6333 /stdlib/source/program/aedifex/profile.lux
parent86df87512966e8038d70624ab654262ce14a915c (diff)
A bit more clarity for Licentia licenses.
Diffstat (limited to 'stdlib/source/program/aedifex/profile.lux')
-rw-r--r--stdlib/source/program/aedifex/profile.lux68
1 files changed, 50 insertions, 18 deletions
diff --git a/stdlib/source/program/aedifex/profile.lux b/stdlib/source/program/aedifex/profile.lux
index d31d0aca9..9fe05b10b 100644
--- a/stdlib/source/program/aedifex/profile.lux
+++ b/stdlib/source/program/aedifex/profile.lux
@@ -13,6 +13,8 @@
["." dictionary (#+ Dictionary)]
["." list ("#\." monoid)]
["." set (#+ Set)]]]
+ [macro
+ ["." template]]
[world
[net (#+ URL)]
[file (#+ Path)]]
@@ -22,6 +24,7 @@
[archive
[descriptor (#+ Module)]]]]]]
[//
+ ["." runtime (#+ Runtime) ("#\." equivalence)]
["." dependency (#+ Dependency) ("#\." equivalence)]
["." artifact (#+ Artifact)
["." type]]
@@ -160,7 +163,12 @@
#target Target
#program (Maybe Module)
#test (Maybe Module)
- #deploy_repositories (Dictionary Text Address)})
+ #deploy_repositories (Dictionary Text Address)
+ #java Runtime
+ #js Runtime
+ #python Runtime
+ #lua Runtime
+ #ruby Runtime})
(def: #export equivalence
(Equivalence Profile)
@@ -186,7 +194,17 @@
## #test
(maybe.equivalence text.equivalence)
## #deploy_repositories
- (dictionary.equivalence text.equivalence)))
+ (dictionary.equivalence text.equivalence)
+ ## #java
+ runtime.equivalence
+ ## #js
+ runtime.equivalence
+ ## #python
+ runtime.equivalence
+ ## #lua
+ runtime.equivalence
+ ## #ruby
+ runtime.equivalence))
(implementation: #export monoid
(Monoid Profile)
@@ -202,23 +220,37 @@
#target ..default_target
#program #.None
#test #.None
- #deploy_repositories (dictionary.new text.hash)})
+ #deploy_repositories (dictionary.new text.hash)
+ #java runtime.default_java
+ #js runtime.default_js
+ #python runtime.default_python
+ #lua runtime.default_lua
+ #ruby runtime.default_ruby})
(def: (compose override baseline)
- {#parents (list\compose (get@ #parents baseline) (get@ #parents override))
- #identity (maybe\compose (get@ #identity override) (get@ #identity baseline))
- #info (maybe\compose (get@ #info override) (get@ #info baseline))
- #repositories (set.union (get@ #repositories baseline) (get@ #repositories override))
- #dependencies (set.union (get@ #dependencies baseline) (get@ #dependencies override))
- #compiler (if (dependency\= ..default_compiler (get@ #compiler override))
- (get@ #compiler baseline)
- (get@ #compiler override))
- #sources (set.union (get@ #sources baseline) (get@ #sources override))
- #target (if (text\= ..default_target (get@ #target baseline))
- (get@ #target override)
- (get@ #target baseline))
- #program (maybe\compose (get@ #program override) (get@ #program baseline))
- #test (maybe\compose (get@ #test override) (get@ #test baseline))
- #deploy_repositories (dictionary.merge (get@ #deploy_repositories override) (get@ #deploy_repositories baseline))}))
+ (template.let [(!runtime <tag> <runtime>)
+ [(if (runtime\= <runtime> (get@ <tag> override))
+ (get@ <tag> baseline)
+ (get@ <tag> override))]]
+ {#parents (list\compose (get@ #parents baseline) (get@ #parents override))
+ #identity (maybe\compose (get@ #identity override) (get@ #identity baseline))
+ #info (maybe\compose (get@ #info override) (get@ #info baseline))
+ #repositories (set.union (get@ #repositories baseline) (get@ #repositories override))
+ #dependencies (set.union (get@ #dependencies baseline) (get@ #dependencies override))
+ #compiler (if (dependency\= ..default_compiler (get@ #compiler override))
+ (get@ #compiler baseline)
+ (get@ #compiler override))
+ #sources (set.union (get@ #sources baseline) (get@ #sources override))
+ #target (if (text\= ..default_target (get@ #target baseline))
+ (get@ #target override)
+ (get@ #target baseline))
+ #program (maybe\compose (get@ #program override) (get@ #program baseline))
+ #test (maybe\compose (get@ #test override) (get@ #test baseline))
+ #deploy_repositories (dictionary.merge (get@ #deploy_repositories override) (get@ #deploy_repositories baseline))
+ #java (!runtime #java runtime.default_java)
+ #js (!runtime #js runtime.default_js)
+ #python (!runtime #python runtime.default_python)
+ #lua (!runtime #lua runtime.default_lua)
+ #ruby (!runtime #ruby runtime.default_ruby)})))
(exception: #export no_identity)