|
|
1.1 root 1: .TH ALEF 1
2: .SH NAME
3: 8al, kal, val \- ALEF compilers
4: .SH SYNOPSIS
5: .B 8al
6: [
7: .I option ...
8: ]
9: [
10: .I file ...
11: ]
12: .br
13: .B kal
14: [
15: .I option ...
16: ]
17: [
18: .I file ...
19: ]
20: .br
21: .B val
22: [
23: .I option ...
24: ]
25: [
26: .I file ...
27: ]
28: .SH DESCRIPTION
29: ALEF is a concurrent programming language with a syntax like C's.
30: .IR Kal ,
31: .I val
32: and
33: .I 8al
34: compile the named ALEF source
35: .I files
36: into SPARC, MIPS and
37: Intel 386 object files.
38: Source
39: .I files
40: have the extension
41: .BR .l .
42: The ALEF source is passed through
43: .IR cpp (1)
44: prior to compilation. Object files have the
45: normal extension for each architecture:
46: .B .k
47: for SPARC,
48: .B .v
49: for MIPS and
50: .B .8
51: for 386.
52: Up to
53: .B $NPROC
54: .I files
55: will be compiled in parallel.
56: .PP
57: The compiler options are:
58: .TP .7i
59: .BI -o " obj"
60: Place output in file
61: .I obj
62: (ignored if there is more than one input file).
63: Default is to take the last element of the input pathname,
64: strip any trailing
65: .BR .l ,
66: and append the object file suffix.
67: .TP
68: .B -a
69: Write no object file, but produce an
70: .IR acid (1)
71: program on standard output, comprising a set of type declarations
72: and functions to print those types.
73: .TP
74: .B -aa
75: Like
76: .B -a
77: but suppress output for types and functions declared in header files.
78: .TP
79: .B -w
80: Print warning messages for non fatal errors.
81: .TP
82: .B -N
83: Do not run the code optimizer.
84: .TP
85: .B -c
86: Do not compile code for
87: .B check
88: statements.
89: .TP
90: .B -S
91: Produce assembly language instead of object code as output.
92: By default, output goes to a file named by the
93: last element of the input pathname with
94: .B .l
95: replaced by
96: .BR .s .
97: .TP
98: .BI -D\*S name=def
99: .br
100: .ns
101: .TP
102: .BI -D \*Sname
103: Define the
104: .I name
105: to the preprocessor,
106: as if by
107: .LR #define .
108: If no definition is given, the name is defined as
109: .LR 1 .
110: .TP
111: .BI -I \*Sdir
112: .L #include
113: files whose names do not begin with
114: .L /
115: are always
116: sought first in the directory
117: of the
118: .I file
119: argument,
120: then in directories named in
121: .B -I
122: options,
123: then in
124: .BR /sys/include/alef ,
125: and finally in
126: .BR /$objtype/include/alef.
127: .TP
128: .BI -d c
129: Produce various forms of debugging. The character
130: .I c
131: is an alphabetic.
132: .PP
133: The compiler recognizes several
134: .B #pragma
135: directives. The first,
136: .BR "#pragma lib" ,
137: is the same as in
138: .IR 2c (1).
139: The others have effect only when profiling is turned on by the
140: .B -p
141: option of the loader (see
142: .IR 2l (1)).
143: The directive
144: .B "#pragma noprofile"
145: disables the generation of profiling code for subsequently declared functions;
146: .B "#pragma profile"
147: enables it again.
148: The main use of these directives is
149: to avoid the profiling confusion caused by functions that do not explicitly return,
150: such as the task-switching functions in the run-time system.
151: Nonetheless, without support for profiling multi-process programs,
152: it remains difficult to profile Alef programs.
153: .SH EXAMPLE
154: To compile and run on a SPARC the ALEF program in the current directory:
155: .IP
156: .EX
157: kal -w *.l
158: kl *.k
159: k.out
160: .EE
161: .SH FILES
162: .TF /$objtype/lib/alef
163: .TP
164: .B /sys/include/alef
165: directory for
166: .B #include
167: files.
168: .TP
169: .B /$objtype/lib/alef
170: directory for ALEF libraries
171: .SH SOURCE
172: .TF /sys/src/alef/8,\ etc.
173: .TP
174: .B /sys/src/alef/port
175: machine-independent part
176: .TP
177: .BR /sys/src/alef/8 ,\ etc.
178: machine-dependent parts
179: .SH "SEE ALSO"
180: .IR acid (1),
181: .IR 2a (1),
182: .IR 2l (1),
183: .IR mk (1),
184: .IR nm (1),
185: .IR db (1)
186: .br
187: Phil Winterbottom,
188: ``Alef Reference Manual'', and
189: Bob Flandrena,
190: ``Alef User's Guide''.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.