Thank you, @jordwalke for your continued support ❤️
Here's this month's update on what I did/tried for Reason/OCaml OSS.
If you like this work, consider helping me find work that would let continue working on Reason/OCaml OSS. Alternatively, you can sponsor me on Github too.
esy bug fix: locally linked packages and dev version
When packages are linked locally (with link in the resolutions field), they're not considered dev packages, which is opam's assumption when working with pinned packages.
error No solution found
No package matching:
foo@=opam:dev
Versions available:
foo@link:/path/to/foo.opam
This PR[1] addresses this issue.
esy-openssl
While working with opam package, ssl, I noticed while esy-openssl builds and works with C packages, it didn't work with ssl. Patched the formula. WIP and still testing on CI. It will be published to NPM
soon after. [2]
Improving esy error messages
To improve legibility of error messages, we dim certain words in the log so that only information relevant catches the user's attention first - applying principles of visual hierarchy from UI design to esy's logs [3]
Exploring tree-sitter for Reason
On Reason OCaml India Discord, we explored writing tree sitter grammar. [4]
conf-gmp-powm-sec.4
A new version of conf-gmp-powm-sec needed an override. [5]
Thank you, dear sponsors for your continued support. This months update on what I did/tried for Reason/OCaml OSS
opam package base failure on Windows and Macos
While upgrading esy's dependencies, I noticed the version released on
opam did not build on macos anymore.
unsupported option '-mpopcnt' for target 'arm64-apple-darwin24.3.0'
Luckily, someone already fixed https://t.co/2nZepgzkhV for macos, but it didn't work on Windows.
I patched it and shared it with the author.
(As I was writing this, interesting another PR#180 was raised. Yet to try it on Windows )
exploring Flambda2 on Windows
I wanted to see if Flamba2 would build on Windows. I feel I got to a promising stage, but can't prioritise working on it as of now. You can find my hacks in the footnote
esy: Upgrading vendored cmdliner
Because of commands like,
esy --help
esy dune --help
...we need cmdliner to stop parsing options that belong to sandbox commands as main command's options. @andreypopp introduced a ~stop_on_pos argument in cmdliner. For many months now, I couldn't port the patch to newer cmdliner versions. But looking at the newer features (shell completions), I couldn't resist. You can find the patch at the end of this post.
esy: Improving error messages
There were cases were messages were a bit cluttered - ("error: error: fetch failed ..") etc. I started a PR to declutter them. Next step would be to add more information so that error messages can be more informative. For instance, if misconfiguration could be reported with file-context-printer. Last step would be to make the messages prettier with colours.
A small improvement already towards this is differentiating between root project's build failure and a dependency build failure. It's present in the same PR - hope it clarifies things.
esy-opam-override: conf-gmp
A new version of conf-gmp needed an override.
Immutability in engineering management. Of course there are higher costs that seems excessive. But I think we feel this way only because we're still coming out of mindset from when code was only hand written.
5/5
Thoughts out loud: Concurrent engineering practices
Seems like principles of concurrent programming is making its way to engineering management. What is the equivalent of lock-free programming in engineering management?
1/n
Code isn't as expensive (well, depending your definition of what code is and what you can tolerate). A direction to explore is to lock-in end user behaviour, lock-in interfaces, and keep forking pipelines and schema. Additive only. No replacements, no destructive actions.
4/n
Now that the wheels have fallen off the woke regime in tech, we'd be smart to offer amnesty to those who got caught up in it. Be the counter force to the purity purges that plague that side. Accept earnest apologies, embrace the fallen, and forgive those who trespass against us.
Now that the wheels have fallen off the woke regime in tech, we'd be smart to offer amnesty to those who got caught up in it. Be the counter force to the purity purges that plague that side. Accept earnest apologies, embrace the fallen, and forgive those who trespass against us.
Audiobooks should be auto-paused when we fall asleep wearing smart watches. Sleep-tracking tech works well enough for this.
I don't like binary-searching the audio track to go back to where I was before dozing off.
@jordwalke Re: git
When it's UX is integrated with the editor, the experience doesn't feel terrible.
Completions in commit messages, hints suggesting good commit message formats, rewriting history with the same editor UX is okay.
Feel free to point me to your pain points though!
@kicauipul Yes. To support multiplatform lock files, the format had to change. Older cache had to invalidated because of reasons like opam's extra sources policy, bug fixes in installation etc. This is why packages are building again from scratch. I hope you find details in the changelog