.\" @(#)mimosa.1 1.8 86/08/21; .TH MIMOSA 1 "5 May 1991" .SH NAME mimosa \- Cedar/Mesa compiler .SH SYNOPSIS .B mimosa [ .B \-options ] .if n .ti +5 .I sourcefile .\|.\|. .SH DESCRIPTION .IX mimosa "" "\fLmimosa\fP \(em Cedar/Mesa compiler" .IX "Cedar/Mesa compiler" .IX "programming languages" "mimosa command" "" "\fLmimosa\fP \(em Cedar/Mesa compiler" .IX "languages" "mimosa command" "" "\fLmimosa\fP \(em Cedar/Mesa compiler" .IX "compilers" "mimosa command" "" "\fLmimosa\fP \(em Cedar/Mesa compiler" .LP .I mimosa is the .B Cedar/Mesa compiler. It translates programs written in the .B Cedar/Mesa programming language into relocatable binary programs for subsequent loading, Cinding or linking. .LP .I mimosa expects input files to have the extension .mesa. The Mesa/Cedar compiler accepts two types of inputs - Definitions modules and Program modules. The output of the Mesa/Cedar compiler depends on the type of input: for Definitions modules the result is a single output file with the suffix .B .mob. For Program modules there are two output files - the first has the suffix .B .mob, the second has the suffix .B .o. See .SM FILES, below for a complete list of mimosa-related filename suffixes. .SH OPTIONS .LP .TP 1i .B \-a Insert code to count how many times each basic block is executed. Creates a .B .d file for every .B .mesa file compiled. The .B .d file accumulates execution data for the corresponding source file. The .IR tcov (1) utility can then be run on the source file to generate statistics about the program. [ Sun only ] .TP .B \-b Don't insert code to perform bounds checking. .TP .B \-c Don't compile, but produce the .c intermediate file. .TP .B \-d Show but do not execute the commands constructed by the compilation driver. .TP .B \-e Use external initialization code. .TP .B \-f Generate old style signal catch code. .TP .B \-g Don't produce additional symbol table information for .IR dbx (1) and .IR dbxtool (1). .TP .B \-h Display helpful information about .I mimosa. .TP .B \-i Print server status information. .TP .B \-j Finish the mimosa compile from the .c file. .TP .B \-k Keep (rather than discard) the intermediate files generated during compilation. .TP .B \-l Use .c2c.c instead of .c for filename extension. .TP .B \-m Don't compile, but produce the Mimosa intermediate files. .TP .B \-n Don't insert code to perform nil checking. .TP .B \-o[N] Optimize the object code using level N optimization, where N is a value [0..4]. The specification of N is optional. The value of N defaults to 3. If the target architecture's C compiler does not support multiple level optimization the level is ignored. .TP .B \-p Prepare the object code to collect data for profiling with .IR prof (1). Invokes a run-time recording mechanism that produces a .I mon.out file (at normal termination). .TP .B \-pw Pause if Warnings are encountered. The default is to notify the client of the warnings but continue to process the command line. .TP .B \-q Generate position independent code with -pic. [ Sun only ] .TP .B \-Q Generate position independent code with -PIC. [ Sun only ] .TP .B \-r Do address arithmetic checking (warns the programmer of non-portable pointer arithmetic). .TP .B \-s Don't assemble the program but produce an assembly source file. .TP .B \-target arch Compile code for the arch architecture machine. The valid options for arch are sun4, rs6000, and dec. The default \-target value is the architecture of the machine upon which mimosa is being run. This flag takes precedences over the the TARGET←ARCH environment variable (described below). .TP .B \-t Don't report execution times for the various compilation passes. .TP .B \-u Don't report uninitialized variables. .TP .B \-v Verbose. Print the version number of the mimosa and the name of each program it executes. .TP .B \-w Do not print warnings. .TP .B \-x filename Call /usr/lib/inline with "-i filename". [ Sun only ] .TP .B \-y Yell about runtime calls. .TP .B \-z Produce Mesa debugging information. dbx debugging is only supported on the Sun. All other platforms must use the Cirio debugger. .SH EXAMPLES .LP This simple form of the mimosa command is almost always sufficient to produce even the most complicated systems: .LP .RS mitty% mv FooImpl.c FooImpl.mesa .RE .RS mitty% mimosa -z -k FooImpl .RE .RS MCMC .RE .RS mimosa: seconds: 37 .RE .RS mitty% .RE .LP The switches .I \-z \-k instruct mimosa to invoke the symbol table translator ms to enable Mesa source level debugging of the resulting file, .I FooImpl.o. .SH ENVIRONMENT .PD 0 .TP 1.7i .B TOOLS←SHMTYPE is an environment variable that specifies the type of shared memory the packaged tool will use for its execution. The possible values are .I mmap (memory mapped) and .I sv (SystemV). .I sv is the default. If .B TOOLS←SHMTYPE=mmap, then the packaged tools world will be started with .B shmtype=mmap; otherwise the packaged tools world will be started with .B shmtype=sv. If the .B shmtype=mmap is specified mimosa will check for the existence of a /pcrswap directory prior to starting the packaged tools world. .TP 1.7i .B MIMOSA←SERVER←arch, MIMOSA←SERVER MIMOSA←SERVER←arch is the name of a set of environment variables that determine which machine is used to do any cross-compilation. There is one environment variable for each archtitecture supported by -target. Mimosa does not verify that machine $MIMOSA←SERVER←arch is of the architecture type specified by the \-target option. This environment variable is only consulted if the local machine is not of the same architecture as specified by the \-target option. MIMOSA←SERVER is used if MIMOSA←SERVER←arch is undefined. MIMOSA←SERVER is provided for backward compatibility and its use is discouraged. .TP 1.7i .B TARGET←ARCH is the name of the target architecture for which the compiling is being done. The valid values of $TARGET←ARCH are the same as for the \-target argument. A rsh is done to a remote machine if the local machine is not of the $TARGET←ARCH architecture. The user should have appropriate .rhosts entries. Any \-target argument takes precedence over the value of TARGET←ARCH. .SH FILES .PD 0 .TP 1.7i .IB file .c .B C intermediate file .TP .IB file .cTypes intermediate symbol file output from Mimosa .TP .IB file .d .IR tcov (1) test coverage input file .TP .IB file .errlog Mimosa error log .TP .IB file .icd Mimosa intermediate code output file .TP .IB file .mesa Cedar/Mesa source file .TP .IB file .names intermediate symbol file output from Mimosa .TP .IB file .o object file .TP .IB file .s assembler source file .TP .IB file .tcov output from .IR tcov (1) .TP .I Compiler.log Mimosa compiler log file .TP .I mon.out file produced for analysis by .IR prof (1) .TP .I gmon.out file produced for analysis by .IR gprof (1) .PD .SH "SEE ALSO" adb(1), ar(1), as(1), cinder(1), cc(1), cpp(1), dbx(1), gprof(1), ld(1), make(1), monitor(3), prof(1), tcov(1) .LP .I The Mesa Language Manual, 1985 .LP .I Language Change Summary, 1989 .SH DIAGNOSTICS The diagnostics produced by .B mimosa itself are intended to be self-explanatory. Occasional obscure messages may be produced by the Mimosa front end, C2C back end, C preprocessor, C compiler or the assembler.