|
This repository gathers Erlang code examples coming from various websites - mostly from the Erlang project - or written by ourself. In particular it includes several build scripts (bash scripts, batch files, Make scripts) for experimenting with the Erlang language on a Windows machine. |
Ada, Akka, C++, COBOL, Dafny, Dart, Deno, Docker, Flix, Golang, GraalVM, Haskell, Kafka, Kotlin, LLVM, Modula-2, Node.js, Rust, Scala 3, Spark, Spring, Standard ML, TruffleSqueak, WiX Toolset and Zig are other topics we are continuously monitoring.
This project depends on the following external software for the Microsoft Windows platform:
Optionally one may also install the following software:
☛ Installation policy
When possible we install software from a Zip archive rather than via a Windows installer. In our case we definedC:\opt\
as the installation directory for optional software tools (in reference to the/opt/
directory on Unix).
For instance our development environment looks as follows (February 2025) 2:
C:\opt\ConEmu\ ( 26 MB) C:\opt\elvis\ (2.4 MB) C:\opt\Git\ (397 MB) C:\opt\VSCode\ (404 MB) C:\Program Files\Erlang OTP\ (354 MB)
🔎 Git for Windows provides a Bash emulation used to run
git.exe
from the command line (as well as over 250 Unix commands likeawk
,diff
,file
,grep
,more
,mv
,rmdir
,sed
andwc
).
Directory structure ▴
This project is organized as follows:
docs\ examples\{README.md, hello, ..} README.md RESOURCES.md setenv.bat
where
- directory
docs\
contains Erlang related papers/articles (see filedocs\README.md
). - directory
examples\
contains Erlang examples grabbed from various websites (see fileexamples\README.md
). - file
README.md
is the Markdown document for this page. - file
RESOURCES.md
is the Markdown document presenting external resources. - file
setenv.bat
is the batch command for setting up our environment.
We also define a virtual drive – e.g. drive M:
– in our working environment in order to reduce/hide the real path of our project directory (see article "Windows command prompt limitation" from Microsoft Support).
🔎 We use the Windows external command
subst
to create virtual drives; for instance:> subst M: %USERPROFILE%\workspace\erlang-examples
In the next section we give a brief description of the batch files present in this project.
setenv.bat
3
We execute command setenv.bat
once to setup our development environment; it makes external tools such as git.exe
and sh.exe
directly available from the command prompt.
> setenv Tool versions: erl 15.1.2, dialyzer v5.2.1, make 4.4.1 elvis 3.0.1, code 1.97.2, git 2.48.1, diff 3.10, bash 5.2.37(1) > where git sh C:\opt\Git\bin\git.exe C:\opt\Git\mingw64\bin\git.exe C:\opt\Git\bin\sh.exe C:\opt\Git\usr\bin\sh.exe
Footnotes ▴
[1] Terminal Programs ↩
-
Besides the long standing used ConEmu we are now also evaluating Microsoft Windows Terminal ; here is a quick comparison between the two freely available programs :
ConEmu Windows Terminal Last update July 2023 February 2025 Download size 5 MB 11 MB Installation size 25 MB 33 MB Memory usage a) 9 MB 21 MB a) Memory usage with 1 command prompt.
[2] Downloads ↩
-
In our case we downloaded the following installation files (see section 1):
elvis (escript) (2.4 MB) otp_win64_27.1.2.exe (133 MB) PortableGit-2.48.1-64-bit.7z.exe ( 41 MB) VSCode-win32-x64-1.97.2.zip (131 MB)
[3] setenv.bat
usage ↩
-
Batch file
setenv.bat
has specific environment variables set that enable us to use command-line developer tools more easily. - It is similar to the setup scripts described on the page "Visual Studio Developer Command Prompt and Developer PowerShell" of the Visual Studio online documentation.
-
For instance we can quickly check that the two scripts
Launch-VsDevShell.ps1
andVsDevCmd.bat
are indeed available in our Visual Studio 2019 installation :> where /r "C:\Program Files (x86)\Microsoft Visual Studio" *vsdev* C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Launch-VsDevShell.ps1 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\vsdevcmd\core\vsdevcmd_end.bat C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\vsdevcmd\core\vsdevcmd_start.bat
-
Concretely, in our GitHub projects which depend on Visual Studio (e.g.
michelou/cpp-examples
),setenv.bat
does invokeVsDevCmd.bat
(resp.vcvarall.bat
for older Visual Studio versions) to setup the Visual Studio tools on the command prompt.