Content
The PM3 distribution contains over 130 programs and libraries split by
topic along a hierarchical tree.
- Database
- Permanent
storage, including stable (persistent) objects, and database access.
- Graphics
-
Graphical applications and libraries, including windowing toolkits,
2D and 3D graphics and animation, graphical editors and viewers,
and miscellaneous demo games.
- Language
-
Compilers, interpreters, parsing tools, and program development tools
for several languages including Modula-3, Obliq, and Lisp.
- Libs
-
General purpose libraries for memory management, input-output,
operating system access, data structures, numerical computations, and
miscellaneous topics not covered in the other sections.
- M3Config
-
Configuration files for PM3, which determine default paths,
compilation options...
- Network
-
Libraries and applications for networked, distributed applications,
including network objects, mail, www and news readers, and
distributed source and binaries repositories.
- Text
-
Text and documentation processing libraries and applications, including
SGML/XML parsing tools.
Guided Tour for New Users
New users will typically want to read the documentation approximately
in the following order.
-
Modula-3 language definition
- This concise definition of the
Modula-3 language may be replaced by the more tutorial book
Modula-3 by Sam Harbison, published by Prentice Hall.
- The Modula-3 compiler,
m3build and
m3ship
-
M3build interprets package (program or library) definitions in
m3makefiles and performs the compilation. M3ship installs
the resulting executable or runtime library files. These tools and
a few others may conveniently be accessed through emacs menus using
m3ide.
- Modula-3 Standard Library, and other
Useful Modula-3 Interfaces
- This library contains the most commonly
used data structures, Input-Output interfaces, and Operating System
access.
- m3gdb
-
This Modula-3 aware version of the GNU debugger offers the usual
debugging support functions with support to print Modula-3 values.
- Trestle,
VBTkit, and
FormsVBT
windowing toolkits
-
Trestle operates at the pixel level and offers all the needed low level
mechanisms. VBTkit has higher level components such as shadowed buttons,
menus, text editors, scrollbars. FormsVBT offers an interactive
user interface builder through a simple description language, and is
the preferred vehicle for first time users. The lower level libraries
(Trestle and VBTkit) offer slightly more flexibility and performance
at the cost of increased programming complexity.
- Runtime program analysis tools
coverage,
shownew,
showthread
, and
others
-
Several graphical and textual tools and runtime interfaces may be
used to gather information about source code coverage, execution time
profiling, new memory allocations, threads activity, and more.
- Network Objects
-
Network objects may be used to easily build robust distributed applications
through remote method invocations.
- Stable Objects
-
Stable objects offer crash resistant persistent storage.