From: SMTP%"RELAY-INFO-VAX@CRVAX.SRI.COM" 13-DEC-1993 18:09:59.28 To: EVERHART CC: Subj: MOSAIC 2.0 Tuneup (VMS port) X-Newsgroups: comp.os.vms Subject: MOSAIC 2.0 Tuneup (VMS port) Message-Id: <2e8670$feg@charm.magnus.acs.ohio-state.edu> From: JONESD@kcgl1.eng.ohio-state.edu (David Jones) Date: 9 Dec 1993 21:44:00 GMT Organization: The Ohio State University Nntp-Posting-Host: kcgl1.eng.ohio-state.edu Lines: 72 To: Info-VAX@CRVAX.SRI.COM X-Gateway-Source-Info: USENET I've finished my first iteration of fixes/performance optimiaizations of the MOSAIC 2.0 for VMS code. It's packaged concisely in a text library in the anonymous FTP directory of host osu.edu. The biggest improvements are new a UCX interface (interrupable) and cached workfiles for inline image expansion. The original code creates a temporary file, closes it, opens/closes it again to read it, then deletes it for every graphic in a document window. This may not be a problem with unix file systems, but it's a lot of overhead in VMS. Caveats: I include new DESCRIP.MMS files but I haven't updated the makefile. builds. I added a few new source files, so the old makefiles definitely won't work. The build assumes UCX has been installed and really doesn't do checks for multinet anymore. The UCXIO.C code works with mutlinet but it won't compile without the UCX$INETDEF.H include file. The external viewers are run from a command procedure MOSAIC_EXEC.COM rather than temporary files. You must define the logical MOSAIC_EXEC_PATH to point to the directory where this file resides. Summary of modifications made to MOSAIC by David Jones: Modified GIFREAD to use macro gif decoder, inline decodes happen 5-8 times faster. Re-defined fopen for files that include mosaic.h. main.c now has jacket routine for fopen that set multi-block count. Modified htfwriter.c to include multi-block count on open. Modified htformat to only update interrupt icon every 200 milliseconds while receiving data. Removed creation of MOSAICPID. file from startup since it serves no purpose. Optimized medcut.c. It was taking up to a 1/4 second of CPU to convert colormaps, now it takes /120 second. Fixed pixmap to use hash table properly. Color insrted into hash table was different (changed by xallocolor) than the initial lookup, so matches were never made. Hacked GUI-MENUBAR.C so that exit dialog box shows up on XUI servers. Modified GUI.C HTTCP.C and HTFTP.C to use external procedures defined by UCXIO.C for TCP/IP access. UCXIO defines interruptible replacements for socket(), connect(), bind(), listen(), accept(), read(), write(). It also provides a non-interruptible hostname() routine for GUI.C. Modified IMG.C, PICREAD.C, and HTFWRITER.C to use new workfile routines defined in WORKFILE.C. These routine cache temporary files in an open state so that they don't require repeated creation of files, for inline image expansion which is a slow operation under VMS. The temporary files are marked for delete so cleanup is automatic. Modified HTFWRITER to spawn external commands as @MOSAIC_EXEC_PATH:MOSAIC_EXEC d tfile "viewer command The mosaic_exec command procedure executes the viewer command and then deletes tfile if d is 1. David L. Jones | Phone: (614) 292-6929 Ohio State Unviversity | Internet: 1971 Neil Ave. Rm. 406 | jonesd@kcgl1.eng.ohio-state.edu Columbus, OH 43210 | vman+@osu.edu Disclaimer: A repudiation of a claim.