Sign in Join
Wiki copytemporary

User Changes Trunk

About this page

Listed below are intentional changes made to the FPC compiler (trunk) since the previous release that may break existing code. The list includes reasons why these changes have been implemented, and suggestions for how you might adapt your code if you find that previously working code has been adversely affected by these recent changes.

The list of new features that do not break existing code can be found here.

Please add revision numbers to the entries from now on. This facilitates moving merged items to the user changes of a release.

All systems

Language Changes

Precedence of the IS operator changed

Visibilities of members of generic specializations

Implementation Changes

Disabled default support for automatic conversions of regular arrays to dynamic arrays

pascal
{$mode objfpc}
type
  tdynarray = array of byte;

procedure test(var arr); overload;
begin
  pbyte(arr)[0]:=1;
end;

procedure test(arr: tdynarray); overload;
begin
  test[0]:=1;
end;

var
  regulararray: array[1..1] of byte;
begin
  regulararray[1]:=0;
  test(arr);
  writeln(arr[0]); // writes 0, because it calls test(tdynarr)
end.

Directive clause […] no longer useable with modeswitch PrefixedAttributes

pascal
// this
procedure Test; cdecl; [public,alias:'foo']
begin
end;

// becomes this
procedure Test; cdecl; public; alias:'foo';
begin
end;

Type information contains reference to attribute table

Explicit values for enumeration types are limited to low(longint) ... high(longint)

Comp as a type rename of Int64 instead of an alias

Routines that only differ in result type

Open Strings mode enabled by default in mode Delphi

Unit changes

System - TVariantManager

System - buffering of output to text files

System - type returned by BasicEventCreate on Windows

System - Ref. count of strings

System.UITypes - function TRectF.Union changed to procedure

64-bit values in OleVariant

Classes TCollection.Move

Math Min/MaxSingle/Double

Random generator

Types.TPointF.operator *

CocoaAll

CoreImage Framework Linking

DB

TMSSQLConnection uses TDS protocol version 7.3 (MS SQL Server 2008)
DB.TFieldType: new types added

DaemonApp

TDaemonThread
TDaemon

FileInfo

Sha1

Image

FreeType: include bearings and invisible characters into text bounds

Generics.Collections & Generics.Defaults

AArch64/ARM64

{-style comments no longer supported in assembler blocks

Darwin/iOS

Previous release notes


From the Free Pascal wiki, page "User Changes Trunk", as it stood on 2024-02-09 after a change by PascalDragon, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.