Lattice AmigaDOS C 5.05 Patch This patch is designed to be installed over version 5.04 of the Lattice AmigaDOS C Compiler with or without the 5.04A patch applied. If you are not using version 5.04, you must bring your compiler up to 5.04 before installing this patch. Invoke phase 1 (LC1) directly to determine the version of the compiler you are working with. Due to know problems with the ARP (Amiga Replacement Project) version of the Execute command, you should use the AmigaDOS commands to install this patch. To install the patch on a set of 5.04 or 5.04a master disks, type execute patch_floppy This script will delete the file L/Speak-Handler from Disk 1 of the master disks to make room for the patches on this disk. This file is needed for the SPEAK: device. If you need this device available, you should delete another Workbench file that you do not need and copy the Speak-Handler from a standard Workbench disk. *** If you are running this script on a 512K machine, we recommend *** *** that you boot with the standard Workbench disk to guarantee *** *** that you do not run out of memory while installing the patch. *** To install the patch on a hard disk with 5.04 or 5.04a installed according to the Lattice install procedures, type execute patch_hd With other configurations you will have to check one of the install scripts and install the patches by hand. After installing this patch with patch_floppy, this readme.505 file can be found on Volume 5 of the Lattice Compiler disk set. Changes to the Compiler ----------------------- The inconsistencies in pushing and popping floats from the stack has been fixed. Floats are now passed as floats if there is a prototype in effect declaring it as float, and as doubles otherwise. The -pr option no longer causes a Guru. The -cq option now works correctly, treating any two structures as equivalent if their lowest-level arithmetic items match, regardless of where the structure boundaries lie. This means you can now pass an IntuiMessage when a Message was expected. Now linked with catchres.o instead of catchresnr.o so that the snapshot file will not be automatically written to disk when the system is in a bad state. The compiler no longer thinks that a structure of length 4 can be made into a register variable. The conversion from float to double in 68881 mode has been fixed. Fixed a bug in assigning the result of a < operation to a variable. The preprocessor symbol __REVISION is now set to 5 and the symbol LATTICE_55 is now defined. A number of other changes were made to improve code generation and fix minor bugs. Changes to CodePRobe -------------------- CPR now handles keymapping of characters > 127 correctly. The Enter command no longer causes a Guru. CPR now handles a list of breakpoints properly. CPR now displays floating point variables correctly. The Symload command now works properly. Changes to DIFF --------------- Fixed the -c bug where the statistics do not print out properly. Changes to OML -------------- Added -t switch to specify where the temporary library is to be created. Defaults to the same directory as the original library. Changes to the Libraries ------------------------ A bug in the strtol() function has been fixed. stch_i() now returns the correct value. atof(), ecvt(), and fcvt() were modified to reflect a bug fix in CXVFD() where registerized parameters weren't handled correctly. _pfmt() and _sfmt() had minor bugs fixed. CXV35() now properly restores registers on exit. getenv() now properly sets the value of the environment variable. getft() now returns the correct file time when used with short ints. strcpy() now returns a pointer to the destination string instead of a pointer to the source string. chmod() now correctly handles all the AmigaDOS file flag bits. time() now works correctly with registerized parameters. fdopen() now correctly sets up the FILE structure for the open file. getcwd() now works correctly with registerized parameters. A new version of the LCMSR.LIB library has been supplied, since the old one had somehow been corrupted. Changes to Startup Code ----------------------- Fixed bug where the bottom of the program stack was not being calculated correctly. LPROF and LSTAT --------------- The following information was accidently left out of the readme file provided with the 5.04 Patch. The new profiler allows you to specify the interval between samples in milliseconds. Do this with the -t option. For example: prof -t20000 prog arg1 arg2 You should not put any spaces between the -t flag and the sampling interval number. The default for the -t option is 33 milliseconds between samples. Use smaller numbers for more interupts. ----------------------------------- NOTE: The phone number for Deep Thought BBS (Software Distillary) is being changed from that reported by PopCLI. The new number is/will be (919)382-8265.