Caching issue when compiling for Windows with Burrito

I’ve got a super basic mix new app that prints the args from Burrito.Util.Args.get_arguments() and calls System.halt(0). That works fine. However! It seems like something is being cached somewhere because if I add or change the print statement, I see the change when running ./burrito_out/carne_asada_macos, but if I run the .exe version I still see the original message.

Here’s my build script:

rm -rf /Users/marc/Library/Application\ Support/.burrito/
rm -rf burrito_out/
rm -rf _build/
MIX_ENV=prod mix release --overwrite

Here are the debugging steps I’ve tried:
Running it with wine64 burrito_out/carne_asada_windows.exe
Running it on a Windows VM via Parallels
Running it on an actual Windows machine

Anyone run into this or have other ideas to try?

Compiling on MacOS Sonoma (update: I tried compiling in a Linux VM and see the same behavior)
elixir 1.14.4-otp-25
erlang 25.3
burrito from github main: {:burrito, github: "burrito-elixir/burrito"}

2 Likes

Same issue, thought I was going crazy. Are you running it inside nix?
I ended up renaming the Burrito release for every release, this seems to invalidate the cache and fix the issue. Will be montoring my disk space, maybe one folder grows enough to show where it is caching that.

Something like this, and then undoing it by creating a backup file first:

TIMESTAMP=$(date +%s%3N)
sed -i "s/gm_node_bin:/gm_node_bin_${TIMESTAMP}:/g" mix.exs