From b5b1dc6dea71df2c57eebf01e95cf74f6e86bd19 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 5 Aug 2020 07:27:08 +0000 Subject: [PATCH 01/26] * fixed ppc64 triple architecture names git-svn-id: trunk@46239 - --- compiler/powerpc64/tripletcpu.pas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/powerpc64/tripletcpu.pas b/compiler/powerpc64/tripletcpu.pas index cf3bdef2d8..37563499db 100644 --- a/compiler/powerpc64/tripletcpu.pas +++ b/compiler/powerpc64/tripletcpu.pas @@ -38,9 +38,9 @@ uses function tripletcpustr(tripletstyle: ttripletstyle): ansistring; begin if target_info.endian=endian_little then - result:='ppc64le' + result:='powerpc64le' else - result:='ppc64' + result:='powerpc64' end; From 299799c33c9e9086f87167dba635e8fc9a3b5428 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 08:40:32 +0000 Subject: [PATCH 02/26] Add name of package for which dependency is checked to get a more useful error message git-svn-id: trunk@46240 - --- packages/fpmkunit/src/fpmkunit.pp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp index aa3ec09fb9..93007d8877 100644 --- a/packages/fpmkunit/src/fpmkunit.pp +++ b/packages/fpmkunit/src/fpmkunit.pp @@ -1257,7 +1257,7 @@ Type Procedure Clean(APackage : TPackage; ACPU:TCPU; AOS : TOS); Procedure CompileDependencies(APackage : TPackage); function CheckDependencies(APackage : TPackage; ErrorOnFailure: boolean): TCheckDependencyResult; - Function CheckExternalPackage(Const APackageName : String; ErrorOnFailure: boolean):TPackage; + Function CheckExternalPackage(Const APackageName, ForPackageName : String; ErrorOnFailure: boolean):TPackage; procedure CreateOutputDir(APackage: TPackage); // Packages commands Procedure Compile(Packages : TPackages); @@ -1666,7 +1666,7 @@ ResourceString SErrNoDictionaryValue = 'The item "%s" in the dictionary is not a value'; SErrNoDictionaryFunc = 'The item "%s" in the dictionary is not a function'; SErrInvalidFPCInfo = 'Compiler returns invalid information, check if fpc -iV works'; - SErrDependencyNotFound = 'Could not find unit directory for dependency package "%s"'; + SErrDependencyNotFound = 'Could not find unit directory for dependency package "%s" required for package "%s"'; SErrAlreadyInitialized = 'Installer can only be initialized once'; SErrInvalidState = 'Invalid state for target %s'; SErrCouldNotCompile = 'Could not compile target %s from package %s'; @@ -7260,7 +7260,7 @@ begin end; -function TBuildEngine.CheckExternalPackage(Const APackageName : String; ErrorOnFailure: boolean):TPackage; +function TBuildEngine.CheckExternalPackage(Const APackageName, ForPackageName : String; ErrorOnFailure: boolean):TPackage; var S : String; F : String; @@ -7294,7 +7294,7 @@ begin CompileDependencies(Result); end else if ErrorOnFailure then - Error(SErrDependencyNotFound,[APackageName]); + Error(SErrDependencyNotFound,[APackageName,ForPackageName]); end; @@ -7327,7 +7327,7 @@ begin end else begin - D.Target:=CheckExternalPackage(D.Value, true); + D.Target:=CheckExternalPackage(D.Value, APackage.Name, true); P:=TPackage(D.Target); end; if (D.RequireChecksum<>$ffffffff) and (D.RequireChecksum<>0) and @@ -7369,7 +7369,7 @@ begin end else begin - D.Target:=CheckExternalPackage(D.Value, ErrorOnFailure); + D.Target:=CheckExternalPackage(D.Value, APackage.Name, ErrorOnFailure); P:=TPackage(D.Target); end; if (D.RequireChecksum<>$ffffffff) and From 738c11199be19de4806dc6c96299c3154f1ee2fe Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 09:05:14 +0000 Subject: [PATCH 03/26] Add amstradcpc OS support for fpcmake and fpmkunit git-svn-id: trunk@46241 - --- packages/fpmkunit/src/fpmkunit.pp | 5 +++-- utils/fpcm/fpcmmain.pp | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp index 93007d8877..85d394bac1 100644 --- a/packages/fpmkunit/src/fpmkunit.pp +++ b/packages/fpmkunit/src/fpmkunit.pp @@ -122,7 +122,7 @@ Type palmos,macosclassic,darwin,emx,watcom,morphos,netwlibc, win64,wince,gba,nds,embedded,symbian,haiku,iphonesim, aix,java,android,nativent,msdos,wii,aros,dragonfly, - win16,wasm,freertos,zxspectrum,msxdos,ios + win16,wasm,freertos,zxspectrum,msxdos,ios,amstradcpc ); TOSes = Set of TOS; @@ -230,7 +230,8 @@ Const { freertos }( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true , false), {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true ), { msxdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true ), - { ios } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false) + { ios } ( false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false), + {amstradcpc}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true ) ); // Useful diff --git a/utils/fpcm/fpcmmain.pp b/utils/fpcm/fpcmmain.pp index 424e094322..c4927ebc52 100644 --- a/utils/fpcm/fpcmmain.pp +++ b/utils/fpcm/fpcmmain.pp @@ -78,7 +78,7 @@ interface o_palmos,o_macosclassic,o_darwin,o_emx,o_watcom,o_morphos,o_netwlibc, o_win64,o_wince,o_gba,o_nds,o_embedded,o_symbian,o_nativent,o_iphonesim, o_wii,o_aix,o_java,o_android,o_msdos,o_aros,o_dragonfly,o_win16,o_wasm,o_freertos, - o_zxspectrum,o_msxdos,o_ios + o_zxspectrum,o_msxdos,o_ios,o_amstradcpc ); TTargetSet=array[tcpu,tos] of boolean; @@ -103,7 +103,7 @@ interface 'win64','wince','gba','nds','embedded','symbian','nativent', 'iphonesim', 'wii', 'aix', 'java', 'android', 'msdos', 'aros', 'dragonfly', 'win16', 'wasm', 'freertos', 'zxspectrum', 'msxdos', - 'ios' + 'ios','amstradcpc' ); OSSuffix : array[TOS] of string=( @@ -113,7 +113,7 @@ interface '_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent', '_iphonesim','_wii','_aix','_java','_android','_msdos','_aros', '_dragonfly','_win16','_wasm','_freertos','_zxspectrum','_msxdos', - '_ios' + '_ios','_amstradcpc' ); { This table is kept OS,Cpu because it is easier to maintain (PFV) } @@ -161,7 +161,8 @@ interface { freertos }( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false), {zxspectrum}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true), { msxdos} ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true), - { ios } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false) + { ios } ( false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, true , false, false, false, false, false, false), + {amstradcpc}( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true) ); type From dcdb57027ac01c861ffb550d599f02238fae5499 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 09:20:06 +0000 Subject: [PATCH 04/26] Update after commit #46241 git-svn-id: trunk@46242 - --- utils/fpcm/revision.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/fpcm/revision.inc b/utils/fpcm/revision.inc index 33a3cf75b5..1d76f44f3a 100644 --- a/utils/fpcm/revision.inc +++ b/utils/fpcm/revision.inc @@ -1 +1 @@ -'2020-08-04 rev 46222' +'2020-08-05 rev 46241' From 42866bbde5f48187dcea24520d0f2fa98ee2ce8a Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 09:28:54 +0000 Subject: [PATCH 05/26] Change list of supported OSes git-svn-id: trunk@46243 - --- utils/unicode/fpmake.pp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/unicode/fpmake.pp b/utils/unicode/fpmake.pp index c130f41999..56e696e672 100644 --- a/utils/unicode/fpmake.pp +++ b/utils/unicode/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-unicode'); P.ShortName:='ucd'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; @@ -34,7 +34,7 @@ begin P.Dependencies.Add('fcl-base'); P.Dependencies.Add('fcl-xml'); - P.OSes:=[win32, win64, linux, darwin, os2, emx]; + // P.OSes:=[win32, win64, linux, darwin, os2, emx]; T := P.Targets.AddImplicitUnit('helper.pas'); T.ResourceStrings := true; From 644678daaad3ae74d7495f7d864a69f835d7fe51 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 09:30:16 +0000 Subject: [PATCH 06/26] Add zxspectrum, msxdos and amstradcpc list of unsupported OSes for most utils packages git-svn-id: trunk@46244 - --- .gitignore | 2 ++ utils/fpcm/fpmake.pp | 2 +- utils/fpcmkcfg/fpmake.pp | 2 +- utils/fpcres/fpmake.pp | 2 +- utils/fpcreslipo/fpmake.pp | 2 +- utils/fpdoc/fpmake.pp | 2 +- utils/fppkg/fpmake.pp | 2 +- utils/fprcp/fpmake.pp | 4 ++-- utils/h2pas/fpmake.pp | 4 ++-- utils/importtl/fpmake.pp | 2 +- utils/instantfpc/fpmake.pp | 2 +- utils/json2pas/fpmake.pp | 2 +- utils/pas2fpm/fpmake.pp | 2 +- utils/pas2jni/fpmake.pp | 2 +- utils/pas2ut/fpmake.pp | 2 +- utils/tply/fpmake.pp | 4 ++-- 16 files changed, 20 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index ab447f089e..40312308ea 100644 --- a/.gitignore +++ b/.gitignore @@ -7732,6 +7732,8 @@ utils/fpcm/fpcmade.* utils/fpcm/fpcmake utils/fpcm/units utils/fpcmade.* +utils/fpcmkcfg/bin +utils/fpcmkcfg/units utils/fpcres/*.bak utils/fpcres/*.exe utils/fpcres/*.o diff --git a/utils/fpcm/fpmake.pp b/utils/fpcm/fpmake.pp index e880bf64a1..315af8602e 100644 --- a/utils/fpcm/fpmake.pp +++ b/utils/fpcm/fpmake.pp @@ -205,7 +205,7 @@ begin begin P:=AddPackage('utils-fpcm'); P.ShortName:='fpcm'; - P.OSes:=AllOSes-[embedded,msdos,nativent,win16,macosclassic,atari,palmos]; + P.OSes:=AllOSes-[embedded,msdos,nativent,win16,macosclassic,atari,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/fpcmkcfg/fpmake.pp b/utils/fpcmkcfg/fpmake.pp index 403ce496aa..27369d8711 100644 --- a/utils/fpcmkcfg/fpmake.pp +++ b/utils/fpcmkcfg/fpmake.pp @@ -18,7 +18,7 @@ begin begin P:=AddPackage('utils-fpcmkcfg'); P.ShortName:='fcmk'; - P.OSes:=AllOSes-[embedded,msdos,nativent,win16,atari,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,nativent,win16,atari,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/fpcres/fpmake.pp b/utils/fpcres/fpmake.pp index bdb5f60805..bbc92b9a0f 100644 --- a/utils/fpcres/fpmake.pp +++ b/utils/fpcres/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-fpcres'); P.ShortName:='fprs'; - P.OSes:=AllOSes-[atari,embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[atari,embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; //P.OSes:=[win32,win64,wince,haiku,linux,freebsd,openbsd,netbsd,darwin,iphonesim,ios,solaris,os2,emx,aix,aros,amiga,morphos]; if Defaults.CPU=jvm then diff --git a/utils/fpcreslipo/fpmake.pp b/utils/fpcreslipo/fpmake.pp index 19e0e996da..6518ea668e 100644 --- a/utils/fpcreslipo/fpmake.pp +++ b/utils/fpcreslipo/fpmake.pp @@ -17,7 +17,7 @@ begin P:=AddPackage('utils-fpcreslipo'); P.ShortName:='fprl'; P.Description:='Free Pascal External Resource Thinner'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/fpdoc/fpmake.pp b/utils/fpdoc/fpmake.pp index 0d6922c3ee..d0948513a6 100644 --- a/utils/fpdoc/fpmake.pp +++ b/utils/fpdoc/fpmake.pp @@ -25,7 +25,7 @@ begin P.Description := 'Free Pascal documentation generation utility.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari]; + P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/fppkg/fpmake.pp b/utils/fppkg/fpmake.pp index a885a90364..e28d5a5bfd 100644 --- a/utils/fppkg/fpmake.pp +++ b/utils/fppkg/fpmake.pp @@ -31,7 +31,7 @@ begin P.Directory:=ADirectory; P.Version:='3.3.1'; - P.OSes := P.OSes - [embedded,nativent,msdos,go32v2,win16,atari,macosclassic,palmos,symbian]; + P.OSes := P.OSes - [embedded,nativent,msdos,go32v2,win16,atari,macosclassic,palmos,symbian,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/fprcp/fpmake.pp b/utils/fprcp/fpmake.pp index 61473bce00..b408037635 100644 --- a/utils/fprcp/fpmake.pp +++ b/utils/fprcp/fpmake.pp @@ -24,9 +24,9 @@ begin { palmos does not have classes } P.OSes := P.OSes - [palmos]; { Program does not fit in 16-bit memory constraints } - P.OSes := P.OSes - [msdos,win16]; + P.OSes := P.OSes - [msdos,win16,zxspectrum,msxdos,amstradcpc]; { avr-embedded and i8086-embedded have not floating point support by default } - if Defaults.CPU in [avr,i8086] then + if Defaults.CPU in [avr,i8086,z80] then P.OSes := P.OSes - [embedded]; P.Author := ''; diff --git a/utils/h2pas/fpmake.pp b/utils/h2pas/fpmake.pp index 3e6148d5cf..1ca300a056 100644 --- a/utils/h2pas/fpmake.pp +++ b/utils/h2pas/fpmake.pp @@ -23,9 +23,9 @@ begin { palmos does not support command line parameters } P.OSes := P.OSes - [palmos]; { Program does not fit in 16-bit memory constraints } - P.OSes := P.OSes - [msdos,win16]; + P.OSes := P.OSes - [msdos,win16,zxspectrum,msxdos,amstradcpc]; { avr-embedded and i8086-embedded do not support all needed features by default } - if Defaults.CPU in [avr,i8086] then + if Defaults.CPU in [avr,i8086,z80] then P.OSes := P.OSes - [embedded]; P.Author := ''; diff --git a/utils/importtl/fpmake.pp b/utils/importtl/fpmake.pp index 18e8b31f44..e3b6849cbd 100644 --- a/utils/importtl/fpmake.pp +++ b/utils/importtl/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-importtl'); P.ShortName:='impt'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/instantfpc/fpmake.pp b/utils/instantfpc/fpmake.pp index 5f50c8b752..9d85bb3c86 100644 --- a/utils/instantfpc/fpmake.pp +++ b/utils/instantfpc/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-instantfpc'); P.ShortName:='ifpc'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/json2pas/fpmake.pp b/utils/json2pas/fpmake.pp index 043491dc7d..6ac5f4b30e 100644 --- a/utils/json2pas/fpmake.pp +++ b/utils/json2pas/fpmake.pp @@ -18,7 +18,7 @@ begin P.Dependencies.Add('fcl-json'); P.ShortName:='js2p'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/pas2fpm/fpmake.pp b/utils/pas2fpm/fpmake.pp index f835c96ce6..99ce5022c3 100644 --- a/utils/pas2fpm/fpmake.pp +++ b/utils/pas2fpm/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-pas2fpm'); p.ShortName:='p2fm'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/pas2jni/fpmake.pp b/utils/pas2jni/fpmake.pp index d1a55b8f73..632564b428 100644 --- a/utils/pas2jni/fpmake.pp +++ b/utils/pas2jni/fpmake.pp @@ -24,7 +24,7 @@ begin P.Email := ''; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari]; + P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/pas2ut/fpmake.pp b/utils/pas2ut/fpmake.pp index 2581137b09..10339bba6c 100644 --- a/utils/pas2ut/fpmake.pp +++ b/utils/pas2ut/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-pas2ut'); P.ShortName:='p2ut'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/utils/tply/fpmake.pp b/utils/tply/fpmake.pp index d0c55aa76b..b43a585bdc 100644 --- a/utils/tply/fpmake.pp +++ b/utils/tply/fpmake.pp @@ -24,9 +24,9 @@ begin { palmos does not support command line parameters } P.OSes := P.OSes - [palmos]; { Program does not fit in 16-bit memory constraints } - P.OSes := P.OSes - [msdos,win16]; + P.OSes := P.OSes - [msdos,win16,zxspectrum,msxdos,amstradcpc]; { avr-embedded and i8086-embedded do not meet needed requirements } - if Defaults.CPU in [avr,i8086] then + if Defaults.CPU in [avr,i8086,z80] then P.OSes := P.OSes - [embedded]; P.Author := ''; From 754374d2eec1e6dfac22fb80f431b420e0f2a5ce Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 09:31:30 +0000 Subject: [PATCH 07/26] Add amstradcpc to the list of unsupported OSes base utils git-svn-id: trunk@46245 - --- utils/fpmake.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/fpmake.pp b/utils/fpmake.pp index b12009b2da..1e03222455 100644 --- a/utils/fpmake.pp +++ b/utils/fpmake.pp @@ -51,7 +51,7 @@ begin begin P:=AddPackage('utils'); P.ShortName := 'tils'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; From 6ce1b7d272ee3219d7df9719bf79d0d044ef6afd Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 10:46:20 +0000 Subject: [PATCH 08/26] Disable native compilation of ihcutil for zxspectrum, msxdos and amstadcpc as it requires fcl-base package git-svn-id: trunk@46246 - --- utils/ihxutil/fpmake.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/ihxutil/fpmake.pp b/utils/ihxutil/fpmake.pp index 2d2da86708..d01096b293 100644 --- a/utils/ihxutil/fpmake.pp +++ b/utils/ihxutil/fpmake.pp @@ -16,7 +16,7 @@ begin begin P:=AddPackage('utils-ihxutil'); P.ShortName:='ihxutil'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; From 6f27c2390e8523fdbab3905ebe1cad82d8b340f8 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 5 Aug 2020 10:47:24 +0000 Subject: [PATCH 09/26] Disable compilation of most packages for msxdos and amstadcpc OS git-svn-id: trunk@46247 - --- packages/bzip2/fpmake.pp | 2 +- packages/chm/fpmake.pp | 2 +- packages/fcl-base/fpmake.pp | 2 +- packages/fcl-db/fpmake.pp | 2 +- packages/fcl-fpcunit/fpmake.pp | 2 +- packages/fcl-image/fpmake.pp | 2 +- packages/fcl-js/fpmake.pp | 2 +- packages/fcl-json/fpmake.pp | 2 +- packages/fcl-net/fpmake.pp | 2 +- packages/fcl-passrc/fpmake.pp | 2 +- packages/fcl-pdf/fpmake.pp | 2 +- packages/fcl-process/fpmake.pp | 2 +- packages/fcl-registry/fpmake.pp | 2 +- packages/fcl-res/fpmake.pp | 2 +- packages/fcl-sdo/fpmake.pp | 2 +- packages/fcl-sound/fpmake.pp | 2 +- packages/fcl-stl/fpmake.pp | 2 +- packages/fcl-xml/fpmake.pp | 2 +- packages/fpmkunit/fpmake.pp | 2 +- packages/fppkg/fpmake.pp | 2 +- packages/hash/fpmake.pp | 2 +- packages/hermes/fpmake.pp | 2 +- packages/libgd/fpmake.pp | 2 +- packages/libtar/fpmake.pp | 2 +- packages/pasjpeg/fpmake.pp | 2 +- packages/paszlib/fpmake.pp | 2 +- packages/regexpr/fpmake.pp | 2 +- packages/rtl-generics/fpmake.pp | 2 +- packages/sdl/fpmake.pp | 4 +++- packages/symbolic/fpmake.pp | 2 +- packages/unzip/fpmake.pp | 2 +- packages/webidl/fpmake.pp | 2 +- 32 files changed, 34 insertions(+), 32 deletions(-) diff --git a/packages/bzip2/fpmake.pp b/packages/bzip2/fpmake.pp index e0ee2eda16..ba8c45df43 100644 --- a/packages/bzip2/fpmake.pp +++ b/packages/bzip2/fpmake.pp @@ -28,7 +28,7 @@ begin P.Email := ''; P.Description := 'BZip2 decompression unit.'; P.NeedLibC:= true; - P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum,msxdos]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/chm/fpmake.pp b/packages/chm/fpmake.pp index d7c791e914..25c65e3672 100644 --- a/packages/chm/fpmake.pp +++ b/packages/chm/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'Standalone CHM reader and writer library'; P.NeedLibC:= false; - P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,atari,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,atari,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-base/fpmake.pp b/packages/fcl-base/fpmake.pp index dbabbb240a..832bec2e2e 100644 --- a/packages/fcl-base/fpmake.pp +++ b/packages/fcl-base/fpmake.pp @@ -27,7 +27,7 @@ begin P.Email := ''; P.Description := 'Base library of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-db/fpmake.pp b/packages/fcl-db/fpmake.pp index e68d4d70da..6e6c3b41ec 100644 --- a/packages/fcl-db/fpmake.pp +++ b/packages/fcl-db/fpmake.pp @@ -32,7 +32,7 @@ begin P.Email := ''; P.Description := 'Database library of Free Component Libraries(FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-fpcunit/fpmake.pp b/packages/fcl-fpcunit/fpmake.pp index 4e28ee2567..fb659a33c5 100644 --- a/packages/fcl-fpcunit/fpmake.pp +++ b/packages/fcl-fpcunit/fpmake.pp @@ -30,7 +30,7 @@ begin P.Email := ''; P.Description := 'Unit testing system inspired by JUnit of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,symbian,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,symbian,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-image/fpmake.pp b/packages/fcl-image/fpmake.pp index 1f68e5d22d..aa02e330ec 100644 --- a/packages/fcl-image/fpmake.pp +++ b/packages/fcl-image/fpmake.pp @@ -28,7 +28,7 @@ begin P.Email := ''; P.Description := 'Image loading and conversion parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-js/fpmake.pp b/packages/fcl-js/fpmake.pp index d9ee8c31d6..34287a1a0f 100644 --- a/packages/fcl-js/fpmake.pp +++ b/packages/fcl-js/fpmake.pp @@ -23,7 +23,7 @@ begin P.HomepageURL := 'www.freepascal.org'; P.Email := 'michael@freepascal.org'; P.Description := 'Javascript scanner/parser/syntax tree units'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-json/fpmake.pp b/packages/fcl-json/fpmake.pp index d564eb09fb..991f903997 100644 --- a/packages/fcl-json/fpmake.pp +++ b/packages/fcl-json/fpmake.pp @@ -26,7 +26,7 @@ begin P.Email := ''; P.Description := 'Json interfacing, part of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-net/fpmake.pp b/packages/fcl-net/fpmake.pp index 273f95fe17..2ba44d78d7 100644 --- a/packages/fcl-net/fpmake.pp +++ b/packages/fcl-net/fpmake.pp @@ -30,7 +30,7 @@ begin P.Email := ''; P.Description := 'Network related parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-passrc/fpmake.pp b/packages/fcl-passrc/fpmake.pp index 6f365b6f36..f0936de865 100644 --- a/packages/fcl-passrc/fpmake.pp +++ b/packages/fcl-passrc/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'Pascal parsing parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-pdf/fpmake.pp b/packages/fcl-pdf/fpmake.pp index 04af32938e..307866ec97 100644 --- a/packages/fcl-pdf/fpmake.pp +++ b/packages/fcl-pdf/fpmake.pp @@ -24,7 +24,7 @@ begin P.Email := ''; P.Description := 'PDF generating and TTF file info library'; P.NeedLibC:= false; - P.OSes:=P.OSes-[embedded,win16,msdos,nativent,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,win16,msdos,nativent,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-process/fpmake.pp b/packages/fcl-process/fpmake.pp index ff581a228a..4eae0f47ae 100644 --- a/packages/fcl-process/fpmake.pp +++ b/packages/fcl-process/fpmake.pp @@ -25,7 +25,7 @@ begin P.Description := 'Process (execution) related parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.Options.Add('-S2h'); P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,go32v2,nativent,macosclassic,palmos,atari,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-registry/fpmake.pp b/packages/fcl-registry/fpmake.pp index 75f88ec253..6f8f92bdfc 100644 --- a/packages/fcl-registry/fpmake.pp +++ b/packages/fcl-registry/fpmake.pp @@ -27,7 +27,7 @@ begin P.Email := ''; P.Description := 'Windows registry + emulation parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-res/fpmake.pp b/packages/fcl-res/fpmake.pp index a7ce667e93..b067264db1 100644 --- a/packages/fcl-res/fpmake.pp +++ b/packages/fcl-res/fpmake.pp @@ -24,7 +24,7 @@ begin P.Email := ''; P.Description := 'Resource handling of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-sdo/fpmake.pp b/packages/fcl-sdo/fpmake.pp index b84d10167e..fb22f3ee2e 100644 --- a/packages/fcl-sdo/fpmake.pp +++ b/packages/fcl-sdo/fpmake.pp @@ -25,7 +25,7 @@ begin P.HomepageURL := 'www.freepascal.org'; P.Email := 'inoussa12@gmail.com'; P.Description := 'Free Pascal implementation of Service Data Objects'; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-sound/fpmake.pp b/packages/fcl-sound/fpmake.pp index b991ae0f76..f8573df35d 100644 --- a/packages/fcl-sound/fpmake.pp +++ b/packages/fcl-sound/fpmake.pp @@ -26,7 +26,7 @@ begin P.Email := ''; P.Description := 'Sound loading, storing and conversion parts for the Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-stl/fpmake.pp b/packages/fcl-stl/fpmake.pp index 918ef0d0ce..1faf390b7f 100644 --- a/packages/fcl-stl/fpmake.pp +++ b/packages/fcl-stl/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'Generic container library of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,zxspectrum]; + P.OSes:=AllOSes-[embedded,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fcl-xml/fpmake.pp b/packages/fcl-xml/fpmake.pp index 37205b0757..1ddfbfe9ce 100644 --- a/packages/fcl-xml/fpmake.pp +++ b/packages/fcl-xml/fpmake.pp @@ -29,7 +29,7 @@ begin P.Email := ''; P.Description := 'XML and DOM parts of Free Component Libraries (FCL), FPC''s OOP library.'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fpmkunit/fpmake.pp b/packages/fpmkunit/fpmake.pp index 9787a5c8fe..2138cfca31 100644 --- a/packages/fpmkunit/fpmake.pp +++ b/packages/fpmkunit/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'Basic library of the fpmake/fppkg build system.'; P.NeedLibC:= false; // true for headers that indirectly link to libc? - P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macosclassic,palmos,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/fppkg/fpmake.pp b/packages/fppkg/fpmake.pp index cb01bc353e..ec219485fa 100644 --- a/packages/fppkg/fpmake.pp +++ b/packages/fppkg/fpmake.pp @@ -44,7 +44,7 @@ begin P.Email := ''; P.Description := 'Libraries to create fppkg package managers.'; P.NeedLibC:= false; - P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macosclassic,palmos,symbian,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,atari,macosclassic,palmos,symbian,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/hash/fpmake.pp b/packages/hash/fpmake.pp index a8f51a5bdc..4afb7af086 100644 --- a/packages/hash/fpmake.pp +++ b/packages/hash/fpmake.pp @@ -23,7 +23,7 @@ begin P.Email := ''; P.Description := 'Several hash and cryptography algorithms (MD5,CRC,Linux crypt and NTLM1).'; P.NeedLibC:= false; - P.OSes:=P.OSes-[embedded,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/hermes/fpmake.pp b/packages/hermes/fpmake.pp index 87bce81e96..d29e35b111 100644 --- a/packages/hermes/fpmake.pp +++ b/packages/hermes/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'Library for pixel graphics conversion'; P.NeedLibC := false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/libgd/fpmake.pp b/packages/libgd/fpmake.pp index e017836bce..cd6e41fb99 100644 --- a/packages/libgd/fpmake.pp +++ b/packages/libgd/fpmake.pp @@ -20,7 +20,7 @@ begin {$endif ALLPACKAGES} P.Version:='3.3.1'; P.SourcePath.Add('src'); - P.OSes := P.OSes - [embedded,nativent,msdos,wii,win16,atari,macosclassic,palmos,symbian,freertos,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,wii,win16,atari,macosclassic,palmos,symbian,freertos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/libtar/fpmake.pp b/packages/libtar/fpmake.pp index c1ec40fd39..dd6194035f 100644 --- a/packages/libtar/fpmake.pp +++ b/packages/libtar/fpmake.pp @@ -24,7 +24,7 @@ begin P.HomepageURL := 'http://www.destructor.de/'; P.Description := 'Library for handling tar-files.'; - P.OSes:=AllOSes-[embedded,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/pasjpeg/fpmake.pp b/packages/pasjpeg/fpmake.pp index fad016d8ed..7b7efa26c0 100644 --- a/packages/pasjpeg/fpmake.pp +++ b/packages/pasjpeg/fpmake.pp @@ -19,7 +19,7 @@ begin P.Directory:=ADirectory; {$endif ALLPACKAGES} P.Version:='3.3.1'; - P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/paszlib/fpmake.pp b/packages/paszlib/fpmake.pp index 0c55d55726..60c6c4a5fd 100644 --- a/packages/paszlib/fpmake.pp +++ b/packages/paszlib/fpmake.pp @@ -20,7 +20,7 @@ begin P.Directory:=ADirectory; {$endif ALLPACKAGES} P.Version:='3.3.1'; - P.OSes := P.OSes - [embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes := P.OSes - [embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/regexpr/fpmake.pp b/packages/regexpr/fpmake.pp index 697f5e34dc..424c2b5fc4 100644 --- a/packages/regexpr/fpmake.pp +++ b/packages/regexpr/fpmake.pp @@ -19,7 +19,7 @@ begin P.Directory:=ADirectory; {$endif ALLPACKAGES} P.Version:='3.3.1'; - P.OSes:=P.OSes-[embedded,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/rtl-generics/fpmake.pp b/packages/rtl-generics/fpmake.pp index 5422c45377..e8a57f364d 100644 --- a/packages/rtl-generics/fpmake.pp +++ b/packages/rtl-generics/fpmake.pp @@ -23,7 +23,7 @@ begin P.Email := ''; P.Description := 'Generic collection library.'; P.NeedLibC:= false; - P.OSes := AllOSes-[embedded,win16,macosclassic,palmos,zxspectrum]; + P.OSes := AllOSes-[embedded,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/sdl/fpmake.pp b/packages/sdl/fpmake.pp index 5ada724b0d..da2ade19e8 100644 --- a/packages/sdl/fpmake.pp +++ b/packages/sdl/fpmake.pp @@ -24,7 +24,9 @@ begin P.Dependencies.Add('morphunits',[morphos]); if Defaults.CPU=arm then P.OSes := P.OSes - [darwin]; - P.OSes := P.OSes - [iphonesim,ios,java,os2,emx,go32v2,watcom,netware,netwlibc,nativent,embedded,android,amiga,aros,msdos,gba,nds,win16,atari,macosclassic,palmos,symbian,wii,freertos,zxspectrum]; + P.OSes := P.OSes - [iphonesim,ios,java,os2,emx,go32v2,watcom,netware,netwlibc,nativent,embedded, + android,amiga,aros,msdos,gba,nds,win16,atari,macosclassic,palmos,symbian,wii, + freertos,zxspectrum,msxdos,amstradcpc]; T:=P.Targets.AddUnit('logger.pas'); with T.Dependencies do diff --git a/packages/symbolic/fpmake.pp b/packages/symbolic/fpmake.pp index c99b721fac..2fb8ed2def 100644 --- a/packages/symbolic/fpmake.pp +++ b/packages/symbolic/fpmake.pp @@ -23,7 +23,7 @@ begin P.Email := ''; P.Description := 'Expression parser with support for fast evaluation'; P.NeedLibC:= false; - P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=P.OSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/unzip/fpmake.pp b/packages/unzip/fpmake.pp index af795b5ae6..1f0e5b74bd 100644 --- a/packages/unzip/fpmake.pp +++ b/packages/unzip/fpmake.pp @@ -20,7 +20,7 @@ begin {$endif ALLPACKAGES} P.Version:='3.3.1'; P.SourcePath.Add('src'); - P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes := P.OSes - [embedded,nativent,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; diff --git a/packages/webidl/fpmake.pp b/packages/webidl/fpmake.pp index ba2700770f..43188f02e6 100644 --- a/packages/webidl/fpmake.pp +++ b/packages/webidl/fpmake.pp @@ -25,7 +25,7 @@ begin P.Email := ''; P.Description := 'WEB IDL parser and converter to Object Pascal classes'; P.NeedLibC:= false; - P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum]; + P.OSes:=AllOSes-[embedded,msdos,win16,macosclassic,palmos,zxspectrum,msxdos,amstradcpc]; if Defaults.CPU=jvm then P.OSes := P.OSes - [java,android]; From eb21b39012714b5ea01ae9f5735b036fc1ebc4dd Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 5 Aug 2020 11:37:11 +0000 Subject: [PATCH 10/26] * Fix extension to fit platform git-svn-id: trunk@46248 - --- packages/gnutls/src/gnutls.pp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/gnutls/src/gnutls.pp b/packages/gnutls/src/gnutls.pp index c0af64c339..5fc6ed8f97 100644 --- a/packages/gnutls/src/gnutls.pp +++ b/packages/gnutls/src/gnutls.pp @@ -41,7 +41,16 @@ uses ctypes; } const - LibGnuTLS ='libgnutls.so'; {Setup as you need} +{$IFDEF WINDOWS} + LibGnuTLSExt = 'dll'; +{$ELSE} +{$ifDEF DARWIN} + LibGnuTLSExt = 'dylib'; +{$ELSE} + LibGnuTLSExt = 'so'; +{$ENDIF} +{$ENDIF} + LibGnuTLS ='libgnutls.'+LibGnuTLSExt; {Setup as you need} { Converted enums} From aa633544f1adf5d8521a99b1e2341168b1611c87 Mon Sep 17 00:00:00 2001 From: yury Date: Wed, 5 Aug 2020 16:29:07 +0000 Subject: [PATCH 11/26] * Added a simple implementation of random. It is TP/Delphi compatible. Enabled it for 8/16 bit CPUs by default. git-svn-id: trunk@46266 - --- rtl/inc/system.inc | 50 +++++++++++++++++++++++++++++++++++++++++++++ rtl/inc/systemh.inc | 9 ++++++++ 2 files changed, 59 insertions(+) diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc index f4489ceb98..3723bb54d2 100644 --- a/rtl/inc/system.inc +++ b/rtl/inc/system.inc @@ -565,6 +565,7 @@ type {$endif FPC_HAS_FEATURE_RTTI} {$if defined(FPC_HAS_FEATURE_RANDOM)} +{$ifndef FPC_USE_SIMPLE_RANDOM} { Pascal translation of https://github.com/dajobe/libmtwist } @@ -749,6 +750,55 @@ begin random := mtwist_u32rand * (extended(1.0)/(int64(1) shl 32)); end; {$endif} + +{$else FPC_USE_SIMPLE_RANDOM} + +{ A simple implementation of random. TP/Delphi compatible. } + +const + QRAN_A = 134775813; + QRAN_C = 1; + +function rand_next: cardinal; +var + s: cardinal; +begin + s:=RandSeed*QRAN_A+QRAN_C; + RandSeed:=s; + rand_next:=s; +end; + +function random(l: word): word; +var + s,ss: cardinal; +begin + s:=rand_next; + { use 32-bit multiplications here } + ss:=(s shr 16)*l; + s:=(s and $FFFF)*l shr 16; + random:=(ss + s) shr 16; +end; + +function random(l: longint): longint; +begin + random:=int64(rand_next)*l shr 32; +end; + +function random(l:int64):int64; +begin + random:=random(longint(l)); +end; + +{$ifndef FPUNONE} +function random: extended; +const + c = 1.0/$10000/$10000; +begin + random:=rand_next*c; +end; +{$endif} + +{$endif FPC_USE_SIMPLE_RANDOM} {$endif FPC_HAS_FEATURE_RANDOM} diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 4bcf5a2e7d..8684da7e4d 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -382,6 +382,12 @@ Type {$endif CPUZ80} +{ By default enable a simple implementation of Random for 8/16 bit CPUs } +{$if (defined(CPU16) or defined(CPU8)) and not defined(FPC_NO_SIMPLE_RANDOM)} + {$define FPC_USE_SIMPLE_RANDOM} +{$endif} + + {$if not declared(FarPointer)} FarPointer = Pointer; {$endif} @@ -906,6 +912,9 @@ Function Align (Addr : PtrUInt; Alignment : PtrUInt) : PtrUInt;{$ifdef SYSTEMINL Function Align (Addr : Pointer; Alignment : PtrUInt) : Pointer;{$ifdef SYSTEMINLINE}inline;{$endif} {$ifdef FPC_HAS_FEATURE_RANDOM} +{$ifdef FPC_USE_SIMPLE_RANDOM} +Function Random(l:word):word; +{$endif FPC_USE_SIMPLE_RANDOM} Function Random(l:longint):longint; Function Random(l:int64):int64; {$ifndef FPUNONE} From f1dbae577cc3b00ab8b93a33c442d0479916d5b8 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 5 Aug 2020 16:41:20 +0000 Subject: [PATCH 12/26] * change mode fmappend to fmoutput in streamopen. Refer to comments in text.inc. This makes append work in streamio. git-svn-id: trunk@46268 - --- packages/fcl-base/src/streamio.pp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/fcl-base/src/streamio.pp b/packages/fcl-base/src/streamio.pp index b79826356f..ef6a1b605c 100644 --- a/packages/fcl-base/src/streamio.pp +++ b/packages/fcl-base/src/streamio.pp @@ -99,12 +99,15 @@ begin begin InOutFunc:=@StreamWrite; FlushFunc:=@StreamWrite; - if mode=fmAppend then - Try - GetStream(F).Seek(0,soFromEnd); - except - InOutRes:=156; - end; + if Mode=fmAppend then + begin + Mode:=fmOutput; // see comments in text.inc + Try + GetStream(F).Seek(0,soFromEnd); + except + InOutRes:=156; + end; + end; end; end; end; From ec10ee8218c9247836264bcdfcef44331fed62c5 Mon Sep 17 00:00:00 2001 From: yury Date: Wed, 5 Aug 2020 17:58:46 +0000 Subject: [PATCH 13/26] * Improved generic implementations of fpc_mul_dword, fpc_mul_word, fpc_mul_byte to use less iterations and registers. git-svn-id: trunk@46269 - --- rtl/inc/generic.inc | 84 +++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/rtl/inc/generic.inc b/rtl/inc/generic.inc index 8009aed361..aa590e5c5e 100644 --- a/rtl/inc/generic.inc +++ b/rtl/inc/generic.inc @@ -1572,19 +1572,27 @@ end; {$ifndef FPC_SYSTEM_HAS_MUL_BYTE} function fpc_mul_byte(f1,f2 : byte) : byte;[public,alias: 'FPC_MUL_BYTE']; compilerproc; var - bitpos : byte; - b : byte; + v1,v2,res: byte; begin - fpc_mul_byte := 0; - bitpos := 1; - - for b := 0 to 7 do + if f1 0 then - fpc_mul_byte := fpc_mul_byte + f1; - f1 := f1 shl 1; - bitpos := bitpos shl 1; + v1:=f1; + v2:=f2; + end + else + begin + v1:=f2; + v2:=f1; end; + res:=0; + while v1<>0 do + begin + if v1 and 1<>0 then + inc(res,v2); + v2:=v2 shl 1; + v1:=v1 shr 1; + end; + fpc_mul_byte:=res; end; function fpc_mul_byte_checkoverflow(f1,f2 : byte) : byte;[public,alias: 'FPC_MUL_BYTE_CHECKOVERFLOW']; compilerproc; @@ -1674,19 +1682,27 @@ end; {$ifndef FPC_SYSTEM_HAS_MUL_WORD} function fpc_mul_word(f1,f2 : word) : word;[public,alias: 'FPC_MUL_WORD']; compilerproc; var - bitpos : word; - b : byte; + v1,v2,res: word; begin - fpc_mul_word:=0; - bitpos:=1; - - for b:=0 to 15 do + if f10 then - fpc_mul_word:=fpc_mul_word+f1; - f1:=f1 shl 1; - bitpos:=bitpos shl 1; + v1:=f1; + v2:=f2; + end + else + begin + v1:=f2; + v2:=f1; end; + res:=0; + while v1<>0 do + begin + if ALUUInt(v1) and 1<>0 then + inc(res,v2); + v2:=v2 shl 1; + v1:=v1 shr 1; + end; + fpc_mul_word:=res; end; function fpc_mul_word_checkoverflow(f1,f2 : word) : word;[public,alias: 'FPC_MUL_WORD_CHECKOVERFLOW']; compilerproc; @@ -1777,19 +1793,27 @@ end; {$ifndef FPC_SYSTEM_HAS_MUL_DWORD} function fpc_mul_dword(f1,f2 : dword) : dword;[public,alias: 'FPC_MUL_DWORD']; compilerproc; var - bitpos : dword; - b : byte; + v1,v2,res: dword; begin - fpc_mul_dword:=0; - bitpos:=1; - - for b:=0 to 31 do + if f10 then - fpc_mul_dword:=fpc_mul_dword+f1; - f1:=f1 shl 1; - bitpos:=bitpos shl 1; + v1:=f1; + v2:=f2; + end + else + begin + v1:=f2; + v2:=f1; end; + res:=0; + while v1<>0 do + begin + if ALUUInt(v1) and 1<>0 then + inc(res,v2); + v2:=v2 shl 1; + v1:=v1 shr 1; + end; + fpc_mul_dword:=res; end; function fpc_mul_dword_checkoverflow(f1,f2 : dword) : dword;[public,alias: 'FPC_MUL_DWORD_CHECKOVERFLOW']; compilerproc; From 68a3e33cac69848360cc67acc2c742bc4088e31a Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Wed, 5 Aug 2020 19:53:11 +0000 Subject: [PATCH 14/26] pastojs: fixed arraySetLength shrink git-svn-id: trunk@46272 - --- utils/pas2js/dist/rtl.js | 69 ++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 31 deletions(-) diff --git a/utils/pas2js/dist/rtl.js b/utils/pas2js/dist/rtl.js index 7ca0616f56..ab46df209f 100644 --- a/utils/pas2js/dist/rtl.js +++ b/utils/pas2js/dist/rtl.js @@ -916,44 +916,51 @@ var rtl = { srclen = 0; oldlen = a.length; } - a.length = stack[depth].dim; + lastlen = stack[depth].dim; + a.length = lastlen; if (depth>0){ item.a[item.i]=a; item.i++; + if ((lastlen===0) && (item.i0){ + if (depth0) && (stack[depth-1].i>=stack[depth-1].dim)){ - depth--; - }; - if (depth===0){ - if (dimmax===0) return a; - return stack[0].a; + if (srclen>lastlen) srclen=lastlen; + if (rtl.isArray(defaultvalue)){ + // array of dyn array + for (var i=0; i0) && (stack[depth-1].i>=stack[depth-1].dim)){ + depth--; + }; + if (depth===0){ + if (dimmax===0) return a; + return stack[0].a; + } }while (true); }, From 93cca1ac912357b63aed0d6dee2208e519357744 Mon Sep 17 00:00:00 2001 From: Mattias Gaertner Date: Wed, 5 Aug 2020 19:54:42 +0000 Subject: [PATCH 15/26] pastojs: clean up git-svn-id: trunk@46273 - --- utils/pas2js/dist/rtl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/pas2js/dist/rtl.js b/utils/pas2js/dist/rtl.js index ab46df209f..ab94726155 100644 --- a/utils/pas2js/dist/rtl.js +++ b/utils/pas2js/dist/rtl.js @@ -893,7 +893,7 @@ var rtl = { } var dimmax = stack.length-1; var depth = 0; - var lastlen = stack[dimmax].dim; + var lastlen = 0; var item = null; var a = null; var src = arr; From 2500f8432f418c5485c55ad4eb4ea8d084fa71fe Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 5 Aug 2020 21:15:31 +0000 Subject: [PATCH 16/26] * ti_const must be part of tempinfostoreflags as well + more detailed output in ttempcreatenode.printnodedata git-svn-id: trunk@46274 - --- compiler/nbas.pas | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/compiler/nbas.pas b/compiler/nbas.pas index f180824b5f..85a70494c8 100644 --- a/compiler/nbas.pas +++ b/compiler/nbas.pas @@ -190,7 +190,7 @@ interface ttempinfoflags = set of ttempinfoflag; const - tempinfostoreflags = [ti_may_be_in_reg,ti_addr_taken,ti_reference,ti_readonly,ti_no_final_regsync,ti_nofini]; + tempinfostoreflags = [ti_may_be_in_reg,ti_addr_taken,ti_reference,ti_readonly,ti_no_final_regsync,ti_nofini,ti_const]; type { to allow access to the location by temp references even after the temp has } @@ -1409,10 +1409,23 @@ implementation procedure ttempcreatenode.printnodedata(var t:text); + var + f: ttempinfoflag; + first: Boolean; begin inherited printnodedata(t); writeln(t,printnodeindention,'size = ',size,', temptypedef = ',tempinfo^.typedef.typesymbolprettyname,' = "', tempinfo^.typedef.GetTypeName,'", tempinfo = $',hexstr(ptrint(tempinfo),sizeof(ptrint)*2)); + write(t,printnodeindention,'['); + first:=true; + for f in tempflags do + begin + if not(first) then + write(t,','); + write(t,f); + first:=false; + end; + writeln(t,']'); writeln(t,printnodeindention,'tempinit ='); printnode(t,tempinfo^.tempinitcode); end; From 28f25b2df0b1422fbcd6ac195a83cfbda40e4d9e Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 5 Aug 2020 21:15:32 +0000 Subject: [PATCH 17/26] * reworked usage of tcgnotnode.handle_locjump git-svn-id: trunk@46275 - --- compiler/aarch64/ncpumat.pas | 2 +- compiler/arm/narmmat.pas | 5 +--- compiler/avr/navrmat.pas | 2 +- compiler/m68k/n68kmat.pas | 2 +- compiler/mips/ncpumat.pas | 42 +++++++++++++++++----------------- compiler/ncgmat.pas | 4 +--- compiler/powerpc/nppcmat.pas | 7 +++--- compiler/powerpc64/nppcmat.pas | 4 ++-- compiler/riscv32/nrv32mat.pas | 2 +- compiler/riscv64/nrv64mat.pas | 2 +- compiler/sparcgen/ncpumat.pas | 2 +- compiler/x86/nx86mat.pas | 5 +--- compiler/z80/nz80mat.pas | 6 +---- 13 files changed, 36 insertions(+), 49 deletions(-) diff --git a/compiler/aarch64/ncpumat.pas b/compiler/aarch64/ncpumat.pas index 77f7b27e1d..c082786ede 100644 --- a/compiler/aarch64/ncpumat.pas +++ b/compiler/aarch64/ncpumat.pas @@ -214,9 +214,9 @@ implementation procedure taarch64notnode.second_boolean; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/arm/narmmat.pas b/compiler/arm/narmmat.pas index 87454b67f0..368425bf2b 100644 --- a/compiler/arm/narmmat.pas +++ b/compiler/arm/narmmat.pas @@ -315,12 +315,9 @@ implementation var tmpreg : TRegister; begin - { if the location is LOC_JUMP, we do the secondpass after the - labels are allocated - } + secondpass(left); if not handle_locjump then begin - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/avr/navrmat.pas b/compiler/avr/navrmat.pas index 774c959935..99a89be9c5 100644 --- a/compiler/avr/navrmat.pas +++ b/compiler/avr/navrmat.pas @@ -63,9 +63,9 @@ implementation i : longint; falselabel,truelabel,skiplabel: TAsmLabel; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); { short code? } if (left.location.loc in [LOC_SUBSETREG,LOC_CSUBSETREG]) and (left.location.sreg.bitlen=1) then diff --git a/compiler/m68k/n68kmat.pas b/compiler/m68k/n68kmat.pas index e2616cdb8c..896e082848 100644 --- a/compiler/m68k/n68kmat.pas +++ b/compiler/m68k/n68kmat.pas @@ -76,9 +76,9 @@ implementation hreg: tregister; opsize : tcgsize; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); opsize:=def_cgsize(resultdef); if ((left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE]) and needs_unaligned(left.location.reference.alignment,opsize)) then diff --git a/compiler/mips/ncpumat.pas b/compiler/mips/ncpumat.pas index 9db7c05250..b83966890d 100644 --- a/compiler/mips/ncpumat.pas +++ b/compiler/mips/ncpumat.pas @@ -241,31 +241,31 @@ procedure tMIPSELnotnode.second_boolean; var tmpreg : TRegister; begin + secondpass(left); if not handle_locjump then - begin - secondpass(left); - case left.location.loc of - LOC_REGISTER, LOC_CREGISTER, LOC_REFERENCE, LOC_CREFERENCE, - LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF: - begin - hlcg.location_force_reg(current_asmdata.CurrAsmList, left.location, left.resultdef, left.resultdef, True); - location_reset(location,LOC_FLAGS,OS_NO); - location.resflags.reg2:=NR_R0; - location.resflags.cond:=OC_EQ; - if is_64bit(resultdef) then - begin - tmpreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_INT); - { OR low and high parts together } - current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_OR,tmpreg,left.location.register64.reglo,left.location.register64.reghi)); - location.resflags.reg1:=tmpreg; - end + begin + case left.location.loc of + LOC_REGISTER, LOC_CREGISTER, LOC_REFERENCE, LOC_CREFERENCE, + LOC_SUBSETREG,LOC_CSUBSETREG,LOC_SUBSETREF,LOC_CSUBSETREF: + begin + hlcg.location_force_reg(current_asmdata.CurrAsmList, left.location, left.resultdef, left.resultdef, True); + location_reset(location,LOC_FLAGS,OS_NO); + location.resflags.reg2:=NR_R0; + location.resflags.cond:=OC_EQ; + if is_64bit(resultdef) then + begin + tmpreg:=cg.GetIntRegister(current_asmdata.CurrAsmList,OS_INT); + { OR low and high parts together } + current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_OR,tmpreg,left.location.register64.reglo,left.location.register64.reghi)); + location.resflags.reg1:=tmpreg; + end + else + location.resflags.reg1:=left.location.register; + end; else - location.resflags.reg1:=left.location.register; + internalerror(2003042401); end; - else - internalerror(2003042401); end; - end; end; diff --git a/compiler/ncgmat.pas b/compiler/ncgmat.pas index 1d7a1dc797..0a6d9a90c6 100644 --- a/compiler/ncgmat.pas +++ b/compiler/ncgmat.pas @@ -656,11 +656,9 @@ implementation function tcgnotnode.handle_locjump: boolean; begin - result:=(left.expectloc=LOC_JUMP); + result:=left.location.loc=LOC_JUMP; if result then begin - secondpass(left); - if is_constboolnode(left) then internalerror(2014010101); if left.location.loc<>LOC_JUMP then diff --git a/compiler/powerpc/nppcmat.pas b/compiler/powerpc/nppcmat.pas index 461f94bcb1..84975ba794 100644 --- a/compiler/powerpc/nppcmat.pas +++ b/compiler/powerpc/nppcmat.pas @@ -515,11 +515,12 @@ implementation var tmpreg: tregister; begin - if is_boolean(resultdef) then + secondpass(left); + if is_boolean(resultdef) then begin if not handle_locjump then begin - secondpass(left); + { handle_locjump does call secondpass } case left.location.loc of LOC_FLAGS : begin @@ -555,7 +556,6 @@ implementation end else if is_64bitint(left.resultdef) then begin - secondpass(left); hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false); location_copy(location,left.location); { perform the NOT operation } @@ -566,7 +566,6 @@ implementation end else begin - secondpass(left); hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true); location_copy(location,left.location); location.loc := LOC_REGISTER; diff --git a/compiler/powerpc64/nppcmat.pas b/compiler/powerpc64/nppcmat.pas index 22d9448865..48238155af 100644 --- a/compiler/powerpc64/nppcmat.pas +++ b/compiler/powerpc64/nppcmat.pas @@ -377,11 +377,12 @@ end; procedure tppcnotnode.pass_generate_code; begin + secondpass(left); if is_boolean(resultdef) then begin if not handle_locjump then begin - secondpass(left); + { handle_locjump does call secondpass } case left.location.loc of LOC_FLAGS: begin @@ -408,7 +409,6 @@ begin end else begin - secondpass(left); hlcg.location_force_reg(current_asmdata.CurrAsmList, left.location, left.resultdef, left.resultdef, true); location_copy(location, left.location); diff --git a/compiler/riscv32/nrv32mat.pas b/compiler/riscv32/nrv32mat.pas index a2b66907e2..dda288277f 100644 --- a/compiler/riscv32/nrv32mat.pas +++ b/compiler/riscv32/nrv32mat.pas @@ -63,9 +63,9 @@ implementation var tlabel, flabel: tasmlabel; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/riscv64/nrv64mat.pas b/compiler/riscv64/nrv64mat.pas index abcdfdb124..7a1108d011 100644 --- a/compiler/riscv64/nrv64mat.pas +++ b/compiler/riscv64/nrv64mat.pas @@ -67,9 +67,9 @@ implementation var tlabel, flabel: tasmlabel; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/sparcgen/ncpumat.pas b/compiler/sparcgen/ncpumat.pas index 41d7c58fab..b34a239fe6 100644 --- a/compiler/sparcgen/ncpumat.pas +++ b/compiler/sparcgen/ncpumat.pas @@ -449,9 +449,9 @@ implementation procedure tsparcnotnode.second_boolean; begin + secondpass(left); if not handle_locjump then begin - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/x86/nx86mat.pas b/compiler/x86/nx86mat.pas index a20c9a09f3..4956ad94b9 100644 --- a/compiler/x86/nx86mat.pas +++ b/compiler/x86/nx86mat.pas @@ -247,12 +247,9 @@ interface begin opsize:=def_cgsize(resultdef); + secondpass(left); if not handle_locjump then begin - { the second pass could change the location of left } - { if it is a register variable, so we've to do } - { this before the case statement } - secondpass(left); case left.location.loc of LOC_FLAGS : begin diff --git a/compiler/z80/nz80mat.pas b/compiler/z80/nz80mat.pas index 446507726c..c2180f2291 100644 --- a/compiler/z80/nz80mat.pas +++ b/compiler/z80/nz80mat.pas @@ -59,13 +59,9 @@ implementation var i: Integer; begin + secondpass(left); if not handle_locjump then begin - { the second pass could change the location of left } - { if it is a register variable, so we've to do } - { this before the case statement } - secondpass(left); - if left.location.loc in [LOC_CREFERENCE,LOC_REFERENCE] then hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,resultdef,false); case left.location.loc of From e14a3f17e6d8d6ced42026b3c49e1f6d179e983d Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 5 Aug 2020 21:15:33 +0000 Subject: [PATCH 18/26] * reverted r46220 as it is fixed now properly git-svn-id: trunk@46276 - --- .gitattributes | 1 + compiler/nadd.pas | 4 ++-- tests/webtbs/tw37493.pp | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 tests/webtbs/tw37493.pp diff --git a/.gitattributes b/.gitattributes index 8af203a076..a3b0d4b48c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -18407,6 +18407,7 @@ tests/webtbs/tw3742.pp svneol=native#text/plain tests/webtbs/tw37427.pp svneol=native#text/pascal tests/webtbs/tw37449.pp svneol=native#text/pascal tests/webtbs/tw37468.pp svneol=native#text/pascal +tests/webtbs/tw37493.pp svneol=native#text/pascal tests/webtbs/tw3751.pp svneol=native#text/plain tests/webtbs/tw3758.pp svneol=native#text/plain tests/webtbs/tw3764.pp svneol=native#text/plain diff --git a/compiler/nadd.pas b/compiler/nadd.pas index 000eb90c36..494121afb9 100644 --- a/compiler/nadd.pas +++ b/compiler/nadd.pas @@ -1440,10 +1440,10 @@ implementation case nodetype of andn,orn: begin - { full boolean evaluation is only useful if the nodes are not too complex and if no flags/jumps must be converted, + { full boolean evaluation is only useful if the nodes are not too complex and if no jumps must be converted, further, we need to know the expectloc } if (node_complexity(right)<=2) and - not(left.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) and not(right.expectloc in [LOC_FLAGS,LOC_JUMP,LOC_INVALID]) then + not(left.expectloc in [LOC_JUMP,LOC_INVALID]) and not(right.expectloc in [LOC_JUMP,LOC_INVALID]) then begin { we need to copy the whole tree to force another pass_1 } include(localswitches,cs_full_boolean_eval); diff --git a/tests/webtbs/tw37493.pp b/tests/webtbs/tw37493.pp new file mode 100644 index 0000000000..03248726ba --- /dev/null +++ b/tests/webtbs/tw37493.pp @@ -0,0 +1,5 @@ +{ %OPT=-O3 } +var a : integer; +begin + write(not((1 in[a]) and (a > a) and (a in[1]))) +end. From 315819692a6a92cd1c22f7a2031a0c0f139acc63 Mon Sep 17 00:00:00 2001 From: florian Date: Wed, 5 Aug 2020 21:30:37 +0000 Subject: [PATCH 19/26] - do not call firstpass in tinnode.pass_typecheck as it prevents further optimizations git-svn-id: trunk@46277 - --- compiler/nset.pas | 1 - 1 file changed, 1 deletion(-) diff --git a/compiler/nset.pas b/compiler/nset.pas index 8eff523d0d..a23a8d83e5 100644 --- a/compiler/nset.pas +++ b/compiler/nset.pas @@ -257,7 +257,6 @@ implementation if is_array_constructor(right.resultdef) then begin arrayconstructor_to_set(right); - firstpass(right); if codegenerror then exit; end; From e4ec420bf5a0d92da3560ba05cba8702137a4a43 Mon Sep 17 00:00:00 2001 From: svenbarth Date: Wed, 5 Aug 2020 21:35:01 +0000 Subject: [PATCH 20/26] * reject the default Create array constructor if used on a variable instead of a type + added test git-svn-id: trunk@46279 - --- .gitattributes | 1 + compiler/pexpr.pas | 22 ++++++++++++++++------ tests/test/tarrconstr8.pp | 13 +++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 tests/test/tarrconstr8.pp diff --git a/.gitattributes b/.gitattributes index a3b0d4b48c..67493d0ead 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14375,6 +14375,7 @@ tests/test/tarrconstr4.pp svneol=native#text/pascal tests/test/tarrconstr5.pp svneol=native#text/pascal tests/test/tarrconstr6.pp svneol=native#text/pascal tests/test/tarrconstr7.pp svneol=native#text/pascal +tests/test/tarrconstr8.pp svneol=native#text/pascal tests/test/tasm1.pp svneol=native#text/plain tests/test/tasm10.pp svneol=native#text/plain tests/test/tasm10a.pp svneol=native#text/plain diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas index bd23781756..9b0757b2d0 100644 --- a/compiler/pexpr.pas +++ b/compiler/pexpr.pas @@ -2485,16 +2485,26 @@ implementation begin if not try_type_helper(p1,nil) then begin - if pattern='CREATE' then + if p1.nodetype=typen then begin - consume(_ID); - p2:=parse_array_constructor(tarraydef(p1.resultdef)); - p1.destroy; - p1:=p2; + if pattern='CREATE' then + begin + consume(_ID); + p2:=parse_array_constructor(tarraydef(p1.resultdef)); + p1.destroy; + p1:=p2; + end + else + begin + Message2(scan_f_syn_expected,'CREATE',pattern); + p1.destroy; + p1:=cerrornode.create; + consume(_ID); + end; end else begin - Message2(scan_f_syn_expected,'CREATE',pattern); + Message(parser_e_invalid_qualifier); p1.destroy; p1:=cerrornode.create; consume(_ID); diff --git a/tests/test/tarrconstr8.pp b/tests/test/tarrconstr8.pp new file mode 100644 index 0000000000..4e208f05fe --- /dev/null +++ b/tests/test/tarrconstr8.pp @@ -0,0 +1,13 @@ +{ %FAIL } + +program tarrconstr8; + +type + TLongIntArray = array of LongInt; + +var + arr: TLongIntArray; +begin + // Create *must* be used on a type + arr := arr.Create(1, 2); +end. From 492b1cf4cac67b35019221f8dd54c4f2bd92782e Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 06:50:29 +0000 Subject: [PATCH 21/26] * Support writing resource strings git-svn-id: trunk@46280 - --- packages/fcl-passrc/src/paswrite.pp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/fcl-passrc/src/paswrite.pp b/packages/fcl-passrc/src/paswrite.pp index 88dddd823b..785ea09471 100644 --- a/packages/fcl-passrc/src/paswrite.pp +++ b/packages/fcl-passrc/src/paswrite.pp @@ -83,6 +83,7 @@ type constructor Create(AStream: TStream); virtual; destructor Destroy; override; procedure AddForwardClasses(aSection: TPasSection); virtual; + procedure WriteResourceString(aStr: TPasResString); virtual; procedure WriteEnumType(AType: TPasEnumType); virtual; procedure WriteElement(AElement: TPasElement);virtual; procedure WriteType(AType: TPasType; Full : Boolean = True);virtual; @@ -247,10 +248,19 @@ begin WriteProcImpl(TProcedureBody(AElement)) else if AElement.InheritsFrom(TPasImplCommand) or AElement.InheritsFrom(TPasImplCommands) then WriteImplElement(TPasImplElement(AElement),false) - else + else if AElement.InheritsFrom(TPasResString) then + WriteResourceString(TPasResString(AElement)) + else raise EPasWriter.CreateFmt('Writing not implemented for %s nodes',[AElement.ElementTypeName]); end; +procedure TPasWriter.WriteResourceString(aStr : TPasResString); + +begin + PrepareDeclSection('resourcestring'); + AddLn(Astr.GetDeclaration(True)+';'); +end; + procedure TPasWriter.WriteEnumType(AType: TPasEnumType); begin From a11a242c93e79593c30a096ebcedad6fb908da11 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 06:55:06 +0000 Subject: [PATCH 22/26] * Support writing sets git-svn-id: trunk@46281 - --- packages/fcl-passrc/src/paswrite.pp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/fcl-passrc/src/paswrite.pp b/packages/fcl-passrc/src/paswrite.pp index 785ea09471..5c8b15ecca 100644 --- a/packages/fcl-passrc/src/paswrite.pp +++ b/packages/fcl-passrc/src/paswrite.pp @@ -289,9 +289,10 @@ begin WriteAliasType(TPasAliasType(AType)) else if AType is TPasPointerType then Add(AType.GetDeclaration(true)) + else if AType is TPasSetType then + Add(AType.GetDeclaration(true)) else - raise EPasWriter.Create('Writing not implemented for ' + - AType.ElementTypeName + ' nodes'); + raise EPasWriter.CreateFmt('Writing not implemented for %s type nodes',[aType.ElementTypeName]); if Full then AddLn(';'); end; From be0adf199d6f28f60a1371a5b73ebfc3a5368c6a Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 07:21:22 +0000 Subject: [PATCH 23/26] * Escape keywords when writing git-svn-id: trunk@46282 - --- packages/fcl-passrc/src/pastree.pp | 98 +++++++++++++++++++---------- packages/fcl-passrc/src/paswrite.pp | 34 +++++----- 2 files changed, 83 insertions(+), 49 deletions(-) diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 6bd1e05efd..0626f794ea 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -166,12 +166,15 @@ type {$ENDIF} constructor Create(const AName: string; AParent: TPasElement); virtual; destructor Destroy; override; + Class Function IsKeyWord(Const S : String) : Boolean; + Class Function EscapeKeyWord(Const S : String) : String; procedure AddRef{$IFDEF CheckPasTreeRefCount}(const aId: string){$ENDIF}; procedure Release{$IFDEF CheckPasTreeRefCount}(const aId: string){$ENDIF}; procedure ForEachCall(const aMethodCall: TOnForEachPasElement; const Arg: Pointer); virtual; procedure ForEachChildCall(const aMethodCall: TOnForEachPasElement; const Arg: Pointer; Child: TPasElement; CheckParent: boolean); virtual; + Function SafeName : String; // Name but with & prepended if name is a keyword. function FullPath: string; // parent's names, until parent is not TPasDeclarations function ParentPath: string; // parent's names function FullName: string; virtual; // FullPath + Name @@ -2584,7 +2587,7 @@ function TPasType.FixTypeDecl(aDecl: String): String; begin Result:=aDecl; if (Name<>'') then - Result:=Name+' = '+Result; + Result:=SafeName+' = '+Result; ProcessHints(false,Result); end; @@ -2862,6 +2865,30 @@ begin inherited Destroy; end; +class function TPasElement.IsKeyWord(const S: String): Boolean; + +Const + KW=';absolute;and;array;asm;begin;case;const;constructor;destructor;div;do;'+ + 'downto;else;end;file;for;function;goto;if;implementation;in;inherited;'+ + 'inline;interface;label;mod;nil;not;object;of;on;operator;or;packed;'+ + 'procedure;program;record;reintroduce;repeat;self;set;shl;shr;string;then;'+ + 'to;type;unit;until;uses;var;while;with;xor;dispose;exit;false;new;true;'+ + 'as;class;dispinterface;except;exports;finalization;finally;initialization;'+ + 'inline;is;library;on;out;packed;property;raise;resourcestring;threadvar;try;'+ + 'private;published;length;setlength;'; + +begin + Result:=Pos(';'+lowercase(S)+';',KW)<>0; +end; + +class function TPasElement.EscapeKeyWord(const S: String): String; +begin + Result:=S; + If IsKeyWord(Result) then + Result:='&'+Result + +end; + procedure TPasElement.AddRef{$IFDEF CheckPasTreeRefCount}(const aId: string){$ENDIF}; begin {$ifdef EnablePasTreeGlobalRefCount} @@ -2951,6 +2978,13 @@ begin Child.ForEachCall(aMethodCall,Arg); end; +function TPasElement.SafeName: String; +begin + Result:=Name; + if IsKeyWord(Result) then + Result:='&'+Result; +end; + function TPasElement.FullPath: string; var @@ -3029,7 +3063,7 @@ function TPasElement.GetDeclaration(full: Boolean): string; begin if Full then - Result := Name + Result := SafeName else Result := ''; end; @@ -4074,7 +4108,7 @@ end; function TPasModule.GetDeclaration(full : boolean): string; begin - Result := 'Unit ' + Name; + Result := 'Unit ' + SafeName; if full then ; end; @@ -4101,7 +4135,7 @@ begin Result:=Expr.GetDeclaration(true); If Full Then begin - Result:=Name+' = '+Result; + Result:=SafeName+' = '+Result; ProcessHints(False,Result); end; end; @@ -4121,10 +4155,10 @@ end; function TPasPointerType.GetDeclaration(full: Boolean): string; begin - Result:='^'+DestType.Name; + Result:='^'+DestType.SafeName; If Full then begin - Result:=Name+' = '+Result; + Result:=SafeName+' = '+Result; ProcessHints(False,Result); end; end; @@ -4144,7 +4178,7 @@ end; function TPasAliasType.GetDeclaration(full: Boolean): string; begin - Result:=DestType.Name; + Result:=DestType.SafeName; If Full then Result:=FixTypeDecl(Result); end; @@ -4165,7 +4199,7 @@ end; function TPasClassOfType.GetDeclaration (full : boolean) : string; begin - Result:='Class of '+DestType.Name; + Result:='Class of '+DestType.SafeName; If Full then Result:=FixTypeDecl(Result); end; @@ -4216,7 +4250,7 @@ begin If IsPacked then Result := 'packed '+Result; // 12/04/04 Dave - Added If Assigned(Eltype) then - Result:=Result+ElType.Name + Result:=Result+ElType.SafeName else Result:=Result+'const'; end; @@ -4244,7 +4278,7 @@ function TPasFileType.GetDeclaration (full : boolean) : string; begin Result:='File'; If Assigned(Eltype) then - Result:=Result+' of '+ElType.Name; + Result:=Result+' of '+ElType.SafeName; If Full Then Result:=FixTypeDecl(Result); end; @@ -4265,13 +4299,13 @@ begin S:=TStringList.Create; Try If Full and (Name<>'') then - S.Add(Name+' = (') + S.Add(SafeName+' = (') else S.Add('('); GetEnumNames(S); S[S.Count-1]:=S[S.Count-1]+')'; If Full then - Result:=IndentStrings(S,Length(Name)+4) + Result:=IndentStrings(S,Length(SafeName)+4) else Result:=IndentStrings(S,1); if Full then @@ -4299,7 +4333,7 @@ begin S:=TStringList.Create; Try If Full and (Name<>'') then - S.Add(Name+'= Set of (') + S.Add(SafeName+'= Set of (') else S.Add('Set of ('); TPasEnumType(EnumType).GetEnumNames(S); @@ -4312,9 +4346,9 @@ begin end else begin - Result:='Set of '+EnumType.Name; + Result:='Set of '+EnumType.SafeName; If Full then - Result:=Name+' = '+Result; + Result:=SafeName+' = '+Result; end; If Full then ProcessHints(False,Result); @@ -4451,9 +4485,9 @@ begin If Full and (Name<>'') then begin if GenericTemplateTypes.Count>0 then - Temp:=Name+GenericTemplateTypesAsString(GenericTemplateTypes)+' = '+Temp + Temp:=SafeName+GenericTemplateTypesAsString(GenericTemplateTypes)+' = '+Temp else - Temp:=Name+' = '+Temp; + Temp:=SafeName+' = '+Temp; end; S.Add(Temp); GetMembers(S); @@ -4525,7 +4559,7 @@ begin S:=TStringList.Create; Try If Full then - S.Add(Format('%s = ',[Name])); + S.Add(Format('%s = ',[SafeName])); S.Add(TypeName); GetArguments(S); If IsOfObject then @@ -4551,14 +4585,14 @@ begin S:=TStringList.Create; Try If Full then - S.Add(Format('%s = ',[Name])); + S.Add(Format('%s = ',[SafeName])); S.Add(TypeName); GetArguments(S); If Assigned(ResultEl) then begin T:=' : '; If (ResultEl.ResultType.Name<>'') then - T:=T+ResultEl.ResultType.Name + T:=T+ResultEl.ResultType.SafeName else T:=T+ResultEl.ResultType.GetDeclaration(False); S.Add(T); @@ -4592,7 +4626,7 @@ begin If VarType.Name='' then Result:=VarType.GetDeclaration(False) else - Result:=VarType.Name; + Result:=VarType.SafeName; Result:=Result+Modifiers; if (Value<>'') then Result:=Result+' = '+Value; @@ -4601,7 +4635,7 @@ begin Result:=Value; If Full then begin - Result:=Name+' '+Seps[Assigned(VarType)]+' '+Result; + Result:=SafeName+' '+Seps[Assigned(VarType)]+' '+Result; Result:=Result+HintsString; end; end; @@ -4645,7 +4679,7 @@ begin If VarType.Name='' then Result:=VarType.GetDeclaration(False) else - Result:=VarType.Name; + Result:=VarType.SafeName; end else if Assigned(Expr) then Result:=Expr.GetDeclaration(True); @@ -4665,9 +4699,9 @@ begin S:=' '; If Full then begin - Result:=Name+S+': '+Result; + Result:=SafeName+S+': '+Result; If (ImplementsName<>'') then - Result:=Result+' implements '+ImplementsName; + Result:=Result+' implements '+EscapeKeyWord(ImplementsName); end; If IsDefault then Result:=Result+'; default'; @@ -4907,7 +4941,7 @@ begin end; end else if Name<>'' then - T:=T+' '+Name; + T:=T+' '+SafeName; S.Add(T); end; ProcType.GetArguments(S); @@ -4917,7 +4951,7 @@ begin begin T:=' : '; If (Name<>'') then - T:=T+Name + T:=T+SafeName else T:=T+GetDeclaration(False); S.Add(T); @@ -4973,7 +5007,7 @@ begin begin T:=' : '; If (Name<>'') then - T:=T+Name + T:=T+SafeName else T:=T+GetDeclaration(False); S.Add(T); @@ -5041,14 +5075,14 @@ begin If Assigned(ArgType) then begin If ArgType.Name<>'' then - Result:=ArgType.Name + Result:=ArgType.SafeName else Result:=ArgType.GetDeclaration(False); If Full and (Name<>'') then - Result:=Name+': '+Result; + Result:=SafeName+': '+Result; end else If Full then - Result:=Name + Result:=SafeName else Result:=''; end; @@ -5710,7 +5744,7 @@ begin begin If Result<>'' then Result:=Result+'; '; - Result:=Result+Fields[I].Name+': '+Fields[i].ValueExp.getDeclaration(Full); + Result:=Result+EscapeKeyWord(Fields[I].Name)+': '+Fields[i].ValueExp.getDeclaration(Full); end; Result:='('+Result+')'; end; diff --git a/packages/fcl-passrc/src/paswrite.pp b/packages/fcl-passrc/src/paswrite.pp index 5c8b15ecca..20591b5382 100644 --- a/packages/fcl-passrc/src/paswrite.pp +++ b/packages/fcl-passrc/src/paswrite.pp @@ -305,7 +305,7 @@ Var begin S:=''; if aModule.Name<>'' then - S:=Format('program %s',[aModule.Name]); + S:=Format('program %s',[aModule.SafeName]); if (S<>'') then begin If AModule.InputFile<>'' then @@ -346,7 +346,7 @@ Var begin S:=''; if aModule.Name<>'' then - S:=Format('library %s',[aModule.Name]); + S:=Format('library %s',[aModule.SafeName]); if (S<>'') then begin If AModule.InputFile<>'' then @@ -434,7 +434,7 @@ begin For J:=0 to C.Members.Count-1 do begin M:=TPasElement(C.members[J]); - DoCheckElement(M,True,C.Name+'.'); + DoCheckElement(M,True,C.SafeName+'.'); end; end; end; @@ -455,7 +455,7 @@ begin PrepareDeclSection('type'); For I:=0 to aSection.Classes.Count-1 do begin - CN:=TPasElement(aSection.Classes[i]).Name; + CN:=TPasElement(aSection.Classes[i]).SafeName; if (FForwardClasses.Count=0) or (ForwardClasses.IndexOf(CN)<>-1) then Addln('%s = class;',[CN]); end; @@ -464,7 +464,7 @@ end; procedure TPasWriter.WriteUnit(aModule: TPasModule); begin - AddLn('unit ' + AModule.Name + ';'); + AddLn('unit ' + AModule.SafeName + ';'); if Assigned(AModule.GlobalDirectivesSection) then begin AddLn; @@ -621,7 +621,7 @@ begin PrepareDeclSection('type'); Addln; MaybeSetLineElement(AClass); - Add(AClass.Name + ' = '); + Add(AClass.SafeName + ' = '); if AClass.IsPacked then Add('packed '); // 12/04/04 - Dave - Added case AClass.ObjKind of @@ -636,16 +636,16 @@ begin if (AClass.ObjKind=okClass) and (ACLass.ExternalName<>'') and NotOption(woNoExternalClass) then Add(' external name ''%s'' ',[AClass.ExternalName]); if Assigned(AClass.AncestorType) then - Add('(' + AClass.AncestorType.Name); + Add('(' + AClass.AncestorType.SafeName); if AClass.Interfaces.Count > 0 then begin if Assigned(AClass.AncestorType) then InterfacesListPrefix:=', ' else InterfacesListPrefix:='('; - Add(InterfacesListPrefix + TPasType(AClass.Interfaces[0]).Name); + Add(InterfacesListPrefix + TPasType(AClass.Interfaces[0]).SafeName); for i := 1 to AClass.Interfaces.Count - 1 do - Add(', ' + TPasType(AClass.Interfaces[i]).Name); + Add(', ' + TPasType(AClass.Interfaces[i]).SafeName); end; if Assigned(AClass.AncestorType) or (AClass.Interfaces.Count > 0) then AddLn(')') @@ -706,9 +706,9 @@ begin PrepareDeclSectionInStruct('class var') else if CurDeclSection<>'' then PrepareDeclSectionInStruct('var'); - Add(aVar.Name + ': '); + Add(aVar.SafeName + ': '); if Not Assigned(aVar.VarType) then - Raise EWriteError.CreateFmt('No type for variable %s',[aVar.Name]); + Raise EWriteError.CreateFmt('No type for variable %s',[aVar.SafeName]); WriteType(aVar.VarType,False); if (aVar.AbsoluteExpr<>nil) then Add(' absolute %s',[aVar.AbsoluteExpr.ClassName]) @@ -738,7 +738,7 @@ procedure TPasWriter.WriteArgument(aArg: TPasArgument); begin if (aArg.Access<>argDefault) then Add(AccessNames[aArg.Access]+' '); - Add(aArg.Name+' : '); + Add(aArg.SafeName+' : '); WriteType(aArg.ArgType,False); end; @@ -809,7 +809,7 @@ begin PrepareDeclSection(''); if Not IsImpl then IsImpl:=FInImplementation; - Add(AProc.TypeName + ' ' + NamePrefix+AProc.Name); + Add(AProc.TypeName + ' ' + NamePrefix+AProc.SafeName); if Assigned(AProc.ProcType) and (AProc.ProcType.Args.Count > 0) then AddProcArgs(AProc.ProcType.Args) ; if Assigned(AProc.ProcType) and @@ -912,8 +912,8 @@ begin Add('class '); Add(AProc.TypeName + ' '); if AProc.Parent.ClassType = TPasClassType then - Add(AProc.Parent.Name + '.'); - Add(AProc.Name); + Add(AProc.Parent.SafeName + '.'); + Add(AProc.SafeName); if Assigned(AProc.ProcType) and (AProc.ProcType.Args.Count > 0) then AddProcArgs(AProc.ProcType.Args); if Assigned(AProc.ProcType) and @@ -997,7 +997,7 @@ var begin if AProp.IsClass then Add('class '); - Add('property ' + AProp.Name); + Add('property ' + AProp.SafeName); if AProp.Args.Count > 0 then begin Add('['); @@ -1238,7 +1238,7 @@ end; procedure TPasWriter.WriteImplExceptOn(aOn: TPasImplExceptOn); begin - Addln('On %s : %s do',[aOn.VarEl.Name,aOn.TypeEl.Name]); + Addln('On %s : %s do',[aOn.VarEl.SafeName,aOn.TypeEl.SafeName]); if Assigned(aOn.Body) then WriteImplElement(aOn.Body,True); end; From 10c4e3f6fc466fcee409c73e3e588e44d9703b6a Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 07:26:47 +0000 Subject: [PATCH 24/26] * Fix writing array types git-svn-id: trunk@46283 - --- packages/fcl-passrc/src/pastree.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 0626f794ea..a3362e9eaa 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -4242,7 +4242,7 @@ begin if GenericTemplateTypes<>nil then Result:=Result+GenericTemplateTypesAsString(GenericTemplateTypes)+' = '+Result else - Result:=Result+' = '+Result; + Result:=SafeName+' = '+Result; end; If (IndexRange<>'') then Result:=Result+'['+IndexRange+']'; From dbbbc6c15ce441795953bd57dc8fd72220b4c560 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 12:03:03 +0000 Subject: [PATCH 25/26] * Fix resource name as well, not only unit name git-svn-id: trunk@46287 - --- packages/pastojs/src/pas2jsjsresources.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pastojs/src/pas2jsjsresources.pp b/packages/pastojs/src/pas2jsjsresources.pp index 02bba9686c..4b43ca5da2 100644 --- a/packages/pastojs/src/pas2jsjsresources.pp +++ b/packages/pastojs/src/pas2jsjsresources.pp @@ -83,7 +83,7 @@ begin aName:=Options.Values['name']; if aName='' then aName:=ChangeFileExt(ExtractFileName(aFileName),''); - Result:=Format(SAddResource,[aName,LowerCase(CurrentUnitName),aFormat,aData]); + Result:=Format(SAddResource,[LowerCase(aName),LowerCase(CurrentUnitName),aFormat,aData]); end; procedure TJSResourceHandler.HandleResource(aFileName: string; Options: TStrings); From 16c9d406e1e1cb20a5220a976ef48a0785663302 Mon Sep 17 00:00:00 2001 From: michael Date: Thu, 6 Aug 2020 13:09:17 +0000 Subject: [PATCH 26/26] * No $NOTES for Delphi git-svn-id: trunk@46288 - --- packages/fcl-passrc/src/paswrite.pp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/fcl-passrc/src/paswrite.pp b/packages/fcl-passrc/src/paswrite.pp index 20591b5382..41ab750e62 100644 --- a/packages/fcl-passrc/src/paswrite.pp +++ b/packages/fcl-passrc/src/paswrite.pp @@ -322,7 +322,9 @@ begin begin Addln('{$HINTS OFF}'); Addln('{$WARNINGS OFF}'); + Addln('{$IFDEF FPC}'); Addln('{$NOTES OFF}'); + Addln('{$ENDIF FPC}'); end; if Assigned(aModule.ProgramSection) then WriteSection(aModule.ProgramSection);