[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Library overview (7)




This is the seventh posting of the summary of the modules provided 
with ooc.
I have classified the modules according to the kind of functions
they provide, ie all modules working on REAL's and LONGREAL's
are in one group. 
The modules themselves currently have the following 
descriptions.

  - the module name or names if the procedures in the modules 
    only differ in paramater- and/or return types (like Math and
    MathL).
  - a short description about the purpose of the module.
  - whether the implementation of the module is system-dependent 
    or not. 
  - who is writing an system-independent implementation.
  or
  - who is writing the interface definition of a system-dependent
    module.
  - the state of the implementation (not-yet, alpha, beta, finished)

Comments, complaints about blatant errors, omissions and everything 
else you think is important are gratefully received ;-)

I think that discussions about modules should have the module name(s) 
in their 'Subject:' header, as in the 'Name'-part in this list. This
will make it easier to keep track of things.
Discussions about the list itself, additions etc are best posted as
a Reply to the list in question. I will start a new thread for every
list posted.

Here it comes.

Category: Exceptions

- Name: none, part of the SYSTEM module
- Description:
    Exceptions are raised by calling HALT with negative argument and
    pass control to an exception handler installed in SYSTEM.
- System-independent: probably not
- Implementor:
- State:


Category: Files and filenames

Currently Michael van Acken and myself are having an email discussion 
about this subject. Preliminary results are available at cognac.

- Name: Locators
- Description:
    Abstract base class for manipulation of human-readable Channel-
    names. Should be flexible enough to support extended locators
    like URL.
- System-independent: No
- Implementor: Sander van der Wal
- State: being designed.

- Name: Channels
- Description:
    Abstract base class for low-level (byte based) reading and writing to files, 
    tcp/ip connections, keyboard, screen etc. Exports the types Channel, Reader
    and Writer. Defines common errors expected to occur when creating, opening,
    closing and accessing channels.
- System-independent: Yes.
- Implementor: Sander van der Wal
- State: being designed.

- Name: Files
- Description:
    A class derived from Channels for low-level (byte based) reading and 
    writing to files. Uses Filenames to identify Files. 
- System-independent: No.
- Implementor: Sander van der Wal
- State: being designed.

- Name: Filenames
- Description:
    Modeled as objects allowing to abstract from the underlying OS.  
    Can be turned in/converted from strings.   
- System-independent: No
- Implementor: Sander van der Wal
- State: being designed.

- Name: BinaryRiders
- Description:
    High-level binary reading and writing of Channels. For every Oberon-2 type
    there are methods to read and write values of the type.
- System-independent: Yes
- Implementor: Sander van der Wal
- State: being designed.

- Name: TextRiders
- Description:
    High-level character based reading and writing of Channels. For every
    Oberon-2 type there are methods to read and write values in human-
    readable form. Uses <type>Str for conversions.
- System-independent: Yes
- Implementor: Sander van der Wal
- State: being designed.

- Name: Directories
- Description:
    Reading of directories (eg of files in a hierarchical filing system).
- System-independent: Yes
- Implementor: Sander van der Wal
- State: proposed.

- Name: FileSystem (preliminary name)
- Description:
    Manipulation (renaming, copying, deleting) of files and attributes 
    (modification date, access) of files in a filing system.
- System-independent: No
- Implementor: Sander van der Wal
- State: proposed.

- Name: OakIn
- Description:
    Reading the standard input
- System-independent: yes
- Implementor: Michael Griebling
- State: alpha

- Name: OakOut
- Description:
    writing standard output
- System-independent: yes
- Implementor: Michael Griebling
- State: alpha


Category: Properties of integers, (LONG)REAL's, mathematical functions, 
          conversions etc

- Name: ConvTypes
- Description: 
    Types used for conversions
- System-independent: yes
- Implementor: Michael Griebling
- State: beta

- Name: IntStr
- Description:
    String to integer conversions and vice versa
- System-independent: yes
- Implementor: Michael Griebling
- State: beta

- Name: IntConv
- Description:
    Low-level string conversion procedures for integers.
- System-independent: yes
- Implementor: Michael Griebling
- State: beta

- Name: Math, MathL
- Description:
    Superceeded by OakMath/OakMathL (see below). These modules are no longer
    necessary
- System-independent: yes
- Implementor: Michael Griebling
- State: obsolete

- Name: RealMath/LongMath
- Description:
    mathemathical functions
- System-independent: yes
- Implementor: Michael Griebling
- State: Real

- Name: LowReal, LowLong
- Description:
    Give access to the underlying properties of the types REAL and
    LONGREAL.  Defines constants like radix, expoMin, expoMax, large,
    small, etc.  Provides functions to access various parts of a real
    number, to synthesize a real, get the next higher/lower real number,
    etc. 
- System-independent: yes? (IEEE-compliant)
- Implementor: Michael Griebling
- State: beta

RealStr, LongStr
- Name: 
- Description:
    String to real number conversion and vice versa.
- System-independent: yes
- Implementor: Michael Griebling
- State: beta

- Name: RealConv, LongConv
- Description:
    Low-level string conversion procedures for the floating point types.  
- System-independent: Yes
- Implementor: Michael Griebling
- State: beta

ComplexMath, LongComplexMath:
- Name: (Long)ComplexMath
- Description:
    COMPLEX functions, conversions between complex numbers, constructors.
- System-independent: yes
- Implementor: Michael Griebling
- State: alpha

- Name: OakMath, OakMathL
- Description:
    Oakwood compatible (LONG)REAL math functions. Implemented as calls to RealMath/LongMath. 
- System-independent: yes.
- Implementor: Michael Griebling
- State: beta


Category: Strings and characters

- Name: Strings
- Description:
    A superset of Oakwood Strings except that Cap turnes into Capitalize
    and Pos into FindNext/FindPrev.  Addtionally provides a number of
    predicates to test wheter the procedures like Delete, Insert, etc
    have valid input and do not truncate the output.
- System-independent: yes
- Implementor: Michael van Acken
- State: alpha

- Name: CharClass
- Description:
    Some predicates on characters (IsNumeric, IsLetter, IsUpper, etc).
- System-independent: yes 
- Implementor: Michael van Acken
- State: alpha

- Name: Ascii
- Description:
    Constants describing the ASCII control characters.
- System-independent: yes 
- Implementor: Michael van Acken
- State: finished (?)

Category: Miscellaneous OS services

- Name: (Program Arguments)
- Description:
    Have to support argv-style arguments and (possibly) GUI based
    arguments.  Argument syntax should follow the rules of the
    underlying OS.
- System-independent:
- Implementor:
- State:

- Name: SysClock
- Description:
    Getting and setting the system clock, predicates to test whether one
    of the former is possible.  Defines `DateTime' record.
- System-independent: no
- Implementor:
- State:

- Name: Modules
- Description:
    Dynamic loading should be supported if possible, a module `Modules' 
    acting as its interface.  
- System-independent: 
- Implementor:
- State:

- Name:
- Description:
    Execute a command a la Unix.system().
- System-independent: 
- Implementor:
- State:


Category: Localisation/Internationalisation:
- Name:
- Description:
    Localisation/internationalisation support. Examples are format of
    date/time strings, format of money.
- System-independent: no
- Implementor: Frank Copeland.
- State:

Category: Oakwood compatible modules, not yet covered

- Name: 
- Description:
    Oakwood conforming modules are added for `educational' purposes,
    although their name may differ from the guidelines (eg, Files
    mutates to OakFiles).
- System-independent: yes.
- Implementor:
- State:

-- 
Sander        

We get to pick tools and equipment that suit the job.  We spend nearly all our 
time programming ART's computer's. (~P.J.Plauger: Programming on Purpose III)