> On May 10, 2017, at 11:06 AM, Pushkar N Kulkarni <pushkar...@in.ibm.com> > wrote: > The issue is seen with the 05-09 dev snapshot. However after updating the > repos today, I no longer see it! > > Looks like one of yesterday's commits (which did not go into 05-09) fixed > it. I am closing the JIRA report. Thanks!
Okay, glad we managed to fix it; thanks. John. > > Pushkar N Kulkarni, > IBM Runtimes > > Simplicity is prerequisite for reliability - Edsger W. Dijkstra > > > > -----swift-dev-boun...@swift.org <mailto:-----swift-dev-boun...@swift.org> > wrote: ----- > To: John McCall <rjmcc...@apple.com <mailto:rjmcc...@apple.com>> > From: Pushkar N Kulkarni via swift-dev > Sent by: swift-dev-boun...@swift.org <mailto:swift-dev-boun...@swift.org> > Date: 05/10/2017 06:00PM > Cc: swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> > Subject: Re: [swift-dev] Property modification not taking effect > > Thanks John. This is the JIRA bug report: > https://bugs.swift.org/browse/SR-4852 <https://bugs.swift.org/browse/SR-4852> > > I was able to write a small test case that shows the regression: > > enum State { > case ready(TState) > case inProgress(TState) > > var isPaused: Bool { > switch self { > case .ready: return false > case .inProgress: return false > } > } > } > > enum Drain { > case foo(String) > case bar(Int, String) > } > > struct TState { > let drain: Drain > } > > class Task { > var state = State.ready(TState(drain: .foo("wow"))) { > willSet { > if newValue.isPaused { } > } > } > > func resume() { > if case .ready(let tState) = state { > print("before => \(state)") > state = .inProgress(tState) //doesn't take effect > print("after => \(state)") > } > } > } > > //main > Task().resume() > > Output with the latest master: > before => ready(Test.TState(drain: Test.Drain.foo("wow"))) > after => ready(Test.TState(drain: Test.Drain.foo("wow"))) > > > Expected output (and with the 04-24 snapshot as well): > before => ready(Test.TState(drain: Test.Drain.foo("wow"))) > after => inProgress(Test.TState(drain: Test.Drain.foo("wow"))) > > > Pushkar N Kulkarni, > IBM Runtimes > > Simplicity is prerequisite for reliability - Edsger W. Dijkstra > > > > -----rjmcc...@apple.com <mailto:-----rjmcc...@apple.com> wrote: ----- > To: Pushkar N Kulkarni <pushkar...@in.ibm.com <mailto:pushkar...@in.ibm.com>> > From: John McCall > Sent by: rjmcc...@apple.com <mailto:rjmcc...@apple.com> > Date: 05/10/2017 04:19AM > Cc: swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> > Subject: Re: [swift-dev] Property modification not taking effect > >> On May 9, 2017, at 3:07 PM, Pushkar N Kulkarni via swift-dev >> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote: >> In the process of debugging a bunch of consistent failures in >> TestFoundation/TestNSURLSession, I came across a weird problem symptom in >> this line of code >> <https://github.com/apple/swift-corelibs-foundation/blob/master/Foundation/NSURLSession/NSURLSessionTask.swift#L329>. >> >> internalState = .transferInProgress(transferState) >> >> I had a suspicion that the above modification is not taking effect, since, >> only based on this change the didSet observer for the `internalState` >> property triggers data transfers using libcurl. So, I simply printed the >> property before and after the assignment. >> >> print("before => \(internalState)") >> internalState = .transferInProgress(transferState) >> print("after => \(internalState)") >> >> Surprisingly, I don't see any change in the property value: >> before => transferReady(Foundation.URLSessionTask._TransferState(... >> <redacted> ...)) >> after => transferReady(Foundation.URLSessionTask._TransferState(... >> <redacted> ...)) >> >> When I switched back to the "swift-DEVELOPMENT-SNAPSHOT-2017-04-24-a" tag on >> all the repos (except swift-corelibs-foundation), I do not see this problem. >> I see: >> before => transferReady(Foundation.URLSessionTask._TransferState(... >> <redacted> ...)) >> after => transferInProgress(Foundation.URLSessionTask._TransferState(... >> <redacted> ...)) >> >> To put it in simple terms, the modification doesn't seem to be taking effect >> with the current HEAD. >> >> I haven't been able to isolate this problem in an independent test case. >> However, anybody who wants to reproduce it can simply run TestFoundation >> after enabling the URLSession tests (which have been disabled for now) in >> TestFoundation/main.swift. >> >> I did compare the `-emit-ir` outputs from the passing and failing levels. >> There seems to be a clear difference in the way we store the new value of >> this property. But given my limited exposure to debugging Swift compiler >> issues, I wasn't able to progress further. >> >> Can someone help us here please? Thanks. > > That sounds like a serious bug; please file it in JIRA. > > John. > > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org <mailto:swift-dev@swift.org> > https://lists.swift.org/mailman/listinfo/swift-dev > <https://lists.swift.org/mailman/listinfo/swift-dev> >
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev