Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought






RELEASE NOTES FOR VAX C V2.3





These notes contain information on the  following  aspects  of  VAX  C

V2.3:



      o  Functional Enhancements



      o  Restrictions



      o  Documentation Errata



      o  VAX C Run-Time Library Functions





VAX C V2.3 contains several bug  fixes  and  SPR  fixes.   Details  of

changes   made  as  a  result  of  SPRs  can  be  found  in  the  file

SYS$LIBRARY:VAXCSPR.DAT.



Note that the VAX C Run-Time Library (RTL) is  no  longer  distributed

with  VAX  C.   It  is  now  being  distributed  with the VMS Run-Time

Library.  In addition, as of VMS V4.4, RTL  object  libraries  are  no

longer  shipped with MicroVMS.  Therefore, you are required to use the

VAX C shareable libraries.  If you  are  linking  a  C  program  on  a

MicroVAX  system  and  you are not using the G-float option, enter the

following command:



$ LINK prog-name, SYS$INPUT: /OPTIONS

SYS$SHARE:VAXCRTL.EXE/SHARE

CTRL/Z



If you are using the G-float option, use the following command:



$ LINK prog-name, SYS$INPUT: /OPTIONS

SYS$SHARE:VAXCRTLG.EXE/SHARE

CTRL/Z



FUNCTIONAL ENHANCEMENTS



The following list documents the functional enhancements provided with

VAX  C  V2.3.  All chapters and appendixes referenced in this list are

contained in the Guide to VAX C.



      o  VAX C allows you to generate static analysis data  files  for

         VAXSCA.    The   /ANALYSIS_DATA  qualifier  will  signal  the

         compiler to produce the data file.  For more information, see

         Chapter 1, Developing VAX C Programs at DCL Command Level.



      o  VAX C allows you  to  use  function  prototypes  in  function

         declarations.   By  using  prototypes, you specify the number

         and the data type of the arguments in a function declaration.

         The  compiler  checks  the  argument  specifications  in  the

         prototype, and provides error  checking  and  necessary  data

         type  conversions.  For more information, refer to Chapter 3,

         Program Structure.






















































                                                                Page 2





      o  VAX C supports the volatile and const data  type  specifiers.

         For  more  information,  refer  to  Chapter 6, Data Types and

         Declarations.



      o  VAX C  supports  variant  structure  and  union  declarations

         nested  within  structure  or  union  declarations.  For more

         information, refer to Chapter 6, Data Types and Declarations.



      o  VAX C provides a way for you to align  data  on  byte,  word,

         longword,  quadword,  octaword, or page boundaries.  For more

         information,  refer  to  Chapter  7,  Storage   Classes   and

         Allocation.



      o  VAX C supports the #elif and #pragma preprocessor directives.

         For  more  information,  refer  to  Chapter  8,  Preprocessor

         Directives.



      o  VAX C includes  the  predefined  macros  __DATE__,  __FILE__,

         __LINE__,  and  __TIME__.   For  more  information,  refer to

         Chapter 8, Preprocessor Directives.



      o  VAX C provides several new  diagnostic  messages.   For  more

         information, refer to Appendix C, VAX C Compiler Messages.




RESTRICTIONS



The following list represents some restrictions of VAX C V2.3:



      o  You cannot link modules created by the VAX C  V1.n  compilers

         with  modules  created by the VAX C V2.n compilers.  You must

         recompile your code.



      o  You should avoid using the underscore as the first  character

         in  program  identifiers  since  VAX C uses the underscore to

         identify implementation-specific macros  and  keywords.   For

         more information, refer to Chapter 3, Program Structure.



      o  The V2.3 compiler provides new debugger  support  to  examine

         split-lifetime   variables.    Split-lifetime  variables  are

         allocated to different registers over the course  of  program

         execution  or  are  eliminated by value propagation.  In some

         instances, a system prior  to  VMS  V4.6  will  generate  the

         following error message:



         %DEBUG-E-INTERR, internal DEBUG error in

         RSTCNTRL\MERGE_CONTINUATION_DST



         To  avoid  this  error,  compile  the  affected  module  with

         /OPTIMIZE=NODISJOINT.





DOCUMENTATION ERRATA


VAX C now allows you to specify the  data  type  void  with  pointers.





















































                                                                Page 3





This is not indicated in the documentation on pointers.



The following .H files are not described in the documentation but  are

available in this release of VAX C.



      o  ASSERT.H -- Defines the assert macro.



      o  PROCESSES.H -- Defines subprocess functions.



      o  SHRDEF.H -- Defines system message code definitions of shared

         messages.



      o  SMGMSG.H -- Defines the return status code of SMG.  Note that

         this definition module is also included in SMGDEF.H.



      o  STDARG.H -- Defines access to variable-length argument lists.



      o  STDDEF.H -- Defines commonly used macros.



      o  STDLIB.H -- Defines standard types and macros.



      o  STRING.H -- Defines string functions.



      o  UNIXIO.H -- Defines UNIX emulation functions.




VAX C RUN-TIME LIBRARY FUNCTIONS



The following VAX C Run-Time Library functions are available with V4.6

of  VMS.  For more information on each of these functions, see the VAX

C Run-Time Library Reference Manual.



Functions in both the System V Interface Definition and  the  Proposed

ANSI C Language Standard



      o  The asctime function, which  converts  the  broken-down  time

         passed in a predefined structure form into a string.



      o  The assert function, which verifies a program assertion.



      o  The bsearch function, which performs a  binary  search  on  a

         sorted table.



      o  The clock function, which determines the amount of  CPU  time

         used.



      o  The gmtime function, which  converts  calendar  time  into  a

         broken-down time relative to GMT (Greenwich Mean Time).  This

         function exists but includes no functionality.



      o  The memchr, memcmp, memcpy,  memmove,  and  memset  functions

         which perform operations on areas of memory.



                                                                Page 4





      o  The qsort function, which performs a rapid sort.



      o  The setvbuf function, which allows you to specify the type of

         buffers to be used on a FILE.



      o  The strtod, strtol, and strtoul functions which allow you  to

         manipulate strings.  Specifically, the strtod function allows

         you to convert a string to a double-precision number, and the

         strtol and strtoul functions allow you to convert a string to

         an integer or unsigned integer, respectively.



      o  The strtok function, which extracts a token from a string  by

         using a specified set of token delimiters.



      o  The system function, which passes  a  command  string  to  be

         executed by the command processor.



      o  The vprintf, vfprintf, and vsprintf functions, which  perform

         formatted  output  comparable  to  the  printf,  fprintf, and

         sprintf functions.





Functions Defined in the System V Interface Definition



      o  The execlp and execvp functions, which pass the  name  of  an
         image to be activated in a child process.



      o  The  getcwd  function,  which  returns  the  current  working

         directory.



      o  The getppid function, which returns the parent process ID  of

         the calling process.





Functions Defined in the Proposed ANSI C Language Standard



      o  The atexit function, which establishes an action function  to

         be called at program termination time.



      o  The difftime function, which computes the difference  between

         two calendar times.



      o  The div and ldiv functions, which  return  the  quotient  and

         remainder after the division of their arguments.



      o  The  fgetpos  function,  which  returns  the   current   file

         position.   For  information  on  this function, see the HELP

         file.



      o  The  fmod  function,  which   computes   the   floating-point

         remainder of x/y.



      o  The fsetpos function, which sets the current  file  position.
         For information on this function, see the HELP file.























































                                                                Page 5





      o  The remove function,  which  deletes  a  closed  file.   This

         function is equivalent to the delete function.



      o  The rename function, which renames a closed file.



      o  The strerror function, which returns a C  RTL  error  message

         string corresponding to a C RTL error code.





Enhancements to Existing Functionality



      o  The fopen and freopen functions  can  now  be  used  to  open

         binary  files  when the access mode contains a 'b' character.

         The 'b'  character  cannot  appear  in  the  first  character

         position of the access mode string.



      o  The printf and scanf functions now perform  formatted  output

         and  input respectively with the addition of three new format

         flags (#, +, space) and the following new format  specifiers:

         i, p, and n.



      o  The ungetc function guarantees one character of push back  at

         all times.  This function is only valid on stream files.  Two

         calls to the ungetc function with no intervening  I/O  is  no

         longer supported.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026