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

SCM Repository

[smlnj] View of /sml/trunk/src/cml/CHANGES
ViewVC logotype

View of /sml/trunk/src/cml/CHANGES

Parent Directory Parent Directory | Revision Log Revision Log

Revision 168 - (download) (annotate)
Sat Nov 7 20:11:41 1998 UTC (23 years, 1 month ago) by monnier
File size: 8744 byte(s)
This commit was generated by cvs2svn to compensate for changes in r167,
which included commits to RCS files with non-trunk default branches.
This is a record of changes made to CML and the CML Library.

Version 1.0.13 (SML/NJ 110.9)

  - Changes to I/O APIs to track basis changes (deleted in_pos support
    and changed type of StreamIO.mkInstream).

Version 1.0.12 (SML/NJ 110.0.4 and 110.8)

  - Added preliminary Win32 implementation.

  - Fixed type of inputLineEvt in CML_TEXT_STREAM_IO (thanks to A. Appel).

  - Fixed bug in ChanIOFn (failure to spawn threads).

Version 1.0.11 (SML/NJ 109.33 and 110)

  - Added TextIO.scanStream function.

  - Added import of PathUtil:PATH_UTIL to CML library.

Version 1.0.10 (SML/NJ 109.32)

  - Fixed a scheduler bug that occured when the atomicState was SignalPending
    and atomicSwitchTo was used to exit the atomic region.

  - Fixed a bug in the RunCML.doit code that prevented multiple runs (this bug
    was exposed by the previous bug fix).

  - Fixed a serious bug with the internal condition variables (Event.atomicCVarSet
    was not changing the state of the variable).

  - Introduced datatype rebinding to eliminate some structure opening.

  - Moved definition of tidToString to RepTypes, so that it can be used in
    debugging the CML internals.

  - Server initialization/shutdown is now handled by a dedicated cleanup
    routine.  Eventually, each server should define its own cleanup routine,
    and we'll get rid of logServer.

  - Fixed bugs in the initialization and shutdown protocols for the standard
    text streams.

Version 1.0.9 (SML/NJ 109.31)

  - Added cleanup code for the I/O stacks (including the standard I/O streams).

  - Implemented a clean-up mechansim that is similar to that provided by
    SML/NJ.  The logging of global servers for initialization/shutdown
    is now done using cleaners, which provide somewhat finer control.
    Channel and mailbox logging is still supported, but the initialization
    is done by a dedicated cleaner.  This change is part of the overhaul
    of RunCML.

  - Qualified the use of the "cont" type constructor, which is no longer
    available at top level.

  - Replaced a few holdover uses of "abstraction" with opaque signature matching.

  - RunCML.doit now returns an OS.Process.status value.  If a CML program
    uses OS.Process.{exit,terminate} to shutdown, then the status argument
    is returned as the result.  If the system shuts down because of deadlock,
    the OS.Process.failure is returned.

  - Many changes to ensure that exportFn images do not include the entire
    top-level environment.  These include: using SMLofNJ.isolate to create
    top-level continuations, and reimplementing RunCML.exportFn to do better
    housekeeping.  To get this to work also required a number of changes
    to the SML/NJ sources.

  - Fixed bug in scheduler, where a timer interrupt in an atomic region
    was not getting marked by SignalPending.

  - The TextIO.output* functions did not implement line buffering; this
    has now been added.

Version 1.0.8 (SML/NJ 109.30)

  - Changed uses of System.Unsafe to Unsafe.

  - Eliminated redefinition of Scheduler structure to avoid loss of inlining,
    since the compiler handles this properly now.

  - Added Atom.atom' (tracking SML/NJ library changes)

  - Removed Array2:ARRAY2 from library, as this is now gone from the
    SML/NJ library.

Version 1.0.7 (SML/NJ 109.29)

  - Changed OS.IO.{pollErr,isErr} to OS.IO.{pollPri,isPri} (this tracks fixes
    in the SML/NJ implementation of the SML Basis Library.

  - Changes to src/Unix/posix-bin-prim-io.sml to track basis fixes.

Version 1.0.6 (SML/NJ 109.28)

  - Added a temporary fix so that input operations do not cause the whole
    CML system to block waiting for input.  Eventually, there should be a
    CML version of the complete Posix API, which is the right way to avoid
    this problem.

  - Added RunCML.exportFn.
    NOTE: there are some problems with the size of exported images that
    need to be tracked down and fixed.

Version 1.0.5 (SML/NJ 109.26)

  - Added SyncVar.{mSwap,mSwapEvt} operations, and changed the implementation
    of multicast channels to use it.

  - Modified SyncVar.{mGet,mGetEvt} to resume other blocked threads (just
    as iGet does).

  - Fixed a bug in SyncVar.{mTake,mTakeEvt}, where the cell was not getting
    emptied in some execution paths.

  - Added an "error thread," which is enqueued when CML is not running.
    This thread will get dispatched if someone tries to execute a CML
    operation without using RunCML.doit (not including channel allocation,
    etc.).  I also added a top-level call to Scheduler.reset, which will
    ensure that the current thread ID is initialized.

  - Fixed a serious bug in SyncVar.{iPut,mPut}, where the cell was not
    getting filled in some cases.

Version 1.0.4 (SML/NJ 109.25.2)

  - Added some additional modules to the CML Library: IOUtil:IO_UTIL and
    KeywordsFn.  These were recent additions to the SML/NJ Library.  I also
    reorganized the directory structure of the CML library to make it easier
    to track changes in the SML/NJ Library.
  - Tracked changes in location of continuation operations changed in SML/NJ.

Version 1.0.3 (SML/NJ 109.25.1)

  - Fixed bugs in the implementation of the pauseHook and schedulerHook in
    RunCMLFn (missing atomicBegin).

  - Fixed bug in implementation of TraceCML when TraceToFile was set as the

  - Fixed bug in random access support in BinIOFn and TextIOFn (bug also in
    SML/NJ implementation).

  - Added logging/unlogging for global mailboxes.

  - Fixed bug in the TraceCML.unwatchThread.  Also changed the implementation
    to avoid potential races between unwatching a thread and its termination.

  - Various changes to the Scheduler module to improve robustness.  Added
    an exception handler around the function in enqueueTmpThread.  Replaced
    enqueueCurThread with enqueueAndSwitchCurThread, which keeps the thread
    ID bookkeeping in the same place.  And fixed a bug(?) where atomicSwitchTo
    was failing to set the current thread ID properly.

  - Added sendPoll operation on channels to CML structure.

Version 1.0.2 (SML/NJ 109.25)

  - Added documentation for the Multicast and TraceCML library modules.

  - Made minor improvements to the implementation of TraceCML.

  - Changes to the SML/NJ system (available in 109.25) now make it possible
    to use the top-level print function in CML programs (it gets dynamically
    rebound to CML's version of TextIO.print when a CML program starts running).

  - Renamed CML.atEvt to CML.atTimeEvt.

  - Added SimpleRPC:SIMPLE_RPC to the CML library.

  - 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.

Version 1.0.1 (SML/NJ 109.22)

  - Added UnixEnv:UNIX_ENV to the structures reexported from the CML library.

  - Fixed bug in {TextIO,BinIO}.StreamIO.endOfStream, where more m-variable
    was getting multiple puts.

Version 1.0 (SML/NJ 109.21.1)

  - Added version and banner to CML structure.

  - Added CML version of Unix structure.

  - Changed the implementation of the internal condition variables to make
    them work correctly.

  - Added implementation of OS.IO.poll and OS.IO.pollEvt.

  - Fixed implementation of Socket.connect.

ViewVC Help
Powered by ViewVC 1.0.0