~ubuntu-branches/ubuntu/precise/kompozer/precise

« back to all changes in this revision

Viewing changes to mozilla/xpinstall/wizard/libxpnet/GUSI/README

  • Committer: Bazaar Package Importer
  • Author(s): Anthony Yarusso
  • Date: 2007-08-27 01:11:03 UTC
  • Revision ID: james.westby@ubuntu.com-20070827011103-2jgf4s6532gqu2ka
Tags: upstream-0.7.10
ImportĀ upstreamĀ versionĀ 0.7.10

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
                 GUSI 2 -- A multithreaded POSIX library
 
2
INTRODUCTION
 
3
 
 
4
GUSI is an extension and partial replacement of the standard C runtime library
 
5
supplied with your compiler. The main objective of GUSI is to faciliate the 
 
6
porting of software written for UNIX systems by implementing a substantial subset
 
7
of the Single Unix Specification library routines:
 
8
 
 
9
 - BSD style sockets.
 
10
 - Pthreads.
 
11
 - Many other POSIX facilities such as diropen().
 
12
 
 
13
REQUIREMENTS
 
14
 
 
15
To use GUSI with Metrowerks CodeWarrior, you need one of the following compilers:
 
16
 
 
17
 - Metrowerks CodeWarrior Pro 5 or later.
 
18
 - SC/SCpp 8.8.4d1c1 or later.
 
19
 - MrC/MrCpp 4.1.0a6c1 or later.
 
20
 
 
21
GETTING STARTED
 
22
 
 
23
If you're new to GUSI, start by reading the manual in :doc:GUSI.pdf. 
 
24
 
 
25
If you're using GUSI with the Metrowerks CodeWarrior IDE, also read 
 
26
:doc:GUSI_CW_Guide.pdf if you haver any difficulties getting your first GUSI 
 
27
project to compile/link.
 
28
 
 
29
If you're using GUSI in combination with the MPW shell and/or the MPW compilers,
 
30
please run GUSI_Install.MPW. For more details, please consider reading the 
 
31
documentation in the doc folder.
 
32
 
 
33
To recompile GUSI with the MPW compilers, you need an STL library. I've found
 
34
STLport, available at http://www.stlport.org/download.shtml, to work perfectly
 
35
for my purposes. To install it, put it anywhere on your disk and run 
 
36
STLport_Install.MPW.
 
37
 
 
38
GUSI USER LICENSE
 
39
 
 
40
My primary objective in distributing GUSI is to have it used as widely as 
 
41
possible, while protecting my moral rights of authorship and limiting my 
 
42
exposure to liability.
 
43
 
 
44
Copyright (C) 1992-2000 Matthias Neeracher
 
45
 
 
46
Permission is granted to anyone to use this software for any purpose on any
 
47
computer system, and to redistribute it freely, subject to the following
 
48
restrictions:
 
49
 
 
50
- The author is not responsible for the consequences of use of this software,
 
51
  no matter how awful, even if they arise from defects in it.
 
52
- The origin of this software must not be misrepresented, either by explicit
 
53
  claim or by omission.
 
54
- You are allowed to distributed modified copies of the software, in source
 
55
  and binary form, provided they are marked plainly as altered versions, and 
 
56
  are not misrepresented as being the original software.
 
57
 
 
58
While I am giving GUSI away for free, that does not mean that I don't like 
 
59
getting appreciation for it. If you want to do something for me beyond your
 
60
obligations outlined above, you can
 
61
 
 
62
- Acknowledge the use of GUSI in the about box of your application and/or
 
63
  your documentation.
 
64
- Send me a CD as described in 
 
65
  http://www.iis.ee.ethz.ch/~neeri/macintosh/donations.html
 
66
 
 
67
BUGS, QUESTIONS, SUGGESTIONS
 
68
 
 
69
Please report any problems you experience with the code or the documentation to
 
70
me. I'd also be interested in hearing about your success stories, if you have
 
71
any.
 
72
 
 
73
GUSI ON WWW
 
74
 
 
75
An online version of the GUSI manual and a GUSI FAQ are available at 
 
76
http://www.iis.ee.ethz.ch/~neeri/macintosh.html
 
77
 
 
78
MAILING LIST
 
79
 
 
80
There is a mailing list for announcing new releases and discussions about 
 
81
how to make GUSI change your life. To subscribe, send a mail:
 
82
 
 
83
----------------------------------
 
84
To: gusi-request@iis.ee.ethz.ch
 
85
Subject: (is ignored)
 
86
 
 
87
subscribe
 
88
----------------------------------
 
89
 
 
90
Mail is now processed by a daemon, so please follow the above format.
 
91
 
 
92
        Matthias Neeracher <neeri@iis.ee.ethz.ch>                               
 
93
        20875 Valley Green Dr. #50                      
 
94
        Cupertino, CA 95014
 
95
        
 
96
        e-Mail:         <neeracher@mac.com>     
 
97
        Fax:    +1 (408) 514-2605 ext. 0023
 
98
 
 
99
KNOWN BUGS
 
100
 
 
101
 - MSG_PEEK does not yet work for for native OpenTransport sockets, only for MacTCP 
 
102
        sockets [John Cargill-Ek].
 
103
 - hstrerror() is not yet implemented [Darrell Walisser].
 
104
 
 
105
RELEASE NOTES
 
106
 
 
107
Version 2.1.5           21Jan01
 
108
 
 
109
 - Make literate programming tools configurable to some extent [Jack Jansen].
 
110
 - Made countless tweaks to scheduling and wakeups [Andreas Grosam, Keith Stattenfield].
 
111
 - Prevent inlining of overridable functions [Andreas Grosam].
 
112
 - Socket options did not work properly for OT sockets created by accept [Andreas Grosam].
 
113
 - pthread_cond_timedwait never returned ETIMEDOUT [Andreas Grosam].
 
114
 
 
115
Version 2.1.4           22Dec00
 
116
 
 
117
 - Using a GUSIFSxxx call before any POSIX calls could cause programs to hang
 
118
        because the default context was not initialized yet.
 
119
 - GUSIForeignThreads was unable to open ThreadsLib [Max Horn].
 
120
 - GUSI diagnostic messages were sometimes emitted at A5 unsafe times 
 
121
        [Jean-Pierre Stierlin].
 
122
 - Added ssh entry in hard coded services table [Jean-Pierre Stierlin].
 
123
 
 
124
Version 2.1.3           29Oct00
 
125
 
 
126
 - More CW 6 fixes, especially for massive problems with time related functions
 
127
        [Richard Wesley].
 
128
 - Nonstandard macros defined in sys/cdefs.h conflicted with CW macros [David Willis].
 
129
 - PPC sockets were totally broken; they seemed to have slipped entirely through any
 
130
   sort of acceptance testing [David Willis].
 
131
 - Deal with CW's non-standard signature for fdopen.
 
132
 - Include two new tests (GUSIThreadTest, GUSIPPCTest) in interactive test suite.
 
133
 - Switched to distributing XML versions of the CW projects for space savings and
 
134
        portability.
 
135
 
 
136
Version 2.1.2           16Oct00
 
137
 
 
138
 - Fixes for CodeWarrior 6 [Jack Jansen, Jeff Shulman].
 
139
 - SC would always use A5 relative addresses, with disastrous consequences in 
 
140
        completion routines [Jean-Pierre Stierlin].
 
141
 - The OpenTransport code for dealing with multiple incoming connections had
 
142
   severe bugs [Gordon McMillan].
 
143
 - Accommodate the fact that CodeWarrior internally uses a different numbering 
 
144
        scheme for SIGINT [Jack Jansen].
 
145
 
 
146
Version 2.1.1           05Jun00
 
147
 
 
148
 - Some functions were returning references to stack values [Alexandre Parenteau].
 
149
 - Fixed a shocking amount of bugs in time(), localtime(), and gmtime() 
 
150
        [Jack Jansen, Alexandre Parenteau].
 
151
 - Keep DCon support from crashing under Sfio.
 
152
 - Introduced preliminary support for multiple descriptor tables.
 
153
 
 
154
Version 2.1.0           29May00
 
155
 
 
156
 - Improved formatting of the woven documentation [Peter Teeson].
 
157
 - Updated to Universal Headers 3.3.1 [Tom Bayley].
 
158
 - Tuned scheduling again [Jack Jansen].
 
159
 - Implemented proper linger model, closing sockets immediately (while 
 
160
        actually putting them into a background queue to allow pending data to
 
161
        be transmitted) [Rich Cook, Oebele Dijkstra].
 
162
 - MacTCP sockets would hang on close with pending data [Jack Jansen].
 
163
 - Fixed bugs in lseek for read-only files [Jack Jansen].
 
164
 - Failed OpenTransport DNS lookups would return garbage data instead of
 
165
   error [Karl Armstrong, Mike Johnson].
 
166
 - Repeatedly calling a connect on a nonblocking socket could cause an infinite
 
167
        loop [Mike Johnson].
 
168
 - Fixed leak in OT UDP sendto [Tom Bayley].
 
169
 - (Hopefully) fixed a problem that could cause select() not to return a 
 
170
   ready to read status [Mike Johnson].
 
171
 
 
172
Version 2.0.6           14Mar00
 
173
 
 
174
 - Fixed several race conditions causing hangs in OpenTransport code 
 
175
        [Alexandre Parenteau].
 
176
 - Console would get initialized twice [Steven Gillispie].
 
177
 - Suffix finding code was broken [Alexandre Parenteau].
 
178
 - open(":x:y", O_RDWR) would create x as a file if it didn't exist [Alexandre Parenteau].
 
179
 - Temporary name creation would crash horribly [Alexandre Parenteau].
 
180
 - rename() was broken [Alexandre Parenteau].
 
181
 - Try to enforce alignment of struct and class fields when GUSI headers are
 
182
        included by clients with arbitrary default alignments [Alexandre Parenteau].
 
183
 - Custom thread switchers were not getting correctly reinstalled upon destruction
 
184
   of a thread [Andre Radke].
 
185
 - GUSIFileSpec::Resolve needed to clear fValidInfo [Alexandre Parenteau].
 
186
 - Accidentally had reversed the logic for my "fix" of the double destruction of detached
 
187
   threads [Stephen Coy].
 
188
 - getservbyname would crash if /etc/services did not exist 
 
189
        [Christopher Stern, Alexandre Parenteau].
 
190
 
 
191
Version 2.0.5           06Mar00
 
192
 
 
193
 - Added a visual manual for first time CodeWarrior GUSI users [Rich Cook].
 
194
 - Forgot include guard in inttypes.h
 
195
 - Device families did not check that the paths passed to them were device paths
 
196
        [Christopher Stern]
 
197
 - Sped up thread switching by a factor of up to 1000 [Jack Jansen].
 
198
 - Called InitGraf in one location without checking configuration flag 
 
199
   [Alexandre Parenteau].
 
200
 - Used a flaky plausibility test for automatic InitGraf.
 
201
 - Detached threads were deleted twice [Stephen Coy].
 
202
 - Force order of static destructors by closing descriptors before deleting threads
 
203
   [Christopher Stern].
 
204
 - Checked for nonexistent devices in file calls [Alexandre Parenteau].
 
205
 - readdir() would always return an error at the end of the directory, which is against
 
206
        the specification [Alexandre Parenteau].
 
207
 - sleep() from the main thread didn't [Darrell Walisser].
 
208
 - Renamed CodeWarrior projects to .mcp for cross platform compilability [Chris Brown].
 
209
 
 
210
Version 2.0.4           16Jan00
 
211
 
 
212
 - Updated to CodeWarrior 5.3 compilers (this shouldn't affect any existing CW 5 users 
 
213
   negatively, I think. If it does, please alert me.).
 
214
 - Some of the macros in pthread.h had PTHREAD_ misspelled as PTHREADS_ [Mike Davis]
 
215
 - GUSI's version of rename() was incorrectly mangled, so clients would link with
 
216
   the standard rename() [Matthew Nolan].
 
217
 - Removing an open file in the temporary items folder would fail [Jack Jansen].
 
218
 
 
219
Version 2.0.3           13Dec99
 
220
 
 
221
 - Closing a OpenTransport TCP socket with data pending would hang 
 
222
   [Oebele Dijkstra, Darrell Walisser].
 
223
 - Calling gethostbyname() before any sockets were opened would malfunction.
 
224
 
 
225
Version 2.0.2           12Dec99
 
226
 
 
227
 - Attempting to set SO_LINGER would crash [Keith Rollin].
 
228
 - Passing a null timezone argument to gettimeofday() would misbehave [Christopher Stern].
 
229
 - GUSISetThreadSwitcher would get the wrong linkage [Bruno Litman].
 
230
 - read() on OpenTransport TCP/IP sockets had wrong results on disconnected sockets
 
231
   [Keith Rollin].
 
232
 - select() would return a wrong result if any descriptors were ready for both reading 
 
233
   and writing [Keith Rollin].
 
234
 - Added pause() call.
 
235
 
 
236
Version 2.0.1           14Nov99
 
237
 
 
238
 - select() would sometimes unecessarily poll [David Lawrence].
 
239
 - Added GUSIwithPPCSockets, GUSIwithLocalSockets, which I had forgotten
 
240
   [Darrell Walisser].
 
241
 - GUSI would generate SIGINT for background applications if Command-. was
 
242
   pressed in the foreground application [Darrell Walisser].
 
243
 - Calling signal() before any sockets were created would crash [Darrell Walisser].
 
244
 - gethostname() would garble the name if running with TCP/IP off 
 
245
        [Christopher Stern].
 
246
 - stat() would not return an error for nonexistent files [Christopher Stern].
 
247
 
 
248
Version 2.0                     23Oct99
 
249
 
 
250
 - Removed the advertising clause from the BSD headers, as UCB no longer
 
251
   requires it. Thanks!
 
252
 - Included DCon.h in the distribution so GUSI compiles even if you
 
253
   don't have DCon. Thanks to Ed Wynne, Phasic Interware, Inc.,
 
254
        for his permission to do so. [Steven Gillispie]
 
255
        
 
256
Version 2.0fc2          14Oct99
 
257
 
 
258
 - Open Transport sockets didn't close their connections in an orderly way 
 
259
        [Steven Gillispie].
 
260
 
 
261
Version 2.0fc1    25Sep99
 
262
 
 
263
 - The number and severity of bug reports has decreased sufficiently to
 
264
   convince me to declare final candidate status on GUSI 2. Please report
 
265
        all bugs immediately.
 
266
 - Added sanity checks on A5 before attempting to call InitGraf [Brian Pink].
 
267
 - Renamed the socket option IPPROTO_IP/IP_BROADCAST to its correct name
 
268
   SOL_SOCKET/SO_BROADCAST [Chris Brown].
 
269
 
 
270
Version 2.0b10 08Sep99
 
271
 
 
272
 - I found several bugs in GUSI when trying to port the Darwin Streaming Server
 
273
   to MacOS.
 
274
 - Attempted to deal with threads created outside GUSI (e.g. in PowerPlant)
 
275
   [Eli Bishop].
 
276
 - File manager sockets would misbehave when switching off read-ahead.
 
277
 - Implemented the interface detection ioctl calls for OpenTransport TCP/IP.
 
278
 - getsockname would not work on sockets returned fropm accept under 
 
279
        OpenTransport.
 
280
 - recvfrom would not correctly return the source socket address under 
 
281
        OpenTransport except for a connected datagram socket [Philippe Lang].
 
282
 - Nonblocking reads on OpenTransport stream sockets did in fact block.
 
283
 - Nonblocking reads on OpenTransport datagram sockets leaked memory.
 
284
 - Implemented inet_aton and minimal pthread_condattr and pthread_mutexattr 
 
285
   support.
 
286
 - Fixed bugs in the documentation [Chris Brown]. Added warning about 
 
287
   interaction between GUSIConfig and precompiled headers [Steven Gillispie].
 
288
 
 
289
Version 2.0b9   02Sep99
 
290
 
 
291
 - OpenTransport operations in threads sometimes would hang 
 
292
        [Brian Pink, David Catmull].
 
293
 
 
294
Version 2.0b8   25Aug99
 
295
 
 
296
 - Fixed problems with nonblocking connects in MacTCP [Philippe Lang].
 
297
 - Open transport sockets needed to have an explicit unbind [Steven Gillispie].
 
298
 - Work on literate edition of the source code.
 
299
 
 
300
Version 2.0b7   04Aug99
 
301
 
 
302
 - Adapted to CodeWarrior Pro 5.
 
303
 - Updated documentation.
 
304
 - Tried to clarify license and added pointer to donations page.
 
305
 
 
306
Version 2.0b6   01Aug99 (Happy 708th birthday, Switzerland!)
 
307
 
 
308
 - Philippe Lang convinced me to support the SO_ERROR socket option, and while
 
309
   I was at it, I supported as many socket options as I reasonably could 
 
310
        (mostly on Open Transport).
 
311
 - Found out that the member fields of a struct timespec are named tv_xxx, not 
 
312
   ts_xxx, thanks to W. Richard Stevens' sample code.
 
313
 - Fixed conditional macros in sys/un.h [Michel Rabozee].
 
314
 - Calling MSL __close_all() turned out not to have been such a hot idea.
 
315
 
 
316
Version 2.0b5   19Jul99
 
317
 
 
318
 - Rick Waits correctly pointed out that most of the new files
 
319
   promised in b4 were actually missing.
 
320
 - Fixed bug in MacTCP UDP code [Philippe Lang].
 
321
 - Specified bool support in Example project so it would compile again [Rick Waits].
 
322
 
 
323
Version 2.0b4   18Jul99
 
324
 
 
325
 - Added support for SIOW based programs.
 
326
 - Added mkdir/rmdir.
 
327
 - Fixed Open Transport nonblocking connects [Philippe Lang].
 
328
 - Fixed long standing inability to give new files the right type and
 
329
   creator [Chris Jacobson].
 
330
 - Add MPW makefile and examples to :Examples [Rick Waits].
 
331
 
 
332
Version 2.0b3  30Jun99
 
333
 
 
334
 - Added support for Standard C and UNIX 98 style signal handling.
 
335
 - Added support for using sfio with SC and MrC.
 
336
 - Improved performance of file I/O.
 
337
 - Tried to improve documentation for SC and MrC [Rick Waits].
 
338
 - Added GUSI_Install.MPW installation script.
 
339
 - Eradicated dependences on STL from GUSI headers.
 
340
 
 
341
Version 2.0b2  07Jun99
 
342
 
 
343
 - Added support for SC[pp] and MrC[pp] compilers. I compiled with SCpp 8.8.4d1c1
 
344
   and MrCpp 4.1.0a5c3, and intend to maintain the code for newer, but not older 
 
345
        versions of these compilers. Unfortunately, Stdio does not work yet when
 
346
        using GUSI with MrCpp due to shared library conflicts. I intend to support
 
347
        sfio for SC and MrC in the near future, though.
 
348
 - Added back STDIN_FILENO & co. Fixed various bad comments in header guards
 
349
   [Chris Jacobson].
 
350
 - select for OpenTransport datagram (UDP) sockets was broken [Philippe Lang].
 
351
 - Allow recursive locks for mutexes.
 
352
 - Added a CodeWarrior project files to simplify rebuilds.
 
353
 - Some more work on PPC sockets.
 
354
 
 
355
Version 2.0b1   14Apr99
 
356
 
 
357
 - Added support for broadcast and multicast options [Tom Bayley, Quinn].
 
358
 - Rewrote GUSIConfig in C++.
 
359
 - Brought documentation up to date.
 
360
 - Event handling for AppleEvents was broken [Chris Jacobson].
 
361
 - Changed auto-spin default to off, as this feature has less importance in
 
362
   GUSI II and can easier be turned on with configuration files.
 
363
 - Introduced GUSIContextFactory to add more flexibility to GUSIContext
 
364
   creation. Made switching in and out fully virtualized.
 
365
 - Massively improved and simplified the handling of race conditions
 
366
   in wakeups [George Warner & Quinn]
 
367
 - Added support for the DCon debugging console, and also switched to DCon
 
368
   for our own debugging output.
 
369
 - Added support for the PPC (Program-to-program communications) toolbox.
 
370
 - Fixed several bugs in Open Transport support.
 
371
 - Removed GUSIwithThreading, which is no longer necessary.
 
372
 
 
373
Version 2.0a4           22Nov98
 
374
 
 
375
 - Since my Mac is getting packed up, a hasty and somewhat incomplete, but
 
376
   interesting release.
 
377
 - Changed configuration system to explicit configuration files created with
 
378
   GUSI_Configurator. This change is not reflected in the examples yet.
 
379
 - Added OpenTransport TCP/IP support (finally!)
 
380
 
 
381
Version 2.0a3           25Oct98
 
382
 
 
383
 - Added MacTCP UDP support, SIOUX support, MSG_PEEK support.
 
384
 - Fixed many bugs.
 
385
 - Started adapting old test programs in Examples
 
386
 
 
387
Version 2.0a2           11Oct98
 
388
 
 
389
 - Much more feature complete version: Added most file routines and domain name
 
390
   support.
 
391
 - Incorporated as much as I could of Michel Rabozee's excellent feedback.
 
392
 
 
393
Version 2.0a1     02Aug98
 
394
 
 
395
 - A sneak peek to give an impression of the flavor of the new facilities 
 
396
   in GUSI2. This version is far from feature complete, lacking most file 
 
397
        routines, UDP support, support for AppleTalk, OpenTransport support,
 
398
        and support of the domain name resolver.
 
 
b'\\ No newline at end of file'