michelou / m2-examples

Playing with Modula-2 on Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Playing with Modula-2 on Windows

Modula-2 project This repository gathers Modula-2 code examples coming from various websites and books.
It also includes several batch files for experimenting with Modula-2 on a Windows machine.

Ada, Akka, C++, Dart, Deno, Docker, Flix, Golang, GraalVM, Haskell, Kafka, Kotlin, LLVM, Node.js, Rust, Scala 3, Spark, Spring, TruffleSqueak and Wix Toolset are other topics we are continuously monitoring.

Project dependencies

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 defined C:\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 2024) 1:

C:\opt\ADW-Modula-2\    (108 MB)
C:\opt\Git\             (367 MB)
C:\opt\VSCode\          (341 MB)
C:\opt\XDS-Modula-2\2   ( 29 MB)

🔎 Git for Windows provides a Bash emulation used to run git.exe from the command line (as well as over 250 Unix commands like awk, diff, file, grep, more, mv, rmdir, sed and wc).

Directory structure

This project is organized as follows:

adw-examples\{README.md}
docs\
examples\{README.md, Factorial, Hello, PascalTriangle, ..}
xds-examples\{README.md}
README.md
RESOURCES.md
setenv.bat

where

We also define a virtual drive – e.g. drive T: – 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 T: %USERPROFILE%\workspace\dart-examples

In the next section we give a brief description of the batch files present in this project.

Batch/Bash commands

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:
   m2amd64 1.6.879,
   git 2.43.0.windows.1, diff 3.10, bash 5.2.15(1)-release
    
   > 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):

ADWM2Setup.exe                    ( 18 MB)
PortableGit-2.43.0-64-bit.7z.exe  ( 41 MB)
xds-ide-1.7.0-060713-1-win32.zip  (198 MB)

[2] Excelsior XDS Modula-2

The XDS Modula-2 SDK 2.6 is included in the Zip archive Excelsior XDS Modula-2 IDE 1.7.0. Concretely we simply extract the xds-ide\sdks\XDS-x86\ subdirectory (thus ignoring the Eclipse IDE related stuff). In our case we created a directory C:\opt\XDS-Modula-2\ :
> tree /a c:\opt\XDS-Modula-2 | findstr /b +
+---bin
+---c
+---def
+---include
+---lib
+---licenses
+---pdf
+---readme
+---samples
 
> dir /b c:\opt\XDS-Modula-2\bin\*.exe
h2d.exe        (C headers to Modula-2 definition modules translator)
his.exe        (XDS History formatter)
xc.exe         (XDS Compiler for Oberon-2/Modula-2)
xd.exe         (XDS Debugger – native x86 edition)
xdasm.exe      (XDS Disassembler)
xds.exe        (XDS Standalone IDE)
xd_demon.exe
xd_srv.exe
xlib.exe       (XDS Library manager)
xlink.exe
xm.exe
xpdump.exe
xprof.exe
xprofmem.exe
xpview.exe     (XDS Profile viewer)
xrc.exe        (XDS Resource compiler)
xstrip.exe     (XDS Debug Info Stripper)

[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 and VsDevCmd.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 invoke VsDevCmd.bat (resp. vcvarall.bat for older Visual Studio versions) to setup the Visual Studio tools on the command prompt.

mics/February 2024  

About

Playing with Modula-2 on Windows


Languages

Language:Modula-2 100.0%