Daylight Software Version 4.42 Release Notes
Back to 4.42 Release Notes.
============================ CONTENTS ============================
1. INTRODUCTION AND HIGHLIGHTS OF RELEASE 4.42
2. DETAILS OF CHANGES MADE IN RELEASE 4.42
3. BUGS FIXED FOR VERSION 4.42
4. KNOWN BUGS IN VERSION 4.42
5. DAYLIGHT SOFTWARE-RELEASE HISTORY
========= 1. INTRODUCTION AND HIGHLIGHTS OF RELEASE 4.42 =========
DAYLIGHT CIS SOFTWARE, VERSION 4.42
Rev: Feb 2 1996
This document describes changes and features specific to version 4.42
of Daylight Chemical Information Systems software. If there is a
machine-specific file for your machine in this directory (e.g.
"readme_v442_sgi"), please read it too.
Daylight HTML/CGI:
- All Daylight documentation is supplied as HTML.
- CGI programs provide Mac/PC/Unix access to THOR/Merlin via networks.
- CGI programs give easy access to Daylight-supplied databases.
- CGI program for Rubicon.
- CGI programs for CLOGP and CMR.
THOR and Merlin:
Many of the changes from 4.41 to 4.42 are in the THOR/Merlin
system. Its reliability and speed were improved, and several new
features were added:
- TDT record locking. Records can be locked for exclusive access.
- THOR can destroy a database. New program: thordestroy(1)
- You can attach messages to databases/servers, received on login/open.
- You can evict users from servers and/or databases.
- True read-only databases are supported, e.g. for use on CD-ROMs.
- More choices for THOR database caching.
- Better THOR Toolkit support for "raw" data.
- Much faster merging of new and old data data in THOR databases.
- A new program, thordiff(1), compares two databases' contents.
- A new program, thorchange(1), changes a database's configuration.
- Much better Merlin performance when server is heavily loaded.
- Merlin "program objects" for user-written search functions
- Merlin parallelized substructure searching for multi-CPU machines
====================== 2. DETAILS OF CHANGES =====================
DAYLIGHT HTML AND CGI APPLICATION PROGRAMS
With the rapid spread of the World-Wide Web (WWW), and the resulting
widespread use of and familiarity with WWW Browsers such as Mosaic
and Netscape, Daylight has taken a new course.
All Daylight documentation is now supplied in HTML form, for use with
"Web Browsers" such as Netscape or Mosaic. Mosaic, which is a free,
public-domain program, is also supplied along with the Daylight
distribution.
Daylight CGI ("Common Gateway Interface") programs provide a new
way to access the Thor/Merlin database system, as well as several
Daylight application programs (CLOGP/CMR, Rubicon).
ON-LINE MAN PAGES
For the die-hard UNIX programmer who prefers the good ol' man(1)
command over those newfangled HTML versions, all Daylight Toolkit
functions, programs, and objects have on-line man-style manual
pages:
Section Catagory Example
------- -------- -------
1 Programs "man thordiff"
3 Toolkit functions "man dt_open"
3 Toolkit objects "man database"
5 Misc topics "man 5 database"
THOR/MERLIN DATABASE ADMINISTRATION
Many new features and enhancements were added to THOR for database
creation and administration.
Destroy databases:
Previously, you destroyed a database by removing its files from
the disk "by hand". Now the THOR server can do it for you.
The following features support this:
1. thordestroy(1): a new "thorfilter" program to destroy
a database.
2. sthorman has new menu items to destroy databases.
3. dt_thor_destroy(3) is a new Toolkit function.
Evicting users:
New THOR and Merlin features allow you to "evict" users from a
server or a database. For a server, the user is forcibly
"logged out"; for a database, the user's connection to the
database is closed and the user no longer has access to it (but
the user stays connected to the server, and other databases
aren't affected). The following features support this:
1. merlinload has new options, "-EVICT_USER TRUE" and
"-LOAD_POOL RELOAD". These allow you to re-load a Merlin
pool even when it is in use.
2. sthorman has a similar feature: it allows you to evict
users from a Merlin pool in order to re-load it.
3. A new "thorfilter" program, dayevict(1), lets you evict
users from a THOR or Merlin server, or a THOR database or
Merlin pool.
4. A new Toolkit function dt_evict(3) is the basis for this
feature.
Messages:
New THOR and Merlin features allow you to "broadcast" messages
to all client programs. These messages can be attached to a
THOR or Merlin server or database; a message attached to a
server is sent to users each time they connect to the server,
and a messages attached to a database is sent to users each time
they open the database. You can also broadcast a message to all
users of a server or database immediately. The following
features support this:
1. sthorman has new menu selections for messages.
2. A new "thorfilter" program, daymessage(1), lets you send
messages to users or attach them to a server or database.
3. The THOR and Merlin servers have new options:
THOR_SERVER_MESSAGE, MERLIN_SERVER_MESSAGE, respectively,
that allow you to specify a message on the command line.
See the documentation for thorserver(1) and merlinserver(1)
for more details.
4. A new Toolkit function, dt_setmessage(3), is the basis
for these new features.
Database management:
thorchange(1) -- new program, similar to thormake(1) but
for existing databases.
Read-only databases:
sthorman(1) - In DATABASE CONFIGURATION menu
thorchange -SETACCESS READONLY|WRITEABLE ...
dt_thor_readonly(3) -- new toolkit function
dt_thor_setreadonly(3) -- new toolkit function
THOR Caching:
partial caching: Data-only or Xrefs-only
sthorman(1) -- In DATABASE CONFIGURATION menu
thormake -CACHE_WHEN ... -CACHE_LEVEL ...
thorchange -CACHE_WHEN ... -CACHE_LEVEL ...
Raw Data:
You can merge raw data with existing. Previously, you could
only merge if you also "standardized", which was much slower.
See thorload(1), sthorman(1), dt_thor_tdtput_raw(3).
The raw-data "suite" of functions has been filled out.
Three new functions make it possible to work entirely with
"raw" data (TDTs in lexical, standardized form):
dt_thor_tdtget_raw(3) -- new toolkit function
dt_thor_tdtremove_raw(3) -- new toolkit function
dt_thor_tdtput_raw(3) -- new toolkit function
The function dt_thor_tdtputraw(3) is obsolete (but still supported).
It is replaced by dt_thor_tdtput_raw(3), which has more functionality.
Database comparison
thordiff(1) -- new program, compares two databases. Allows you
to select or ignore specific data.
Miscellaneous THOR Bugs and Enhancements
- thorserver checks all incoming TDTs for lexical correctness.
Previously it trusted the client programs to send good TDTs, so it
was possible to build a database (particularly with "raw" data) that
was corrupt.
- Merging is now MUCH faster, in most cases 3-4 times faster.
In earlier releases, the THOR clients retrieved all data to be
merged from the server, merged it, then sent it all back to the
server. Now all merging is done in the server, and the server's
merging algorithm is much faster than the older client-based
algorithm.
- thordelete(1) now correctly reports the number of TDTs deleted,
not-found, and the number of errors. The function
dt_thor_tdtdelete(3) is obsolete (but still supported), replaced by
dt_thor_tdtremove(3). The obsolete function's design was inadequate
to the task.
- thorload has a new option, SHOW_ERRORLEVEL (allowed values:
ALL|NOTE|WARNING|ERROR|FATAL|NONE) indicates which errors are to
be reported. Default is ERROR.
- thorwho(1) and merlinwho(1) were combined into a single program (but
either name will invoke the new, combined version), and the
capabilities extend to databases. You can now ask who is logged in to
Thor and/or Merlin servers, and/or who is using a THOR and/or Merlin
databases, all with a single command, e.g. "thorwho indigo:thor
indigo:merlin". See the manual page thorwho(1) for details.
Obsolete THOR Functions
The following functions are obsolete. The will be supported
indefinitely, but new programs should not use them:
dt_thor_create(3) -- replaced by dt_thor_createdb(3)
dt_thor_tdtputraw(3) -- replaced by dt_thor_tdtput_raw(3)
dt_thor_tdtrevise(3) -- replaced by dt_thor_tdtput(3)
dt_thor_tdtputforced(3) -- replaced by dt_thor_tdtput(3)
dt_thor_tdtdelete(3) -- replaced by dt_thor_tdtremove(3)
THOR RECORD LOCKING
The THOR server provides clients with a TDT record-locking feature.
When record-locking is enabled, clients can lock individual records
for exclusive access, "commit" and "rollback" changes, and unlock
records. The following programs and functions are affected:
dt_thor_tdtlocking(3): new toolkit function
dt_thor_settdtlocking(3): new toolkit function
thorchange: see the "-TDTLOCKING ENABLE|DISABLE" option
sthorman(1): See the "DATABASE CONFIGURATION" menu
For more information, see the manual pages for:
dt_thor_setlocking(3)
dt_thor_getlocking(3)
dt_thor_tdtlockedby(3)
dt_thor_tdtget(3)
dt_thor_tdtget_raw(3)
dt_thor_tdtput(3)
dt_thor_tdtput_raw(3)
MERLIN PARALLELIZED SMARTS SEARCHES
The Merlin server's superstructure search can now be "parallelized".
That is, on multi-CPU machines, Merlin has the ability to perform
superstructure searches using 2 or more CPUs simulataneously.
To do this, the Merlin server uses a special "assistant" program object,
merlinsmartstalk(1), to do the actual SMARTS matching. This program
is a "program object", and can "fork" itself into many copies that
all work simultaneously.
Generally speaking, SMARTS searches that were fast to begin with will
not speed up much; searches that were slow will speed up
considerably. For example, on a 4-CPU machine, a typical slow
search might speed up by a factor of 3.5 or more.
The MERLIN_NPROCS option controls this new feature. See the
merlinserver(1) manual page for more details.
MERLIN PERFORMANCE UNDER HEAVY LOAD
Merlin's performance for interactive use is MUCH better when the
Merlin server is heavily loaded. This is particularly important to
large sites with many simultaneous users, and to sites working
across slow networks. Sites with one or a few users, and working on
a fast local network, won't notice much difference. Three changes
were made:
1. Client requests are now prioritized -- any client that is in
the middle of a search or sort gets lower priority. This means
that other activities (creating columns and hitlists, updating
the screen, opening databases) are executed immediately, even
when many clients are searching.
2. The Merlin Toolkit's data cache was improved -- when you ask
for data in a row of the hitlist, the Merlin Toolkit does a
hidden "look ahead" and caches a number of rows. This
dramatically improves screen refresh time for all Merlin client
programs. In pre-4.42 releases, the server used 0.5-second
"time slices" for each client. For example, when ten clients
were searching each client got served every 5 seconds, and
updating a 10-line xvmerlin display took 50 seconds. Now it
takes a single client-server transaction to update the whole
xvmerlin screen, and because of (1) above, it gets higher
priority than all searches.
3. A new option, MERLIN_SERVER_TIMESLICE, allows you to adjust the
length of time Merlin spends on one client's search before
moving to the next client. Long tasks such as searching and
sorting are "time sliced" -- each client's task is processed
for this length of time, then the client has to wait while
other clients are serviced. A half second works for small- and
medium-sized installations with up to a dozen or so
simultaneous users; you might want smaller (e.g. 0.2) values
for heavily-used servers. Very small values (0.1 second)
may increase overhead. Very large values give poor response to
interactive users.
Note that the above three changes are "invisible" to client programs,
in the sense that it is all hidden in the Merlin Toolkit or the
Merlin server. The only difference to the client is that
performance improves.
CLUSTERING/FINGERPRINT TOOLKIT
New Fingerprint Toolkit Functions:
dt_fp_bitvalue() gets the value of a bit in a fingerprint object,
by its bit-number (index).
dt_fp_setbitvalue() sets the value of a bit in a fingerprint object,
by its bit-number.
dt_fp_range() gets the stringvalue of a range of bits in a fingerprint
object. This is intended to be used to retrieve arbitrary subsets of
the bitvalues in a fingerprint.
dt_fp_setrange() sets a range of bits in a fingerprint object to the
content of a string. Can be used to perform arbitrary boolean
operations on binary data in fingerprints.
New Fingerprint size limits:
Fingerprints can be created up to a size of 2^30 bits (1 Gbit).
Performance improvements:
Fingerprint generation is approximately 4-times faster than in
version 4.41 for 'normal' fingerprints (dt_fp_fingerprint() and
dt_fp_generatefp()).
New functions to control fingerprint sizes and folding:
In version 4.41, the global parameters 'size', 'minsize', and
'mindensity' are used in only three places (creating an empty
fingerprint, generating a fingerprint, and folding a fingerprint).
With version 4.42, these global parameters are made obsolete, and
three new functions are added to compensate.
dt_fp_allocfp() - allocates an empty fingerprint of the given size.
dt_fp_foldfp() - folds a fingerprint down to the size or density limit
given,
dt_fp_generatefp() - creates and fills a fingerprint of the given
size. This also has parameters to control the path-length of the
generated fingerprint.
Obsolete functions
The following functions are obsolete. The will be supported
indefinitely, but new programs should not use them:
dt_fp_alloc(3) -- replaced by dt_fp_allocfp(3)
dt_fp_fold(3) -- replaced by dt_fp_foldfp(3)
dt_fp_fingerprint(3) -- replaced by dt_fp_generatefp(3)
dt_fp_mindensity(3) -- replaced by dt_fp_foldfp(3)
dt_fp_minsize(3) -- replaced by dt_fp_foldfp(3)
dt_fp_setmindensity(3) -- replaced by dt_fp_foldfp(3)
dt_fp_setminsize(3) -- replaced by dt_fp_foldfp(3)
dt_fp_setsize(3) -- not needed
dt_fp_size(3) -- not needed
Clustering Package:
All programs support large fingerprints (up to 1 Gbit).
The Fingerprint program has an additional '-s' parameter to control
minimum and maximum path lengths used for fingerprint generation.
MERLIN: ALTERNATIVE FINGERPRINTS
Users can write their own "Program Objects" which, when attached to
the Merlin server, extend Merlin's searching capabilities.
* New contrib program \$DY_ROOT/contrib/src/tutorial/C/progob/fingertalk.c,
use as example for different fingerprint techniques. See its header
for more details on all this stuff.
* merlinserver(1) takes -MERLIN_FINGERTALK_PROGRAM option to use
fingertalk program for computing fingerprints.
* fingerprint(1) takes "-f path" option to use fingertalk program for
computing fingerprints. Uses exact same program object as merlinserver.
========================== 3. BUGS FIXED ==========================
This is not a comprehensive list of all bugs fixed -- we don't keep exact
track of everything we work on. Rather, it is an informal list of some of the
more significant bugs fixed in the 4.42 release.
Fingerprint Toolkit - fixed problem with Deuterium and Tritium where
different fingerprints were generated than the non-isotopic
molecules.
merlinserver - fixed memory leak searching indirect data.
merlinserver - fixed NULL dereference that caused core dump
during sort of indirect data.
Monomer Toolkit - dt_getbond(m, DX_LEFT_BOND, ...) always returned
NULL, even when there was a neighbor to the left.
Monomer Toolkit - Underscore in monomer name didn't work if the
monomer was part of a MonomerSet (i.e. inside brackets []
in a CHORTLES).
Monomer Toolkit - Fixed core dump caused by dt_copy(varimer) when
varimer had cross-links created via dt_setbond().
Monomer Toolkit - digits not re-used on SGI. A CHUCKLES such as
Aa1.Bb123.Cc21.Dd12.Ee21.Ff123.Gg2 was incorrectly written
as Aa1.Bb123.Cc24.Dd45.Ee56.Ff673.Gg7 on SGI machines only.
That is, cross-link digits weren't re-used properly.
Thor - occasionally corrupted a TDT, issued "badly-formed TDT"
message even when the TDT was OK.
Thor - "NOPUNCT" normalization didn't work correctly for quoted
fields. Occasional left a dollar-sign in name.
Thor - Reported "database locked by another server" incorrectly,
e.g. when user didn't have permission for the database directory.
Misc:
dt_mer_getroot() didn't work for numeric identifiers
toggle equiv/restricted hosts didn't work
"Database locked by another server" was reported any time .LCK failed
passwords confused in thorfilters
The following are some formally-reported bugs that were fixed:
504 Thorserver: USMILESANY doesn't work
status: fixed in 4.42 severity: 3
The normalization USMILESANY does not cause a smiles to be uniquified.
It was incorrectly coded as USMILES_ANY.
494 Toolkit - monomer: dt_getbond() fails for left neighbor
status: fixed in 4.42 severity: 3
"dt_getbond(m, DX_LEFT_BOND, ...) always says there is no left neighbor."
483 database - spresi95demo: Keywords missing.
status: fixed in 4.42 severity: 2
"The Patent and Journal Article keyword translations are missing from
spresi95demo_indirect. This was fixed for spresi95, but not in time for
v441."
484 documentation: Thor help text says ''thorman''.
status: fixed in 4.42 severity: 1
"The Thor help text says ''thorman'' instead of ''sthorman'' in
several places, unclearly."
515 fingerprint: Isomeric smiles gets different FP.
status: fixed in 4.42 severity: 3
"At least in some cases, an isomeric smiles returns a different FP from
its non-isomeric version. Example: [2H]C produces a different FP than C,
its uniquified version."
495 fingerprint toolkit: dt_fp_fold doesn't stop
status: fixed in 4.42 severity: 3
"dt_fp_fold doesn't check the minimum density. It folds down to the
minimum size, regardless of the density. Fixed for 4.42."
473 mcl: SMILES truncated in tables
status: fixed in 4.42 severity: 2
"MCL's Table output truncates long SMILES. In cases where the truncated
SMILES is a valid SMILES, this can't be easily detected by someone using
the table. We should make it clear they are truncated (e.g. use elipses
...), or offer a wrap-around feature."
511 mcl: MCL can't handle passwords.
status: fixed in 4.42 severity: 2
MCL mishandles explicit passwords. The login fails with correct pass-
words.
96 merlinserver: Difficult to reload pool
status: fixed in 4.42 severity: 0
"merlinserver will hang on to a pool as long as any one client has the
pool open. If a database is updated (e.g. using xvthorman) it might be
desirable to re-load merlin's pool, but as long as any single client has
the pool open merlin won't re-read it from the database. We need a
forced reload that would re-load a pool even when users already have it
open."
467 merlinserver: memory leak
status: fixed in 4.42 severity: 3
The merlinserver load/release cycle appears to leak memory.
501 merlinserver or xvmerlin: Some recursive SMARTS errors.
status: fixed in 4.42 severity: 4
"Some recursive SMARTS searches don't work properly, or even work
sometimes (!) and not others. Here's one: [$(C=O)]."
380 options: Options misspelled.
status: fixed in 4.42 severity: 3
The option DY_DATABASE_PASSWORDS_FILE is misspelled (p.48 of Admin
manual) DY_PASSWORDS.
525 remote toolkit: "dt_converse(ob, NULL_OB) broken"
status: fixed in 4.42 severity: 3
"dt_converse(ob, NULL_OB) was mistakenly short-circuited on the remote
toolkit client so the program object never got the NULL_OB message.
Fixed."
508 servers: Server user security not working.
status: fixed in 4.42 severity: 4
"If one tried to change the password for a user, the server wouldn't
delete the previous user/password entry from the security file. The file
would end up containing multiple password entries for the same user.
Only the first entry was valid. (libdbutils/security.c)"
505 sthorman: Auxilliary NONE fumbled.
status: fixed in 4.42 severity: 3
"If you create a database and point to other existing databases for the
datatypes, then select NONE for the indirect and monomers the name of the
datatypes db is entered wrongly."
354 thorload: crash on no input
status: fixed in 4.42 severity: 4
"Thorload crashes on no input, loading from an empty file, or stdin of
^D."
422 thorserver: sthorman can't set thorserver's search path
status: fixed in 4.22 severity: 2
Setting the search path from sthorman fails for the thorserver (but not
for merlinserver).
465 thorserver: No dt_thor_removedb
status: fixed in 4.42 severity: 3
"The Thorserver can create databases, but not delete them."
521 toolkit - SMARTS: Underscores hobble vbinds.
status: fixed in 4.22 severity: 2
"Vector-binding names with underscores won't work, although they are
accepted by dt_alloc_vbind."
304 toolkit - THOR: More THOR-load modes needed.
status: fixed in 4.42 severity: 2
"TDTs with out-of-date or no timestamps sometimes need to be loaded. In
general, merge or replace operations should be allowed, and
independently, standardize or no-standardize loading. Neither sthor- man
nor the thorserver presently allows all combinations. "
382 toolkit - THOR: Merging flips data.
status: fixed in 4.42 severity: 2
"Merging data results in reverse-order TDTs. That is, TDT's merged later
have their data added at the top of the TDT."
478 toolkit - THOR: USMILESANY and ASMILESANY normalizations broken
status: fixed in 4.42a severity: 4
"The USMILESANY and ASMILESANY normalizations don't work in 4.41. The
toolkit actually looks for USMILES_ANY and ASMILES_ANY. The fix, added
in 4.42a, is to look for both forms of the normalization. As a
workaround in 4.41, users can put the USMILES_ANY and ASMILES_ANY nor-
malizations in their databases and they will continue to work in 4.42 and
beyond. With 4.42, USMILESANY and ASMILESANY will work as docu- mented.
The workaround for 4.41 will not be added to the permanent documentation
as it is only needed for version 4.41."
268 toolkit - Thor: Can't delete invalid identifiers
status: fixed in 4.42 severity: 0
"If a database contains an invalid identifier (perhaps entered via the
raw load option), it can't be deleted -- the toolkit requires the
identifier be standardized. A raw-delete mode needs to be added,
identical in concept to the raw-load mode."
474 toolkit - fingerprint: dt_fp_setsize limit is undocumented.
status: fixed in 4.42 severity: 1
"dt_fp_setsize((dt_Integer) 8192) fails, returns 2048. In 4.42, this
function becomes obsolete. The limitation no longer applies."
493 xvmerlin: SMARTS search error.
status: fixed in 4.42 severity: 4
A search for SMARTS [OH][C;!$(C=O)] results in some invalid hits.
========================== 4. KNOWN BUGS =========================
406 clogp: Crasher SMILES.
status: active severity: 4
"The following SMILES cause clogp/pcmodels to crash:
n1c(OC)nc(OC)nc1OC(=O)C(SCc4ccc(Cc3ccc(CSC(C)C(=O)Oc2nc(OC)nc(OC)n2)cc3)cc4)C,
n1c(OC)nc(OC)nc1OC(=O)CCSCc4ccc(Cc3ccc(CSCCC(=O)Oc2nc(OC)nc(OC)n2)cc3)cc4"
413 clogp: Crash SMILES
status: active severity: 4
"clogp crashes with the following SMILES:
CN(C)c1nc(OCC(F)(F)F)nc(n1)n2nc(nc2c3ccccc3)S(=O)(=O)Cc4c(Cl)cccc4Cl,
CN(C)c1nc(nc(n1)c2nc(nc(n2)N(C)C)N(C)C)N(C)C."
254 clogp: Crashed by SMILES...
status: active severity: 4
CLOGP crashes with a core dump on the following SMILES:
OC(=O)c1nc4c(nc1C(=O)Nc2c(F)c(F)c(F)c(F)c2F)c3nc(C(O)=O)c(nc3c5nc(C(O)=O)c(nc45)C(=O)Nc6c(F)c(F)c(F)c(F)c6F)C(=O)Nc7c(F)c(F)c(F)c(F)c7F
498 clogp: Frags missing
status: active severity: 3
"The 4.41 fragdb.dat file is the same as the 4.34, which means the
missing frags in the memo were not included. The same memo still
applies, therefore. These frags should be included!"
398 clogp: Panic caused by bad option.
status: active severity: 3
"clogp -help causes an error message: Panic: Daylight option manager
initialization failed. Behavior with -help is different for other
programs (see treetops, xvthor)."
497 clogp: Infinite loop?
status: active severity: 2
The following smiles seems to send clogp into an infinite loop:
CC1(C)CC(CC(C)(C)N1)N(CCCN2CCOCC2)c3nc(NCCCN(CCN(CCCNc4nc(nc(n4)N(CCCN5CCOCC5)C6CC(C)(C)NC(C)(C)C6)N(CCCN7CCOCC7)C8CC(C)(C)NC(C)(C)C8)c9nc(nc(n9)N(CCCN%10CCOCC%10)C%11CC(C)(C)NC(C)(C)C%11)N(CCCN%12CCOCC%12)C%13CC(C)(C)NC(C)(C)C%13)c%14nc(nc(n%14)N(CCCN%15CCOCC%15)C%16CC(C)(C)NC(C)(C)C%16)N(CCCN%17CCOCC%17)C%18CC(C)(C)NC(C)(C)C%18)nc(n3)N(CCCN%19CCOCC%19)C%20CC(C)(C)NC(C)(C)C%20
Alberto-6June95
370 clogp and cmr: Output with high error.
status: active severity: 3
"The clogp and cmr programs should have options to supress output with
high error. As is, clogp is unsuitable for adding data to a database, as
values with high errors (60, 70, etc.) are output."
431 clustering - listclusters: Listclusters miscounts.
status: active severity: 4
Listclusters counts clusters wrong sometimes (error msg = 1 cluster
doesn't have expected size). See Abbott reports.
378 clustering - showclusters: Faulty counts.
status: active severity: 4
Showclusters displays cluster-count and singleton-count incorrectly.
301 contrib - thorclient program: Thorclient can't merge non-SMILES TDTs.
status: active severity: 4
"Thorclient invokes dt_thor_str2tdt and dt_thor_tdtput in ''merge on
create'' mode, not ''merge on load'' mode, which, due to a toolkit bug,
results in errors on attempts to merge non-SMILES TDTs."
405 database - spresi93: Ros2smi error on cyclopentadienyls
status: active severity: 3
Spresi93 contains cyclopentadienyl complexes where the rings are
single-bonded with 3-valent carbons instead of aromatic. Looks like a
Ros2smi error.
368 depict: RS double bonds not drawn.
status: active severity: 3
SMILES C[P@](=N)(N)O is drawn with four single bonds.
407 faststart (demo): DY_ROOT can't be defined.
status: active severity: 4
"If DY_ROOT is defined, the script objects and says that DY_ROOT should
look otherwise. Works if DY_ROOT is not defined."
446 fingerprint: FPG's collide.
status: active severity: 3
"When two fingerprinted TDT files are loaded into a database, an error
results when the two FPG data can't both be stored (nonsmi TDT depth
error)."
445 merlinserver: Molform sort broken.
status: active severity: 4
"The molform sort doesn't work correctly. For example, c1ccccc1 comes
after O=O."
312 merlinserver: Loaded pool can't be opened...
status: active severity: 3
"If a pool is loaded by Merlin that is not in the search path, xvmer-
lin can't find it or open it, and merlinls and sthorman won't list
it."
449 merlinserver: NUMERIC identifiers cause confusion
status: active severity: 2
"If a row's root identifier has any numeric normalization (any of
NUMERIC, INTEGER16, INTEGER32, etc.), the merlinserver will return a
bogus value for dt_mer_getroot(). This, in turn, causes programs like
xvmerlin (which uses it to do THOR lookups) to report that the TDT is
not in the database."
179 merlinserver: ISM misinterpreted if data
status: active severity: 2
"The isomeric datatype tag dollar-ISM is misinterpreted if it occurs
in a dataitem -- merlinserver should only look for it outside of the
brackets, but it looks inside brackets too. Customers won't normally
encounter this"
489 merlin toolkit: dt_mer_getdata
status: active severity: 4
dt_mer_getdata() returns the indirect reference rather than the
indirect data.
476 printpackage: Newlines botched.
status: active severity: 3
"Treetops and Tablet both don't handle newlines correctly. Tablet fields
spill over, Treetops says oops and crashes."
523 printpackage: Option -PRINT_LANGUAGE doesn't work.
status: active severity: 2
"The option -PRINT_LANGUAGE should produce PS or EPS output, but there
is no effect."
518 printpackage: Printpackage exes require DY_LICENSEDATA.
status: active severity: 2
The Printpackage application programs require the environment variable
DY_LICENSEDATA to be set; this should not be true for applications.
487 printpackage: prado: -PRINT_LINEWIDTH only works for first page.
status: active severity: 2
Setting -PRINT_LINEWIDTH to other than default only affects the first
page of PS.
472 printpackage: tablet: Version wrong.
status: active severity: 1
Tablet has a hard coded version number which gets printed at the bot-
tom of the page.
303 printpackage: treetops: EPS must fit on 1 page.
status: active severity: 4
"When the OUTPUT_FORMAT is EPS, and the image is larger than one page,
the result is overlayed images on one page. Either shrink the image
to fit, or at least report the error."
415 printpackage: treetops: Crash and/or weak error msg.
status: active severity: 3
"Treetops crashes after several 'oops' messages when a TDT file is
(mistakenly) used for input. Although an FDT is needed, Treetops
should report this error less cryptically and not crash."
526 program object toolkit: Program object executed multiple times
status: active severity: 3
"When a program object is allocated with arguements, it will get exe-
cuted multiple times until it succeeds and runs, with 0 - n arguements
(not confirmed)."
363 remote toolkit - drawgob (Mac RT demo): needs polishing
status: active severity: 3
"Two things: (1) drawgob.c is written with dy_ calls, it is not a
toolkit program, and (2) drawgob doesn't run if the Hosts file
doesn't list the toolserver correctly."
459 rubicon: Dot trouble.
status: active severity: 4
Disconnected smiles are skipped without an error or warning.
512 rubicon: ISM not handled.
status: active severity: 2
Rubicon does not recognize isomeric smiles datatype ISM. Rubicon will
only read the $SMI datatype.
460 rubicon: Count wrong.
status: active severity: 2
"When an input error is reported, the structure number is wrong, as in
'Can't process structure 268693408'."
522 rubicon: Rubicon discards data.
status: active severity: 1
"Rubicon should be able to add 3D data to a TDT stream. Instead, now
it deletes data other than smiles and PCN."
514 thorlookup: Thorlookup adds quotes to datatype TDTs.
status: active severity: 2
Thorlookup adds quotes to datatype TDTs, that is, $D-rooted datatrees.
430 thorserver: Full disk locks db.
status: active severity: 4
"Trying to open a db on a full disk results in an error ('can't create
.LCK file'). But a file is created, and this prevents the db from
being opened after room is made ('db locked by another server'). Note
that both these error messages are incorrect."
149 thorserver: Full disk corrupts database
status: active severity: 4
"If a disk runs out of space as a database is being loaded, the data-
base is usually corrupted. The last record in the .DP file will be
incomplete, causing error messages to be printed for database dumps
and crunches, and any time that record is accessed. It is possible to
dump the database using thordump"
68 thorserver: thorserver reports hash subsystem error for out-of-date timestamp
status: active severity: 1
"The thorserver reports hash subsystem error and can't write to file
when an out-of-date timestamp is encountered. The out-of-date times-
tamp error is also reported. The hash subsystem error reported nor-
mally is a serious error, and is therefore printed in the thorserver's
log file; the log file may fill up with many such errors if a database
is loaded without the merge option."
119 "thorserver, merlinserver": servers don't detect duplicate
entries in search path
status: active severity: 1
"The servers don't detect duplicate entries in the search path. For
example, ~cjames and $HOME, or even /tmp and /tmp."
513 toolkit - depict: "dt_setlabel[12]ga(dep, mol, GA) doesn't work."
status: active severity: 2
You can't set the GA of the title or subtitle of a depiction with
dt_setlabel[12]ga().
458 toolkit - SMARTS: Bad smarts accepted.
status: active severity: 3
"Smarts [O,[N;v3]] is accepted, though it does not follow the rules.
(Maybe it should be ok.)"
529 toolkit - SMILES: Rejects its own.
status: active severity: 4
The SMILES toolkit produces but rejects:
Cn1c(=O)n(C)c2n[nH]c(=O)n(O)c2c1=O.
527 toolkit - SMILES: Bistable cansmi.
status: active severity: 4
The following smiles are cansmi-ed to one another:
CC(=C[Si](c1ccccc1)(c2ccccc2)c3ccccc3)[Si](c4ccccc4)(c5ccccc5)c6ccccc6
and
CC(=[Si](c1ccccc1)(c2ccccc2)c3ccccc3)C=[Si](c4ccccc4)(c5ccccc5)c6ccccc6.
516 toolkit - SMILES: Non-unique unique smiles
status: active severity: 4
"CC1(C)COC(CCCCCCC(=O)ON2C(=O)CCC2=O)(CCCCCCC(=O)ON3C(=O)CCC3=O)N1=O and
CC1(C)COC(CCCCCCC(=O)ON2C(=O)CCC2=O)(CCCCCCC(=O)ON3C(=O)CCC3=O)[N]1=O are
the same molecule, but both are unique SMILES.
N#CNC1=NC2=NC(=NC3=NC(=NC(=N1)N23)NC#N)C#N and
N#CNC1=NC2=NC(=NC3=NC(=NC(=N1)N23)C#N)NC#N are the same molecule, but
both are unique SMILES."
510 toolkit - SMILES: para-stereochemistry not understood.
status: active severity: 4
The smiles CN[C@H]1CC[C@H](C(=O)O)CC1 is not recognized as stereo.
502 toolkit - SMILES: Oscillating SMILES
status: active severity: 4
Try canonicalizing CCCCC(=[Si](C)(C)C)C=CC=[Si](C)(C)C twice.
479 toolkit - SMILES: Stereo dt_arbsmiles() errors.
status: active severity: 4
"dt_arbsmiles makes chirality errors. Read N[C@@H](O)C(=O)N with
dt_smilin. dt_arbsmiles will be wrong. If dt_cansmiles is called first,
dt_arbsmiles will be ok. (Using dt_cansmiles is not always a workaround;
see Rohde/Ciba report.)"
477 toolkit - SMILES: More rejecting your own...
status: active severity: 4
CC1=C(C)[NH]=C(O)[NH]=C1O canonicalizes to Cc1[nH]c(O)[nH]c(O)c1C
which is then rejected by dt_smilin().
166 toolkit - SMILES: dt_cansmiles /dt_smilin incompatibility
status: active severity: 4
dt_cansmiles is capable of producing a smiles which dt_smilin cannot
interpret. See examples (May 1994) from Kodak.
416 toolkit - SMILES: Bad SMILES.
status: active severity: 4
SMILES produced by dt_cansmi which are not parseable: see
day:/home/jj/tmp/roche/bad_smiles.tdt.
417 toolkit - SMILES: Bad SMILES.
status: active severity: 4
SMILES produced by dt_cansmi which are not parseable: see
day:/home/jj/tmp/ciba/bad_smiles.tdt.
441 toolkit - SMILES: Schizo smiles.
status: active severity: 4
"The following two smiles are both produced by cangen for the same
structure: CC1=C(C)[Se]C(=C2[Se]C(=C(C)[Se]2)C)[Se]1,
CC1=C(C)[Se]=C([Se]1)C2=[Se]C(=C(C)[Se]2)C."
372 toolkit - SMILES: Two unique SMILES for one molecule
status: active severity: 4
"The following two SMILES are both 'unique', yet are for the same
molecule: NP1(=NP(=NP(=N1)(c2ccccc2)c3ccccc3)(N)c4ccccc4)c5ccccc5,
NP1(=NP(=NP(=N1)(N)c2ccccc2)(c3ccccc3)c4ccccc4)c5ccccc5."
490 toolkit - SMILES: Extra weird SMILES
status: active severity: 3
[n]532c(c1nc4c(nc1c(c2)N=CC=C3)c(ccc4)NC(=O)C)cccc5 uniquifies twice
to a stable smiles!
276 toolkit - SMILES: Lethal SMILES
status: active severity: 3
"dt_mod_off() crashed when this molecule was created. GRINS and xvthor
crashes while it's being drawn. It is two 5-membered carbon rings which
sandwich a [W] atom, where all 10 carbons are bonded to the carbon, and
also, the [W] has two chlorines attached."
471 toolkit - SMILES: Stereo not recognized.
status: active severity: 3
"The smiles CC(=O)[C@H]1CC[C@@H](CNC)CC1 is not recognized as chiral,
that is, it is canonicalized non-chiral."
191 toolkit - SMILES: cangen generates two SMILES for one molecule
status: active severity: 3
cangen generates two different unique SMILES for FOTRETAMINE:
C1CN1P2(=NP(=NP(=N2)(N3CC3)N4CCOCC4)(N5CC5)N6CC6)N7CC7
C1CN1P2(=NP(=NP(=N2)(N3CC3)N4CC4)(N5CC5)N6CCOCC6)N7CC7
367 toolkit - SMILES: "dt_stream(bond, TYP_CYCLE) problem"
status: active severity: 3
"If a bond is not in a ring, dt_stream(bond, TYP_CYCLE) should return
NULL_OB, and instead, returns an empty stream. Empty stream !? An
alternative is dt_count(dt_stream(bond, TYP_CYCLE), TYP_CYCLE), but this
doesn't always work correctly either. Some ring bonds will return a
dt_count() of zero."
383 toolkit - SMILES: Transition metals confuse aromaticity with N
status: active severity: 3
"The SMILES Cn1cncn1 is accepted, but [Sn]n1cncn1 is not (the [Sn]-n bond
is considered dative, so the electrons in the aromatic ring don't add
up). Furthermore, if the latter structure is built by toolkit calls from
a connection table, a call to dt_cansmi() will produce the SMILES shown,
but dt_smilin() can't parse the SMILES back in."
528 toolkit - SMILES: dt_mod_on() ain't enough.
status: active severity: 2
"In addition to dt_mod_on(), a molecule needs to be de-aromatized in
order to successfully make certain changes, such as charge and H-count
mods. Surely mod-on should be as mod-on as possible."
131 toolkit - THOR: non-SMILES-rooted TDTs not merged correctly
status: active severity: 4
"If a non-SMILES rooted TDT is revised (dt_thor_tdtrevise()), the Toolkit
attempts to find a SMILES by various means, including looking in the
cross-references for a SMILES. However, if one is found by this
mechanism, the SMILES is not added correctly -- the data from the
non-SMILES TDT seems to be lost. To demonstrate this with xvthor, fetch
a non-existent non-SMILES TDT, then using a second xvthor, create a
SMILES-rooted TDT with the same non-SMILES identifier as a subtree.
Store the second xvthor's SMILES-rooted TDT, then the first xvthor's
non-SMILES TDT."
506 toolkit - THOR: NTUPLE data handling.
status: active severity: 3
"If a TDT is loaded with explicit Hs in the smiles, NTUPLE normaliza-
tions may crash the client. For example, Thorload-ing 3D data with a
few H xyz's -- this should be handled!"
243 toolkit - THOR: THOR only uses 1st field of identifier
status: active severity: 3
"THOR only uses the 1st field of an identifier for lookup and com-
parison. This means that some identifiers that can have identical 1st
fields yet still be distinct, could be impossible to enter correctly
with the Toolkit except by str2tdt() functions."
410 toolkit - THOR: Newline convention needed.
status: active severity: 3
"The Daylight systems needs a way for dealing with newlines within data.
The present system may ignore them, remove them, or display them in a
funny way."
338 toolkit - THOR: mismatched quotes in indirect ref confuse Thor
status: active severity: 2
"If an indirect reference is stored with mismatched quotes (i.e. using
the 'raw' mode for loading data into the database), then datafields that
use that indirect reference can't be expanded. Furthermore, some
internal caching routines are confused, causing caching of indirect
expansions to be less efficient. (look_up_everything() gives up when
store_cache_entry() fails.)"
507 toolkit - THOR: NTUPLE data handling
status: active severity: 2
"SMILES_NTUPLE data is poorly handled in many instances. Also, the
format should be more clearly documented. Data for some but not all
atoms should be supported. The question of hydrogens, explicit and
implicit, should be fully addressed. In particular, the 2D and 3D
datatypes should be handled and documented very well."
138 toolkit - THOR: dt_thor_move_item() allows modification to
read-only TDT
status: active severity: 2
The function dt_thor_move_item() doesn't always report an error when the
TDT being changed is from a read-only database
423 toolkit - THOR: can't merge SMILES/non-SMILES TDTs
status: active severity: 2
"The THOR Toolkit manual says that dt_thor_merge() can merge a non-
SMILES-rooted TDT into a SMILES-rooted TDT, but this isn't imple-
mented."
272 toolkit - THOR: The subfield issue.
status: active severity: 1
"Subfields exist in the Pomona databases delimited by tilda's within one
field. These subfields are often indirect reference keys, individually,
though they have no individual identity from the toolkit's view. So the
tildas are undocumented delimiters, and partially sup- ported. This
should be resolved."
285 widgets - file widget: double-click crashes on HP
status: active severity: 2
"On the HP 9000/720 only, a double-click in the file widget sometimes
crashes the application."
424 widgets - file widget: File widget loses contents
status: active severity: 1
"If a directory is empty and you select it with the file widget, the
'File:' line loses its contents."
391 widgets - GRINS: GRINS/stereo/MacX crash
status: active severity: 4
"From MacX, invoke xvmerlin GRINS and draw and select a chiral
molecule. Then press the GRINS button. xvmerlin crashes. (Doesn't
happen from other terminals.)"
399 widgets - GRINS: Save-SMARTS dysfunctional.
status: active severity: 4
"A Save-SMARTS-to-file writes a SMILES with wild-cards instead. Not a
reasonable behavior, so turn off or make it work and save the SMARTS."
328 widgets - GRINS: GRINS loses hydrogens.
status: active severity: 3
Enter SMILES C1C=[nH2+]2cccc3c1c23 into xvthor. Press GRINS. The
nitrogen has no H's.
310 widgets - GRINS: GRINS can't read list-style TDTS.
status: active severity: 3
"GRINS can only read dump-style TDTs; when the same TDT with 2D data is
in list format, no depiction is input, and *no* *error* *message* is
reported."
443 widgets - GRINS: xvmerlin/GRINS rejects valid SMARTS.
status: active severity: 3
Enter [Cv3] into the xvmerlin search panel and press the GRINS button:
it won't be displayed. Nor can you specify an atom as [Cv3] in GRINS.
332 widgets - GRINS (documentation): BSTY datatype undefined.
status: active severity: 4
"GRINS writes a datatype BSTY when a chiral structure is saved by the
''save'' command. The datatype is not documented. Also, if there is no
SMILES_BOND_NTUPLE normalization, these data could be corrupted in the
future if/when cansmiles changes, and the order of the bonds changes in a
USMILES."
386 "widgets - GRINS, xvmerlin": Search-panel SMARTS are not accepted by GRINS.
status: active severity: 4
"If you specify a SMARTS on the xvmerlin search panel, and press GRINS,
the SMARTS will not be accepted. If it is a valid SMILES, the SMILES
will be depicted. If not a valid SMILES, no depiction, no error or
warning."
317 widgets - GRINS, xvthor: Chiral H's not understood by GRINS.
status: active severity: 4
"If you enter N[C@@H](O)Cl with xvthor, then invoke GRINS, the bond to
hydrogen is not drawn, and as a result, GRINS won't save the molecule as
isomeric."
454 widgets - GRINS, xvthor: GRINS adds charge.
status: active severity: 4
Enter C[N]1=CCCC=C1 into xvthor. Press GRINS. A (+) charge is added to
the N.
376 widgets - TDT: H-less conformations screwy.
status: active severity: 4
D3D data without hydrogen coordinates are not displayed correctly by the
TDT widget.
420 widgets - TDT: Properties (datatypes) don't persist.
status: active severity: 3
"Selecting datatypes for display doesn't persist if a new TDT is
displayed on the TDT widget. In addition, datatype-selection should be a
pre-configurable option."
250 widgets - TDT: TDT widget gets permanently confused
status: active severity: 3
"The TDT widget sometimes comes up blank (i.e. pure foreground color, no
text, scrollbar greyed out). In at least one case, this condition was
permanent -- no amount of diddling would make it work again. This
occured using xvmerlin on spresi93, after doing a search for struc- tures
similar to C1C(O)C(O)C(O)C1C(O)CCN12. After generating the hitlist,
poking around in the hitlist with the Show TDT feature causes the bug to
show up."
265 widgets - TDT: TDT widget turns white
status: active severity: 3
"The TDT widget doesn't automatically go to the top of the canvas when a
new TDT is given to it, sometimes resulting in the scroll position being
off the bottom of the canvas. The result is a blank TDT widget. To see
this using xvthor, open two databases and select a SMILES which is in
both, but for which one database has a much longer TDT than the other
database. Scroll to the bottom of the longer TDT, then switch to the
database with the shorter TDT."
231 widgets - TDT: Show Empty Fields should be default in Add mode
status: active severity: 2
"When you switch to Add mode, the widget should force the Show Empty
Fields property."
364 widgets - TDT: Splitting canvas crashes TDT widget
status: active severity: 2
"If you split the canvas of the TDT widget, the depiction does not get
refreshed. If you then rejoin the split canvas, close the widget, and
then reinvoke it, the application bombs wiht an X error, unknown object,
or some such."
481 xvmerlin: Read hitlist broken.
status: active severity: 4
"Read hitlist doesn't work; it says 0/0 found for non-unique smiles, and
0/15 found for unique smiles."
307 xvmerlin: Merlin search panel truncates SMILES.
status: active severity: 4
The Merlin search panel truncates SMILES longer than 513 characters.
468 xvmerlin: save state coredump
status: active severity: 4
"When xvmerlin asks for a password to save the state file, if the users
types it in, then deletes it, xvmerlin will coredump."
475 xvmerlin: Print-hitlist can't deal with newlines.
status: active severity: 4
Print-hitlist can't handle newlines; the text appears in additional
columns. Same problem with save-as-tab and tablet.
488 xvmerlin: Save state password hangs xvmerlin
status: active severity: 3
"If you have a saved state for xvmerlin, and run xvmerlin in the back-
ground, xvmerlin blocks waiting for /dev/tty input of the password. You
have to put xvmerlin in the foreground and type the password to get it to
continue. This means that anyone who runs xvmerlin from a shell script
can potentially get in trouble. A workaround is to do 'xterm -e xvmerlin
&' which will prompt for the password in a new xterm window. xvmerlin
*should* prompt for the password in a dialog box."
461 xvmerlin: Can't set non-SMILES rows from SMILES file.
status: active severity: 3
"It is not possible to turn on all the rows for a given list of smiles,
if some rows are non-smiles 'breakout' rows. Example: all supplier-rows
in ACD from a smiles file."
418 xvmerlin: Special chars not displayed.
status: active severity: 3
"If a text field contains special character vertical bar, xvmerlin will
not display it (maybe Merlinserver doesn't load it)."
427 xvmerlin: xvmerlin confused by killed server.
status: active severity: 3
"If a Merlinserver is killed while xvmerlin has a pool open, xvmerlin
will be confused. If a scan is performed, there will be no pool to
close, though it will seem to remain open."
434 xvmerlin: Long _V crash.
status: active severity: 3
If _V is long (650 chars) 'delete n/a' crashes xvmerlin.
451 xvmerlin: Search string disappears
status: active severity: 3
"If you switch from superstructure to substructure or similarity search,
the smiles in the search panel goes away."
450 xvmerlin: xvmerlin requires 'thorinfo' user
status: active severity: 3
"xvmerlin uses the 'thorinfo' pseudo-user during the 'Scan for data-
bases' operation. This is true even if a full server specification is
given, e.g. '@host:merlin:user'. Thus, the 'thorinfo' pseudo-user must
always be present and have no password when xvmerlin is in use."
232 xvmerlin: xvmerlin discards path for identical databases
status: active severity: 3
"If two databases have the same name but are in different directories in
the server's search path, xvmerlin confuses them. It discards all path
information regardless of whether or not two databases have the same
name."
440 xvmerlin: TDT widget option doesn't work.
status: active severity: 3
"The option TDT_GRAPHICS_PREFS doesn't work for xvmerlin, though it is a
Thor client and TDT widget user. Also, it would be nice to have a
smiles-length threshold for TDT widget depictions, just like xvmerlin's
MERLIN_DEPICT_MAXSMI."
455 xvmerlin: Column number limit
status: active severity: 3
MERLIN_COLS_MAXINIT is hard coded to be no greater than 10. Users
request more.
414 xvmerlin: Read hitlist message not enough.
status: active severity: 3
"If you read-hitlist from a SMI file, there is no complaint, though this
isn't allowed in 4.34 (4.32 yes). No complaint, but not read either."
394 xvmerlin: Non-id SMILES not handled well.
status: active severity: 3
Non-id SMILES should be depictable and perhaps searchable.
453 xvmerlin: MERLIN_DEPICT_MAXSMI=0 doesn't work.
status: active severity: 3
MERLIN_DEPICT_MAXSMI=0 doesn't work (should mean no limit); all are text.
444 xvmerlin: Full host:server:user spec not handled correctly.
status: active severity: 3
"If you specify a merlinserver with the server panel in the form
host:merlin:fred, and fred is a registered user and you're not, the
available pools will appear but cannot be opened due to security."
401 xvmerlin: Can't pre-specify non-1st field columns.
status: active severity: 3
Option MERLIN_INIT_COLUMNS can only specify first-fields.
311 xvmerlin: Hit-atom highlighting errors.
status: active severity: 3
"If you search for SMARTS [!dollar-sign(*#*)] on SMILES CC#N, all three
atoms are highlighted. (Only the terminal C should be.) The SMARTS
search hits the correct SMILES; only the highlighting seems to be wrong."
466 xvmerlin: Save hits fails.
status: active severity: 3
"If the directory is not writeable, 'save hits as tdt' fails without any
warning message."
503 xvmerlin: -MERLIN_INIT_COLS broken in 4.41.
status: active severity: 2
The option -MERLIN_INIT_COLS is broken... only the first datatype is
used.
486 xvmerlin: Save file error
status: active severity: 2
"When one tries to write a .tab or .tdt file into an empty directory, the
directory spec is lost on the File: text input line and any filename
selected is written in the user's home directory."
334 xvmerlin: Zooming gets garbage for long text
status: active severity: 2
"Using the Show Text feature on a text item longer than 1000 characters
produces garbage past the 1000th character. There is a fixed- sized
buffer in xvmerlin (dy_merlin_zoom.c, line 74) that is the prob- lem."
426 xvmerlin: xvmerlin rotates drawings
status: active severity: 2
"xvmerlin rotates drawings 90 degrees each time they are redrawn and
draws over the top of the previous drawing, ultimately resulting in an
unreadable mess. The depict widget does this too, but erases before each
redraw, so you don't notice it as much."
174 xvmerlin: Merlin keypad disappears with each use
status: active severity: 2
"If xvmerlin is started with -iconic, the keypad sometimes disappears
each time you use it, making it fairly useless."
261 xvmerlin: xvmerlin crashes if canvas less than 1 row high
status: active severity: 2
"If you make xvmerlin's canvas very short, then set Lines per row to more
lines than the canvas has, xvmerlin will crash."
428 xvmerlin: function on RowID column confuses xvmerlin
status: active severity: 2
"If you try to apply and column-creation function except FIRST to a RowID
column, you end up with a non-existant column, but xvmerlin still has a
button up, with all of the menus greyed out. The Toolkit is not supposed
to let you apply functions to RowID columns, but xvmerlin doesn't know
this."
520 xvmerlin: Small REALs look zero-like.
status: active severity: 1
Small real numbers (<=.00001) are displayed as zero by xvmerlin.
293 xvmerlin: possible memory leak
status: active severity: 1
xvmerlin may leak memory (its process size may grow) due to column's
Datatypes pull-right menu not being deallocated as databases are opened
and closed.
403 xvmerlin - EDGAR: EDGAR coloration fails
status: active severity: 4
EDGAR fails to modify element colors on canvas.
241 xvpcmodels: CLOGP freezes
status: active severity: 4
"FC(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F
(15 carbons) is handled by CLOGP ok. However, adding one carbon freezes
the program:
FC(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F."
226 xvpcmodels: clogp (4.2 or 3.55 or 3.4) ??
status: active severity: 1
"PCModels 4.2 writes clogp output CLOGP355 ... and then in the table,
v43.4. Is this ok ? Is it (4.2 or 3.4 or 3.55) ?"
309 xvthor: Isomeric SMILES handling
status: active severity: 4
"Draw an isomeric SMILES with GRINS. Press select. The isomeric info is
lost. The structure displayed in xvthor is the non-isomeric SMILES.
However, if an isomeric SMILES is chosen with the depict widget, the
SMILES displayed is isomeric."
193 xvthor: Can't modify or delete SMILES.
status: active severity: 3
"If a SMILES is entered incorrectly, it can't be modified or deleted. A
DELETE TDT button is needed!"
369 xvthor: Can't write SMILES only.
status: active severity: 3
"xvthor can't write a SMILES by itself to a database. Look up a new
SMILES (TDT created), then press Save button. No message, but the TDT is
not saved. If other data is added it works."
225 xvthor: File SMILES #65 is skipped!
status: active severity: 3
"If reading from a SMILES file w/ g.t. 64 SMILES, first 64 appear in the
Depict widget. If then the command More from last file is given, #65 is
skipped."
379 xvthor: Undefined datatype persists.
status: active severity: 3
"When a new database is opened, the current identifier datatype and datum
persists, even if the datatype is not defined for the new data- base.
This causes an error message."
500 xvthor: TDT widget must show fields to edit.
status: active severity: 2
"With the TDT widget in Modify mode, you still can't see an empty field
if the default TDT_TEXT_PREFS NOSHOWEMPTY is in force."
263 xvthor: no error reported for invalid identifiers
status: active severity: 2
"If you try to look up a bad identifier (e.g. a CAS number with a wrong
checksum digit, or an invalid SMILES), xvthor doesn't give any error
message."
189 xvthor: SMILES warnings keep popping up!
status: active severity: 2
SMILES with unusual valences can't be handled without the error widget
constantly popping up whenever the SMILES is reinterpreted. Here is one
(this is a real structure from the Cambridge crystallographic files):
CC1=O[Rh]2([CH2]=C32=[CH2][Rh]43(O=C(=[CH]=C(=O4)C)C)C#O)(O=C(=C1)C)C#O
224 xvthor - TDT Widget: crash on delete SMILES attempt
status: active severity: 3
"If you use the TDT Widget in delete mode, and click on the SMILES,
xvthor will crash."
======================= 5. RELEASE HISTORY =======================
Daylight releases are numbered using the following scheme:
The "system number" (e.g. 3.xx, 4.xx) indicates completely different
systems. Each system is a complete new design and coding.
Major releases (e.g. 4.1x, 4.2x, 4.3x) contain new features and
enhancements. Often, programs and databases from one major release
aren't compatible with those from another.
Minor releases, or "updates" (e.g. 4.32, 4.33) are for bug fixes and
minor additional features. They are also occasionally for adding
new platforms (computers and/or operating-system version).
The first two releases of system 4 were called "4.1" and "4.2"; under the
above-described scheme they would have been called "4.11" and "4.21".
There were two additional releases of the "demo" tape, which would have
been "4.22" and "4.23". Release 4.24 (October '92) was the first to use
this new version-numbering scheme.
4.1 20 Dec 1991 First 4.x release: SunOS only
4.21 20 Mar 1992 Second release: bug fixes, added SGI platform
4.22 ?? Demo Tape update (applics and toolkits not affected).
Updated the demo database: added clustering data to
illustrate Daylight's clustering product.
4.23 22 Sep 1992 Demo Tape update (applics and toolkits not affected)
Same as 4.22, but added workaround for a bug in the
SGI X window system.
4.24 02 Oct 1992 Update: many bug fixes, some added features.
4.25 13 Nov 1992 SGI Toolkit Tape only; corrects incompatibility between
versions of SGI IRIX Operating system. All other 4.24
SGI and Sun tapes are unaffected.
4.31 01 May 1993 Added Print Package, Merlin Toolkit. Many bug fixes
and enhancements. Added support for VAX/VMS (Toolkits,
servers, and some non-X-Windows programs). Added Thor
and Merlin management utilities.
4.32 01 Jul 1993 Added Rubicon program and Rubicon Toolkit. Added
support for HPUX on HP9000/7xx series, and for
Solaris on Sun machines. Improved "man" pages and
help-widget text files. A number of minor bug fixes.
4.33 28 Jan 1994 Improved merlinserver, thorserver, and Merlin and
Thor Toolkits. Improved printing. A number of minor
bug fixes. Restructured & added to "contrib" programs.
4.34 25 Feb 1994 Revamped clustering programs. Partial molecular
fingerprint generation. Fixed bugs introduced in 4.33.
4.40 Nov 23 1994 Preliminary "beta-test" versions of 4.41.
4.40b Feb 12 1995 Preliminary "beta-test" versions of 4.41.
4.41 Mar 17 1995 Databases of mixtures, "monomer" toolkit (CHUCKLES,
CHORTLES, & CHARTS), Program-Object Toolkit, parallel-
ized (multi-CPU) version of clustering, MCL.
4.42 Feb 02 1996 HTML Documentation, CGI application programs, record
locking, thordestroy(1), Thor/Merlin messages,
Thor/Merlin eviction, faster TDT merging, Merlin
parallel SMARTS searches, better Merlin performance
under heavy load, Merlin program objects.
Back to 4.42 Release Notes.
|