feat: windows support
Adds support for Windows Closes #89 Fixes #60
Also adds a just start-tcp task to start a plain release in TCP mode for development because expert builds burrito releases SO SLOW on my windows machine that it spent more time waiting for the build than actually working on the relevant changes
One note here is that this implementation uses the user's globally installed elixir on Windows. I don't know if there's any version manager like mise/asdf/nix on windows, if there is we'll need to get the PATH for the project folder like we do for Unix
Another note is that for reasons I don't yet understand windows is way slower than unix even on my beefy machine, so I had to increase the timeouts for a few tests. I was also seeing a few timing issues due to this that I hope were reliably mitigated.
Currently investigating an odd error preventing the engine from being built:
Building engine: Runtime terminating during boot ({'cannot get bootfile','C:\\Users\\Dorgan\\AppData\\Local\\.burrito\\expert_erts-16.1.1_0.1.0/bin/start.boot'})
But, I can build and run expert at least
Making progress, now debugging this error that came back for some reason:
15:44:02.538 [info] Engine build available at: c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns
15:44:02.594 [info] ebin paths:
["c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/mix_install/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/patch/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_bunt/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_credo/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_deps_nix/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_elixir_sense/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_engine/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_file_system/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_forge/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_gen_lsp/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_hpax/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_jason/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_mint/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_nimble_options/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_nimble_parsec/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_path_glob/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_refactorex/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_schematic/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_snowflake/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_sourceror/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_telemetry/ebin",
"c:/Users/Dorgan/AppData/Local/Expert/0.1.0/ex-1.19.3-erl-16.1.1/VjE49oK-HQYk-UkxL9dpkw/_build/dev_ns/lib/xp_typed_struct/ebin"]
15:44:02.645 [debug] sent notification server -> client $/progress
15:44:02.899 [debug] Node port message: ** (MatchError) no match of right hand side value:
{:error,
{{:shutdown,
{:failed_to_start_child, XPForge.EPMD,
{:EXIT,
{:undef,
[
{XPForge.EPMD, :start_link, [], []},
{:supervisor, :do_start_child_i, 3,
[file: ~c"supervisor.erl", line: 996]},
{:supervisor, :do_start_child, 3, [file: ~c"supervisor.erl", line: 982]},
{:supervisor, :"-start_children/2-fun-0-", 3,
[file: ~c"supervisor.erl", line: 966]},
{:supervisor, :children_map, 4, [file: ~c"supervisor.erl", line: 1891]},
{:supervisor, :init_children, 2, [file: ~c"supervisor.erl", line: 932]},
{:gen_server, :init_it, 2, [file: ~c"gen_server.erl", line: 2276]},
{:gen_server, :init_it, 6, [file: ~c"gen_server.erl", line: 2236]}
]}}}},
{:child, :undefined, :net_sup_dynamic,
{:erl_distribution, :start_link,
[
%{
name: :"[email protected]",
supervisor: :net_sup_dynamic,
net_tickintensity: 4,
net_ticktime: 60,
name_domain: :longnames,
clean_halt: false
}
]}, :permanent, false, 1000, :supervisor, [:erl_distribution]}}}
(stdlib 7.1) erl_eval.erl:672: :erl_eval.expr/6
nofile:1: (file)
(elixir 1.19.3) lib/code.ex:629: Code.validated_eval_string/3
There's a few tests failing on windows that I need to fix but this puppy can run
Is this ready for review?
@mhanberg almost, there's a few failing tests on windows I'm fixing. I'll tag you when it is.
@mhanberg it's ready for review now!
mise support windows. https://mise.jdx.dev/installing-mise.html#windows-winget
@mhanberg it's ready for review now!
Sorry, got lost in the holiday jumble. The recent comment made me remember this. I'll try and review and get it running.