DEV Community

Alain
Alain

Posted on

Pesy With Luv, the Esy/Pesy Build

In the previous post we built the project using dune only. Check it out here.

To recap, I am trying to use the aantron/luv library to try to build something and I ran into all kinds of build system issues mostly because I still haven't grokked the reason-native build system yet. That's ok. This note is my way of getting better and having a reference I understand when I need to come back to it and giving back to the generous community. The reason-native build environment has a list of great tools you can use. Most prominent among them are Dune, Esy/Pesy and Spin. Here we are using Pesy.

Getting Started

First make sure you have esy and pesy installed and updated.

npm i -g esy npm i -g pesy 

Then create a directory, cd into it, then run pesy and follow the prompts.

mkdir pesy-with-luv && cd pesy-with-luv 

Contains the following libraries and executables:

pesy-with-luv@0.0.0 │ ├─test/ │ name: TestPesyWithLuv.exe │ main: TestPesyWithLuv │ require: pesy-with-luv.lib │ ├─library/ │ library name: pesy-with-luv.lib │ namespace: PesyWithLuv │ require: │ └─executable/ name: PesyWithLuvApp.exe main: PesyWithLuvApp require: pesy-with-luv.lib 

Build The Project:

esy install esy build 

Running It:

After building the project, you can run the main binary that is produced.

esy x PesyWithLuvApp.exe 

Adding the Luv library

Let's install luv.

Run esy add @opam/luv

Then go to package.json and add "require": ["luv"] to the library key.

 "library": { "name": "pesy-with-luv.lib", "namespace": "PesyWithLuv", add this-> "require": [ "luv" ] }, 

Run esy pesy to rebuild.

Note that your dune file in library/dune has changed to reflect the added luv library.

This is great if you not comfortable with dune files yet.

Now you can call PesyWithLuv.Demo.luv(); in executable/PesyWithLuvApp.re;

Run esy x PesyWithLuvApp.exe then watch the output.

Running Binary:

After building the project, you can run the main binary that is produced.

esy x PesyWithLuvApp.exe 
~/Github/pesy-with-luv ❯ esy x PesyWithLuvApp.exe pesy-with-luv@0.0.0 Build Succeeded! To test a binary: esy x PesyWithLuvApp.exe Hello 33% 66% Done 

Conclusion

Not bad at all. Need a more robust build and a built in pipeline for sharing your project, Pesy is a good choice. Source can be found here

Next we will try with Spin.

Top comments (0)