
The true story about PinK
The evolution of PinK
The first ancestor of PinK was designed and coded by
Marc-André Funk during the
4th Hermes
Analysis Workshop taking place 22.-26. August '94 at DESY.
This study was called adtk and included mainly the TCL frame
for ADAMO GAF objects and some fundamental methods.
Unfortunately MAF could not continue with this project since he had to
prepare his diploma examination in early '95 (and for some other
reasons).
During the HERMES
Analysis/Software workshop in the beginning of September in
Corvallis/Oregon Klaus Ackerstaff looked into the existing code and started to
implement first DAD features. The strong need for a working
prototype version to be used for the HERMES slow control system drove
further developements. The first working version of the shell was
coded along with the first slow control example which controls and
monitors the HERMES target section. During that time the main focus
was to implement as many features of ADAMO and DAD as needed to get
the various applications running. Since DAD was also developed during
that time, a daily change of the code was quite normal. Together with
Wolfgang Wander especially the DAD interface constantly improved and
several applications have been developed in parallel.
Beginning of '95 the search for a name started and on one of the inofficial
HERMES "offsite" meetings the name PinK was born meaning
PinK is not Kuip because it partially
replaces the Kuip interface to the HERMES software.
In March '95 Wolfgang Wander and Klaus Ackerstaff have been invited to
present DAD and PinK at the Programming Techniques Group at CERN. In several
sessions it bacame clear that a complete DAD and ADAMO interface has
to be included into PinK in a clean object oriented way.
The very positive resonance of the PT group made clear that further
development of the two packages is worthwhile but also the "spare
time" work of Klaus Ackerstaff would not be sufficient to achieve the
final goals. Meanwhile a rapidly increasing number of PinK
applications had been developed for HERMES and the need for a revision
of the existing code was urgently needed. The
documentation of this first
PinK version is still available and may give you a guess how things
(not only the logo) changed in the meanwhile.
After all MAF finally joined the HERMES software group in April '95 and his
first project was to revise and restructure the PinK code in an
(more) object oriented manner. This new PinK now has a huge
number of commands and methods and a complete reference documentation.
PinK has been presented at the CHEP95 Conference in Rio de
Janeiro. After W. Wander gave a talk on DAD, K. Ackerstaff presented
PinK and some of the applications at HERMES (MAF again missed the
opportunity to come to Barzil). A lot of the trends in
Computing in High Energy Physics which emerged at this conference are
realized in these two packages. The response to the talks was good,
people from Fermilab, ANL and CERN are interested in the software and
have partially installed it. An online demonstration of the HERMES
monitoring system based on DAD and PinK was given in addition
to the scheduled talks.
The slides from the talk at CHEP95 are available on the
PinK publication and image page
Version history
Version 0.27
- Fixed bug in table method setformat
- Fixed bug in table browser (Columns of an array could not be configured)
Version 0.27![]()
- Minor bug fixes in the browser.
- New startup procedure: pink and floyd will now
look for pinkrc and floydrc in the pinklib
directory, user scripts are started from there (this allows central
startup files).
- Compressed DAD files can be read (new option -z for
dadOpenFile,
dadHost and
dadDoConnect)
- New dad function dadComprLevel
- Bug fixed in dadParse
- Expressions can now be defined and displayed in addition to table
columns
- Fixed bug in table select method
Version 0.26
- New functions dadParse and
createFH.
- Fixed minor bugs in pinklib
- Various changes to pb:
- Paste works now for all editable text entries
- The table viewer was improved:
Works now also on BW-displays,
got a real menu,
column output format now configurable,
columns can be hidden,
a DAD row selector might be defined,
table contents can be saved in ASCII format.
- The GAF/DAD file controlers were improved:
A selector for records to be read can be specified,
pb can loop (slowly) over all records of an input file.
- An analysis tool is available to create ASCII Ntuple output as
well as HBOOK objects (together with Manfred Ferstl's
hister package)
Version 0.25
- New dad command dadOpenSHM.
- New dad methods MWrite and
MRead.
- New flags for various dad commands:
- dadHost no longer adds the -g
flag in special cases.
- The Browser can now handle dad multi files in a primitiv manner.
- The Disconnect method on dad objects now frees internal memory even if
dadDisconnect fails (minor bug).
- The archives of tcl 7.3, Tk 3.6 and BLT 1.7 are now available
on the PinK installation page.
Version 0.24
- Added new table methods fetcol
and repcol.
(inscol is coded but
seems to be buggy in the current ADAMO distribution.)
- Minor bug fixes in the (yet undocumented) pinklib.
Version 0.23
- Fixed a severe bug in floydl causing floyd scripts to crash.
- Error messages from after
functions will be printed now by floyd.
- Removed the signal handling for SIGCHLD again - see
TCL book pg. 319 for handling of background processes.
- Added the command detachProcs
to force the redemption of zombies.
- Added the wcbsize table method.
- Use the dad time conversion functions in
strftime and
getUtime.
- getUtime now prints a warning
to replace it by
strftime/gettime.
Version 0.22
- Again some minor changes in the configuration script were made.
- The browser can now read DAD Files and Pipes, the command line
interface changed.
- Added the new method Dataflow
for DAD objects.
- Changed command line interface for the
dadDoConnect command
for DAD objects.
- "tabobj setfield
field NULL" is now possible for fields of the
type REL.
- Some internal changes in the getfield
table method.
- Added two new table methods for Relationship handling:
relations and
getrelation.
Version 0.21
- Again some minor changes in the configuration script were made.
- The command getobj
is now available.
- An (unsupported) alpha version of the browser pb is
now part of the distribution.
- A bug was fixed in src/interface/getfieldvalue.c preventing
"tabobj setfield
field NULL"
from being executed correctly for fields of the type REAL.
"tabobj getfield"
now returns ANY for REAL fields carrying the value
RANY.
(Thanks to Mike Beddo (beddo@p2hp2.lanl.gov) for this reports.)
- cprint and csave are no longer supported in PinKLib.
- Added the new function getprintername in pinklib called by tprint if
necessary.
Version 0.20
- The first column of a table to be created has to have the name
ID and the type SNUM.
crteab now checks for that.
Version 0.19
- The ADAMO SETCHK call is now available as the PinK
command setchk.
The dafault ADAMO debugging level is now NONE.
This speeds up PinK scripts up to 2500% !
Tip: During development and debugging you should
set the debugging level to ALL.
- The startup procedure is different now:
dadInit is now a standalone
command and not longer executed automatically at startup.
Tip: To use old scripts relying on that behaviour
simply insert dadInit in your
~/.pinkrc and ~/.floydrc startup scripts.
- There is now an Alphabetical Index of all
PinK commands.
- The documentation is now available as
tar-file for local installation.
- Again some changes in the installation procedure had to be made.
- Some minor changes in the HV example were made.
Version 0.18
- Some minor changes in the installation procedure were made.
- floyd now prints results and error messages
immediately (unbuffered) in interactive mode.
- The handling of PSTRING arguments (see cfortran.h)
was corrected. This avoids possible strange behavior of the
following commands and methods:
cresel, creind, topdfl, getobj, grabobj, fetdfl, fettab,
TABLE(various), GAF(askkey,getkeytable), DFL(ask,name).
Version 0.17
- The windowless floyd and floydy shells are ready
to be used (Thanks to the special guest programmer Wolfgang Wander).
Version 0.16
- The PinKlib was revised and some new features were added.
- ~/.pinkrc is executed in any case
(not only for interactive PinKs).
- strftime now should work on all systems.
- The exprselect method for selectors was added.
- The dad Message method will report unknown tables as
"ID TabID".
- A bug in user defined formatting of string fields was found and solved
(table getfield method).
- Empty strings can now be supplied for the servername,
type and port argument of the dadHost
procedure to save the current settings.
- As documented dadHost now expects the ADAMO name for the
dataflow (not longer the PinK name).
(pre)Version 0.15
- There are no revision remarks available for this period.
Previous
Up
Next
This page is maintained by
pink@hermes.desy.de;
last modification: Jun 2 14:56 .