[swift-dev] Flaky test - objc_nonnull_lie_hack

Slava Pestov spestov at apple.com
Fri Sep 9 21:56:54 CDT 2016


Oh, cool!

The change looks good to me. It’s a bit of a hack but less so than -enable-source-import. There are annoying differences in behavior between -enable-source-import and the real module loader, and this is made worse by the fact that so many tests use -enable-source-import so we’re effectively testing a debug-only code path. I’d like to just rip it out one day.

Slava

> On Sep 9, 2016, at 5:18 PM, Jordan Rose <jordan_rose at apple.com> wrote:
> 
> Dmitri tracked it down and has a fix for it, and then I had a complaint about his fix, and then I didn't get back to it. :-)
> 
> https://github.com/apple/swift/pull/4622 <https://github.com/apple/swift/pull/4622>
> 
> Jordan
> 
> 
>> On Sep 9, 2016, at 14:50, Slava Pestov via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>> 
>> Running it in a loop on another machine doesn’t trigger it, so I’m thinking it might be a random variation in how the standard library is built?
>> 
>>> On Sep 9, 2016, at 2:49 PM, Mark Lacey <mark.lacey at apple.com <mailto:mark.lacey at apple.com>> wrote:
>>> 
>>> 
>>>> On Sep 9, 2016, at 2:45 PM, Slava Pestov via swift-dev <swift-dev at swift.org <mailto:swift-dev at swift.org>> wrote:
>>>> 
>>>> Hi all,
>>>> 
>>>> Is anyone else seeing this? I haven’t seen it in CI, but for me this test fails at random, very rarely too — looks like something is non-deterministic in the optimizer?
>>> 
>>> Yes, I hit this a couple days ago and attempted to reproduce and couldn’t.
>>> 
>>> Mark
>>> 
>>>> 
>>>> /Users/slava/new/swift/test/SILGen/objc_nonnull_lie_hack.swift:30:9: error: expected string not found in input
>>>> // OPT: [[METHOD:%[0-9]+]] = class_method [volatile] [[METATYPE]] : $@thick Gizmo.Type, #Gizmo.nonNilGizmo!1.foreign : (Gizmo.Type) -> () -> Gizmo , $@convention(objc_method) (@objc_metatype Gizmo.Type) -> @autoreleased Gizmo
>>>>         ^
>>>> <stdin>:329:34: note: scanning from here
>>>>  %0 = metatype $@thick Gizmo.Type, loc "SOURCE_DIR/test/SILGen/objc_nonnull_lie_hack.swift":36:21, scope 54 // user: %1
>>>>                                  ^
>>>> <stdin>:329:34: note: with variable "METATYPE" equal to "%0"
>>>>  %0 = metatype $@thick Gizmo.Type, loc "SOURCE_DIR/test/SILGen/objc_nonnull_lie_hack.swift":36:21, scope 54 // user: %1
>>>>                                  ^
>>>> <stdin>:330:2: note: possible intended match here
>>>>  %1 = class_method [volatile] %0 : $@thick Gizmo.Type, #Gizmo.nonNilGizmo!1.foreign : (Gizmo.Type) -> () -> Gizmo! , $@convention(objc_method) (@objc_metatype Gizmo.Type) -> @autoreleased Optional<Gizmo>, loc "SOURCE_DIR/test/SILGen/objc_nonnull_lie_hack.swift":36:27, scope 54 // user: %3
>>>>  ^
>>>> /Users/slava/new/swift/test/SILGen/objc_nonnull_lie_hack.swift:44:9: error: expected string not found in input
>>>> // OPT: [[METHOD:%[0-9]+]] = class_method [volatile] [[OBJ:%[0-9]+]] : $Gizmo, #Gizmo.nonNilGizmo!1.foreign : (Gizmo) -> () -> Gizmo , $@convention(objc_method) (Gizmo) -> @autoreleased Gizmo
>>>>         ^
>>>> <stdin>:1625:67: note: scanning from here
>>>> sil hidden @_TTSf4g___TF21objc_nonnull_lie_hack18callInstanceMethodFT5gizmoCSo5Gizmo_GSqS0__ : $@convention(thin) (@guaranteed Gizmo) -> @owned Optional<Gizmo> {
>>>>                                                                   ^
>>>> /Users/slava/new/swift/test/SILGen/objc_nonnull_lie_hack.swift:58:9: error: expected string not found in input
>>>> // OPT: [[GETTER:%[0-9]+]] = class_method [volatile] [[OBJ:%[0-9]+]] : $Gizmo, #Gizmo.nonNilGizmoProperty!getter.1.foreign : (Gizmo) -> () -> Gizmo , $@convention(objc_method) (Gizmo) -> @autoreleased Gizmo
>>>>         ^
>>>> <stdin>:1842:88: note: scanning from here
>>>> sil hidden @_TTSf4g___TF21objc_nonnull_lie_hack12loadPropertyFT5gizmoCSo5Gizmo_GSqS0__ : $@convention(thin) (@guaranteed Gizmo) -> @owned Optional<Gizmo> {
>>>>                                                                                        ^
>>>> /Users/slava/new/swift/test/SILGen/objc_nonnull_lie_hack.swift:71:9: error: expected string not found in input
>>>> // OPT: [[GETTER:%[0-9]+]] = class_method [volatile] [[OBJ:%[0-9]+]] : $Gizmo, #Gizmo.unownedNonNilGizmoProperty!getter.1.foreign : (Gizmo) -> () -> Gizmo , $@convention(objc_method) (Gizmo) -> @autoreleased Gizmo
>>>>         ^
>>>> <stdin>:2059:95: note: scanning from here
>>>> sil hidden @_TTSf4g___TF21objc_nonnull_lie_hack19loadUnownedPropertyFT5gizmoCSo5Gizmo_GSqS0__ : $@convention(thin) (@guaranteed Gizmo) -> @owned Optional<Gizmo> {
>>>>                                                                                               ^
>>>> 
>>>> _______________________________________________
>>>> swift-dev mailing list
>>>> swift-dev at swift.org <mailto:swift-dev at swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-dev <https://lists.swift.org/mailman/listinfo/swift-dev>
>>> 
>> 
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev at swift.org <mailto:swift-dev at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160909/054fd881/attachment.html>


More information about the swift-dev mailing list