Skip to content

Commit 50b74dd

Browse files
committed
Implemented .#dev-plutarch
1 parent d7ee71b commit 50b74dd

File tree

2 files changed

+79
-13
lines changed

2 files changed

+79
-13
lines changed

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Plutarch/Print/TyDef.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ printTyDef (PC.TyDef tyN tyabs _) = do
8585
Print.importType PlRefs.termQTyName
8686
Print.importType PlRefs.scopeQTyName
8787
Print.importType PlRefs.ptypeQTyName
88+
Print.importType PlRefs.pasDataQTyName
8889
drvGenericDoc <- printDerivingGeneric
8990
drvShowDoc <- printDerivingShow
9091
(kw, absDoc) <- printTyAbs tyN tyabs

libs/build.nix

Lines changed: 78 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@
1717
src = ./lbf-prelude;
1818
files = [ "Prelude.lbf" ];
1919
classes = [ "Prelude.Eq" "Prelude.Json" ];
20-
configs = [ ../lambda-buffers-codegen/data/haskell-prelude-base.json ];
20+
configs = [ "${config.packages.codegen-configs}/haskell-prelude-base.json" ];
2121
};
2222

2323
lbf-prelude-purescript = config.overlayAttrs.lbf-nix.lbfPurescript {
2424
name = "lbf-prelude";
2525
src = ./lbf-prelude;
2626
files = [ "Prelude.lbf" ];
2727
classes = [ "Prelude.Eq" "Prelude.Json" ];
28-
configs = [ ../lambda-buffers-codegen/data/purescript-prelude-base.json ];
28+
configs = [ "${config.packages.codegen-configs}/purescript-prelude-base.json" ];
2929
};
3030

3131
lbf-prelude-plutarch = config.overlayAttrs.lbf-nix.lbfPlutarch' {
@@ -56,7 +56,10 @@
5656
# being automatically included as a dependency.
5757
"lbr-plutus"
5858
];
59-
configs = [ ../lambda-buffers-codegen/data/haskell-prelude-base.json ../lambda-buffers-codegen/data/haskell-plutus-plutustx.json ];
59+
configs = [
60+
"${config.packages.codegen-configs}/haskell-prelude-base.json"
61+
"${config.packages.codegen-configs}/haskell-plutus-plutustx.json"
62+
];
6063
};
6164

6265
lbf-plutus-purescript = config.overlayAttrs.lbf-nix.lbfPurescript {
@@ -66,7 +69,10 @@
6669
files = [ "Plutus/V1.lbf" "Plutus/V2.lbf" ];
6770
classes = [ "Prelude.Eq" "Prelude.Json" "Plutus.V1.PlutusData" ];
6871
dependencies = [ "lbf-prelude" ];
69-
configs = [ ../lambda-buffers-codegen/data/purescript-prelude-base.json ../lambda-buffers-codegen/data/purescript-plutus-ctl.json ];
72+
configs = [
73+
"${config.packages.codegen-configs}/purescript-prelude-base.json"
74+
"${config.packages.codegen-configs}/purescript-plutus-ctl.json"
75+
];
7076
};
7177

7278
lbf-plutus-plutarch = config.overlayAttrs.lbf-nix.lbfPlutarch' {
@@ -76,7 +82,10 @@
7682
files = [ "Plutus/V1.lbf" "Plutus/V2.lbf" ];
7783
classes = [ "Prelude.Eq" "Plutus.V1.PlutusData" ];
7884
dependencies = [ "lbf-prelude-plutarch" ];
79-
configs = [ "${config.packages.codegen-configs}/plutarch-prelude.json" "${config.packages.codegen-configs}/plutarch-plutus.json" ];
85+
configs = [
86+
"${config.packages.codegen-configs}/plutarch-prelude.json"
87+
"${config.packages.codegen-configs}/plutarch-plutus.json"
88+
];
8089
};
8190
};
8291

@@ -97,7 +106,7 @@
97106
project = { lib, ... }: {
98107
src = config.packages.lbf-prelude-haskell;
99108

100-
name = "lbf-prelude-haskell";
109+
name = "dev-prelude-haskell";
101110

102111
inherit (config.settings.haskell) index-state compiler-nix-name;
103112

@@ -111,9 +120,6 @@
111120
packages = {
112121
allComponent.doHoogle = true;
113122
allComponent.doHaddock = true;
114-
115-
# Enable strict compilation
116-
lbf-prelude.configureFlags = [ "-f-dev" ];
117123
};
118124
})
119125
];
@@ -167,7 +173,7 @@
167173
project = { lib, ... }: {
168174
src = config.packages.lbf-plutus-haskell;
169175

170-
name = "lbf-plutus-haskell";
176+
name = "dev-plutustx";
171177

172178
inherit (config.settings.haskell) index-state compiler-nix-name;
173179

@@ -183,9 +189,6 @@
183189
packages = {
184190
allComponent.doHoogle = true;
185191
allComponent.doHaddock = true;
186-
187-
# Enable strict compilation
188-
lbf-plutus.configureFlags = [ "-f-dev" ];
189192
};
190193
})
191194
];
@@ -222,6 +225,68 @@
222225
]).flake { };
223226
in
224227
hsNixFlake.devShell;
228+
229+
dev-plutarch =
230+
let
231+
project = { lib, ... }: {
232+
src = config.packages.lbf-plutus-plutarch;
233+
234+
name = "dev-plutarch";
235+
236+
inherit (config.settings.haskell) index-state compiler-nix-name;
237+
238+
extraHackage = [
239+
# Load Plutarch support (Prelude, Plutus)
240+
"${config.packages.lbf-prelude-plutarch}"
241+
"${config.packages.lbf-plutus-plutarch}"
242+
"${config.packages.lbr-plutarch-src}"
243+
# Load Haskell support (Prelude, Plutus)
244+
"${config.packages.lbf-prelude-haskell}"
245+
"${config.packages.lbf-plutus-haskell}"
246+
"${config.packages.lbr-prelude-haskell-src}"
247+
"${config.packages.lbr-plutus-haskell-src}"
248+
# Plutarch itself
249+
"${inputs.plutarch}"
250+
"${inputs.plutarch}/plutarch-extra"
251+
];
252+
253+
modules = [
254+
(_: {
255+
packages = {
256+
allComponent.doHoogle = true;
257+
allComponent.doHaddock = true;
258+
};
259+
})
260+
];
261+
262+
shell = {
263+
264+
withHoogle = true;
265+
266+
exactDeps = true;
267+
268+
nativeBuildInputs = config.settings.shell.tools ++ [
269+
config.packages.lbf-plutus-to-plutarch
270+
];
271+
272+
additional = ps: [ ps.lbf-prelude-plutarch ps.lbf-plutus-plutarch ps.lbr-plutarch ps.plutus-tx ps.plutus-ledger-api ];
273+
274+
tools = {
275+
cabal = { };
276+
haskell-language-server = { };
277+
};
278+
279+
shellHook = lib.mkForce config.settings.shell.hook;
280+
};
281+
};
282+
hsNixFlake = (pkgs.haskell-nix.cabalProject' [
283+
inputs.mlabs-tooling.lib.mkHackageMod
284+
inputs.mlabs-tooling.lib.moduleMod
285+
project
286+
]).flake { };
287+
in
288+
hsNixFlake.devShell;
289+
225290
};
226291
};
227292
}

0 commit comments

Comments
 (0)