Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

Transitional Library

Transitional Library Modules

Rick Sutcliffe has created a large set of modules that duplicate the functionality of a subset of the R10 modules, primarily in I/O, but also including numerous utilities and some Abstract Data Types (for instance date and time with I/O).

This set includes modified definition and implementation modules that can be compiled under the p1 ISO compiler for the Mac, and with small alterations, under other ISO compilers, though there is some dependance on the existence of an underlying POSIX system.

The IO modules exist on three levels: UNIX, C, and Channels

The latter is an abstract layer on top of one or the other of the first two. In general one ought to use the channel level as it is most versatile.

The general idea is that the code will run on existing ISO systems, but with reasonable automated alterations will eventually run under a partial or full R10 compiler.

The channel level I/O functionality for conventional built in data types is most easily accessed in p1 by: FROM IOSupport IMPORT* but, say, IMPORT IntegerIO will also suffice to have access to IntegerIO.Read, etc.

If you download the zip file below keep in mind that it is over 700K and will expand into several hundred files occupying about 3M of disk space. No warranties as to functionality of usability are expressed or implied. The code is copyright and may not be modified. Bugs and suggestions for modifications should be reported to Rick Sutcliffe using the email address rsutc AT twu.ca At this point he will have sole discretion to determine what if any modifications to accept.

http://modula-2.net/m2r10/uploads/R10Library.zip

Documentation for the formatting for WriteF procedures is here: http://modula-2.net/m2r10/uploads/WRITEF Format Strings.zip

Note that at the top level, Write1F, Write2F and Write3F are provided for one, two, and three individual arguments, as ARGLIST is not available.