What’s new in gpc-3.4.6u4

48. The compiler is compatible with Mac OS X 10.6.


What’s new in gpc-3.4.6u2

42. The compiler is compatible with Mac OS X 10.5.

43. Functional ReadString and StringOf routines.

44. const var parameters. These are always passed by reference but still accept constants as actual parameter (mainly useful for interfacing to external routines).

45. Other new features

   • better warnings for unexpected results of string comparisons
   • handle volatile attribute on types
   • allow asm in any dialect (if the asm keyword is enabled)
   • handle named exit from a method
   • check string parameters more strictly
   • use at least integer precision for arithmetic
   • refuse --executable-file-name on names without a suffix
   • do not create .gpi files from incorrect input
   • allow passing variant selector by reference in default mode
   • noinline attribute
   • check for identifier redeclaration in records and parameter lists
   • set constants are compatible with packed sets
   • pass discriminated string schema by value
   • preliminary support for OOE class views (test/view1[a-g].pas)
   • --iso-goto-restrictions option
   • --preprocessed option
   • integrated preprocessor

46. The compiler is based on the gcc-3.4.6 back-end, release notes are given here.

47. Bug fixes (see here and here).


What’s new in gpc-3.4.5u2

33. The compiler release now includes

• a native Mach-O PowerPC compiler (gpc)
• a cross compiler running on Mach-O PowerPC that produces binaries for Mach-O Intel (gpc-i386)
• a cross compiler running on Mach-O Intel that produces binaries for Mach-O PowerPC (gpc-ppc)
• a native Mach-O Intel compiler (gpc)

With these compilers, "universal" binaries can be built on both Mach-O Intel and Mach-O PowerPC

• to run the native compiler, execute gpc or gp
• to run the cross compiler, execute gpc-i368 or gpc-ppc or gp PC=gpc-i386 or gp PC=gpc-ppc
• to link to system libraries and frameworks with the cross compiler, add the following compiler option:
-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk/
• to combine target binaries into "universal" binaries, use the lipo command (see man lipo for details)

34. All known problems in the Mach-O Intel compiler have been fixed (which took some effort). Note that the Mach-O Intel target currently doesn't have the -mdynamic-no-pic option.

35. Dynamic versions of libgpc are built (and installed in /usr/lib). You can link to the dynamic libgpc by passing -lgpc-dynamic on the command-line. The advantage is smaller executables, the disadvantage that the dynamic library must be present on the system that runs the executable.

36. New options (since gpc-3.4.4d2), to choose the object-model

    --gnu-objects (default)
    --ooe-objects
    --mac-objects
    --borland-objects

    --[no]-objects-require-override
    --[no]-delphi-method-shadowing
    --[no]-objects-are-references (off by default)

37. A runtime error in the produced executable now automatically breaks into the debugger or displays (or logs) a backtrace. This behaviour can be overruled by passing --gpc-rts=--no-trap-on-error or --gpc-rts=-d when running the executable (note that this is a runtime option, not a compiler option).

38. Handle `+' and `-' in --mac-pascal mode as Mac Pascal does.

39. Added the CWordBool type.

40. The compiler is based on the gcc-3.4.5 back-end.

41. Other bug fixes.


What’s new in gpc-3.4.4d2

27. The compiler is based on the gcc-3.4.4 back-end, release notes are given here.

28. Support for traditional Macintosh Pascal style objects has been added. To get MacPascal style objects, pass --objects-are-references and --methods-always-virtual. Both options are on by default in --mac-pascal mode. In source code {$objects-are-references} and {$methods-always-virtual} can be used.

29. Exit statements can exit to another procedure in the call chain, ruled by a new option --[no]-nonlocal-exit (default in --ucsd-pascal and --mac-pascal).

30. New options implemented
    --[no-]object-checking (on by default)
    --[no-]range-and-object-checking
    --[no-]pointer-checking
    --[no-]pointer-checking-user-defined (off by default)
    --[no-]implicit-result (on by default only in --delphi mode)
    --{en,dis}able-predefined-identifier

31. The compiler is based on the gpc-20050331 front-end, release notes to be found here.

32. Several bugs have been fixed.


What’s new in gpc-3.4.3d6

16. The compiler is based on the gcc-3.4.3 back-end, release notes are given here.

17. Most Mac OS X linker and assembler options can be passed directly to the compiler. For a list of available options see link.

18. The compiler recognizes -mcpu=Gn and -mtune=Gn where Gn is G3, G4 or G5 (see link).

19. The compiler is based on the gpc-20041218 front-end, release notes to be found here.

20. Included is the "gp" utility (see link). It replaces gpc’s automake engine. It is recommended that you type "gp" instead of "gpc --automake" and "gp --autobuild" instead of "gpc --autobuild".

21. Unit propagation (uses propagation) has been implemented with a new compiler switch --[no-]propagate-units. The switch can also be used to speed up compile times of projects with many units (for a how-to read this).
 
22. Compatibility with traditional Macintosh Pascal compilers has improved:

•    Exit accepts an argument (but non-local exits are not yet supported)
•    & and |
•    Leave and Cycle (equivalent to Break and Continue)
•    Type "Pointer" is enabled in --mac-pascal mode
•    many language constructs are no longer rejected in --mac-pascal mode.

23. New built-in types, constants and routines in --mac-pascal mode:
       
Pi, UnsignedWord, UnsignedLong, InOutRes, Addr, High, RunError, GetMem, FreeMem, Mark, Release, Move, MoveLeft, MoveRight, Pack, Unpack, Int, Frac, Randomize, Random, Val, Assign, Append, Close, Flush, PLFlush, SeekEOF, SeekEOLn, Page, FilePos, PLFilePos, FileSize, Truncate, PLCrunch, Seek, BlockRead, BlockWrite, Erase, Rename, Str, ReadString.

24. To work around a back-end problem with non-local goto’s, the compiler switch --longjump-all-nonlocal-labels is by default on in the Mac OS X distribution.

25. Qualified identifiers have been implemented.

26. Added the compiler option -mdynamic-no-pic. This generates non-position-indepent code that is still compatible with Apple's dynamic linker. This is recommended for standalone executables (but can not be used for shared libraries). The resulting code is somewhat more efficient (see link).


What’s new in gpc-3.3.2d1


15. GNU Pascal now partially implements range-checking, full implementation to be expected in the next release.

16. The compiler is based on gcc-3.3.2.

17. The compiler is based on gpc-20030830. Release notes are included with the software.


What’s new in gpc-3.3d6

  9. GNU Pascal can be used to build Mac OS X dynamically linked shared libraries, loadable bundles and frameworks.

10. Exception handling is compatible with Mac OS X. This solves the "#### FDE 0x2aea4 (OB 0x140880, fde_end 0x2affc) has zero length!Aborting" problem.

11. The GNU Pascal port of the Apple’s Universal PInterfaces has been updated.

12. The compiler option --longjmp-all-nonlocal-labels works around a bug in the gcc back-end for non-local goto’s (see the troubleshooting section of the FAQ).

13. Please note that type definitions like "Integer(32)" have changed to "Integer attribute( size = 32)".

14. The compiler is based on gpc-20030507. Release notes are included with the software.


What’s new in gpc-3.2.1d11

6. The Apple Universal PInterfaces have been ported to GNU Pascal.

7. The compiler has a directive $maximum-field-alignment=N, where N = 0, 8, 16 or 32. It is used in the ported PInterfaces.

8. The compiler is based on gpc-20030323. Release notes are included with the software.


What’s new in gpc-3.2.1d9

2. A patch to the gcc compiler back-end fixes trampoline crashes. The patch is provided by Andrew Reynolds from the Ada for Mac OS X team.

3. A patch to the gcc compiler back-end fixes longjump (goto) crashes. The patch is provided by Andrew Reynolds from the Ada for Mac OS X team.

4. The compiler is based on gpc-20030209. Release notes are included with the software.

5. The compiler supports Macintosh-style conditional compiler directives: $ifc, $elsec, $endc, $definec, $macro, $elifc, $undefc, $errorc and $undefc.


What’s new in gpc-3.2.1d3


1. The first prerelease of GNU Pascal for Mac OS X. The compiler proved to be much better than expected.


(back to the GNU Pascal for Mac OS X page)