Oberon || Compiler & Tools || Library || Module Index || Search Engine


Ulm's Oberon System:
obci


NAME

obci - check in Oberon sources

SYNOPSIS

obci [ option ] ... file ...

DESCRIPTION

obci stores one or more Oberon source files in combination with a set of compilation options into the compiler database (CDB), located in the Oberon name space in the directory /pub/cdb/oberon. Source files must have a suffix of ``.od'' (in case of definitions) or ``.om'' (in case of modules). No syntax checks are performed but a module name must be extractable.

Sources may be checked in any number of times. If the source differs, a new entry in CDB is created that, by default, takes precedence over older releases. If the source text is identical to a version already present in CDB, it's associated header (containing compilation options and a time stamp) is updated.

Following options affect obci directly:

-a authfile
specifies a file containing a persistent object of type Shards.Lid that is to be used for authorization.
-b basedir
defines the base path of the compiler data base (CDB). Default is /pub/cdb/oberon.
-t
check in all sources with the time stamps (last time of modification) of their corresponding files (default behaviour).
+t
do not take the modification stamps of the source files but the current time as time stamp in CDB.

Compilation options are simply stored into CDB along with the source text. Their main use is to fine-tune the set of identifiers visible as standard identifiers (like INTEGER) and internal modules (as SYSTEM). By default, these sets are minimized in conformance to the Oberon reports. Local extensions of SYSTEM are available on request only.

Some identifier sets are defined to avoid the necessity of enumerating a long list of identifiers:

std
Set of standard identifiers as defined in the Oberon report.
sys
Set of identifiers exported by SYSTEM as defined in the Oberon report.
ulmsys
Local set of extensions of SYSTEM (not included by default).
unixsys
Local set of standard functions that support UNIX system calls: UNIXCALL, UNIXFORK, and UNIXSIGNAL. Not included by default.

In addition, some fine-tuning options are available that cover changes introduced by revisions of the Oberon report.

Currently, following options are supported:

-builtin modname
add modname to the list of internal modules that may be imported like SYSTEM. There are none available yet.
-ignore-builtin-clashes
do not permit the same identifier specified twice in one of the internal modules or in the set of standard identifiers (default).
+ignore-builtin-clashes
allow name clashes. The first definition of an identifier supersedes any later additions.
-std idset
include the set of identifiers idset to the set of standard identifiers. The first use of this option empties the set first. Further uses extend the set.
-sys idset
include the set of identifiers idset to the set of visible identifiers in SYSTEM.

Following options allow to modify some of the identifier sets. The option name should be prefixed by + for TRUE, and - for FALSE:

option       identifier set   identifiers                  default
__________________________________________________________________
stdbyte      std              BYTE                         TRUE
stdsize      std              SIZE                         FALSE
sysaddress   ulmsys           ADDRESS, UNTRACEDADDRESS     TRUE
sysbyte      sys              BYTE                         FALSE
syscr        ulmsys           Ulm's coroutine primitives   TRUE
syshalt      ulmsys           HALT (without cleanup)       TRUE
sysint16     ulmsys           INT16 (16-bit integer)       TRUE
syssize      sys              SIZE                         TRUE

EXAMPLES

Check in Streams.od and Streams.om with all extensions of Ulm enabled in conformance to older Oberon reports:
oberon$ A=/var/cdbd/db/write
oberon$ obci -a $A -sys sys -sys ulmsys -sys unixsys Streams.o[dm]

Check in a module in conformance to the latest Oberon report:

oberon$ A=/var/cdbd/db/write
oberon$ obci -a $A -stdbyte +sysbyte -syssize +stdsize Hello.mod

ENVIRONMENT

Following environment parameters allow to override the builtin defaults:
CDB_AUTH
default path of the authorization file.
CDB_BASEDIR
default path of CDB within the Oberon name space.

SEE ALSO

cdbd
daemon running CDB.
obload
compiles (if necessary) and loads modules.
obzap
removes modules from CDB.
pons
daemon defining the shared root of the Oberon name space.
Names
Oberon name space.
OberonUlmBuiltIns
definition of ulmsys.
OberonStdBuiltIns
definition of std.
OberonSysBuiltIns
definition of sys.

BUGS

Sources checked in are readable for everybody with read access to CDB. There is currently no difference between shared and private modules.
Edited by: borchert, last change: 2005/04/27, revision: 1.7, converted to HTML: 2005/04/27

Oberon || Compiler & Tools || Library || Module Index || Search Engine