source: doc/man/cfa.1

Last change on this file was 41096dc, checked in by Peter A. Buhr <pabuhr@…>, 4 years ago

update cfa 'man' page

  • Property mode set to 100644
File size: 5.3 KB
Line 
1.\"                             -*- Mode: Nroff -*-
2.\" 
3.\" Cforall Version 1.0.0 Copyright (C) 2017 University of Waterloo
4.\"
5.\" The contents of this file are covered under the licence agreement in the
6.\" file "LICENCE" distributed with Cforall.
7.\"
8.\" cfa.1 --
9.\"
10.\" Author           : Peter A. Buhr
11.\" Created On       : Wed Jul 26 22:34:47 2017
12.\" Last Modified By : Peter A. Buhr
13.\" Last Modified On : Wed Sep  2 17:59:53 2020
14.\" Update Count     : 78
15.\"
16.\" nroff -man cfa.1
17.\"
18.ds Ho "/usr/local
19.ds Mg "1
20.ds Mn "0
21.ds Pt "0
22.ds Vr "cfa-\*(Mg.\*(Mn.\*(Pt
23.ds Cf "Cforall
24.\"
25.TH CFA 1 "2020-09-2" cfa-\*(Mg "\*(Cf Project"
26.SH NAME
27cfa \- \*(Cf project translator and runtime library to enhance C
28.SH SYNOPSIS
29cfa [cfa/gcc-options]
30    [cfa/c source-files]
31    [assembler/loader files]
32.SH DESCRIPTION
33\*(Cf (C-for-all) is an open-source project extending ISO C with modern safety and productivity features, while still ensuring backwards compatibility with C and its programmers.
34
35The cfa command compiles C and \*(Cf source files and links C/\*(Cf object
36files named on the command line.
37
38The cfa command introduces a translator pass over the specified source files
39after the C preprocessor but before the C compilation.  The translator converts
40new \*(Cf constructs into C statements.  The cfa command also provides a fully
41concurrent (user-level threads) runtime library, which is linked with the
42\*(Cf application.
43
44The command line options depend on the particular C compiler used (gcc/clang
45supported).  As with most C compilers, the output is sent to the file a.out(5)
46unless the -o option is present on the command line.  See the reference pages
47for gcc(1) for more information on command line options.
48.SH OPTIONS
49When multiple conflicting options appear on the command line, e.g.,
50.B -debug
51followed by
52.B -nodebug,
53the last option takes precedence.
54.LP
55All of the options available to the gcc compiler are available to the cfa
56translator.  The following gcc flags are implicitly turned on:
57.IP "-std=gnu11" 3
58The 2011 C standard plus GNU extensions.
59.IP "-fgnu89-inline"
60Use the traditional GNU semantics for inline routines in C11 mode, which allows inline routines in header files.
61.IP "-imacros stdbool.h"
62Include stdbool.h to get defines for bool/true/false.
63.IP "-latomic -lm"
64Provide access to double-wide CAS instruction and math library.
65.LP
66The following additional options are available:
67.IP "-CFA" 3
68Only the C preprocessor and the \*(Cf translator steps are performed and the transformed program is written to standard output, which makes it possible to examine the code generated by the \*(Cf translator.
69The generated code starts with the standard \*(Cf prelude.
70.IP "-debug"
71The program is linked with the debugging version of the runtime system.
72The debug version performs runtime checks to help during the debugging phase of a \*(Cf program, but can substantially slow program execution.
73The runtime checks should only be removed after the program is completely debugged.
74.B This option is the default.
75.IP "-nodebug"
76The program is linked with the non-debugging version of the runtime system, so the execution of the program is faster.
77.I However, no runtime checks or asserts are performed so errors usually result in abnormal program behaviour or termination.
78.IP "-help"
79Information about the set of \*(Cf compilation flags is printed.
80.IP "-nohelp"
81Information about the set of \*(Cf compilation flags is not printed.
82.B This option is the default.
83.IP "-quiet"
84The \*(Cf compilation message is not printed at the beginning of a compilation.
85.IP "-noquiet"
86The \*(Cf compilation message is printed at the beginning of a compilation.
87.B This option is the default.
88.SH PREPROCESSOR VARIABLES
89When programs are compiled using cfa, the following preprocessor variables are
90available.  These variables allow conditional compilation of programs that must
91work differently in these situations.
92.IP "__CFA_MAJOR__" 3
93is available during preprocessing and its value is the major version number of \*(Cf.
94.IP "__CFA_MINOR__"
95is available during preprocessing and its value is the minor version number of \*(Cf.
96.IP "__CFA_PATCH__"
97is available during preprocessing and its value is the patch level number of \*(Cf.
98.IP "__CFA__, __CFORALL__, and __cforall"
99are always available during preprocessing and have no value.
100.IP "__CFA_DEBUG__"
101is available during preprocessing if the -debug compilation option is
102specified.
103.SH FILES
104.DS B
105file.{c,cfa} - \*(Cf source file
106.br
107file.s - assembly language file
108.br
109file.o - object file
110.br
111\*(Ho/\*(Vr/bin/cfa - translator
112.br
113\*(Ho/\*(Vr/doc - reference manuals and documents
114.br
115\*(Ho/\*(Vr/include - header files
116.br
117\*(Ho/\*(Vr/lib - run time libraries
118.br
119\*(Ho/\*(Vr/man - command documentation
120.br
121\*(Ho/\*(Vr/src - source code (optional)
122.DE
123.SH SEE ALSO
124cpp(1), gcc(1), gdb(1)
125.SH REFERENCES
126.HP 3
127.I \*(Cf Home Page
128.br
129https://cforall.uwaterloo.ca
130.HP
131.I \*(Cf User Manual
132.br
133https://cforall.uwaterloo.ca/doc/user.pdf
134.SH BUILDS
135Nightly builds are available here https://cforall.uwaterloo.ca/jenkins
136.SH BUGS
137Bugs reportss are available here https://cforall.uwaterloo.ca/trac
138.SH COPYRIGHT
139\*(Cf is covered under the licence agreement in the distribution.
140.SH AUTHORS
141Andrew Beach, Richard Bilson, Peter A. Buhr, Thierry Delisle, Glen Ditchfield,
142Rodolfo G. Esteves, Aaron Moss, Rob Schluntz, Mubeen Zulfiqar
Note: See TracBrowser for help on using the repository browser.