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

Legend:
Removed from v.651  
changed lines
  Added in v.3573

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