Code Monkey home page Code Monkey logo

Comments (19)

vanvoorden avatar vanvoorden commented on June 12, 2024 4

Any interest in shipping #352 in 1.1.0? Anything more I can do to help?

from swift-collections.

vanvoorden avatar vanvoorden commented on June 12, 2024 2

@lorentey Sounds great! Are we targeting Q1 hopefully to ship? Do we have any RFCs up with the WIP benchmarks for TreeSet and TreeDictionary to show the O(log(n)) copy-on-write mutations? This is a great data structure… thanks for shipping this!

https://github.com/apple/swift-collections/blob/release/1.1/Documentation/Reviews/2022-10-31.ShareableHashedCollections/ShareableHashedCollections.md

Ahh… these were the benchmarks before ShareableSet became TreeSet?

from swift-collections.

narner avatar narner commented on June 12, 2024 2

Awesome; thank you for shipping the new release!

from swift-collections.

vmanot avatar vmanot commented on June 12, 2024 2

Hmm, don't think they shipped it yet.

from swift-collections.

vmanot avatar vmanot commented on June 12, 2024 2

@lorentey what can we do to help release 1.1.0? A lot of folks have swift-collections as a dependency and we'd love to bump it up to 1.1.0.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 2

1.1.0 is out: https://github.com/apple/swift-collections/releases/tag/1.1.0

from swift-collections.

vmanot avatar vmanot commented on June 12, 2024 1

@lorentey thank you!

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

Release preparation work is progressing over in #355, with full prerelease testing starting as soon as I run out of things on my checklist. I expect testing will take some amount of iteration as it tends to uncover random issues on specific compilers/platforms. The 1.1.0 tag will drop soon after testing is complete. I don't expect there will be an extended preview period on the forum, but I may post a candidate commit a day or two in advance.

(I think it won't be long now, but I can't promise any particular release date -- it depends on how many problems testing will uncover.)

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

Tests have passed on every supported Swift version, which is a really good sign. (Architecture-specific problems may still be lurking, but working around language discrepancies was historically more difficult.)

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

I'm running the Intel tests on macOS under Rosetta 2. I'll defer x86_64 tests on Linux for tomorrow, to run them on actual Intel hardware.

Once the current test jobs complete, I think I'll partially cherry pick the doc fixes in #356 to release/1.1 -- it'll be a super late change, but the risks are really low. (I will not restart the testing process, beyond simply doing a quick single-platform pass verifying that the change does not introduce any surprise regressions.)

Beyond these, the last major item left is to run tests on arm64_32, which is (IIRC) the last remaining architecture actively supported by Swift that has 32-bit pointers.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

arm64_32 tests completed successfully -- things are still on track.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

Any interest in shipping #352 in 1.1.0? Anything more I can do to help?

I'll add this one to the post-test batch, too!

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024 1

94cf62b is the current release candidate commit.

I am still waiting for some tests to complete, but I see no problems detected so far.

The next item on my list is going to be to draft 1.1.0 release notes.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

Candidate commit:

Diff: 1.0.6...94cf62b

I'll skip Windows testing; I trust that the CMake build results on macOS & Linux indicate that Windows will pass too.

Testing progress:

macOS/AS

  • macOS 14, Apple Silicon, Xcode 15.2 (Swift 5.11 dev snapshot) (8e64f06)
  • macOS 14, Apple Silicon, Xcode 15.2 (Swift 5.10 dev snapshot) (8e64f06)
  • macOS 14, Apple Silicon, Xcode 15.2 (Swift 5.9.2) (8e64f06, 97b1949, 94cf62b)
  • macOS 14, Apple Silicon, Xcode 14.3.1 (Swift 5.8.1)
  • macOS 14, Apple Silicon, Xcode 14.2 (Swift 5.7.2) (8e64f06)

macOS/x86_64

  • macOS 14, Intel x86_64, Xcode 15.0.1 (Swift 5.11 dev snapshot) (8e64f06)
  • macOS 14, Intel x86_64, Xcode 15.0.1 (Swift 5.10 dev snapshot) (8e64f06)
  • macOS 14, Intel x86_64, Xcode 15.0.1 (Swift 5.9.2) (8e64f06)
  • macOS 14, Intel x86_64, Xcode 14.3.1 (Swift 5.8.1)
  • macOS 14, Intel x86_64, Xcode 14.2 (Swift 5.7.2) (97b1949, 94cf62b)

Linux/Aarch64

  • Ubuntu 20.04, Aarch64, Swift 5.11 dev snapshot
  • Ubuntu 20.04, Aarch64, Swift 5.10 dev snapshot
  • Ubuntu 20.04, Aarch64, Swift 5.9.2 (8e64f06, 94cf62b)
  • Ubuntu 20.04, Aarch64, Swift 5.8.1 (8e64f06)
  • Ubuntu 20.04, Aarch64, Swift 5.7.3 (8e64f06, 94cf62b)

Linux/x86_64

  • Ubuntu 20.04, x86_64, Swift version 5.11-dev (LLVM 6751d2aa5dca44c, Swift 90f192abfeb5f17) (94cf62b)
  • Ubuntu 20.04, x86_64, Swift version 5.10-dev (LLVM 551823b7474ea05, Swift 4cbb97c1b3dcaba) (94cf62b)
  • Ubuntu 20.04, x86_64, Swift 5.9.2 (94cf62b)
  • Ubuntu 20.04, x86_64, Swift 5.8.1 (97b1949, 94cf62b)
  • Ubuntu 20.04, x86_64, Swift 5.7.3 (97b1949, 94cf62b)

Windows 10/x86_64

  • Windows 10, x86_64, Swift 5.11 dev snapshot
  • Windows 10, x86_64, Swift 5.10 dev snapshot
  • Windows 10, x86_64, Swift 5.9.2
  • Windows 10, x86_64, Swift 5.8.1
  • Windows 10, x86_64, Swift 5.7.3

(Note: I expect most of this matrix will remain untested in this tag.)

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

Swift 5.9.2. failed to build the project on Xcode 15.2 for the watchOS simulator, due to XCTest no longer shipping i386 binaries.

ld: warning: ignoring file .../Contents/Developer/Platforms/WatchSimulator.platform/Developer/Library/Frameworks/XCTest.framework/XC
Test, file is universal (x86_64,arm64) but does not contain the i386 architecture: .../Contents/Developer/Platforms/WatchSimulator.p
latform/Developer/Library/Frameworks/XCTest.framework/XCTest
ld: warning: Could not find or use auto-linked library 'XCTestSwiftSupport'
Undefined symbols for architecture i386:
  "_$s6XCTest7XCTFail_4file4lineySS_s12StaticStringVSutF", referenced from:
      _$s23_CollectionsTestSupport13expectFailure_8trapping4file4lineySSyXK_Sbs12StaticStringVSutF in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport14_expectFailure__8trapping4file4lineySS_SSyXESbs12StaticStringVSutF05$s23_ab77Support14checkEquatable_6oracle10maxSamples
4file4lineySayxG_SbSi_SitXESiSgs12ij14VSutSQRzlFySnyR15GXEfU0_SSyXEfu_SiTf1ncnnn_n in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport14_expectFailure__8trapping4file4lineySS_SSyXESbs12StaticStringVSutF05$s23_ab77Support14checkEquatable_6oracle10maxSamples
4file4lineySayxG_SbSi_SitXESiSgs12ij14VSutSQRzlFySnyR16GXEfU0_SSyXEfu0_S2iTf1ncnnn_n in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport14_expectFailure__8trapping4file4lineySS_SSyXESbs12StaticStringVSutF05$s23_ab54Support10expectTrue__8trapping4file4lineySb
_SSyXKSbs12iJ16VSutFfA0_SSycfu_Tf1ncnnn_nTm in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport14_expectFailure__8trapping4file4lineySS_SSyXESbs12StaticStringVSutF05$s23_aB60Support12MinimalIndexV17_assertCompatible4w
ithyAC_tFSSyXEfu_Tf1ncnnn_nTm in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport14_expectFailure__8trapping4file4lineySS_SSyXESbs12StaticStringVSutF in _CollectionsTestSupport.o
      _$s23_CollectionsTestSupport12expectThrows__8trapping4file4line_yxyKXK_SSyXKSbs12StaticStringVSuys5Error_pXEtlF in _CollectionsTestSupport.o
      ...
  "_OBJC_CLASS_$_XCTestCase", referenced from:
      _$s23_CollectionsTestSupport010CollectionB4CaseCN in _CollectionsTestSupport.o
  "_OBJC_METACLASS_$_XCTestCase", referenced from:
      _OBJC_METACLASS_$__TtC23_CollectionsTestSupport18CollectionTestCase in _CollectionsTestSupport.o
  "__swift_FORCE_LOAD_$_XCTestSwiftSupport", referenced from:
      __swift_FORCE_LOAD_$_XCTestSwiftSupport_$_RopeModuleTests in Availability.o
      __swift_FORCE_LOAD_$_XCTestSwiftSupport_$_RopeModuleTests in SampleStrings.o
      __swift_FORCE_LOAD_$_XCTestSwiftSupport_$_RopeModuleTests in TestBigString.o
      __swift_FORCE_LOAD_$_XCTestSwiftSupport_$_RopeModuleTests in TestRope.o
      __swift_FORCE_LOAD_$_XCTestSwiftSupport_$__CollectionsTestSupport in _CollectionsTestSupport.o
     (maybe you meant: __swift_FORCE_LOAD_$_XCTestSwiftSupport_$_RopeModuleTests)
ld: symbol(s) not found for architecture i386

This is a problem with the generic/platform=watchOS Simulator destination specifier; it's not new and it isn't related to this project.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

A second run uncovered a trap in a benchmark case:

[20 run-benchmarks] ./Utils/run-benchmarks.sh run --max-size 128 /tmp/run-full-tests.sh.lv0rF/benchmark.results --cycles 3
  Failed in 82s. See /tmp/run-full-tests.sh.lv0rF/20.run-benchmarks.log for full console output.
    Array<Int> random insertions, reserving capacity
    Array<Int> removeLast
    Array<Int> removeFirst
    (584 more)
  Output file: /tmp/run-full-tests.sh.lv0rF/benchmark.results
  Appending to existing data (if any) for these tasks/sizes.
  
  Collecting data:
    1.2.4...8...16...32...64...128 -- 79.3s
    1./Utils/run-benchmarks.sh: line 11: 27359 Trace/BPT trap: 5       swift run --package-path "$srcroot" $flags benchmark "$@"
Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
0   benchmark                     	       0x10254d3a8 Swift runtime failure: Double value cannot be converted to Int because it is either infinite or NaN + 0 [inlined]
1   benchmark                     	       0x10254d3a8 Task.measure(size:input:options:) + 936 (Task.swift:121)
2   benchmark                     	       0x10254d274 static Tick.now.getter + 16 (Tick.swift:27) [inlined]
3   benchmark                     	       0x10254d274 static Time.since(_:) + 16 (<compiler-generated>:37) [inlined]
4   benchmark                     	       0x10254d274 Task.measure(size:input:options:) + 628 (Task.swift:110)
5   benchmark                     	       0x10251ae88 _ConcreteTask.measure(size:input:options:) + 276 (AnyTask.swift:119)
6   benchmark                     	       0x1025325e8 AnyTask.measure(size:input:options:) + 24 (AnyTask.swift:49) [inlined]
7   benchmark                     	       0x1025325e8 specialized Benchmark.measureOneCycle(tasks:sizes:options:delegate:) + 1512 (Benchmark+RunOptions.swift:40)
8   benchmark                     	       0x102533768 specialized Benchmark.run(options:delegate:) + 252 (Benchmark+RunOptions.swift:84)

This appears to be a problem in the benchmark environment! Huh

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

The line in question is

        let remainingIterationEstimate =
          Int((remainingDuration / averageDuration).rounded(.up))

So presumably the average duration measured as zero. This is a real issue, but it's in swift-collections-benchmark, and it doesn't need to hold up the collections release.

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

Ah, it's an old one: apple/swift-collections-benchmark#12

from swift-collections.

lorentey avatar lorentey commented on June 12, 2024

Development toolchains downloaded from swift.org do not allow building the package with xcodebuild. This is not a fault of the package, though.

from swift-collections.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.