author: Michel Dagenais
copyright: Michel Dagenais, GNU General Public License, 1998-2000
date: 2 April 1998

# Modula-3 Frequently asked questions and answers

Maintained by Michel Dagenais (michel.dagenais@polymtl.ca), suggestions are most welcome. Last updated 5 September 2000. The latest copy of this FAQ may be obtained from the Polytechnique Montreal Modula-3 Home.

## Introduction

- What is Modula-3?
- Where is Modula-3 used? Is it used in industry?
- Is commercial support available?
- Where can I get documents and information on Modula-3?
- Is Modula-3 a superset of Modula-2?
- Comparisons between Modula-3 and other languages?
- What implementations are available, how do they compare?
- Can I contribute Modula-3 software?
- Why use Modula-3?

## Troubleshooting

- Why program receives a SEGV signal under the debugger?
- Problems with threads, fork and VTALARM?
- X libraries not found?
- What means Missing RTHooks or similar messages?
- M3build versus Make or why m3 does not work?
- Why are exceptions raised by X or Network Objects applications?
- What is the story with Trestle and OpenWindows?
- Why so many problems installing on Solaris?

## Miscellaneous Questions

- Can I get Modula-3 other than by FTP or HTTP?
- How to call Modula-3 procedures from a C program?
- Can Modula-3 code call C++ and vice-versa?
- How to copy heap objects?
- How to get output messages to appear immediately (flushing writers)?
- How to read a single character as soon as typed?
- Why is Hello World so large?
- What is SRC Modula-3?
- Why are there strange pragmas for Locking levels and other properties?

## Design Issues

- Why objects and interfaces?
- What is the purpose of BRANDED and REVEAL?
- Can a program recover from running out of virtual memory?
- Why uppercase keywords?
- Why CONST Comments in Variables Declarations?