Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /cml/trunk/CHANGES
ViewVC logotype

Diff of /cml/trunk/CHANGES

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sml/branches/SMLNJ/src/cml/CHANGES revision 8, Sun Jan 18 01:01:29 1998 UTC cml/trunk/CHANGES revision 3107, Wed Jul 16 14:44:29 2008 UTC
# Line 1  Line 1 
1  This is a record of changes made to CML and the CML Library.  This is a record of changes made to CML and the CML Library.
2  ------------------------------------------------------------  ------------------------------------------------------------
3    
4    [2008-07-16]
5            Fixed interface to OS.Process so that it agrees with the SML Basis Library
6            (added isSuccess and sleep; status is nolonger an eqtype).
7    
8    [2007-09-06]
9            Exported Int64 and IntInf from basis.cm.
10    
11    [2007-02-15]
12            Updates to the cml-lib to track removals from the SML/NJ library.
13    
14    [2007-01-28]
15            Updates to the cml-lib to track additions to the SML/NJ library.
16    
17    [2006-12-07]
18            Carried over the fix to the SOCKET signature.
19    
20    [2006-05-04]
21            Fixed bug with iGetPoll, mTakePoll, and mGetPoll.  In some cases, the
22            atomic region was not being closed properly.  The iGetPoll and mGetPoll
23            operations just read the value field now, since there is reads are
24            atomic.
25    
26    [2006-02-27]
27            Fixed bug with the combination of withNack and never, where the
28            negative acknowledgement is never generated.  Thanks to Heath
29            Putnam for the bug report and fix.
30    
31    [2005-02-28]
32            Fixed serious bug in structure Atom. (Must use mvar, not mailbox!)
33    
34    [2005-02-24]
35            Reuse signature ATOM from $/smlnj-lib.cm, thus tracking all changes.
36            Implement structure Atom in terms of structure Atom in $/smlnj-lib.cm
37            by protecting access to the global hashtable using an mbox lock.
38            Atoms can now be created (sequentially) prior to calling RunCML.doit.
39    
40    [2004-11-24]
41            Made the IO implementation agnostic of size of Position.int.
42            (Now compiles with either Position = Int31 or Position = Int64.)
43    
44    [2003-09-23]
45            Accounted for changes to socket API in Basis. (Non-blocking
46            behavior is no longer a stateful property of a socket.  Instead,
47            there are non-blocking versions of most functions in the
48            interface.  This simplifies the CML code since it no longer
49            has to do OS-specific handling of "wouldblock" etc.
50            On the other hand, (trivial) CML implementations of those
51            non-blocking operations had to be added.)
52    
53    [2003-09-12]
54            Accounted for changed type of inputLine.
55    
56    [2003-09-09]
57            Made CML compile under Win32 again.
58    
59    [2003-09-03]
60            Added *_SLICE signatures and *Slice structures (copied from
61            "normal" Basis into CML Basis).
62            Fixed code broken due to API changes (slices).
63    
64    [2003-05-09]
65            Added the missing implementation of StreamIO event constructors
66            (e.g., TextIO.StreamIO.inputEvt).  Note that if you use these
67            operations, then the system may not shutdown when all user threads
68            are blocked.
69    
70    [2003-04-21]
71            The CleanUp.logMailbox function was not protected against
72            interrupts (thanks to David Benson for catching this bug).
73    
74    [2003-04-09]
75            Changed the name of the directory cml-lib/cm to cml-lib/cm-descr
76            in order to avoid a name conflict with cml-lib/CM which gets
77            created by the compilation manager.  (On case-insensitive
78            filesystems such as the one used by MacOS X the two names clash.)
79    
80    [2003-03-10]
81            Documentation cleanup.
82    
83    [2002-10-01]
84            Fixed a bad space leak in the stream I/O implementations.  The
85            cleanup hooks were holding onto the initial buffer, which
86            meant that the entire buffer chain would remain live as long
87            as the stream was live.
88    
89    [2001-06-20]
90            Ported to SML/NJ 110.33 (in particular, the new CM).
91            Under the new CM, the CML library is known as $cml/cml.cm
92            and there is a CML-specific replacement for $/basis.cm
93            known as $cml/basis.cm.  Two additional libraries
94            ($cml/cml-internal.cm and $cml/core-cml.cm) are used
95            internally but should not be referred to directly by client code.
96            A CML-specific replacement for $/smlnj-lib.cm is
97            known as $cml-lib/smlnj-lib.cm.  The trace module is
98            $cml-lib/trace-cml.cm. (The aforementioned $cml/core-cml.cm
99            exists mainly to make it possible for $cml-lib/trace-cml.cm
100            to refer to it.)
101    
102    [2001-03-8]
103            Fixed a problem in the ordering of clean-up actions.  IO streams
104            were being cleaned before servers, which meant that servers could
105            not use I/O in initialization or shutdown.
106    
107    [2001-01-14]
108            Fixed a bug in the timeout manager.  Cleanup actions were being
109            executed twice, which breaks withNack.
110    
111    [2000-12-12]
112            Fixed a bug in the I/O manager (core-cml/io-manager.sml), where
113            if there were two threads blocked on the same descriptor (one
114            reading and one writing), the result might be matched to the
115            wrong thread.
116    
117    [2000-09-28]
118            Version 1.0.13 (SML/NJ Version 110.0.7)
119    
120    [2000-09-27]
121            Updated the CML Library to track additions to the SML/NJ Library.
122    
123    [1999-12-08]
124            Fixed a collection of bugs in event.sml related to the handling of
125            negative acknowledgements.
126    
127    [1999-12-01]
128            Modified RunCML.doit to install a dummy print hook.  This prevents
129            the bug of SML/NJ's print function being called during CML execution
130            (the CML print function is installed by code in TextIO, but that
131            code isn't loaded by CML when the application does not specifically
132            mention TextIO).
133    
134    Version 1.0.12 (SML/NJ 110.0.6 and 110.8)
135    -----------------------------------------
136    
137    [1999-09-29]
138            Updated the CML Library to track additions to the SML/NJ Library.
139    
140    [1999-07-05]
141            Added support for Win32 sockets (thanks to Riccardo Pucella).
142    
143    [1998-08-04]
144            Added preliminary Win32 implementation (thanks to Riccardo Pucella).
145    
146    [1998-06-01]
147            Fixed type of inputLineEvt in CML_TEXT_STREAM_IO (thanks to A. Appel).
148    
149    [1998-03-12]
150            Fixed bug in ChanIOFn (failure to spawn threads).
151    
152    
153  Version 1.0.11 (SML/NJ 109.33 and 110)  Version 1.0.11 (SML/NJ 109.33 and 110)
154  --------------------------------------  --------------------------------------
155    
   - Added TextIO.scanStream function.  
156      [1997-11-21]      [1997-11-21]
157            Added TextIO.scanStream function.
158    
   - Added import of PathUtil:PATH_UTIL to CML library.  
159      [1997-11-21]      [1997-11-21]
160            Added import of PathUtil:PATH_UTIL to CML library.
161    
162    
163  Version 1.0.10 (SML/NJ 109.32)  Version 1.0.10 (SML/NJ 109.32)
164  ------------------------------  ------------------------------
165    
   - Fixed a scheduler bug that occured when the atomicState was SignalPending  
     and atomicSwitchTo was used to exit the atomic region.  
166      [1997-09-18]      [1997-09-18]
167            Fixed a scheduler bug that occured when the atomicState was SignalPending
168            and atomicSwitchTo was used to exit the atomic region.
169    
   - Fixed a bug in the RunCML.doit code that prevented multiple runs (this bug  
     was exposed by the previous bug fix).  
170      [1997-09-15]      [1997-09-15]
171            Fixed a bug in the RunCML.doit code that prevented multiple runs (this bug
172            was exposed by the previous bug fix).
173    
   - Fixed a serious bug with the internal condition variables (Event.atomicCVarSet  
     was not changing the state of the variable).  
174      [1997-09-15]      [1997-09-15]
175            Fixed a serious bug with the internal condition variables (Event.atomicCVarSet
176            was not changing the state of the variable).
177    
   - Introduced datatype rebinding to eliminate some structure opening.  
178      [1997-09-15]      [1997-09-15]
179            Introduced datatype rebinding to eliminate some structure opening.
180    
   - Moved definition of tidToString to RepTypes, so that it can be used in  
     debugging the CML internals.  
181      [1997-09-14]      [1997-09-14]
182            Moved definition of tidToString to RepTypes, so that it can be used in
183            debugging the CML internals.
184    
185    - Server initialization/shutdown is now handled by a dedicated cleanup  [1997-09-12]
186            Server initialization/shutdown is now handled by a dedicated cleanup
187      routine.  Eventually, each server should define its own cleanup routine,      routine.  Eventually, each server should define its own cleanup routine,
188      and we'll get rid of logServer.      and we'll get rid of logServer.
     [1997-09-12]  
189    
   - Fixed bugs in the initialization and shutdown protocols for the standard  
     text streams.  
190      [1997-09-12]      [1997-09-12]
191            Fixed bugs in the initialization and shutdown protocols for the standard
192            text streams.
193    
194    
195  Version 1.0.9 (SML/NJ 109.31)  Version 1.0.9 (SML/NJ 109.31)
196  -----------------------------  -----------------------------
197    
   - Added cleanup code for the I/O stacks (including the standard I/O streams).  
198      [1997-09-02]      [1997-09-02]
199            Added cleanup code for the I/O stacks (including the standard I/O streams).
200    
201    - Implemented a clean-up mechansim that is similar to that provided by  [1997-08-29]
202            Implemented a clean-up mechansim that is similar to that provided by
203      SML/NJ.  The logging of global servers for initialization/shutdown      SML/NJ.  The logging of global servers for initialization/shutdown
204      is now done using cleaners, which provide somewhat finer control.      is now done using cleaners, which provide somewhat finer control.
205      Channel and mailbox logging is still supported, but the initialization      Channel and mailbox logging is still supported, but the initialization
206      is done by a dedicated cleaner.  This change is part of the overhaul      is done by a dedicated cleaner.  This change is part of the overhaul
207      of RunCML.      of RunCML.
     [1997-08-29]  
208    
   - Qualified the use of the "cont" type constructor, which is no longer  
     available at top level.  
209      [1997-08-28]      [1997-08-28]
210            Qualified the use of the "cont" type constructor, which is no longer
211            available at top level.
212    
   - Replaced a few holdover uses of "abstraction" with opaque signature matching.  
213      [1997-08-28]      [1997-08-28]
214            Replaced a few holdover uses of "abstraction" with opaque signature matching.
215    
216    - RunCML.doit now returns an OS.Process.status value.  If a CML program  [1997-08-15]
217            RunCML.doit now returns an OS.Process.status value.  If a CML program
218      uses OS.Process.{exit,terminate} to shutdown, then the status argument      uses OS.Process.{exit,terminate} to shutdown, then the status argument
219      is returned as the result.  If the system shuts down because of deadlock,      is returned as the result.  If the system shuts down because of deadlock,
220      the OS.Process.failure is returned.      the OS.Process.failure is returned.
     [1997-08-15]  
221    
222    - Many changes to ensure that exportFn images do not include the entire  [1997-08-15]
223            Many changes to ensure that exportFn images do not include the entire
224      top-level environment.  These include: using SMLofNJ.isolate to create      top-level environment.  These include: using SMLofNJ.isolate to create
225      top-level continuations, and reimplementing RunCML.exportFn to do better      top-level continuations, and reimplementing RunCML.exportFn to do better
226      housekeeping.  To get this to work also required a number of changes      housekeeping.  To get this to work also required a number of changes
227      to the SML/NJ sources.      to the SML/NJ sources.
     [1997-08-15]  
228    
   - Fixed bug in scheduler, where a timer interrupt in an atomic region  
     was not getting marked by SignalPending.  
229      [1997-08-15]      [1997-08-15]
230            Fixed bug in scheduler, where a timer interrupt in an atomic region
231            was not getting marked by SignalPending.
232    
   - The TextIO.output* functions did not implement line buffering; this  
     has now been added.  
233      [1997-07-24]      [1997-07-24]
234            The TextIO.output* functions did not implement line buffering; this
235            has now been added.
236    
237    
238  Version 1.0.8 (SML/NJ 109.30)  Version 1.0.8 (SML/NJ 109.30)
239  -----------------------------  -----------------------------
240    
   - Changed uses of System.Unsafe to Unsafe.  
241      [1997-07-11]      [1997-07-11]
242            Changed uses of System.Unsafe to Unsafe.
243    
   - Eliminated redefinition of Scheduler structure to avoid loss of inlining,  
     since the compiler handles this properly now.  
244      [1997-07-11]      [1997-07-11]
245            Eliminated redefinition of Scheduler structure to avoid loss of inlining,
246            since the compiler handles this properly now.
247    
   - Added Atom.atom' (tracking SML/NJ library changes)  
248      [1997-07-11]      [1997-07-11]
249            Added Atom.atom' (tracking SML/NJ library changes)
250    
   - Removed Array2:ARRAY2 from library, as this is now gone from the  
     SML/NJ library.  
251      [1997-06-30]      [1997-06-30]
252            Removed Array2:ARRAY2 from library, as this is now gone from the
253            SML/NJ library.
254    
255    
256  Version 1.0.7 (SML/NJ 109.29)  Version 1.0.7 (SML/NJ 109.29)
257  -----------------------------  -----------------------------
258    
   - Changed OS.IO.{pollErr,isErr} to OS.IO.{pollPri,isPri} (this tracks fixes  
     in the SML/NJ implementation of the SML Basis Library.  
259      [1997-06-11]      [1997-06-11]
260            Changed OS.IO.{pollErr,isErr} to OS.IO.{pollPri,isPri} (this tracks fixes
261            in the SML/NJ implementation of the SML Basis Library.
262    
   - Changes to src/Unix/posix-bin-prim-io.sml to track basis fixes.  
263      [1997-06-11]      [1997-06-11]
264            Changes to src/Unix/posix-bin-prim-io.sml to track basis fixes.
265    
266    
267  Version 1.0.6 (SML/NJ 109.28)  Version 1.0.6 (SML/NJ 109.28)
268  -----------------------------  -----------------------------
269    
270    - Added a temporary fix so that input operations do not cause the whole  [1997-05-21]
271            Added a temporary fix so that input operations do not cause the whole
272      CML system to block waiting for input.  Eventually, there should be a      CML system to block waiting for input.  Eventually, there should be a
273      CML version of the complete Posix API, which is the right way to avoid      CML version of the complete Posix API, which is the right way to avoid
274      this problem.      this problem.
     [1997-05-21]  
275    
276    - Added RunCML.exportFn.  [1997-05-21]
277            Added RunCML.exportFn.
278      NOTE: there are some problems with the size of exported images that      NOTE: there are some problems with the size of exported images that
279      need to be tracked down and fixed.      need to be tracked down and fixed.
     [1997-05-21]  
280    
281    
282  Version 1.0.5 (SML/NJ 109.26)  Version 1.0.5 (SML/NJ 109.26)
283  -----------------------------  -----------------------------
284    
   - Added SyncVar.{mSwap,mSwapEvt} operations, and changed the implementation  
     of multicast channels to use it.  
285      [1997-03-18]      [1997-03-18]
286            Added SyncVar.{mSwap,mSwapEvt} operations, and changed the implementation
287            of multicast channels to use it.
288    
   - Modified SyncVar.{mGet,mGetEvt} to resume other blocked threads (just  
     as iGet does).  
289      [1997-03-17]      [1997-03-17]
290            Modified SyncVar.{mGet,mGetEvt} to resume other blocked threads (just
291            as iGet does).
292    
   - Fixed a bug in SyncVar.{mTake,mTakeEvt}, where the cell was not getting  
     emptied in some execution paths.  
293      [1997-03-16]      [1997-03-16]
294            Fixed a bug in SyncVar.{mTake,mTakeEvt}, where the cell was not getting
295            emptied in some execution paths.
296    
297    - Added an "error thread," which is enqueued when CML is not running.  [1997-03-15]
298            Added an "error thread," which is enqueued when CML is not running.
299      This thread will get dispatched if someone tries to execute a CML      This thread will get dispatched if someone tries to execute a CML
300      operation without using RunCML.doit (not including channel allocation,      operation without using RunCML.doit (not including channel allocation,
301      etc.).  I also added a top-level call to Scheduler.reset, which will      etc.).  I also added a top-level call to Scheduler.reset, which will
302      ensure that the current thread ID is initialized.      ensure that the current thread ID is initialized.
     [1997-03-15]  
303    
   - Fixed a serious bug in SyncVar.{iPut,mPut}, where the cell was not  
     getting filled in some cases.  
304      [1997-03-13]      [1997-03-13]
305            Fixed a serious bug in SyncVar.{iPut,mPut}, where the cell was not
306            getting filled in some cases.
307    
308    
309  Version 1.0.4 (SML/NJ 109.25.2)  Version 1.0.4 (SML/NJ 109.25.2)
310  -------------------------------  -------------------------------
311    
312    - Added some additional modules to the CML Library: IOUtil:IO_UTIL and  [1997-02-28]
313            Added some additional modules to the CML Library: IOUtil:IO_UTIL and
314      KeywordsFn.  These were recent additions to the SML/NJ Library.  I also      KeywordsFn.  These were recent additions to the SML/NJ Library.  I also
315      reorganized the directory structure of the CML library to make it easier      reorganized the directory structure of the CML library to make it easier
316      to track changes in the SML/NJ Library.      to track changes in the SML/NJ Library.
     [1997-02-28]  
317    
   - Tracked changes in location of continuation operations changed in SML/NJ.  
318      [1997-02-28]      [1997-02-28]
319            Tracked changes in location of continuation operations changed in SML/NJ.
320    
321    
322  Version 1.0.3 (SML/NJ 109.25.1)  Version 1.0.3 (SML/NJ 109.25.1)
323  -------------------------------  -------------------------------
324    
   - Fixed bugs in the implementation of the pauseHook and schedulerHook in  
     RunCMLFn (missing atomicBegin).  
325      [1997-02-25]      [1997-02-25]
326            Fixed bugs in the implementation of the pauseHook and schedulerHook in
327            RunCMLFn (missing atomicBegin).
328    
   - Fixed bug in implementation of TraceCML when TraceToFile was set as the  
     destination.  
329      [1997-02-25]      [1997-02-25]
330            Fixed bug in implementation of TraceCML when TraceToFile was set as the
331            destination.
332    
   - Fixed bug in random access support in BinIOFn and TextIOFn (bug also in  
     SML/NJ implementation).  
333      [1997-02-18]      [1997-02-18]
334            Fixed bug in random access support in BinIOFn and TextIOFn (bug also in
335            SML/NJ implementation).
336    
   - Added logging/unlogging for global mailboxes.  
337      [1997-02-17]      [1997-02-17]
338            Added logging/unlogging for global mailboxes.
339    
   - Fixed bug in the TraceCML.unwatchThread.  Also changed the implementation  
     to avoid potential races between unwatching a thread and its termination.  
340      [1997-02-17]      [1997-02-17]
341            Fixed bug in the TraceCML.unwatchThread.  Also changed the implementation
342            to avoid potential races between unwatching a thread and its termination.
343    
344    - Various changes to the Scheduler module to improve robustness.  Added  [1997-02-15]
345            Various changes to the Scheduler module to improve robustness.  Added
346      an exception handler around the function in enqueueTmpThread.  Replaced      an exception handler around the function in enqueueTmpThread.  Replaced
347      enqueueCurThread with enqueueAndSwitchCurThread, which keeps the thread      enqueueCurThread with enqueueAndSwitchCurThread, which keeps the thread
348      ID bookkeeping in the same place.  And fixed a bug(?) where atomicSwitchTo      ID bookkeeping in the same place.  And fixed a bug(?) where atomicSwitchTo
349      was failing to set the current thread ID properly.      was failing to set the current thread ID properly.
     [1997-02-15]  
350    
   - Added sendPoll operation on channels to CML structure.  
351      [1997-02-04]      [1997-02-04]
352            Added sendPoll operation on channels to CML structure.
353    
354    
355  Version 1.0.2 (SML/NJ 109.25)  Version 1.0.2 (SML/NJ 109.25)
356  -----------------------------  -----------------------------
357    
   - Added documentation for the Multicast and TraceCML library modules.  
358      [1997-01-30]      [1997-01-30]
359            Added documentation for the Multicast and TraceCML library modules.
360    
   - Made minor improvements to the implementation of TraceCML.  
361      [1997-01-30]      [1997-01-30]
362            Made minor improvements to the implementation of TraceCML.
363    
364    - Changes to the SML/NJ system (available in 109.25) now make it possible  [1997-01-29]
365            Changes to the SML/NJ system (available in 109.25) now make it possible
366      to use the top-level print function in CML programs (it gets dynamically      to use the top-level print function in CML programs (it gets dynamically
367      rebound to CML's version of TextIO.print when a CML program starts running).      rebound to CML's version of TextIO.print when a CML program starts running).
     [1997-01-29]  
368    
   - Renamed CML.atEvt to CML.atTimeEvt.  
369      [1997-01-27]      [1997-01-27]
370            Renamed CML.atEvt to CML.atTimeEvt.
371    
   - Added SimpleRPC:SIMPLE_RPC to the CML library.  
372      [1997-01-26]      [1997-01-26]
373            Added SimpleRPC:SIMPLE_RPC to the CML library.
374    
   - Fixed a bug in the I/O manager for the case when two I/O events became  
     enabled for the same thread at the same time.  
375      [1997-01-26]      [1997-01-26]
376            Fixed a bug in the I/O manager for the case when two I/O events became
377            enabled for the same thread at the same time.
378    
379    
380  Version 1.0.1 (SML/NJ 109.22)  Version 1.0.1 (SML/NJ 109.22)
381  -----------------------------  -----------------------------
382    
   - Added UnixEnv:UNIX_ENV to the structures reexported from the CML library.  
383      [1996-11-09]      [1996-11-09]
384            Added UnixEnv:UNIX_ENV to the structures reexported from the CML library.
385    
   - Fixed bug in {TextIO,BinIO}.StreamIO.endOfStream, where more m-variable  
     was getting multiple puts.  
386      [1996-11-07]      [1996-11-07]
387            Fixed bug in {TextIO,BinIO}.StreamIO.endOfStream, where more m-variable
388            was getting multiple puts.
389    
390    
391  Version 1.0 (SML/NJ 109.21.1)  Version 1.0 (SML/NJ 109.21.1)
392  -----------------------------  -----------------------------
393    
   - Added version and banner to CML structure.  
394      [1996-11-01]      [1996-11-01]
395            Added version and banner to CML structure.
396    
   - Added CML version of Unix structure.  
397      [1996-11-01]      [1996-11-01]
398            Added CML version of Unix structure.
399    
   - Changed the implementation of the internal condition variables to make  
     them work correctly.  
400      [1996-11-01]      [1996-11-01]
401            Changed the implementation of the internal condition variables to make
402            them work correctly.
403    
   - Added implementation of OS.IO.poll and OS.IO.pollEvt.  
404      [1996-11-01]      [1996-11-01]
405            Added implementation of OS.IO.poll and OS.IO.pollEvt.
406    
   - Fixed implementation of Socket.connect.  
407      [1996-11-01]      [1996-11-01]
408            Fixed implementation of Socket.connect.
409    

Legend:
Removed from v.8  
changed lines
  Added in v.3107

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0