Skip to content

[swift-3.0-branch] Introduce siphash for strings on non-ObjC platforms #4753

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from

Conversation

moiseev
Copy link
Contributor

@moiseev moiseev commented Sep 13, 2016

  • Explanation: Use siphash for string hashing on non-ObjC platforms
  • Scope of Issue: Introduces a more secure hashing algorithm
  • Origination:
  • Risk: Minimal
  • Reviewed By: Dmitri Gribenko
  • Testing: Ran the existing test suite.
  • Directions for QA: N/A

Requires: swiftlang/swift-corelibs-foundation#634

rdar://problem/28289426

@moiseev
Copy link
Contributor Author

moiseev commented Sep 13, 2016

@swift-ci Please test

@moiseev
Copy link
Contributor Author

moiseev commented Sep 13, 2016

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - dbeb0f793f5d5e535b4f3a7c369d039099ef05b4
Test requested by - @moiseev

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - dbeb0f793f5d5e535b4f3a7c369d039099ef05b4
Test requested by - @moiseev

@tkremenek
Copy link
Member

@swift-ci clean test linux

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4eecd78
Test requested by - @tkremenek

@tkremenek
Copy link
Member

@moiseev this doesn't build on Linux.

@tkremenek tkremenek assigned moiseev and unassigned tkremenek Sep 14, 2016
@tkremenek
Copy link
Member

swift-PR-Linux/branch-swift-3.0-branch/swiftpm/Sources/Basic/ByteString.swift:50:30: error: value of type 'String' has no member '_contiguousUTF8'
13:20:30         let stringPtrStart = string._contiguousUTF8
13:20:30                              ^~~~~~ ~~~~~~~~~~~~~~~
13:20:30 /home/buildnode/jenkins/workspace/swift-PR-Linux/branch-swift-3.0-branch/swiftpm/Sources/Basic/OutputByteStream.swift:176:30: error: value of type 'String' has no member '_contiguousUTF8'
13:20:30         let stringPtrStart = string._contiguousUTF8
13:20:30                              ^~~~~~ ~~~~~~~~~~~~~~~

@shahmishal
Copy link
Member

Please test with:
swiftlang/swift-corelibs-foundation#634

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4eecd78
Test requested by - @shahmishal

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 4eecd78
Test requested by - @shahmishal

@moiseev
Copy link
Contributor Author

moiseev commented Sep 14, 2016

Please test with:
swiftlang/swift-package-manager#656

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4eecd78
Test requested by - @moiseev

@shahmishal
Copy link
Member

@tkremenek
Copy link
Member

Swift 3.0.1 is meant to be a bug-fix release or take critical changes. This is a fairly significant semantic change to the behavior of hashing, that doesn't seem to fit either category. Let's take this for Swift 3.1.

@tkremenek tkremenek closed this Sep 15, 2016
@moiseev moiseev deleted the hashable-ccc branch September 15, 2016 17:33
@gribozavr
Copy link
Contributor

@moiseev If you will be pulling these fixes into 3.1, please also take this commit: #4850

@lattner
Copy link
Contributor

lattner commented Sep 18, 2016

3.1 should rebranch from master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants