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)