From 9592ac32e483ad8bae89ef1bd4860143ea1b47d0 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Thu, 11 Nov 2021 10:10:32 +0100 Subject: [PATCH 01/22] Update projects, use Net 4.8 for echoes --- Source/Gold/Gold.elements | 4 ++-- Tests/GoldLibrary.Tests.Echoes.elements | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Gold/Gold.elements b/Source/Gold/Gold.elements index 80952a4..0c21446 100644 --- a/Source/Gold/Gold.elements +++ b/Source/Gold/Gold.elements @@ -8,7 +8,7 @@ H0;W63;W3;H10;H11;H7;H8;H6;H14;H16 Release True - .NETFramework4.5 + .NETFramework4.8 go True @@ -41,7 +41,7 @@ Island Windows - i386 + i386;x86_64 StaticLibrary diff --git a/Tests/GoldLibrary.Tests.Echoes.elements b/Tests/GoldLibrary.Tests.Echoes.elements index 9caf422..62bf642 100644 --- a/Tests/GoldLibrary.Tests.Echoes.elements +++ b/Tests/GoldLibrary.Tests.Echoes.elements @@ -19,12 +19,14 @@ v25 False True + .NETFramework4.8 .\Bin\Release anycpu v25 False + .NETFramework4.8 From 934ebeb7a96d982f8cf2ab20454aa8441d231bfd Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Thu, 11 Nov 2021 16:28:39 +0100 Subject: [PATCH 02/22] Update build script to create individual zip per platform --- Build/Build.CI2.train | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index fc35117..b06a71c 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -65,6 +65,34 @@ compileGoBaseLibrary(); zipName = expand("$(CIReleaseFolder)/GoBaseLibrary.zip"); zip.compress(zipName, "../Bin", "*.*", true); +zipIslandMac = expand("$(CIReleaseFolder)/Island-macOS-Go.zip"); +zip.compress(zipIslandMac, "../Bin", "macOS/*/Go.*, true); + +zipIslandiOS = expand("$(CIReleaseFolder)/Island-iOS-Go.zip"); +zip.compress(zipIslandiOS, "../Bin", "iOS/*/Go.*;iOS\ Simulator/*/Go.*;Mac\ Catalyst/*/Go.*", true); + +zipIslandtvOS = expand("$(CIReleaseFolder)/Island-tvOS-Go.zip"); +zip.compress(zipIslandtvOS, "../Bin", "tvOS/*/Go.*;tvOS\ Simulator/*/Go.*", true); + +zipIslandwatchOS = expand("$(CIReleaseFolder)/Island-watchOS-Go.zip"); +zip.compress(zipIslandwatchOS, "../Bin", "watchOS/*/Go.*;watchOS\ Simulator/*/Go.*", true); + +zipIslandAndroid = expand("$(CIReleaseFolder)/Island-Android-Go.zip"); +zip.compress(zipIslandAndroid, "../Bin", "Android/*/Go.*", true); + +zipIslandUbuntu = expand("$(CIReleaseFolder)/Island-Ubuntu-Go.zip"); +zip.compress(zipIslandUbuntu, "../Bin", "Ubuntu/*/Go.*", true); + +zipIslandWindows = expand("$(CIReleaseFolder)/Island-Windows-Go.zip"); +zip.compress(zipIslandWindows, "../Bin", "Ubuntu/*/Go.*", true); + var s3 = getSharedS3Bucket(); s3.uploadFile(zipName, ciSharedPrefix); +s3.uploadFile(zipIslandMac, ciSharedPrefix); +s3.uploadFile(zipIslandiOS, ciSharedPrefix); +s3.uploadFile(zipIslandtvOS, ciSharedPrefix); +s3.uploadFile(zipIslandwatchOS, ciSharedPrefix); +s3.uploadFile(zipIslandAndroid, ciSharedPrefix); +s3.uploadFile(zipIslandUbuntu, ciSharedPrefix); +s3.uploadFile(zipIslandWindows, ciSharedPrefix); From 210d5f9d608be6a97eff186db68f4dff8dc0ae3c Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Thu, 11 Nov 2021 16:32:30 +0100 Subject: [PATCH 03/22] Fix typo in build script --- Build/Build.CI2.train | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index b06a71c..167cd65 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -66,7 +66,7 @@ zipName = expand("$(CIReleaseFolder)/GoBaseLibrary.zip"); zip.compress(zipName, "../Bin", "*.*", true); zipIslandMac = expand("$(CIReleaseFolder)/Island-macOS-Go.zip"); -zip.compress(zipIslandMac, "../Bin", "macOS/*/Go.*, true); +zip.compress(zipIslandMac, "../Bin", "macOS/*/Go.*", true); zipIslandiOS = expand("$(CIReleaseFolder)/Island-iOS-Go.zip"); zip.compress(zipIslandiOS, "../Bin", "iOS/*/Go.*;iOS\ Simulator/*/Go.*;Mac\ Catalyst/*/Go.*", true); From 2fb09a1a2f2bea4809ac42bce365cc6f0a4c0b5f Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Fri, 12 Nov 2021 01:17:47 +0100 Subject: [PATCH 04/22] Copy to temp dir iOS, tvOS and watchOS binaries before adding to zip --- Build/Build.CI2.train | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index 167cd65..448e9e3 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -66,25 +66,44 @@ zipName = expand("$(CIReleaseFolder)/GoBaseLibrary.zip"); zip.compress(zipName, "../Bin", "*.*", true); zipIslandMac = expand("$(CIReleaseFolder)/Island-macOS-Go.zip"); -zip.compress(zipIslandMac, "../Bin", "macOS/*/Go.*", true); +zip.compress(zipIslandMac, "../Bin", "macOS/*.*", true); +var temp_ios = "../Bin/temp_ios"; +folder.create(temp_ios); +file.copy(path.combine("../Bin/iOS/", "*.*"), path.combine(temp_ios, "iOS"), true); +file.copy(path.combine("../Bin/iOS Simulator/", "*.*"), path.combine(temp_ios, "iOS Simulator"), true); +file.copy(path.combine("../Bin/Mac Catalyst/", "*.*"), path.combine(temp_ios, "Mac Catalyst"), true); zipIslandiOS = expand("$(CIReleaseFolder)/Island-iOS-Go.zip"); -zip.compress(zipIslandiOS, "../Bin", "iOS/*/Go.*;iOS\ Simulator/*/Go.*;Mac\ Catalyst/*/Go.*", true); - +zip.compress(zipIslandiOS, temp_ios, "*.*", true); +folder.remove(temp_ios); +//zip.compress(zipIslandiOS, "../Bin", "iOS/*/Go.*;iOS\ Simulator/*/Go.*;Mac\ Catalyst/*/Go.*", true); + +var temp_tvos = "../Bin/temp_tvos"; +folder.create(temp_tvos); +file.copy(path.combine("../Bin/tvOS/", "*.*"), path.combine(temp_tvos, "tvOS"), true); +file.copy(path.combine("../Bin/tvOS Simulator/", "*.*"), path.combine(temp_tvos, "tvOS Simulator"), true); zipIslandtvOS = expand("$(CIReleaseFolder)/Island-tvOS-Go.zip"); -zip.compress(zipIslandtvOS, "../Bin", "tvOS/*/Go.*;tvOS\ Simulator/*/Go.*", true); - +zip.compress(zipIslandtvOS, temp_tvos, "*.*", true); +folder.remove(temp_tvos); +//zip.compress(zipIslandtvOS, "../Bin", "tvOS/*/Go.*;tvOS\ Simulator/*/Go.*", true); + +var temp_watchos = "../Bin/temp_watchos"; +folder.create(temp_watchos); +file.copy(path.combine("../Bin/watchOS/", "*.*"), path.combine(temp_watchos, "watchOS"), true); +file.copy(path.combine("../Bin/watchOS Simulator/", "*.*"), path.combine(temp_watchos, "watchOS Simulator"), true); zipIslandwatchOS = expand("$(CIReleaseFolder)/Island-watchOS-Go.zip"); -zip.compress(zipIslandwatchOS, "../Bin", "watchOS/*/Go.*;watchOS\ Simulator/*/Go.*", true); +zip.compress(zipIslandwatchOS, temp_watchos, "*.*", true); +folder.remove(temp_watchos); +//zip.compress(zipIslandwatchOS, "../Bin", "watchOS/*/Go.*;watchOS\ Simulator/*/Go.*", true); zipIslandAndroid = expand("$(CIReleaseFolder)/Island-Android-Go.zip"); -zip.compress(zipIslandAndroid, "../Bin", "Android/*/Go.*", true); +zip.compress(zipIslandAndroid, "../Bin", "Android/*.*", true); zipIslandUbuntu = expand("$(CIReleaseFolder)/Island-Ubuntu-Go.zip"); -zip.compress(zipIslandUbuntu, "../Bin", "Ubuntu/*/Go.*", true); +zip.compress(zipIslandUbuntu, "../Bin", "Ubuntu/*.*", true); zipIslandWindows = expand("$(CIReleaseFolder)/Island-Windows-Go.zip"); -zip.compress(zipIslandWindows, "../Bin", "Ubuntu/*/Go.*", true); +zip.compress(zipIslandWindows, "../Bin", "Windows/*.*", true); var s3 = getSharedS3Bucket(); s3.uploadFile(zipName, ciSharedPrefix); From b1afea29075257536a3bba1989a221937a6e2cc3 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Fri, 12 Nov 2021 08:11:50 +0100 Subject: [PATCH 05/22] Fix path for copying Island binaries (it's Bin/Island/, not just /Bin) --- Build/Build.CI2.train | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index 448e9e3..efced5f 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -66,13 +66,13 @@ zipName = expand("$(CIReleaseFolder)/GoBaseLibrary.zip"); zip.compress(zipName, "../Bin", "*.*", true); zipIslandMac = expand("$(CIReleaseFolder)/Island-macOS-Go.zip"); -zip.compress(zipIslandMac, "../Bin", "macOS/*.*", true); +zip.compress(zipIslandMac, "../Bin/Island", "macOS/*.*", true); var temp_ios = "../Bin/temp_ios"; folder.create(temp_ios); -file.copy(path.combine("../Bin/iOS/", "*.*"), path.combine(temp_ios, "iOS"), true); -file.copy(path.combine("../Bin/iOS Simulator/", "*.*"), path.combine(temp_ios, "iOS Simulator"), true); -file.copy(path.combine("../Bin/Mac Catalyst/", "*.*"), path.combine(temp_ios, "Mac Catalyst"), true); +file.copy(path.combine("../Bin/Island/iOS/", "*.*"), path.combine(temp_ios, "iOS"), true); +file.copy(path.combine("../Bin/Island/iOS Simulator/", "*.*"), path.combine(temp_ios, "iOS Simulator"), true); +file.copy(path.combine("../Bin/Island/Mac Catalyst/", "*.*"), path.combine(temp_ios, "Mac Catalyst"), true); zipIslandiOS = expand("$(CIReleaseFolder)/Island-iOS-Go.zip"); zip.compress(zipIslandiOS, temp_ios, "*.*", true); folder.remove(temp_ios); @@ -80,8 +80,8 @@ folder.remove(temp_ios); var temp_tvos = "../Bin/temp_tvos"; folder.create(temp_tvos); -file.copy(path.combine("../Bin/tvOS/", "*.*"), path.combine(temp_tvos, "tvOS"), true); -file.copy(path.combine("../Bin/tvOS Simulator/", "*.*"), path.combine(temp_tvos, "tvOS Simulator"), true); +file.copy(path.combine("../Bin/Island/tvOS/", "*.*"), path.combine(temp_tvos, "tvOS"), true); +file.copy(path.combine("../Bin/Island/tvOS Simulator/", "*.*"), path.combine(temp_tvos, "tvOS Simulator"), true); zipIslandtvOS = expand("$(CIReleaseFolder)/Island-tvOS-Go.zip"); zip.compress(zipIslandtvOS, temp_tvos, "*.*", true); folder.remove(temp_tvos); @@ -89,21 +89,21 @@ folder.remove(temp_tvos); var temp_watchos = "../Bin/temp_watchos"; folder.create(temp_watchos); -file.copy(path.combine("../Bin/watchOS/", "*.*"), path.combine(temp_watchos, "watchOS"), true); -file.copy(path.combine("../Bin/watchOS Simulator/", "*.*"), path.combine(temp_watchos, "watchOS Simulator"), true); +file.copy(path.combine("../Bin/Island/watchOS/", "*.*"), path.combine(temp_watchos, "watchOS"), true); +file.copy(path.combine("../Bin/Island/watchOS Simulator/", "*.*"), path.combine(temp_watchos, "watchOS Simulator"), true); zipIslandwatchOS = expand("$(CIReleaseFolder)/Island-watchOS-Go.zip"); zip.compress(zipIslandwatchOS, temp_watchos, "*.*", true); folder.remove(temp_watchos); //zip.compress(zipIslandwatchOS, "../Bin", "watchOS/*/Go.*;watchOS\ Simulator/*/Go.*", true); zipIslandAndroid = expand("$(CIReleaseFolder)/Island-Android-Go.zip"); -zip.compress(zipIslandAndroid, "../Bin", "Android/*.*", true); +zip.compress(zipIslandAndroid, "../Bin/Island", "Android/*.*", true); zipIslandUbuntu = expand("$(CIReleaseFolder)/Island-Ubuntu-Go.zip"); -zip.compress(zipIslandUbuntu, "../Bin", "Ubuntu/*.*", true); +zip.compress(zipIslandUbuntu, "../Bin/Island", "Ubuntu/*.*", true); zipIslandWindows = expand("$(CIReleaseFolder)/Island-Windows-Go.zip"); -zip.compress(zipIslandWindows, "../Bin", "Windows/*.*", true); +zip.compress(zipIslandWindows, "../Bin/Island", "Windows/*.*", true); var s3 = getSharedS3Bucket(); s3.uploadFile(zipName, ciSharedPrefix); From 74505cf74774b38b722bb515fded42108b17c8ee Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Fri, 19 Nov 2021 13:24:55 +0100 Subject: [PATCH 06/22] Type check failswith Memory types: T is V fails when T is Memory, check before if it's a reference --- Source/Gold/Gold.pas | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/Gold/Gold.pas b/Source/Gold/Gold.pas index 1af252f..85bb106 100644 --- a/Source/Gold/Gold.pas +++ b/Source/Gold/Gold.pas @@ -832,6 +832,11 @@ CloneHelper = class if v is T then exit (T(v), true); + + if v is IMemory then begin + if IMemory(v).GetValue is T then + exit (IMemory(v).GetValue as T, true); + end; {$IFDEF ISLAND} if VTCheck.IsVT then exit (typeOf(T).Instantiate as T, false); From 42fa5e05f3ddaa265e9e273e1e3d407efd4a0f24 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Tue, 21 Dec 2021 12:11:35 +0100 Subject: [PATCH 07/22] Create echoes zip in CI2 build script --- Build/Build.CI2.train | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index efced5f..6a57081 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -105,6 +105,9 @@ zip.compress(zipIslandUbuntu, "../Bin/Island", "Ubuntu/*.*", true); zipIslandWindows = expand("$(CIReleaseFolder)/Island-Windows-Go.zip"); zip.compress(zipIslandWindows, "../Bin/Island", "Windows/*.*", true); +zipEchoes = expand("$(CIReleaseFolder)/Echoes-Go.zip"); +zip.compress(zipEchoes, "../Bin/Echoes", "*.*", true); + var s3 = getSharedS3Bucket(); s3.uploadFile(zipName, ciSharedPrefix); From 1b22bddcf13ad8448ae83dd998745e8af4d040c8 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Tue, 21 Dec 2021 18:48:57 +0100 Subject: [PATCH 08/22] Create cooper zip in CI2 build script --- Build/Build.CI2.train | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index 6a57081..0189560 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -108,6 +108,10 @@ zip.compress(zipIslandWindows, "../Bin/Island", "Windows/*.*", true); zipEchoes = expand("$(CIReleaseFolder)/Echoes-Go.zip"); zip.compress(zipEchoes, "../Bin/Echoes", "*.*", true); +zipCooper = expand("$(CIReleaseFolder)/Cooper-Go.zip"); +zip.compress(zipCooper, "../Bin/Cooper", "*.*", true); + + var s3 = getSharedS3Bucket(); s3.uploadFile(zipName, ciSharedPrefix); From eff554973955b774f60bbeeb757ef515007a0b61 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Tue, 21 Dec 2021 18:54:06 +0100 Subject: [PATCH 09/22] Build.Ci2: Upload echoes and cooper zip files to S3 --- Build/Build.CI2.train | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index 0189560..bd6e709 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -122,3 +122,6 @@ s3.uploadFile(zipIslandwatchOS, ciSharedPrefix); s3.uploadFile(zipIslandAndroid, ciSharedPrefix); s3.uploadFile(zipIslandUbuntu, ciSharedPrefix); s3.uploadFile(zipIslandWindows, ciSharedPrefix); +s3.uploadFile(zipEchoes, ciSharedPrefix); +s3.uploadFile(zipCooper, ciSharedPrefix); + From 6e87c2209ba7781d6231b369b6bac0d7936e26ff Mon Sep 17 00:00:00 2001 From: Carlo Kok Date: Wed, 6 Sep 2023 20:18:25 +0200 Subject: [PATCH 10/22] Method should be delegate --- Source/Gold/Net.pas | 2 +- Source/Gold/Reflect.pas | 2 +- Source/Gold/Sync.pas | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Gold/Net.pas b/Source/Gold/Net.pas index 20d88ca..9b4d485 100644 --- a/Source/Gold/Net.pas +++ b/Source/Gold/Net.pas @@ -830,7 +830,7 @@ // Network and address parameters passed to Control method are not // necessarily the ones passed to Dial. For example, passing "tcp" to Dial // will cause the Control function to be called with "tcp4" or "tcp6". - Control: method(network, address: string; c: go.syscall.RawConn): go.builtin.error; // Go 1.11 + Control: delegate(network, address: string; c: go.syscall.RawConn): go.builtin.error; // Go 1.11 method Dial(network, address: string): tuple of (Conn, go.builtin.error); begin diff --git a/Source/Gold/Reflect.pas b/Source/Gold/Reflect.pas index 7d96e6c..168bce6 100644 --- a/Source/Gold/Reflect.pas +++ b/Source/Gold/Reflect.pas @@ -1390,7 +1390,7 @@ MethodImpl = class(&Method) result := new TypeImpl(v.GetType()); end; - method Swapper(aslice: Object): method(arg0: go.builtin.int; arg1: go.builtin.int); public; + method Swapper(aslice: Object): delegate(arg0: go.builtin.int; arg1: go.builtin.int); public; begin exit @go.sort.Interface(aslice).Swap; end; diff --git a/Source/Gold/Sync.pas b/Source/Gold/Sync.pas index 704ec83..b0e8e4f 100644 --- a/Source/Gold/Sync.pas +++ b/Source/Gold/Sync.pas @@ -201,7 +201,7 @@ fLock: Object := new Object; {$ENDIF} public - method &Do(a: method()); + method &Do(a: delegate()); begin if fDone = 1 then exit; locking fLock do begin From 5e49c0d889b073c1167a6b4b43a2a3c013143727 Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Wed, 6 Sep 2023 16:34:41 -0400 Subject: [PATCH 11/22] Build fix? --- Build/Build.CI2.train | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index bd6e709..dd36d73 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -20,7 +20,7 @@ if (useLatestCompiler) var sharedElementsS3 = findClosestSharedS3FolderWithBranch("elements", "develop"); extractZipFromS3(getSharedS3Bucket(), sharedElementsS3, "FullZipDistro.zip", elementsBin); - file.copy("$(elementsBin)/References/Echoes/NET", elementsBin); + file.copy("$(elementsBin)/References/Echoes/*.*", elementsBin); var ebuildExe = expand('$(elementsBin)/EBuild.exe'); var eBuildReferenceFolderOverrides = '"--setting:ToffeeSDKFolder=$(elementsBin)/Toffee SDKs" "--setting:IslandSDKFolder=$(elementsBin)/Island SDKs" "--setting:AdditionalReferencePaths=$(elementsBin)/References"'; } From c675762cf2a7b7aa3be2935f5ce92ba5d5a6c743 Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Wed, 6 Sep 2023 16:41:50 -0400 Subject: [PATCH 12/22] Build fix for Aspect --- Source/GoldAspect/GoldAspect.elements | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/GoldAspect/GoldAspect.elements b/Source/GoldAspect/GoldAspect.elements index 60bde3c..495ab86 100644 --- a/Source/GoldAspect/GoldAspect.elements +++ b/Source/GoldAspect/GoldAspect.elements @@ -7,7 +7,7 @@ Library GoldAspect Release - v4.0 + .NETStandard2.0 False @@ -42,6 +42,7 @@ 3.5 + From c628a96cd6787ad17eff12f639a78090ceff60d4 Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Wed, 6 Sep 2023 16:45:05 -0400 Subject: [PATCH 13/22] Build fix for Aspect --- Source/GoldAspect/GoldAspect.elements | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/Source/GoldAspect/GoldAspect.elements b/Source/GoldAspect/GoldAspect.elements index 495ab86..96e7e3c 100644 --- a/Source/GoldAspect/GoldAspect.elements +++ b/Source/GoldAspect/GoldAspect.elements @@ -27,21 +27,6 @@ False - - - - - - - - 3.5 - - - 3.5 - - - 3.5 - From 2bdc672cfe0fa1a406cf9293ca576c33020b708a Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Wed, 6 Sep 2023 16:50:18 -0400 Subject: [PATCH 14/22] Revert "Build fix?" This reverts commit 5e49c0d889b073c1167a6b4b43a2a3c013143727. --- Build/Build.CI2.train | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/Build.CI2.train b/Build/Build.CI2.train index dd36d73..bd6e709 100644 --- a/Build/Build.CI2.train +++ b/Build/Build.CI2.train @@ -20,7 +20,7 @@ if (useLatestCompiler) var sharedElementsS3 = findClosestSharedS3FolderWithBranch("elements", "develop"); extractZipFromS3(getSharedS3Bucket(), sharedElementsS3, "FullZipDistro.zip", elementsBin); - file.copy("$(elementsBin)/References/Echoes/*.*", elementsBin); + file.copy("$(elementsBin)/References/Echoes/NET", elementsBin); var ebuildExe = expand('$(elementsBin)/EBuild.exe'); var eBuildReferenceFolderOverrides = '"--setting:ToffeeSDKFolder=$(elementsBin)/Toffee SDKs" "--setting:IslandSDKFolder=$(elementsBin)/Island SDKs" "--setting:AdditionalReferencePaths=$(elementsBin)/References"'; } From b7d3278b80278aec3519e743e8f2dd33b5bc493a Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Thu, 7 Sep 2023 09:24:47 +0200 Subject: [PATCH 15/22] Fix Island non windows platforms, method changed --- Source/Gold/os.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Gold/os.pas b/Source/Gold/os.pas index 4847375..1743dfb 100644 --- a/Source/Gold/os.pas +++ b/Source/Gold/os.pas @@ -461,7 +461,7 @@ {$ELSE} var lArgs := new String[ExternalCalls.nargs]; for i: Integer := 0 to ExternalCalls.nargs - 1 do - lArgs[i] := String.FromPAnsiChars(ExternalCalls.args[i]); + lArgs[i] := String.FromPAnsiChar(ExternalCalls.args[i]); exit lArgs; {$ENDIF} end; From 3a530e0867f7faf63f4655324cf14b2cf2d81639 Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Thu, 7 Sep 2023 07:52:12 -0400 Subject: [PATCH 16/22] API fix for renamed FromPAnsiChar --- Source/Gold/os.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Gold/os.pas b/Source/Gold/os.pas index 4847375..1743dfb 100644 --- a/Source/Gold/os.pas +++ b/Source/Gold/os.pas @@ -461,7 +461,7 @@ {$ELSE} var lArgs := new String[ExternalCalls.nargs]; for i: Integer := 0 to ExternalCalls.nargs - 1 do - lArgs[i] := String.FromPAnsiChars(ExternalCalls.args[i]); + lArgs[i] := String.FromPAnsiChar(ExternalCalls.args[i]); exit lArgs; {$ENDIF} end; From 3d8a7c7d9dae5b1fd5ef19e9bf0f20a0e2fa1410 Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Thu, 7 Sep 2023 07:53:10 -0400 Subject: [PATCH 17/22] Build some files for arm64 that were set not to. --- Source/Gold/crypto/elliptic/p256_elements.go | 7 ++++--- Source/Gold/crypto/elliptic/p256_generic.go | 7 ++++--- Source/Gold/hash/crc32/crc32_otherarch.go | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/Source/Gold/crypto/elliptic/p256_elements.go b/Source/Gold/crypto/elliptic/p256_elements.go index e5f7c6f..a97fccd 100644 --- a/Source/Gold/crypto/elliptic/p256_elements.go +++ b/Source/Gold/crypto/elliptic/p256_elements.go @@ -1,8 +1,9 @@ -// Copyright 2013 The Go Authors. All rights reserved. +// Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!arm64 +// +build !amd64 +//##,!arm64 package elliptic @@ -1193,4 +1194,4 @@ func p256ToBig(in *[p256Limbs]uint32) *big.Int { result.Mul(result, p256RInverse) result.Mod(result, p256Params.P) return result -} +} \ No newline at end of file diff --git a/Source/Gold/crypto/elliptic/p256_generic.go b/Source/Gold/crypto/elliptic/p256_generic.go index 9427331..428445c 100644 --- a/Source/Gold/crypto/elliptic/p256_generic.go +++ b/Source/Gold/crypto/elliptic/p256_generic.go @@ -1,8 +1,9 @@ -// Copyright 2016 The Go Authors. All rights reserved. +// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!s390x,!arm64 +// +build !amd64,!s390x +//##,!arm64 package elliptic @@ -13,4 +14,4 @@ var ( func initP256Arch() { // Use pure Go implementation. p256 = p256Curve{p256Params} -} +} \ No newline at end of file diff --git a/Source/Gold/hash/crc32/crc32_otherarch.go b/Source/Gold/hash/crc32/crc32_otherarch.go index 6f3510a..a80741c 100644 --- a/Source/Gold/hash/crc32/crc32_otherarch.go +++ b/Source/Gold/hash/crc32/crc32_otherarch.go @@ -1,8 +1,9 @@ -// Copyright 2011 The Go Authors. All rights reserved. +// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!amd64p32,!s390x,!ppc64le,!arm64 +// +build !amd64,!amd64p32,!s390x,!ppc64le +//##,!arm64 package crc32 @@ -12,4 +13,4 @@ func archUpdateIEEE(crc uint32, p []byte) uint32 { panic("not available") } func archAvailableCastagnoli() bool { return false } func archInitCastagnoli() { panic("not available") } -func archUpdateCastagnoli(crc uint32, p []byte) uint32 { panic("not available") } +func archUpdateCastagnoli(crc uint32, p []byte) uint32 { panic("not available") } \ No newline at end of file From d14b8d228f5e886dcd6576ce365b2c17bbfa5f6c Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Thu, 7 Sep 2023 08:44:26 -0400 Subject: [PATCH 18/22] Build some files for arm64 that were set not to. --- Source/Gold/crypto/aes/cipher_generic.go | 7 ++++--- Source/Gold/crypto/md5/md5block_decl.go | 7 ++++--- Source/Gold/crypto/md5/md5block_generic.go | 7 ++++--- Source/Gold/crypto/sha1/sha1block_generic.go | 7 ++++--- Source/Gold/crypto/sha256/sha256block_generic.go | 7 ++++--- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Source/Gold/crypto/aes/cipher_generic.go b/Source/Gold/crypto/aes/cipher_generic.go index 80a68b4..ac28b50 100644 --- a/Source/Gold/crypto/aes/cipher_generic.go +++ b/Source/Gold/crypto/aes/cipher_generic.go @@ -1,8 +1,9 @@ -// Copyright 2012 The Go Authors. All rights reserved. +// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!s390x,!ppc64le,!arm64 +// +build !amd64,!s390x,!ppc64le +//##,!arm64 package aes @@ -23,4 +24,4 @@ func newCipher(key []byte) (cipher.Block, error) { // call an assembly implementation if one is available. func expandKey(key []byte, enc, dec []uint32) { expandKeyGo(key, enc, dec) -} +} \ No newline at end of file diff --git a/Source/Gold/crypto/md5/md5block_decl.go b/Source/Gold/crypto/md5/md5block_decl.go index 1ac82cf..99e04ed 100644 --- a/Source/Gold/crypto/md5/md5block_decl.go +++ b/Source/Gold/crypto/md5/md5block_decl.go @@ -1,8 +1,9 @@ -// Copyright 2013 The Go Authors. All rights reserved. +// Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build amd64 amd64p32 386 arm ppc64le ppc64 s390x arm64 +// +build amd64 amd64p32 386 arm ppc64le ppc64 s390x +//##arm64 package md5 @@ -10,4 +11,4 @@ const haveAsm = true //go:noescape -func block(dig *digest, p []byte) +func block(dig *digest, p []byte) \ No newline at end of file diff --git a/Source/Gold/crypto/md5/md5block_generic.go b/Source/Gold/crypto/md5/md5block_generic.go index 86e3b64..684edd1 100644 --- a/Source/Gold/crypto/md5/md5block_generic.go +++ b/Source/Gold/crypto/md5/md5block_generic.go @@ -1,11 +1,12 @@ -// Copyright 2014 The Go Authors. All rights reserved. +// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!amd64p32,!386,!arm,!ppc64le,!ppc64,!s390x,!arm64 +// +build !amd64,!amd64p32,!386,!arm,!ppc64le,!ppc64,!s390x +//##,!arm64 package md5 const haveAsm = false -var block = blockGeneric +var block = blockGeneric \ No newline at end of file diff --git a/Source/Gold/crypto/sha1/sha1block_generic.go b/Source/Gold/crypto/sha1/sha1block_generic.go index 5823e08..5a11447 100644 --- a/Source/Gold/crypto/sha1/sha1block_generic.go +++ b/Source/Gold/crypto/sha1/sha1block_generic.go @@ -1,9 +1,10 @@ -// Copyright 2014 The Go Authors. All rights reserved. +// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!amd64p32,!386,!arm,!s390x,!arm64 +// +build !amd64,!amd64p32,!386,!arm,!s390x +//##,!arm64 package sha1 -var block = blockGeneric +var block = blockGeneric \ No newline at end of file diff --git a/Source/Gold/crypto/sha256/sha256block_generic.go b/Source/Gold/crypto/sha256/sha256block_generic.go index 61362f4..81bc4ad 100644 --- a/Source/Gold/crypto/sha256/sha256block_generic.go +++ b/Source/Gold/crypto/sha256/sha256block_generic.go @@ -1,9 +1,10 @@ -// Copyright 2016 The Go Authors. All rights reserved. +// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build !amd64,!386,!s390x,!ppc64le,!arm64 +// +build !amd64,!386,!s390x,!ppc64le +//##,!arm64 package sha256 -var block = blockGeneric +var block = blockGeneric \ No newline at end of file From d6666d15d141b90ddbfd9e58de47bd28f5155123 Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Thu, 21 Sep 2023 15:55:47 +0200 Subject: [PATCH 19/22] E26781: Gold-Echoes: AV using atomic.StoreInt32 -- remove handleInterface aspect for AtomicBool --- Source/Gold/Gold.elements | 5 +++-- Source/Gold/net/http/{client.go => client_elements.go} | 8 +++++--- Source/GoldAspect/Main.pas | 7 ++++--- 3 files changed, 12 insertions(+), 8 deletions(-) rename Source/Gold/net/http/{client.go => client_elements.go} (99%) diff --git a/Source/Gold/Gold.elements b/Source/Gold/Gold.elements index 0c21446..b7601d7 100644 --- a/Source/Gold/Gold.elements +++ b/Source/Gold/Gold.elements @@ -56,6 +56,7 @@ macOS POSIX;math_big_pure_go StaticLibrary + arm64;x86_64 Island @@ -86,7 +87,7 @@ StaticLibrary - + ..\GoldAspect\Bin\Debug\GoldAspect.dll {631D3965-3D71-4DFD-9864-EBF841EA6192} ..\GoldAspect\GoldAspect.elements @@ -313,7 +314,7 @@ - + diff --git a/Source/Gold/net/http/client.go b/Source/Gold/net/http/client_elements.go similarity index 99% rename from Source/Gold/net/http/client.go rename to Source/Gold/net/http/client_elements.go index 20496d2..fccb04d 100644 --- a/Source/Gold/net/http/client.go +++ b/Source/Gold/net/http/client_elements.go @@ -1,4 +1,4 @@ -// Copyright 2009 The Go Authors. All rights reserved. +// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -330,7 +330,9 @@ func setRequestCancel(req *Request, rt RoundTripper, deadline time.Time) (stopTi } }() - return stopTimer, timedOut.isSet + // elements, modification due to: E26781: Gold-Echoes: AV using atomic.StoreInt32 + //return stopTimer, timedOut.isSet + return stopTimer, func() bool { return timedOut.isSet() } } // See 2 (end of page 4) https://www.ietf.org/rfc/rfc2617.txt @@ -931,4 +933,4 @@ func stripPassword(u *url.URL) string { return strings.Replace(u.String(), u.User.String()+"@", u.User.Username()+":***@", 1) } return u.String() -} +} \ No newline at end of file diff --git a/Source/GoldAspect/Main.pas b/Source/GoldAspect/Main.pas index 932fac7..e7eb2bc 100644 --- a/Source/GoldAspect/Main.pas +++ b/Source/GoldAspect/Main.pas @@ -43,7 +43,8 @@ "crypto.sha512", "errors", "fmt"]);*/ - var lType := Services.GetType('go.net.http.atomicBool'); + + {var lType := Services.GetType('go.net.http.atomicBool'); ITypeDefinition(lType).RemoveMethod(lType.GetStaticMethods('isSet')[0] as IMethodDefinition); ITypeDefinition(lType).RemoveMethod(lType.GetStaticMethods('setTrue')[0] as IMethodDefinition); var lPar := new SelfValue; @@ -56,9 +57,9 @@ lsetTrue.ReplaceMethodBody( new StandaloneStatement( new ProcValue(new TypeValue(Services.GetType('go.sync.atomic.__Global')), 'StoreInt32', [new FieldValue(lPar, lType, 'Value'), new DataValue(1)]) - )); + ));} - lType := Services.GetType('go.net.http.__Global'); + var lType := Services.GetType('go.net.http.__Global'); var lMethod := lType.GetStaticMethods('http2isNoCachedConnError')[0] as IMethodDefinition; lMethod.ReplaceMethodBody( new ExitStatement(new BinaryValue(new ParamValue(0), new TypeValue(Services.GetType('go.net.http.http2noCachedConnError')), BinaryOperator.Is)) From f4ed58165587dbd66397b820e9b2cddb9756cbfb Mon Sep 17 00:00:00 2001 From: marc hoffman Date: Sun, 24 Sep 2023 12:44:22 -0400 Subject: [PATCH 20/22] Project fix --- Source/Gold/Gold.elements | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Source/Gold/Gold.elements b/Source/Gold/Gold.elements index 0c21446..7f1dedb 100644 --- a/Source/Gold/Gold.elements +++ b/Source/Gold/Gold.elements @@ -41,7 +41,6 @@ Island Windows - i386;x86_64 StaticLibrary @@ -86,7 +85,7 @@ StaticLibrary - + ..\GoldAspect\Bin\Debug\GoldAspect.dll {631D3965-3D71-4DFD-9864-EBF841EA6192} ..\GoldAspect\GoldAspect.elements From 75ed65ea65dcb0d71ea4be60ba79c3ba3e6c5125 Mon Sep 17 00:00:00 2001 From: evgenyk Date: Wed, 10 Jul 2024 14:50:14 +0300 Subject: [PATCH 21/22] assembly title was fixed --- Source/Gold/Properties/AssemblyInfo.pas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Gold/Properties/AssemblyInfo.pas b/Source/Gold/Properties/AssemblyInfo.pas index fc14886..c59f643 100644 --- a/Source/Gold/Properties/AssemblyInfo.pas +++ b/Source/Gold/Properties/AssemblyInfo.pas @@ -7,7 +7,7 @@ System.Resources, System.Runtime.InteropServices; -[assembly: AssemblyTitle('RemObhjects Elements Gold Support Library')] +[assembly: AssemblyTitle('RemObjects Elements Gold Support Library')] [assembly: AssemblyDescription('')] [assembly: AssemblyConfiguration('')] [assembly: AssemblyCompany('RemObjects Software, LLC')] From 819b40b304b5fd2be89d0d3f219023152a15fadc Mon Sep 17 00:00:00 2001 From: Diego Navarro Date: Fri, 30 Aug 2024 11:11:41 +0200 Subject: [PATCH 22/22] Fix errors compiling gold library Due to compiler changes, legit errors: Equal operator with wrong classes --- Source/Gold/Complex.pas | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Gold/Complex.pas b/Source/Gold/Complex.pas index 0553d75..05642f5 100644 --- a/Source/Gold/Complex.pas +++ b/Source/Gold/Complex.pas @@ -72,12 +72,12 @@ exit new complex64(r := x.r, i := x.i); end; - operator Equal(a, b: complex128): Boolean; + operator Equal(a, b: complex64): Boolean; begin exit (a.r = b.r) and (a.i = b.i); end; - operator NotEqual(a, b: complex128): Boolean; + operator NotEqual(a, b: complex64): Boolean; begin exit (a.r <> b.r) or (a.i <> b.i); end;