Mercurial > hg > Members > kono > nitros9-code
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> |