Skip to content

Windows users need OS-specific notes to get LFE up and running #44

@bcalco

Description

@bcalco

On Windows, rebar3 does not support rebar3 local install which would set up $HOME/.config/rebar3 automatically for them, for some reason. Each kind of shell one might run may have a different notion where $HOME is, making it necessary to add rebar.config with the necessary plugin additions in multiple places. In a DOS or PowerShell prompt, that location is C:\Users<username>.config\rebar3\rebar.config, and in MINGW and Cygwin, it's wherever $HOME aka ~/ is.

Alternatively, there is an environment variable one can set, REBAR_GLOBAL_CONFIG_DIR, and of course one would have to do this both via Windows' standard environment variable editor and in the ~/.bash_profile initialization script for each prompt. However, once the rebar.config file is set for each prompt, everything is peachy.

OK, one thing isn't peachy. For reasons that are being investigated, the rebar3 lfe repl task needs one extra step in order to actually render the REPL. (For this same soon-to-be grokked reasons, running the lfe script by itself crash-dumps.) In order to enjoy Lisping in a fully-functional LFE REPL, you will need to invoke lfe_shell:server(). from the Erlang Shell that appears instead of the LFE REPL when you issue the rebar3 lfe repl command. Apparently, when the initialization of the LFE REPL bombs in the context of the Erlang Shell, the Erlang Shell doesn't crash with it, and issuing lfe_shel:server(). work just fine.

One final gotcha: On the DOS prompt only, the ASCII art LFE coffee cup does not render properly. Looks great in MINGW and Cygwin, but DOS being DOS it looks more like a bowl of used ramen noodles. Users are however highly encouraged to give the new Windows Terminal application a try. It renders the LFE coffee cup beautifully whether you are firing up a standard command window or a PowerShell window. And everything works in the REPL as expected from that point on.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions