This collections contains the following packages:
The CM3 Interactive Development Environment (formerly known as Reactor).
Browse Sources Onlinem3totex - convert M3 program to TeX source
Browse Sources Onlinem3tohtml reads one or more CM3 packages and creates an HTML tree of all interfaces and modules together with a complete index structure. All interface, module, procedure, and type names are converted into hyperrefs pointing to the appropriate definition.
m3tohtml [<options>] <pkg>+ or m3tohtml [<options>] < <file-list> options: -force|-F overwrite existing HTML.index -root|-pkgroot <package root> defined package root directory (default: PKG_USE from cm3.cfg) -dir|-dest <outdir> create output in directory outdir -d|-debug display debug output -v|-verbose be verbose -p <pre-process-filter> filter the sources before processingBrowse Sources Online
HTTP server for browsing Modula-3 packages online.
Browse Sources OnlineNetwork objects are Modula-3 objects which can be exported and imported across networks. This is an object-oriented form of RPC.
Browse Sources OnlineThe registry service for Modula-3 network objects. This daemon must be running to use network objects.
Browse Sources OnlineSupport tool for Modula-3 network objects. Stubgen is a program that generates stubs for Modula-3 network objects. Network objects are Modula-3 objects whose methods may be invoked from multiple address spaces. They thus provide an object-based form of remote procedure call. For a description of network objects and examples of their use, see the network objects paper available from "printdoc netobj".
m3-comm/stubgen/src/READMEThe shared object package is designed to complement Network objects. A network object allows an object to be shared by multiple processes, possibly on different machines, by creating surrogate objects in all processes except the one in which the object actually exists. From the point of view of the programmer and the executing program, the surrogate object behaves exactly like the original object. However, all method calls to the surrogates are synchronously sent to the original object where they are executed, with return values or exceptions propogated back to the calling process.
For many applications, this is sufficient and has many desirable properties: there are no sychronization issues, calls are synchronous so exceptions propogate across processes, global garbage collection is performed, etc. However, for some applicates, the paradigm is not appropriate. The sychronous nature method calls restricts the frequency and of checking the object for changes. More seriously, interested parties are restricted to polling an object if they are interested in changes. Finally, all operations on an object, no matter how trivial, require a remote procedure call, which takes a significant amount of time.
To address these problems, and others, the shared object package was created. The model is the opposite of the network object package and is intended to complement rather that replace it. Instead of the object being stored at one location and remote method calls being used to access the object, shared objects are fully replicated in all interested processes, with any updates to the object being applied to all copies.
Browse Sources OnlineThe stub generator for shared objects.
% shobjcodegen -help Keywords - '/f' boolean flag. '/l' space separated list of values. '/1' single value. '/r' means mandatory. '/p' means positional argument (keyword can be omitted). Capitalisation (and '=short') indicates alternative shortened form. shared: Generate code for shared objects -Outputname=o/1/r base file name for output -SharedObjects=so/l list of types -UseTypes=ut/l list of existing types -PerfMon=pm/f performance monitoring -Proxy=p/f generate proxy file -ObliqCode=oc/f generate obliq linkage code m3cfe: Modula-3 Compiler Front End -PathNames=pn/l/p list of files to be compiled -Modules=m/l list of modules to be compiled -Interfaces=i/l list of interfaces to be compiled -PrintUnits=pu/f print name of each unit compiled -CpuTime=ct/f time compiler phases m3pathtool: search path tool -D/l/x specify an explicit path to be used for file searching -T/l/x specify a file with an explicit map to be used for file searching -NOSTD/f suppress default scan of standard libraries m3cctarget: Target C compiler control -CCTarget=cct/1 one of ( mips )m3-comm/sharedobjgen/README
stablegen -- Generate stubs for stable objects.
- stablegen
- [-i Interfaces] [-o StableObjectIntf] [-im StableObjectImpl] [-rm RepModule] [options]
The program stablegen generates stubs for Modula-3 stable objects. Stable objects are Modula-3 objects whose state is backed up on the disk or other stable medium, so that it will survive program crashes.Browse Sources Online
A stable object is an object whose state is stored on the disk or other medium whence its state can be recovered if a program crashes.
The generic interface "Stable" defines a subtype of a given object type that is just like that object type, but stable. The generic argument to "Stable" is an interface named "Data", which is assumed to contain an object type named "Data.T". Thus the type "Stable(Data).T" is like a "Data.T", but stable. In case of a failure (of either the program or the system) such objects can recover by resuming their last recorded state.
The state of a stable object is stored as a checkpoint together with a redo log; the log contains entries for all updates performed since the last checkpoint. These updates are recorded by logging a number identifying an update method, together with the arguments of the method. The typical cost for an update is therefore on the order of the cost of a single disk write.
m3-db/stable/test/READMEA viewer for FormsVBT definitions.
Browse Sources OnlineAn interactive editor for FormsVBT definitions
Browse Sources Onlinerecordheap - record the traced heap activity of a Modula-3 program
Browse Sources OnlineRehearseCode - run through Mentor CodeView source file annotations.
Browse Sources Onlinereplayheap - replay a recorded Modula-3 heap activity
Browse Sources Onlineshowheap - display the traced heap of a Modula-3 program
Browse Sources Onlineshownew - a realtime display of a Modula-3 program's heap allocations
Browse Sources Onlineshowthread - display Modula-3 thread activity
Browse Sources OnlineModula-3 pretty printer
m3-tools/pp/src/README