You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/aiken-integration.md
+12-4Lines changed: 12 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,13 @@ and proposes alternative Milestone 4 outputs to better foster adoption of Lambda
10
10
11
11
This section describes limitations with Aiken.
12
12
13
+
All testing / observations with Aiken were done with the following version.
14
+
15
+
```bash
16
+
$ aiken --version
17
+
aiken v1.0.28-alpha+c9a1519
18
+
```
19
+
13
20
### Aiken has no type class support
14
21
15
22
A key feature of LambdaBuffers is to provide both types and type class instances.
@@ -172,9 +179,9 @@ would be translated to
172
179
173
180
i.e., records are lists of all record components[^recordsSpecialCases].
174
181
175
-
[^recordsSpecialCases]: Singleton records are encoded as just the single element.
182
+
[^recordsSpecialCases]: There are some special cases for the encoding in LambdaBuffers. For example, singleton records are encoded as just the single element.
176
183
177
-
If LambdaBuffers compiled `MyRecord` to a [record in Aiken](https://aiken-lang.org/language-tour/custom-types) as follows
184
+
If LambdaBuffers compiled `MyRecord` to a [record in Aiken](https://aiken-lang.org/language-tour/custom-types) as follows.
178
185
179
186
```rust
180
187
type MyRecord {
@@ -183,7 +190,7 @@ type MyRecord {
183
190
}
184
191
```
185
192
186
-
we know that Aiken will internally represent this as the following `Data` type
193
+
Then, one can observe that Aiken will internally represent this as the following `Data` type
187
194
188
195
```purescript
189
196
Constr 0 [a, b]
@@ -476,8 +483,9 @@ $ aiken build
476
483
where the error message makes it clear that it only expects the source of dependencies to be from either GitHub, GitLab, or BitBucket.
477
484
478
485
As such, it's unclear how to augment the local set of packages with a LambdaBuffers package, as the Nix tools would provide a local package.
479
-
Indeed, it's most likely possible to trick Aiken into thinking that a LambdaBuffers package is already installed,
486
+
Indeed, it's possible to trick Aiken into thinking that a LambdaBuffers package is already installed by preparing Aiken's build directory with the dependencies already included,
480
487
but this delves into implementation specific details of Aiken that may break between releases.
488
+
An example of this technique is [here](https://github.com/mlabs-haskell/uplc-benchmark/blob/master/nix/aiken/lib.nix#L83).
0 commit comments