[comp.sys.amiga] PDC 3.30: Release Notes

hummel@m.cs.uiuc.edu (08/06/89)

Release notes for PDC 3.30.2:

Bug list 
-------- 
- PDC cannot correctly take the address of function parameters that are of
  type char or short.  You can circumvent this bug by assigning the paramter
  to a dummy variable and taking the address of that.  You might consider
  declaring the dummy variable as 'static', particularly if you want the
  address to be valid after returning from the function, just beware of
  multiple invocations. 
- The arithmetic assignment and (++/--) operators do not function correctly
  for floating-point values.
- PDC cannot generate correct code for addressing automatic variables beyond 
  32K into the stack frame.

Name and copyright clarifications
---------------------------------
While PDC is an acronym for "Publicly Distributable C", it has been
frequently equated with "Public Domain C", which this software
distribution emphatically IS NOT.  Rather, the distribution (which
includes a compiler, assembler, linker, librarian, and numerous
utilities, documentation files, libraries, and header files) is as a
whole freely distributable.  Many pieces of PDC belong to the public
domain and are expressly labeled so.  Others are copyrighted and have
messages from the authors describing their terms of distribution.

Development history
-------------------
The Fish disks have included a number of compilers and assemblers.
These have had many bugs and not usable by the uninitiated C-programmer.
These various bits and pieces are collectively referred to as PDC
release 1.  Fish disk #110 gathered together Charlie Gibb's assembler
and Jeff Lydiatt's port of PDC.  It was usable by those who understand
about compilers, but generally limited in application because floats and
an integrated preprocessor were missing.  Fish disk 110 is what we refer
to as PDC release 2.  Paul then took PDC and added these two crucial 
missing features and fixed many bugs.  This provided a more robust
implementation for the experienced programmer.  The first release of
Paul's work was PDC release 3.1 which I distributed at AmiExpo/Midwest
in July '88.  PDC release 3.2 was a repackaging and maintenance release
which did not see extensive distribution. 

About PDC release 3.3
---------------------
This release presents a programming environment that is even more robust
and easier to use than before.  This is not to say that PDC is ready to
be considered commercial-grade, rather that it is now accessible to
programmers at every experience level.  Here is a list of features for
the PDC Software Distribution release 3.3:

        - PDC Compiler:
            - ANSI conformant (minus bit fields, trigraphs and a few other
              items of similar importance).  Support includes the following:
                - All ANSI preprocessor directives
                - Function prototyping
                - Structure passing and assignment
                - IEEE floating point
            - Supports Lattice-compatible libcall #pragmas, plus a #pragma
              switch to specify CPU or library based 32-bit integer math.
            - Can generate and use pre-compiled header files.
            - Allows inline code generation for __BUILTIN_ functions.
            - Can be compiled and run under UNIX (SunOS), generating DBX
              debugging info.
	- General distribution containing executables, header files, 
          libraries, sample files, and documentation on a single disk,
          plus two disks of source code.
        - Many additional tools and utilities
            - A68k version 2.42
            - CCX compiler frontend (UNIX cc clone)
            - BLink version 6.7
            - DECUS Make utility
            - Bind utility for generating stub-routines
            - Libr object module librarian
	- Source included:
            - Latest version of the PDC Compiler.
            - Latest release of Charlie Gibb's A68k assembler.
	    - PDC Libraries and miscellaneous utility programs.
	- Presents a straightforward baseline for Amiga programming, and
	  usable as a "turnkey" compiler for source code distributions.

Directions for future work
--------------------------
	- Better code generation.
        - Direct generation of object code.
        - Amiga debugging support.
        - Integration with editors that support AReXX.
        - Programmer AReXX support.
        - A linker to replace BLink.
        - IFF-based object format and resource editor.


                                Lionel D. Hummel
                                1 August 1989