User Changes 2.4.2 - Free Pascal wiki (original) (raw)

About this page

Below you can find a list of intentional changes since the previous release that can change the behaviour of previously working code, along with why these changes were performed and how you can adapt your code if you are affected by them.

All Systems

Language changes

Abstract and Sealed class modifiers

{$mode objfpc} type TSomeClass1 = class abstract: integer; end;

TSomeClass2 = class sealed: integer; end;

The above code will no longer compile.

Types changes

TObject class declaration

Unit changes

DOM unit: no longer uses avl_tree for node search optimization

Note: This is an implementation-only change. Nevertheless, it's worth documenting and explanation.

// the code like this uses xmlcfg; ... begin config.WriteString('the/very/long/path/value1', string1); config.WriteString('the/very/long/path/value2', string2); config.WriteString('the/very/long/path/value3', string3); ... end;

// can be changed to: uses xmlconf; ... begin config.OpenKey('the/very/long/path'); config.WriteString('value1', string1); config.WriteString('value2', string2); config.WriteString('value3', string3); config.CloseKey; end; // in this example, 'the/very/long/path' will be searched only once rather than 3 times, // which will improve the performance.

MacOSAll unit: changed parameter types

Sockets unit, sockaddr_in type and aliases

System.TTime

Windows

Microsoft Windows 95 support

Previous release notes

Lazarus - Release Notes and GIT Branch with Release Fixes

Release notes for Version:

Free Pascal Compiler - User Changes (Release Notes)