comparison docs/ccguide/intro.preface @ 612:17b517997c7a

Finished the intro notice
author roug
date Sat, 23 Nov 2002 11:23:35 +0000
parents 72f3c79b0674
children a4a6b6315146
comparison
equal deleted inserted replaced
611:d03bc9b884d5 612:17b517997c7a
1 <preface> 1 <preface>
2 <title>Differences between Versions 1.1 and 1.0</title> 2 <title>Differences between Versions 1.1 and 1.0</title>
3 <caution>
4 <title>Important Notice - Please Read Carefully</title>
3 <para> 5 <para>
4 This package contains the OS-9 C Compiler Version 1.1. Many 6 This package contains the OS-9 C Compiler Version 1.1. Many
5 improvements and bug fixes have been incorporated since the V1.0 7 improvements and bug fixes have been incorporated since the V1.0
6 release. If you are upgrading from V1.0, be <emphasis>absolutely sure</emphasis> 8 release. If you are upgrading from V1.0, be <emphasis>absolutely sure</emphasis>
7 to all <emphasis>all</emphasis> the files from the V1.1 disks. None of the 9 to all <emphasis>all</emphasis> the files from the V1.1 disks. None of the
18 relocating macro assembler. 20 relocating macro assembler.
19 </para> 21 </para>
20 <para> 22 <para>
21 The remainder of this notice describes the changes made since V1.0. 23 The remainder of this notice describes the changes made since V1.0.
22 </para> 24 </para>
25 </caution>
23 26
24 <variablelist> 27 <variablelist>
25 <varlistentry><term>General:</term> 28 <varlistentry><term>General:</term>
26 <listitem> 29 <listitem>
27 <para> 30 <para>
34 </varlistentry> 37 </varlistentry>
35 38
36 <varlistentry><term>Executives (cc1 and cc2):</term> 39 <varlistentry><term>Executives (cc1 and cc2):</term>
37 <listitem> 40 <listitem>
38 <para> 41 <para>
42 -x appearing on the cc1 command line causes the compiler to
43 make the c.com command file but not execute it. -q on the cc2
44 command line causes the compiler to suppress filename and
45 compiler phase messages.
39 </para> 46 </para>
40 </listitem> 47 </listitem>
41 </varlistentry> 48 </varlistentry>
42 49
43 <varlistentry><term>Preprocessor (c.prep):</term> 50 <varlistentry><term>Preprocessor (c.prep):</term>
49 </varlistentry> 56 </varlistentry>
50 57
51 <varlistentry><term>Compiler (c.comp, c.pass1, c.pass2):</term> 58 <varlistentry><term>Compiler (c.comp, c.pass1, c.pass2):</term>
52 <listitem> 59 <listitem>
53 <para> 60 <para>
61 C.pass1 float/double conversion is now done properly rather
62 than reporting error 7.
63 </para>
64 <para>
65 Direct and static direct storage classes may now be
66 initialized.
67 </para>
68 <para>
69 Sizeof operator now reports an error when applied to an
70 undefined identifier. Sizeof now allows any expression inside
71 of parenthesis. Previously, only primaries were allowed.
72 </para>
73 <para>
74 Various code generation problems involving certain long and
75 floating operations have been fixed.
54 </para> 76 </para>
55 </listitem> 77 </listitem>
56 </varlistentry> 78 </varlistentry>
57 79
58 <varlistentry><term>Optimizer (c.opt):</term> 80 <varlistentry><term>Optimizer (c.opt):</term>
69 </varlistentry> 91 </varlistentry>
70 92
71 <varlistentry><term>Assembler (c.asm):</term> 93 <varlistentry><term>Assembler (c.asm):</term>
72 <listitem> 94 <listitem>
73 <para> 95 <para>
96 C.asm can now handle direct-page initialized data.
97 </para>
98 <para>
99 Some out-of-range short branches were not detected.
100 </para>
101 <para>
102 VSECT syntax changed to allow direct-page initializers. This
103 make V1.0 assembly file incompatible with V1.1.
104 </para>
105 <para>
106 Macro and repeat block facilities have been added.
74 </para> 107 </para>
75 </listitem> 108 </listitem>
76 </varlistentry> 109 </varlistentry>
77 110
78 <varlistentry><term>Linker (c.link):</term> 111 <varlistentry><term>Linker (c.link):</term>
93 </varlistentry> 126 </varlistentry>
94 127
95 <varlistentry><term>Library (clib.l):</term> 128 <varlistentry><term>Library (clib.l):</term>
96 <listitem> 129 <listitem>
97 <para> 130 <para>
131 The standard library FILE structure has been changed to allow
132 specification of buffersize for a file. In V1.0, the
133 buffersize was fixed at 256 bytes. A new element of the FILE
134 struct (_bufsiz) contains the desired buffer size. This may be
135 used as follows:
136 <programlisting>
137 main()
138 {
139 FILE *fp;
140
141 fp=fopen("file","r");
142 fp->_bufsiz = 1024;
143
144 .....
145 }
146 </programlisting>
147 A few restrictions exist on the use of this parameter.
148 Initially the _bufsiz value is 0. The library routines will
149 assign a buffer of 256 bytes to the file upon initial read
150 or write. If the value is non-zero and the fp has not
151 previously been accessed, that value is used as the
152 buffersize. Note that due to the way the library routines
153 work, once a buffer of a given size is allocated to an fp, a
154 larger size cannot be used, even if the file is closed. Note
155 that the buffers are allocated from the ibrk() so enough extra
156 memory must be allocated by the linker to handle the bigger
157 buffers.
158 </para>
159 <para>
160 Since the size of the _iobuf struct (FILE) in stdio.h has
161 changed, all .r files must be re-compiled using the new header
162 file.
163 </para>
164 <para>
165 Cstart.r can now handle direct page data initialization.
166 </para>
167 <para>
168 Fseek() now does not cause the buffer to be re-filled if the
169 seek destination is already in the buffer.
170 </para>
171 <para>
172 Getc() now does "I$READ" on unbuffered SCF devices rather than
173 "I$READLN".
174 </para>
175 <para>
176 Getc() performed on "stdin" flushes the "stdout" buffer.
177 </para>
178 <para>
179 Printf() has been changed to not flush the "stdout" buffer
180 before returning.
181 </para>
182 <para>
183 Chown() has been fixed to not wipe out disks.
184 </para>
185 <para>
186 Toascii() has been added to stdio.h
187 </para>
188 <para>
189 Calls to scanf() now do not cause the linker to reports
190 unresolved references to toupper() and tolower().
191 </para>
192 <para>
193 The floating point routines now report errors 40, 41, and 42
194 for floating point over/underflow, divide by zero, and
195 float/long conversion instead of error #007.
98 </para> 196 </para>
99 </listitem> 197 </listitem>
100 </varlistentry> 198 </varlistentry>
101 199
102 </variablelist> 200 </variablelist>