DRAMA Change List, Introduction

This list is a crude list of the Changes made to DRAMA. It was started on 7-Aug-1995. It is not considered perfect and in particular, may not have full details of Imp and Sds changes. The assumed author of the changes is TJF.

DRAMA 1.5.2, Mar 2006

16-Mar-2006

Fix Dul against new SDS Arg C++ definitions and uses DitsSignalByNamePtr() rather then trying to pass a pointer in an Sds structure with DitsSignal() in the DcppTask class.

10-Mar-2006

Sdp and Arg C++ intefaces modified to make code portable to 64 bit machines.

Various improvements to GitLogger.

1-Mar-2006

Add a Log function to the Git logger which allows a time tag to be specified arther then just using the system time. Add GetLogger() static method to GitLogger class.

28-Feb-2006

Fix a invalid transaction ID bug. Dumps now give machine names as proper node names rather then hex IP address.

20-Feb-2006

Fix a bug in DJAVA's DramaPath.KickForget() functions - the message was transaction was NOT being forgotten.

16-Feb-2006

Support 64 Bit intel machines (changes in various sub-systems).

20-Jan-2006

Add a check to DcppHandler for a thread count greater then zero but no transactions outstanding.. Tidy up some error handling in Dcpp.

10-Jan-2006

Revamp function DulFitsRead() and add DulFitsWrite().

4-Jan-2006

Fix various logging problems and improve dumps.

17-Dec-2005

You can now override IMP_MAX_TASKS in your local configuration files by defining ImpMaxTasks in your drama_local.cf file. For example #define ImpMaxTasks 64

16-Dec-2005

Fix problems with multiple concurrent bulk transfers.

7-Dec-2005

Improve logging around bulk data transactions.

5-Dec-2005

Added DitsPathToName() and DitsGetActNameFromIndex().

Handle the case where transmitter is trying to send messages but thinks the current machine is the IP address 127.0.0.1. This case causes a connection to hang and indicates a mis-configured /etc/hosts file. IMP now reports the problem sensibly.

28-Nov-2005

Config Sub-system, AnsiC() etc. macros now have -Wno-long-long so that we don't get warnings about using long long types - allowing 64 bit support when available.

14-Nov-2005

IMP now uses strerror() rather then sys_errlist[] when possible to avoid compiler warnings.

6-Oct-2005

Add gittpl.h to Git library, C++ template interface to some GitArg functions.

15-Aug-2005

The drama_rel_cleanup.sh script now lists user details of the directory to be deleted.

28-Jul-2005

ditscmd now handles _ALL_ and _NAMES_ paramater get messages in a special way to ensure the data is output. Fixed lack of automatic MGET in VxWorks (I think) and output better error messages.

dui now handles _ALL_ and _NAMES_ paramater get messages in a special way to ensure the data is output. (This impacts many user interfaces, including dtcl, but only if the default handlers are used)

Fix a bug in SdpMGet() triggered by getting _ALL_ - which would cause the parameter system to be deleted.

Started getting rid of non-prototype C declarations in files I touched.

27-Jul-2005

Modified DtclTkDialog (dtcltk.tcl) to try to display the dialog in a sensible position on a dual monitor X11 display.

21-Jul-2005

Fix memory leak in Arg class (one method only).

18-Jun-2005

Ensure DcppTask::SendForget functions correctly zero the transaction pointer when it is not created. DcppDispatch must not get transaction data when the transaction id is null.

17-Jun-2005

Bad status form an action end routine causes strange errors - tidy up.

19-Mar-2005

Fix bug in ImpZProcId() under VxWorks.

19-Apr-2005

Ensure DitsLosePath() correctly handles a null path.

DitsDumpAction() should not output details on load transactions paths because they don't have any.

18-Apr-2005

Fix some bugs in Ers's handling of reports sent by a sub-thread of another a DRAMA task.

15-Apr-2005

Add AccessArray method to the SdsID class and the assoicated SdsArrayAccessHelper class. Fix a bug in SdsId.DeepCopy() when source is self.

8-Apr-2005

Config Sub-system - Modified JavaPackageClassesMacro to avoid unncessary builds.

29-Mar-2005

Add extra constructors to DJAVA Arg class. The SDS ID java class now keeps track of its contructor's location on the stack, to help in debugging problems. This information can be fetched using GetConstructorLocation().

23-Mar-2005

Added IMP cleantask command.

18-Mar-2005

DJAVA ported to JAVA 1.5.

4-Jan-2005

Config Sub-system - modified to use gcc rather then ld to link sharables on linux.

Add RCSID constants to all DJAVA classes.

13-Dec-2004

Increase GitLogger VxWorks background thread stack size.

9-Dec-2005

impdump provides more details about time fields in reminders.

1-Dec-2004

Improved documentation and logging in Dcpp classes. Ensure thread count going negative is handled correctly in DcppHandler.

Improve error reporting on file read problems in GitArgGetStruct().

DRAMA 1.5.1, Nov 2004

10-Nov-2004

Add DitsGetDebug() (DramaDits).

9-Nov-2004

Fix up doxygen generated documentation throughout. Links to C functions now work.

8-Nov-2004

Add DitsGetSelfPath(). Improve DITS__NOSPACE error reports and grammer of DITS__CON_REJECTED error message (DramaDits, DramaDul).

5-Nov-2004

Add new commands drama_gen_defaultver and drama_rel_cleanup.sh (DramaDrama).

25-Oct-2004

IMP now supports recording the IMP event log in shared memory. Fix to IMP VxWorks load code to allow multiple resets under VxWorks to work properly. Fix Baja systems pid problem. Fix ImpRegister() problem releasing resources on failure. Add reset() function on VxWork, which neatly shuts down all tasks before rebooting. (imp).

18-Oct-2004

dcpphandler.h should include DitsFix.h to get DitsGetContext() (DramaDul).

12-Oct-2004

Fix error in MacOsX motif library library (DramaConfig).

11-Oct--2004

Fix bug in DitsMonitor where forward messages are not handled correctly in some cases when a node name is involved.

8-Oct-2004

Add support for cfitsio library to configuration files. The imake macro CFITSIO(x) does x only if cfitsio is enabled in the configuration files. (DramaConfig).

27-Sep-2004

Wrap many more IMP system calls in proper checks for EAGAIN and EINTR (imp).

23-Sep-2004

Added checks for EAGAIN and EINTR around all I/O calls in the UNIX file mapping code (imp).

14-Sep-2004

Add SdsSetWatch() function to SDS library (sds).

13-Sep-2004

Add SDSLEAKCHK control message. Clear argin and argout items on exit from DitsMsgReceive().

10-Sep-2004

Add DJAVA SdsID methods EnableFreeIDWatch, ClearFreeIDWatch and SetDebugging. Remove use of weak globals from DramaUtil JNI module - they were causing crashes.

9-Sep-2004

Ensure logging of all orphan handler details when we have a log file.

8-Sep-2004

Disable POSIX thread in GitLogger - more trouble then it is worth. Replace by flushing features. (DramaGit).

3-Sep-2004

Remove DramaDul dependencies on Starlink, instead use CFITSIO directly for FITS file support (DramaDul).

23-Aug-2004

Document callback routines throughout (DramaDits).

Add DitsLogFlush() function and logFlush to DitsLogSysType.

Add LOGFLUSH and LOGINFO control messages.

Add DitsPutForwardMonSetupHandler() function.

18-Aug-2004

Add DcppCallbackBase type used with a new DcppHandler method.

13-Aug-2004

Fix crash caused by use of Weak References in JNI code (DramaJava).

12-Aug-2004

Add new Wait() and WaitAll methods to DcppHandler.

22-Jul-2004

Fix crash in DITS monitor code. Fix SdpGet() comments. (DramaDits).

18-Jun-2004

Fix a bug in DtclCmdError which was causing the reported error message to be lost if we had to flush messages. (DramaTcl).

06-Jul-2004

Fix problem when setting a task name including a node name in DcppTask::SetName() method. (DramaDul)

02-Jul-2004

Modify JAVA code make use of native 64 bit integers with GNU compilers.

29-Jun-2004

Fix GCC 3.4.0 compilation problems (DramaDul, DramaGit, DramaJava).

25-Jun-2004

Support use of 64 bit integers - long long and unsigned long long under GCC for SDS types INT64 and UINT64. (sds).

3-Jun-2004

The JAVABASE Make macro is now used to set the location of JAVA. Local configuration files can set "JavaBase" to set this value. Default values are set up for MacOsX and Solaris. (DramaConfig)

2-Jun-2004

Add DJAVA DramaTask.CloseTask() method - which replaces DramaTask.Close() and allows better handling of exceptions.

Add DJAVA DramaError class which allows a DramaException to be converted to a non-checked exception.

DramaException.Report - no longer double reports the error.

The dmakefile now uses -linkoffline rather then -link when building HTML pages, and I have downloaded package-list from Sun to do this.

16-Apr-2004

Fix a minor duplication in sds.c (sds).

14-Apr-2004

Ensure dversion and dnet command documentation is generated. (DramaDrama).

Fix documentation error in DitsPutActEntRoutine().

DRAMA 1.5.0, Apr 2004

6-Apr-2004

Added the ccdv program - which provides a nice display of the build process.

5-Apr-2004

DRAMA_VERSION environment variable now set from $CONFIG_DIR/drama.h.

30-Mar-2004

Ensure that DTCL compiles without warnings on Tcl 8.4.

Add various IMP changes from Nick Rees, JACH.

29-Mar-2004

Add DitsForEachTransaction()

Add boolean Get/Put to Sdp C++ class and std::string support.

Add -v option to ditscmd.c. (Verbose output of responses). Thanks to Nick Rees.

Bug fixes to Sds__cell_ext(), SdsDelete, Sds__export() and SdsExtract() Thanks to Nick Rees.

WIN32 support updated. Thanks to Nick Rees.

Changes to get things working again for Solaris cc and CC (SC5.0).

Improve support for Flex and Bison (MESSGEN/SDS).

1-Mar-2004

Expended network diagostics in IMP.

18-Feb-2004

Fix long standing bug in IMP. The effect was that reminders would not happen when the were supposed to under some conditions.

15-Feb-2004

Support DITS_M_SET_BYTES load flag throughout. (allows you to specify the VxWorks stack size for a task). Add DcppTask::SetTaskSize(). Add DTCL -bytes option to DramaLoad command.

Start support for -auto operation to VxWorks dramastart (not yet complete).

IMP_MAX_TASKS changed from 32 to 48. IMP minor revision number bumped from 0 to 1.

6-Feb-2004

Improve DJAVA's logging.

26-Jan-2004

Add DcppTask::GetDitsPath().

DJAVA's DramaPath.Error() (default implementation) was not outputing the error status - now does so.

19-Jan-2004

DcppHandler revamped to change public interface to virtual functions and move significant sized functions to DcppHandler.C

DcppHandler now catches the object being deleted in the middle of being used and prints a warning.

14-Jan-2004

GitTask now working.

13-Jan-2004

Add LOGNOTE control message.

Fix problem which occurs if a task which we have connected to closes the connection - ditsimp.c/Dits___ImpConnect().

impz_unix.c had a call to statvfs() which did not check for EINTR. Fixed. (long standing bug - but only seen at AAO recently).

17-Dec-2003

Support use of std::string in places there char * is normally required in Arg C++ class if DRAMA_ALLOW_CPP_STDLIB is defined.

16-Dec-2003

Add DcppTask::Delete() function. Tidy up Dcpp's handling of getting a path when a task has previously died. Add DcppTask::PutDisconnectHandler() and otherwise support disconnect handling in Dcpp.

Add GitTask class.

12-Dec-2003

GitLogger modfied to log milliseconds, return immediately if logging a signal in the wrong task, default log levels set to " INST,ERROR,MSG". Now used DRAMA_LOG_LEVEL in addition to system specific environment variable to get the default logging level.

1-Dec-2003

Fix a bug in DJAVA's DramaException.Report(Throwable e) method which could cause an exception.

1-Dec-2003

Catch malloc error in SDS. Fix bug in ArgSdsList() which was causing it to return errors when but buffer overflowed, rather then just ignoring the problem

4-Nov-2003

If ImpRunTask() returns IMP_NO_SPACE, intercept it and add some context information as well as convert the code to DITS__LOAD_NOSPACE.

SdsList() will now list extra data on next line within [].

22-Oct-2003

Add DcppForgetAll() function.

15-Oct-2003

Ensure that IMP's VME shared memory blocks are allocated in a thread-safe manner.

1-Oct-2003

Replace IMP's use of mktemp with mkstemp() to avoid compiler warnings on some machines. Fix a file descriptor leak.

30-Sep-2003

DJAVA Changes. DramaException.Report(Exception) should take a throwable rather then an Exception.

Add DramaSem.CheckWeHaveIt() and DramaSem.WeHaveIt() methods.

DramaMonitor.Changed() and DramaTask.GetArgument() comments warn about SDS id become invalid when the action handler returns. When DramaMonitor has finished invoking Changed(), it uses SdsID.CleanUp() on the arg to ensure any references are clearly invalid.

Update documentation to warning about Swing thread issues and give links and examples. All methods where this applies are commented correctly.

29-Sep-2003

Add DitsFmtReason() to allow better control of things DitsPrintReason() used to handle.

23-Sep-2003

Improve DcppHandler class logging.

22-Sep-2003

Add dnet command.

Add DcppTask::IsDead(), DcppTask::Initial() and DcppTask::Busy().

17-Sep-2003

Standadarize DJAVA's internal logging.

16-Sep-2003

Fix some SDS ID leaks in DJAVA.

12-Sep-2003

Revamp Dcpp classes to use new logging features.

9-Sep-2003

More work on GitLogger.

8-Sep-2003

Extensive changes to DRAMA debugging features such that they use the logging system if this it is enabled. Internal logging is now always done through Dits___Log().

GitLogger uses UT rather then local time.

27-Aug-2003

Add DitsPutActEntRoutine().

If action completes with bad status - ensure it does complete rather then reschedule.

18-Aug-2003

Add DitsLogMsg and DitsLogSysEnabled DCTL commands.

8-Aug-2003

GitLogger now uses posix threads on appropiate operating systems. Revamp handling of LOG_LEVEL parameters. Add ARGS level. Ensure screen logging does not result in double messages.

6-Aug-2003

Add DramaPath.ObeyW() etc, GitLogger support, Semaphore timeouts to DJAVA.

1-Aug-2003

Expand logging support to all communications calls.

31-Jul-2003

Added falback to IMP_LOCALNODE for machines which have problems finding their own IP address.

18-Jul-2003

GitLogger improvements.

17-Jul-2003

Modify dmakefile/imake system to support Flex and Bison generated files. (Previously Bison was ok on some systems whilst Flex did not work).

If the target argument to dramastart is host then the host machine is presumed. This allows you to do ~drama/dramastart host program

16-Jul-2003

Fix GitLogger formating issues.

4-Jul-2003

Add DulMessageWArg().

3-Jul-2003

Add $IMP_DEV/impuserport command - which outputs the user port number.

1-May-2003

Ensure that IMP master does not reload transmitter and receiver more then five times, even if they loaded successfully. This avoids an endless loop if they are failing quickly.

2-Apr-2003

Modify ditscmd.c and ditsappinit.c to improve error reporting.

Modify ditscmd.c to make -g an alias for -l and to fix formating errors in the handling of MsgOut() messages.

Replace DITS_REA_SIGNAL by DITS_REA_ASTINT through the later remains for compatibility.

Use ImpNodeName() throughout rather then ImpZNodeName().

1-Apr-2003

Fix problem where confuction occurs if a GetPath operation is started in the middle of shutting down a connection.

IMP receiver is modified so that it does not enter the main loop if it can't bind to the receiver port number.

18-Mar-2003

Support Mac Os X.

26-Mar-2003

Fix bug in DitsActionWait() reported by Nick Rees, JACH. the count of outstanding actions was not incrementing the list pointer so would have hung if more then one.

4-Mar-2003

Add DitsImpRedirect() (From Nick Rees, JACH).

1-Mar-2003

Fix problem in ditsgetpath.c when doing a inquiry operation on a path set up both another task which has not yet sent a message. (From Nick Rees, JACH).

15-Jan-2003

DRAMA inserted into the new AAO source code system. All DRAMA source files should now have RCS tags indicating the exact file they originated from in our source code system.

05-Dec-2002

Support DUMPMON control message and DitsMonitorReport() function (From Nick Rees, JACH). Change to DitsPathGet() to support use of a different verson of ImpNetLocate() (From Nick Rees, JACH).

05-Nov-2002

01-Nov-2002

Support named arguments in ditscmd (From Nick Rees, JACH).

31-Oct-2002

IMP modified to support Mac Os X. (Not yet supported by DRAMA as a whole).

26-Sep-2002

Add SdsFindByName() (from Nick Rees, JACH).

18-Jul-2002

Make the DJAVA Sdp class public.

15-Jul-2002

DJAVA - Add Arg constructor which contructs from an SdsID item.

DJAVA - Fix problem in DramaTask.MsgOut() where a string was being double formated.

DJAVA - Implement SdsID methods which return items are strings. Fix bug in exception handling.

12-Jul-2002

Added SdpUpdate DTCL command.

11-Jun-2002

Fix SDS memory leak (from Nick Rees, JACH).

DRAMA 1.4.2, 11-Jun 2002

Please not that I am not certain of the release date of 1.4.2 compared to this time line - this point is approximately correct.

7-Jun-2002

Do not actually lose the selfPath when DitsLosePath() is invoked for it. See DitsLosePath() for details.

Improve comments for DitsLosePath().

Do not allow the allocation of UFACE transactions when no UFACE routines has been put with DitsUfaceCtxEnable(). (Helps fix DJAVA problems).

Ensure DJAVA UFACE transactions are started within a DRAMA semaphore - Combined with above fix to help solve problems with unexpected orphan transactions triggered by JAVA's thread scheduling.

Fix problems in DJAVA Path disconnection code

14-May-2002

Add more details to IMP ringer buffer doesn't fit errors.

03-May-2002

Add dprintenv command to VxWorks drama commands.

30-Apr-2002

Correctly terminate and handle long strings in DuiLoad().

19-Apr-2002

Fix bug in config/Project.defs

DRAMA 1.4.1, Feb 2002

Please not that I am not certain of the release date of 1.4.1 compared to this time line - this point is approximately correct.

11-Feb-2002

Fix bug in messgen.h - STS_K_SUCCESS macro was defined incorrectly

24-Jan-2002

Fix some problems in DTCL when using later versions of Tcl/Tk.

21-Jan-2002

Incorporate SDS bug fixes and compiler warning fixes notified by Nick Rees

DRAMA 1.4, 15-Jan-2002

Better support for version control (dmakefile - Makefile interactions), copy versions to verfile.txt in release directory, add VERSIONS DUMPACTACTIVE and DUMPACTALL control messages

Support for later solaris compilers

11-Oct-2001

Add "use port xxx for *" option to IMP. (Note this turned out to be of no real use).

8-Oct-2001

Support explict reply ports in IMP connections. (Note this turned out to be of no real use).

21-Sep-2001

Add raw2sds program (DUL library). Converts a simple binary image into an SDS image.

05-Sep-2001

Ensure we don't build SDS Tcl support for VxWorks.

04-Sep-2001

Some support for Mac OS x added (config)

Add ErsGetTaskId() function to ERS library.

IMP layer not supports VME backplane shared memory

25-Jun-2001

Add and document fortran SDS_FIND_BY_PATH() SDS_FREE_ID and SDS_READ_FREE interfaces.

Ensure SdsReadFree() does not cause a segmentation fault if the the SDS id is invalid.

15-Jun-2001

Add ErsSetLogRoutine() function to ERS library.

Add GitLogger class and GitLoggerInit() function to the GIT library. This is a general logging faclity.

19-Jun-2001

Support POSIX Sempaphores in IMP layer

13-Jun-2001

Ensure that when Dtcl is loaded dynamically into Tk, the SDS photo image type is avalable.

Add new routine DitsPutDefCode() which allows the code associated with another action to be changed.

08-Jun-2001

Fixed a bug in Mess (MessGetMsg()) which could have caused it to write past the end of string message buffers. This would have occured if the text of the message being translated for longer then the passed buffer.

1-Jun-2001

Have added a new logging system which allows details to be log to a task specific log file. New DITS routines DitsSetLogSys() and DitsLogMsg(). New Git C++ class provided which implements such a logging system - GitLogger. Only action entry, MsgOut and Ers messages are logged at this stage, but support will be added later for more details.

9-May-2001

Dtk now implements its own version of vwait to avoid exiting the program due to a DRAMA loop recursion. Instead we output a background error.

6-Feb-2001

Make DJAVA's DramaTask.GetSymbol() method static to allow it to be accessed before the task is started.

12-Dec-2000

Add messages which report (warning only) details if it appears the application has deleted or freeed an Sds id fetched by DitsGetArgument().

08-Nov-2000

Fixed a bug in MONITOR CANCEL where it was not using the correct tag.

06-Nov-2000

Fix crashes during a DitsPathGet operation whilst in a disconnect handler. Note that the exact order of operations has changed.

03-Nov-2000

Drop DitsArgNoDel as it is dangerous. Add DitsSignalByIndexPtr() and DitsSignalByNamePtr() and DitsGetSigArg which provide similar functionality without the problems.

21-Sep-2000

Revamp DRAMA internals to ensure we don't try to use out of date messages. Add new log flag DITS_LOG_IMPEVENTS, which taps into the IMP event monitoring system.

14-Aug-2000

Add JAVA support to Config dmakefile system.

08-Jun-2000

Add new DTCL commands, DitsPutActStatus and DitsPutArgument.

09-May-2000

Added DJAVA (DRAMA Java interface) to release (Currenlty supported by solaris JDK 2.0 only). There is a link with all the details on the main DRAMA web page.

Added dversion command. This allows you to select a DRAMA version without having to redo the DRAMASTART command. Unix only at this stage.

04-May-2000

Possible Incompatiblity The UFACE routine put by DitsUfaceCtxEnable() is now cleared after a return from DitsMsgReceive(). This ensures the UFACE routine is consistent, which was not the case in the past. If you call DitsMsgReceive and may send messages at UFACE context, then you must make sure you call DitsUfaceCtxEnable() each time before sending the message. As part of this, DRAMA is no more consistent at making sure the correct uface routine is available when invoking uface routine.

23-Feb-2000

Output a better message is the IMP transmitter task does not have sufficent global buffer space for the reply direction buffers

Ensure that if we have received a connection from another task, we can get a path to that task. This was causing problems if we had not received any messages from the other task after it had got its path to us.

22-Feb-2000

Add a version of DcppMonitor::Forward which provides a StartedHandler argument. The DcppMontior class functions which take variable argument lists provide an alternative format for the list.

01-Dec-1999

Add DitsMsgWait() which allows a task to block waiting for a message without reading it.

19-Nov-1999

Add DcppShared class to the C++ interface. Add a form of DcppHandler:SetTimeout() which allows the specification of a timeout handler routine.

17-Nov-1999

Bulk data kick messages now support the message completion comming back before the bulk data done message. Added routine DitsGetEntComplete() which indicates which of the two actually indicate bulk data completion. Supported by DcppTask C++ Class.

Add support for SdsExportDefined, SdsIsExternal, SdsGetExternInfo and SdsSizeDefined to the SDS C++ class.

Add DcppSpawnKickArg and DcppSpawnKickArgUpdate - C++ interfaces to the equivalent DITS routines.

Add new versions of Obey method to DcppTask C++ class which return the transaction id already wrapped up in an SDS class.

Improve layout of complex methods in DRAMA C++ document.

The DcppHandler class increment operators, used to increment the number of message threads being handled by the class, have been replaced by the NewThread() method. The operators still exist but will be removed at some stage.

15-Oct-1999

Can now build DRAMA for VxWorks using GNU make, but this requires that for any VxWorks build you set the macro HasGnuMake or HasSunStyleMake in your drama_local.cf file.

14-Oct-1999

Fixed a SDS id leak when kicking spawnable actions via transaction id.

After a suggestion from Jim Wright, added QUIET macro to allow quiet compilation to be turned off. Use make QUIET="" to have make display the full compiler command.

Added support for VxWorks on Power PC (targets vwppc and mv2700). Add target aliases mv167 for vw68k. Thanks to Jim Wright for this.

Note the requriement (on the web install and build page) that if using VxWorks 5.3 or higher, you must source the appropiate VxWorks developement script before attempting to build DRAMA or DRAMA applications. Otherwise the assembler and other tools may not be correctly found. This is becase VxWorks does not locate the Gnu tools in the standard way.

02-Aug-1999

DRAMA V 1.3b2.

Fixed a bug in the Monitor stuff introduced on 18-Jun, which would cause a crash under some conditions. Also removes an errant error message on task loss which has got back in.

Find a bug in Unix release of IMP which would cause program to crash without warning or coredump. This was a signal handler race condition.

28-Jun-1999

Add the DulInt series of routines which make it easier to handle Interrupts..

21-Jun-1999

Aded new routines DitsActIndexByName() and DitsIsActionActive(). The former allows you to fetch the action index of any action given it's name (the older DitsGetActIndex() only worked for the calling action). The other routine is used to determine if an action is active.

18-Jun-1999

Revamp dmakefile's for embedded systems to allow use with both the new and old Gnu LD program. With the new Gnu LD, we can use the --whole-arhive and --no-whole-archive flags flags to enable building of C++ programs under VxWorks.

Improve Ers messages reported when there is insufficent space for a message.

Fix a problem where by the code which handled buffer empty notifications for monitored paramters did not itself handle full buffers, which it should.

Add the DRAMA_VERFILE environment variable. You can use this to check which version file you are using. If you are not using one it's value is null. (Unix only at this stage).

Dramatically improve the speed of the dramastart command.

21-May-1999

Fixed a bug which resulting in DitsPutTransData()/DitsGetTransData() interferring with the code associated with UFACE transactions (see DitsUfaceCtxEnable() and DitsGetCode().)

12-May-1999

The DRAMA start up scripts ($DRAMA/drama.sh and $DRAMA/drama.csh) now automatically source equivalent hidden files in the user's home directories ($HOME/.drama.sh or $HOME/drama.csh). This allows the user to add there own DRAMA specific start up commands.

DRAMA 1.2, 03-Mar-1999

Release of DRAMA V1.2 to the world.

18-Jan-1998

Add a check to ensure a reference to a transaction in a message is to one in the range of memory we have used for transaction ids. This avoids possible access violations if we get a message we should not (which appears to happen sometimes, even though it should not).

Dec-1998

Add support for Sending Bulk Data.

21-Dec-1998

Improvements to the error reports output by DRAMA if we attempt to send to a task which has gone away (new code IMP__TASK_GONE) and if we fail to create a notification semaphore.

08-Dec-1998

Release of DRAMA 1.2 to AAOEPP.

Release of libdrama.o under VxWorks modified. Now don't release lib*.o files for other systems and rely on gnu ld specific flag in building libdrama.o. This allows us to correctly build in c++ stuff for VxWorks. Add implementation of __exit (used by gnu c++) and cppinit and cppbye required to run global constructors and destructors). This has been done in GIT library.

8-Dec-1998

Add JAVA language support to messgen.

24-Nov-1998

Add DitsSpawnKickArgUpdate(). Used to update the transaction id in an existing Spawn Kick structure.

DcppTask::Obey() takes an extra argument, which is an address into which the transaction id is written. This allows calls to DitsSpawnKickArg() by tasks using DcppTask.

11-Nov-1998

ADITS now correctly handles rejection of connections by DRAMA tasks. It also when setting up to monitor ADAM task existance, tries the task name with a colon appended as a process name if it can't find a process of the original ADAM task name. (This is needed as ADAM strips leading colons). A fix to ImpConnect and relevant changes to ADITS ensures that multiple ADAM tasks can talk to the same DRAMA tasks.

29-Sep-1998

Incompatible change

DTCL now uses TCL's namespaces. All DRAMA commands are now in the "drama" namespace by default. You can change this to put them in the global namespace by defining the imake macro DtclUseGlobalNamespace in your drama_local.cf configuration file. For alternative ways of selecting this (per login session and per application), see the dtcl manual.

It is recommented that all new DTCL programs use namespaces. Note that this only works from Tcl 8.0 onwards.

Impending Incompatiblity

We would like to remove support for TCL versions prior to version 8.0. This will allow considerable code simplifcation and allow the use of more effect TCL approaches. Please let us know if this would be a problem (This change will probably occur when Starlink goes to TCL 8.0)

07-Sep-1998

Add the -forcegcc and -nocompcheck flags to drama_make. This should mean we don't have modify the standard configuration files at all now.

DRAMA V1.2 Beta 2

01-Sep-1998

DRAMA V1.2, Beta 2.

Beta for Linux testing.

31-Aug-1998

Remove DitsArgType and replace by SdsIdType to avoid confusion. (Type is still defined to avoid compatibility problems)

01-Aug-1998

Fix some problems in SDSC - the SDS compiler, which were causing crashes and errors when compiling arrays of structures.

Fix a problem which may cause a crash when using the action wait routines under VxWorks.

22-Jun-1998

All access to environment variable/logical names in the higher levels of DRAMA is now via the Dits routines DitsGetSymbol(), which in turn uses ImpZGetSymbol() (which will be made public soon. This allows us to use the Windows registry to get Enviroment details.

DRAMA V1.2, Beta 1.

07-Jun-1998

Improve error reporting from the VxWorks dramastart command.

08-May-1998

Modify DcppTask routines to support interception of Ers and MsgOut messages. This should be transparent to existing code.

29-Apr-1998

Ers modified to improve results if a program is in a hard loop reporting errors. Previously, when the error message buffer filled, each addition messages was output to stderr. Now Ers will dump all messages currently in the buffer and then start stacking the new messages. This will help you see the first messages if you are in a hard loop involving error reporting (calls to ErsRep).

Dtcl modified such that any error in the command specified with the Dtcl ErrorHandler command (used to output Ers messages) is reported to stderr instead of attempting to report it via Ers (this never worked well).

14-Apr-1998

Much work to port DRAMA to WIN32.

Ensure clean compilation with egcs version of GCC (Gcc 2.8 version). This was done with a very high level of warnings, resulting in many minor coding problems being picked up. Unlikly to have any effect on operatoins as none indicated real errors

The transaction id scheme now has it's own memory manager. This manager should be far more efficent then malloc/free. It has a slightly higher memory overhead when a small number of transactions are used, improving with more outstanding transactions.

Added a new routine, ArgFind(). This is functionally equivelent to SdsFind() except that if an error occurs, it reports the name of the item you were trying to find. It is suggested that this routine replace SdsFind() in all applications using the Ers library (which includes all DRAMA programs). The Sdp library has been so modified, resulting in more error report lines if you specify an incorrect parameter name, either from the C calls to SdpGetx/SdpPutx and from parameter Get/Set messages.

13-Jan-1998

Add DulErsInit(), DulErsMessage, DulErsPutRequest, DulErsAnnul() and DulErsRep(). These routines allow you to control the output of Ers messages by subsidiary tasks.

Add DitsUfaceErsRep(). This allows Ers messages from subsidary tasks to be reported using ErsRep().

Dec-1997

Fixed problem in dtcl sharable library which prevents -wait options to DRAMA commands from working. Ensured that variables (MessageBytes etc.) are not overwritten if the values are already set).

10-Nov-1997

Port to Linux. No significat changes needed although exit hander code layout improved.

07-Nov-1997

Add new -T option to sdsc command. This causes it to output TCL code instead of C code. The resulting TCL requires the new version of Dtcl. This is more a test of the completeness of the new Dtcl but may be usefull in some cases

06-Nov-1997

Add new options to the sdsc command. -f allows you to genereate an entire function definition instead of just something to be included in another file. Specify the name of the function immediately after -f. The -t option allows you to specify the type of a variable to declare if none is declared within the include file. This elminate the common requirement for a special case in the include file to declare a variable in order to force the output of a structure definition. The variable type is specified immediately after the -t option. The -N is used with the -t option and specifies a name for the structure which is created.

The new dmakefile macro SdsIncludeFunction will run sdsc with it's new arguments. This can replace SdsIncludeFile.

05-Nov-1997

Add new SDS commands to Dtcl, SdsExtract, SdsDelete, SdsFillArray, SdsGet, SdsGetExtra, SdsInsertCell, SdsNew, SdsPut, SdsPutExtra and SdsResize

04-Nov-1997

Added new commands DitsLosePath to Dtcl. Exiting command DitsSetDebug modified to accept enumerated debugging level names

POSSIBLE COMPATIBLTLY PROBLEM. DitsLosePath now worked in a cleaner way. It sends a messages back to the task itself which is treated as indicating the path has been lost. This ensures all transactions which may be outstanding on the path are tidied up correctly.

Add new routine DulLoadFacs which will load error facilities defined in the DRAMA_FACILITIES environment variable, as well as ensuring the standard DRAMA ones are loaded. This call is recommended for User interface programs to ensure they can translate all codes they might have to.

The DUL library now hass a version of the messana command, which supperseds the MESSGEN library version. This version loads all the standard DRAMA library facility talbes as well as those specified in DRAMA_FACILITIES. It outputs the actual message as well as the numerial parts of a message.

The UNIX DRAMA signal handler is now more consistent in it operation and therefore more likely to clean up correclty. It should now output an appropiate error code when a signal is received.

03-Nov-1997

In order to improve access to the HTML pages, the Arg routines have been split from the Sds routines and the Dui and Sdp routines from the Dits routines. This makes access to all routine docuementation easier.

Fix some minor SDS id leaks in the monitor software

Revamp the internal debugging system, accessed by DitsSetDebug(). There are now a well defined set of flags for debugging various parts of the internals of Dits. In addition, the environment variable DITS_DEBUG is read at initialisation time and the debugging mask set to it's value if it is an integer.

Add new routines to assist debugging, DitsDumpPath, DitsDumpAllPaths, DitsDumpTransId and DitsDumpAllTransIds.

Add new control messages DUMPPATHS and DUMPTRANSIDS.

31-Oct-1997

Various fixes to ADITS, the ADAM to DRAMA interface. Removes a cause of Crashes and a cause of going into an infinte loops.

30-Oct-1997

The Dtcl module now checks for the existance of the various buffer size and logging variables before setting them such that when using the shareable library version, you can set these values before loading Dtcl.

29-Sep-1997

Fix compilation problems in messgen.c, xditscmd.c and xdc*.c due to apparent include file differences on a JACH solaris machine. The problem with messgen.c was the prototype of getopt, which appears to be available when we compilete with -Xa instead -Xc. The problem with xditscmd.c and xdc*.c is that we were picking up a stange definition of NULL (possibly char * instead of void *) and this was causing compilation errors. Have removed all uses of NULL from these modules.

10-Sep-1997

DcppMonitor object now have new functions IsInitial(), IsStarting() and IsActive() which can be used to determine the state of the object. In addtion, the state is check more often throughout the implementation.

09-Sep-1997

Changes to DTCL to support Tcl version 8.0 had broken support for version 7.4 and before. This has not been fixed and Dtcl has been tested with Tcl version 7.4

03-Sep-1997

DRAMA V1.1.1 Release

Some IMP Bug fixes and adding of RGO's change to the DTCL SDS Image widget which improves the scaling of images (currently USHORT types only)

Fixes to IMP are
  • Fixed problem in the IMP VxWorks task loading routines which caused names starting with numbers to be interpreted as numbers. This fixes the problem of the "imppulse" program crashing if a numeric dot format (e.g 123.456.789.012) was used to specify the machine to pulse.
  • Problems with fifo protections were probably not a umask() problem at all, but because cleanup -l (or showimp) was changing the protections of the fifo files! (And was using 0x744 instead of 0744, hence the really silly protections we got.) Cleanup now uses stat() to determine ownership, instead of the lash-up involving file protections it was using
  • Enhancement. Change to ImpRegister so that when a task registers it checks the user noticeboard for any tasks registered as being on the local machine but which do not in fact exist. It now cleans up (calls ImpTidyAfter()) for any such tasks. This will tidy up in particular after tasks that were not loaded by Master and which have not exited cleanly - although it doesn't happen until a new IMP task runs; it might be nice to have this sort of check run periodically, perhaps by Master itself.

02-Sep-1997

A connect to a remote machine which is not responding at all, for example, a VME crate which had the ethernet cable disconnected, would cause transmitter to hang until the TCP/IP timeout occured (about 200 sec). Transmitter has now been modified to allow connections to other machines to continue operating (the connection to the disconnected machine still hangs, this is determined by TCP/IP)


01-Sep-1997

DRAMA V1.1 Release

Changes made during a trip by KS and TJF to RGO.

  • Added a new message code, DITS__NO_NET_ON_REMOTE. This generally replaces occurances of IMP__SOCK_FAIL and gives a more appropiate error.
  • The VxWorks version of the DRAMA exit handler now checks for more errors, such as semaphore failures. In addition, a problem which could see task switching occuring at the wrong time was corrected.
  • Various debugging messages were removed as the situations were shown to be normal occurances
  • Documentation errors in the routine DuiExecuteCmd and Tcl commands Translate/pget/pset/obey/kick/monitor/control where corrected
  • In previous versions, a get path timeout in DuiExecuteCmd could cause a core dump if the path was not found. This bug has been removed.
  • IMP Event logging is now switched off by default. This can be switched on by setting the environement variable IMP_NET_LOG_EVENTS (to any value) before starting any tasks
  • If a task disconnected while receiving a large message from another machine, receiver was able to get the disconnect message in the middle of the series of reads from the socket. Receiver would then detach the shared memory and later try to read into it again. The error that occurred caused receiver to then mistakenly closed the socket and as a result, the location of the remote task was lost. This bug has been fixed.
  • IF a task loads and tries to register with the name of a task that had been registered but crashed, it now notifies all the tasks that were connected to the original task that the original task has disappered.

11-Aug-1997

DRAMA V1.0 Release

06-Aug-1997

The impprobe command has been modified to improve it's display when large numbers of tasks and connections/buffers are involved. It now only run on Tk 4.0 and above.

Incorporated Imp update which fixes various problems. Problem of not being able to clenup receiver under some condition has been fix. This has required that programs started by ImpMaster not be allowed to read from stdin. They will get an error condition if they try. The message corruption problem has been fixed (was only seen when networking was being really worked hard). Some problems in flow control have been fixed (as a one in several hundred thousand events problem, this was not see in practice).

28-Jul-1997

Fix a bug in the request notify code which was causing notifications to be delivered in the reverse of the desired order. This has been fixed.

Support long parameter names in Set messages by use of additions to the argument structure and the special parameter name _LONG_. Added new routines DitsSetParamSetup() and DitsSetParamTidy(). These are used by DitsSetParam to set up these long parameter name argument structures. Modified ditscmd/xditscmd/dtcl to support long parameter names in both GET and SET messages.

28-Jul-1997

The DITS__NOTIFYWAIT status has been split into several codes. The original code will now only be returns when your task is initiating messages (obey's, kick' etc) in other tasks. The following codes may now be returned DITS__NOTIFYWAIT_TAP, to indicate a general failure sending a message to a parent action (should not be returned as it should be converted to one of the others).

DITS__NOTIFYWAIT_MSG will be returned if MsgOut() got a notify wait condition.

DITS__NOTIFYWAIT_ERS will be returned if ErsFlush() got a notify wait condition.

DITS__NOTIFYWAIT_TRIG will be returned if DitsTrigger() got a notify wait condition.

23-Jul-1997

Add DitsAltInDelete. Revamp DitsAltIn routines to allow more fd's and handle multiple invocations with the same fd.

29-Jun-1997

Don't output messages about unexpected load message unless debugging. These are normally refering to things started by something else in the program.

26-Jun-1997

Add IMP-E-SEM_FAIL to the list of imp errors we don't report during the shutdown process.

26-Jun-1997

Add support in DcppTask class for initiation of an object which will contain a path to our own task, without having to explictly handle a GetPath operation

23-Jun-1997

If the parent task of an action dies, then the action is marked such that is will never send a message to the parent task again.

Add DitsDumpImp() and dumpana. The former routine allows a DRAMA task to log all DRAMA messages. The later is a simple program to analyze the dump.

18-Jun-1997

SdsNew was not returning immediately on bad status. This was causing a core dump in DRAMA when you attempted to get a non-existent parameter.

16-Jun-1997

Don't output debugging messages when we see disonnection messages from unknown tasks.

13-Jun-1997

DRAMA V1.0, Beta 2. Sent to RGO for testing.

DRAMA works around a problem which occurs when a task dies (kill -9 style) on a Unix machine without having been the child of IMP_MASTER. When a new connection is seen from the same task and the task id/machine are different, DRAMA does a path lost operation on the original path.

11-Jun-1997

Fixes to IMP level to fix leak of Semaphores.

Dits now ensures Sdp parameter system is tidied up.

03-Jun-1997

Release of V1.0 to site.

Various fixes to IMP Level restart and resource leak problems.

22-May-1997

Add the new control message type of "DEBUG". It can be used to enable DRAMA debugging. Any argument is converted to an integer and supplied to the routine DitsSetDebug(). If no argument is supplied, call DitsSetDebug with an argument of 1 (normal debug enable call).

If the debug flag is greater then 1, then dump the imp message details assocaited with a system message.

14-May-1997

Correctly handle the case where, when task A is setting up a connection to task B, the connection fails because task A does not have sufficent space. The message back to task B was not being handled correctly due to Dits and Imp level problems. (Still have underlying IMP problem)

14-May-1997

C++ A code now compiles with the Solaris V4.0 C++ compiler.

If the network tasks are shutdown, we now correctly tell each task communicating with them on the same machine about this, previously, messages received had the wrong task names.

08-May-1997

Fix DulFindFile problem - was crashing when translating evnironment variables with long translation and was not ignoring directories with did not exist as Vms Find File does.

08-May-1997

Improve the error message when we have a failure in the call to ImpConnect, in Dits___ImpLocated.

If we get a SendError whilst setting up the path, was clobbering the path mode before reporting the message and the message didn't make sense.

Add DitsSetDebug command to dtcl.

06-May-1997

Fix problems in handling of Disconnection messages. This involved improvements in Dits and fixes to Imp. In particular, Dits disconnect handlers will now always have a valid task name. The Imp changes ensure we tidy up correctly after a remove machine has gone done.

Update documentation to include See Also: lists in Dits, Dul and Dtcl libraries. General documentation update.

18-Apr-1997

Add new Sds utility routine SdsTypeToStr which when given a valid Sds type code will return an appropiate string.

Add ArgSdsList, a routine which does a similar job to SdsList, but allows you to specify an output routine. (Also add a new static List function to the Arg C++ class which calls this).

ArgCvt will now accept a new destination type, ARG_STRING2. This behaves like ARG_STRING in call cases except where the source is a float/double. In that case, it uses 6/10 digits or precision instead of the maximum amount available, as used by ARG_STRING.

ArgToString will now handle Array items.

Add DuiLogEntry function, which does a similar job to DitsPrintReason, i.e., outputs details of an entry to an action. Unlike DitsPrintReason, it always uses MsgOut, and will print Sds arguments.

DuiExecute now uses ArgSdsList to list sds structures such that sds structures are now listed using MsgOut instead of to stderr.

Added -printcmd option to Dtcl's SdsList command to take advantage of the new ArgSdsList function within Dtcl.

Add SdpCreate, SdpGet, SdpPut, SdpGetSds and DitsGetParId to DTCL. This allows creation and use of parameter systems.

22-Apr-1997

Add the -varcvtcmd argument to the DTCL's monitor command. This allows you to do conversions on the fly in conjunction with the -variable option.

18-Apr-1997

DTCL's ErsHandler command now appends flags when calling the handler routine which indicate the Ers message flags (bell, alaram, highlight).

09-Apr-1997

DitsPathGet/DitsGetPath will now reschedule if the path is available immediately or we are already waiting for a path. This reduces the complexity in the use of these calls. Flags to DitsPathGet and DitsAppInit (the later for DitsGetPath) will enable the old style of operation. Inquiry function mode of DitsPathGet/DitsGetPath now formalized.

DitsLosePath now does not delete transactions assocaited with GetPath messages.

Can now get and set parameters using structured parameter names, as supported by the SdsFindByPath call. Note, name length limitations in DRAMA messages (20 characters) prevents you doing much which these, although MGET mesages do not have such restrictions. DTCL pget command supports this by using MGET messages auotmatically when the name is long.

08-Apr-1997

DTCL, monitor command now supports -variable option. Allows monitor messages to cause variables to be updated automatically. SdsArrayGet supports -element option.

Parameter Monitoring. Support only sending current value to task which added that parameter to a transaction (send SEND_CUR flag is set).

When a transaction's parent is a UFACE transaction in the same task, invoke routine directly instead of sending a message. This should allow user interface tasks to monitor there own parameters very efficently.

10-Mar-1997

ADITS (Adam/Dits interface) now handles MGET messages.


19-Feb-1997

Version 1.0 Beta CD rom.

17-Feb-1997

The default DRAMA Imake macro to build a program (DramaProgramTarget) now references the DUL and GIT libraries, as does the default include file macros.

Under VxWorks, we now release a libdul.o and libgit.o and use these to build libdrama.o, which is currently found in $GIT_LIB. This library should be loaded into VxWorks to make the entire DRAMA system available.

12-Feb-1997

We can now build a Dtcl shared library for dynamic loading into wish/tclsh. Consider adding the following to your Tcl pkgIndex.tcl file

If DRAMA gets a corrupted messages, it will not retry a number of times (currently fixed to 10). Future versions will add more control to this.

package ifneeded Dtcl 1.0 {
                global env
                if {[lsearch -exact [array names env] DTCL_DEV] != -1} {
                    load $env(DTCL_DEV)/libdtcl.so
                } else {
                    error "DTCL_DEV environment varaibler not defined, have you
started up drama"
                }
        }

This will enable the commands package require Dtcl

12-Feb-1997

Change DitsAppInit flag DITS_M_FC_AC to DITS_M_NO_FC_AC as default mode of operation has changed. Notification now works correctly with monitors and return of action completion messages.

Add SharedLibrary macro support to dmakefile's

07-FEb-1997

Fix DTCl/DTK prompting problems under VMS.

03-Feb-1997

Add DitsPutPathData/DitsGetPathData.

Integrate Imp V1.2

31-Jan-1997

continued configuration revamp. Standard configuration files now are appropiate for standard machine configuratons. Must use local_config.cf files to adapt for each AAO machine.

Added logging support to DcppTask.

Add MGet routine to DcppTask.

xditscmd transparently uses the MGET message when you try to get mutiple parameter values.

The dtcl program now accepts the option -nostdin, which says that it should not prompt from stdin for commands.

The dtk program now accepts the option -stdin which says that it should always prompt for commands from stdin (by default, it does this only if a script is not supplied with the -t option)

Fixed bug in DulFindFile which had caused it to crash under VxWorks when a file did not exist.

30-Jan-1997

Add DitsArgNoDel function which allows Sds structures supplied by DitsSignal calls to be left alone by DRAMA

Revamp of configuration stuff particually in relation to compling VxWorks code on a Solaris machine. VxWorks configuration is now set in the local_config.cf file.

Support VxWorks mips target using information from Alan Bridger.

Don't build strtoul into sds except on SunOs machines.

29-Jan-1997

Added a new routine, DitsAppParamSys used for putting and inquring about the parameter system, including the monitor routines.

DitsPutParsys and DitsPutParamMon are now obsolute.

DitsGetParId now returns void * instead of SdsIdType.

We now support a new message type, the MGET message, which can be used to return the values of multiple parameters.

When build VxWorks, dependices for libdits.o are now include all DRAMA libraries it is dependent on.

28-Jan-1997

Added new programs sdsdump and sdspoke. dui (Dits user interface routines) report messages on failures of handlers (could result in more mesages from Dtcl stuff for example). Bug remove from ErsRep calls during interrupts (Vxworks)


26-Nov-1996

Beta 0.6 release for JACH.

01-Oct-1996

ADITS now uses ADAM net 4 instead of ADAM net 3. This means you have to use the form

                NODE##drama_task

instead of

                NODE!!drama_task

from adam programs. This is as it conflicts with the use of adam net 3 by JCMT.

In addition, you can now use a node name of "LOCAL" or "LOCALHOST" to refer to a task on the machine on which ADITS is running.

26-Sep-1996

DcppHandler Dcppobject now allows you to wait for multiple threads to complete.

SDSC support of Sds structure arrays now complete (have not tested geneation on the fly)

New Sds routines - SdsInsertCell, inserts a cell into a structured array. SdsFillArray fills a structured array with copies of a specified structure.

SdsInsertCell and SdsCell now allow you to treat multidimensional arrays as one dimensional.

20-Aug-1996

VMS DRAMA handles lack of ADITS sliently.

27-Aug-1996

Sds memory leaks fixed.

01-Aug-1996

SDSC now supports types INT32/UINT32/INT64/UINT64 directly. (Some work towards Sds structures, but does not work yet due to Sds problems).

30-Jul-1996

Add DitsActionWait command to Dtcl.

dits_netclose now works quickly (tested undr Unix only)

cleanup command now only clean's up scratch files for the current host.

29-Jul-1996

Fix a number of problems in the DitsActionWait/DulGetPathW/DulLoadW stuff.

Interfaces to DulLoadW and DulGetPathW changes to incorporate use of DitsPathGet instead of DitsGetPath.

26-Jul-1996

Many of the DitsPut??Handler routines now return the original values. Where there was not client_data item, they simply return the value and no application change is required. Where there was a client_data item, there are now extra arguments to return both the old routine and client_data items.

DitsAppInit calling sequence has change and some new flags have been added.

DitsDisconnectRoutineType has changed to add a flags argument.

New DitsPathGet routine replaces DitsGetPath, adding new arguments and putting the buffer sizes in a structure. DitsGetPath remains but is implemented in terms of DitsPathGet.

DitsPutActions argument structure has changed to provide a action cleanup routine. This is invoked when the task is shutdown or in the case of spawnable actions, when spawed actions complete.

Add DitsPutCode routine.

Improved error reporting when buffer allocation problems occur but only when local tasks are involved. Currently, buffer allocation problems involving remote tasks cause system errors due to bugs in Imp.

DitsGetEntInfo/DitsGetEntName now returns the name of the subsidary action when the reschedule reason involves such a transaction.

A new DITS_M_REP_MON_LOSS flag to DitsInitiateMessage which tell the monitor system to report monitors lost due to waiting for buffer empty notifications.

24-Jul-1996

Reply messages now try much harder to get though, using the RequestNotify mechanisum. (MsgOut stuff does not, ErsOut does not it is not clear that it should)

Tidy up VMS link procedures and options files.

You now cannot set a structure Sdp parameter. A new routine SdpSetReadonly now allows you to make a parameter system readonly. There are not SDP_type codes to replace the use of SDS_type and ARG_type codes. DitsPutParSys is now does as part of SdpInit.

23-Jul-1996

A host of new commands added to Dtcl. In addition to DitsScanTask/DitsTaskIsLocal/DitsSetDetails we added various commands to support adding to actions using Tcl and implemented in Tcl. Some new C level functions were also added.

22-Jul-1996

Add DitsTaskIsLocal routine to Dits Added DitsTaskIsLocal/DitsScanTask/DitsSetDetails to Dtcl.

19-Jul-1996

Dits and Dul now use DitsMalloc/DitsFree to malloc and free memory. By default these are macros defined to malloc/free. You cann recompile both these with these redefined to user defined fuctions to test for memory leakage.

We now provide dul_cc/dul_link/dtcl_cc/dtcl_link to help in the building of programs. (dtcl stuff does not actually include Tcl since these routines don't know where it is)

Solaris link lines now specify -R to enable finding of sharables at runtime (configuration files only)


30-May-1996

Version 0.5

27-May-1996

SdsFindByPath added to Dtcl/Dtk.

06-May-1996

Messgen now generates a fac__FACNUM code in include files.

02-May-1996

Added new function SdsFindByPath. Added commands SdsListPath.

Configuration stuff now supported DNOFIX_INCLUDES macro. At AAO this is set up in ~drama/local/drama_local.cf. Also modified ~drama/local/drama_local.cf and drama_local.opts to support determination that AAOSSC does has not has fix includes run and does not support C++. DRAMA core stuff using C++ (git/dul) now output warnings if build without C++ stuff.

29-Apr-1996

If a kick message has no transaction id, use the path to the initiator of the obey for Informational/Error/Trigger messages.

24-Apr-1996

Provide an SdpPutStruct call, similar to SdsPutSds but allows Structures to be put into structured parameters.

Imp V1.0 incorporated.

Add new flag DITS_M_NOEXHAND to DitsAppInit/DitsInit which allows the caller to disable the use of the Dits default exit handler.

07-Dec-1995

Recent changes compile cleanly under solaris and alpha.

06-Dec-1995

Dits document updated.

05-Dec-1995

Allow spawnable actions (using DitsPutActions). Add DitsGetActIndex, DitsKillByName, DitsKillByIndex, DitsSignalByName and DitsSignalByIndex. DitsKill and DitsSignal are withdrawn (marcos defined to call KillbyName and SignalByName).

Add DitsSpawnKickArg

Added DitsSignal and DitsKill to Dtcl. Add -kickarg option to obey command.

04-Dec-1995

Configuration file local config files. Notes as per below config document updated.

01-Dec-1995

DtclBackgroundError correctly handles being called when no error has occured by reporting the problem.

30-Nov-1995

Type of DitsAltInType changed and inclusion of system include file sys/types.h (unix), selectLib.h (VxWorks) removed from DitsSystem (and therefore DitsSys) as a result.

Version 30Nov, perlimary release of Drama 0.5

10-Nov-1995

Added routines DulMessageW, DulGetPathW and DulLoadW, which make use of DitsActionWait/DitsUfaceWait to allow simple blocking style messages.

09-Nov-1995

DitsAltIn* stuff now used DitsPutEventWaitRoutine.

08-Nov-1995

Added DitsActionWait and DitsUfaceWait* and DitsPutEventWaitRoutine.

Unix version now makes use of the technique designed by Brian McIlwrath (RAL) to ensure exit() is invoked when signals occurs, as well as ensuring you get the standard response when the signal is recevied (core dump if appropriate, correct error message).

06-Nov-1995

Problem with DitsLoad comments are being lost from man pages fixed.

Add optinal OFFSETS item to ImageStructure definition.

Added DitsScanTasks call.

25-Oct-1995

More revamping Dcpp. New documentation of C++ interface. SdsId used throughout instead of Arg.

13-Oct-1995

Revamp Dcpp stuff. SdsId C++ class now declared in Sds.h and Arg C++ class is now based on it.


10-Oct-1995

Created release r0.4.2

Ensure Imp fixes reflected in DRAMA copy of Imp code.

27-Sep-1995

Fix but in Dui stuff where success handler would be called if error handler not supplied, regardless of the status code.

28-Aug-1995

Version 28-Aug ???

14-Aug-1995

Version 14aug created. Above changes/Tk 4.0 built for sunos and VxWorks.

SdsReadFree Added

10-Aug-1995

New routines ArgGeti64/ArgGetu64/ArgPuti64/ArgPutu64 SdpGeti64/SdpGetu64/SdpPuti64/SdpPutu64

Dtcl - Add new routine DtclErsRep. Fixed reporting of errors when Tcl scripts are read such that we get full stack dump of error. In addition, DTCL_COMMAND will also return the stack dump of any error.

Dits - Fixed bug where arguments passed using DitsSignal are not deleted.

07-Aug-1995

Start of changes list

ArgCvt now handles 64bit integers correctly. (Note - side-effect, when calling SdpCreate, items of type SDS_INT/SDS_UINT must use type INT32/UINT32 while SDS_I65/SDS_UI64 must use types INT64/UINT64)

Dtcl now supports Tk 4.0. A new Tk photo image type supports Sds images. Dul library provides an addition photo image type which supports Fits images.


Click here for the DRAMA home page and here for the AAO home page.

 For more information, contact tjf@aaoepp.aao.gov.au