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, 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 (November 2024) 1:
C:\opt\ConEmu\ ( 26 MB) C:\opt\elvis\ (2.4 MB) C:\opt\Git\ (391 MB) C:\opt\VSCode\ (381 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
2
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.95.2, git 2.47.0, 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] 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.47.0-64-bit.7z.exe ( 41 MB) VSCode-win32-x64-1.95.2.zip (131 MB)
[2] 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.