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.
argument list into an SDS structure. Can be used by user
code as well (current has a C++ interface, I might change that).
git/dtcl sub-systems:Revamp shared library build - had found that libdrama.so was
actually empty under linux.
2006
After 16-Mar-2009.
23-Nov-2006
dtcl sub-system: Catch fatal X11 IO errors and tidy up DRAMA
correctly as we go down. Tried to keep things going when it was not the main
display, but this does not work reliably due, in part, to a Tcl/Tk bug.
20-Nov-2006
config sub-system:Add rxvt terminals to the listed supported by the ccdv program.
07-Nov-2006
Support VxWorks defining INT64 based on _WRS_VXWORKS_5_X
25-Oct-2006
djava sub-system:Reflect changes to DITS_ARG_* series of constants
and ensure ValidateConsts() is invoked by testlink.
15-Oct-2006
dtcl sub-system:Fix bug in dtk, should be evaulating startup code using
Tcl_GlobalEval() instead of Tcl_Eval() to ensure it is always
executed in the global namespace. This resolves a bug triggered if DTCL
was loaded dynamically in a procedure.
18-Sep-2006
imp sub-system:Add support for environment variables IMP_FIRST_BUFFER_SIZE and
IMP_INT_BUFFER_SIZE. If defined, these values (in bytes) override the new defaults in imp.h.
15-Sep-2006
config sub-system:Add macros to build JAVA include files using Messgen.
dits sub-system:Add DITS_ARG_READFREE and DITS_ARG_FREE
flags to DitsPutArgument().
dits sub-system:ditscmd (unix) now supports -a [file] argument, which allows
us to specify a file containing the arugment structure, making
it easier to set up test scripts etc.
dits sub-system:ditscmd now sizes it global buffer appropiately for the reply
buffer and the message buffer appropiately for the argument.
dtcl sub-system:Add new -argreadfree and -argfreeid options
to the message sending commands.
dtcl sub-system:Add new READFREE and FREEID argument values
to DitsPutArgument command.
dtcl sub-system:Automatically size the global buffer based on the reply buffer
size in dtk.c, dtcl.c.
17-Aug-2006
config sub-system:Add "-lresolv" to solaris links
16-Aug-2006
sds sub-system:Add new methods DataAddressRW() and DataAddressRO() to
SdsArrayAccessHelper(). sdslist command now handled bad arguments correctly.
21-Jul-2006
sds sub-system:Add and use new constant SDS_C_MAXARRAYDIMS for the maximumn array dimension. Add new ArgCheckItem function and CheckItem C++ method. Add SDS_C_MAXCODE constant. Add constant ARG_NEWCPP_OVERLOADS which might help in working out if we are using the new C++ overloads.
17-Jul-2006
config sub-system:Rename macro DramaSystem to IsDramaSystem since using DramaSystem stops us building within a Directory named DramaSystem.
14-Jul-2006
drama sub-system:dramastart now passes arguments to program to be run.
dramastart documentation and some of the output improved.
dits sub-system:DitsKillByName() now kills all actions of the
specified name when the action is spawable.
djava sub-system:Ensure the testlink application uses the current
version of the sharable library (set LD_LIBRARY_PATH
and DYLD_LIBRARY_PATH correctly)
08-Jun-2006
dul sub-system:Ensure we don't call DitsInterested() in UFACE context. Various improvements to logging.
06-Jun-2006
git sub-system:Ensure gittpl.C returns on bad status correctly.
Improve commenting in gittpl.h.
30-May-2006
git sub-system:Revamp GitTask class, adding logging support and ensuring
it meets the specification correctly.
05-Mar-2007
dtcl sub-system:Fix problems in gitlogger sharable build.
24-Mar-2006
config sub-system:Add MacOsX Intel support.
djava sub-system:Ensure Mac builds link with g++.
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 tony.farrell@mq.edu.au