> On Nov 2, 2016, at 10:17 AM, Jordan Rose <jordan_r...@apple.com> wrote:
> 
>> 
>> On Nov 2, 2016, at 09:42, Joe Groff via swift-users <swift-users@swift.org 
>> <mailto:swift-users@swift.org>> wrote:
>> 
>>> 
>>> On Nov 1, 2016, at 6:40 PM, Bernardo Breder via swift-users 
>>> <swift-users@swift.org <mailto:swift-users@swift.org>> wrote:
>>> 
>>> Hello,
>>> 
>>> I want to create a mini http server project and execute at Ubuntu 15. The 
>>> Xcode compile and access the function "autoreleasepool", but when i compile 
>>> the same code at Ubuntu, this function not found
>>> 
>>> For example, i can compile the code above at Xcode:
>>> 
>>> while true {
>>>    autoreleasepool {
>>>    var test: Data = "HTTP/1.1 200 OK\r\nContent-Length: 
>>> 1\r\n\r\na".data(using: .utf8)!
>>>    }
>>> }
>>> 
>>> But when i try to compile at Ubuntu:
>>> 
>>> git@breder:~$ cat main.swift     
>>> import Foundation
>>> 
>>> while true {
>>>    autoreleasepool {
>>>    var test: Data = "HTTP/1.1 200 OK\r\nContent-Length: 
>>> 1\r\n\r\na".data(using: .utf8)!
>>>    }
>>> }
>>> 
>>> git@breder:~$ swiftc main.swift 
>>> main.swift:4:5: error: use of unresolved identifier 'autoreleasepool'
>>>    autoreleasepool {
>>>    ^~~~~~~~~~~~~~~
>> 
>> Autoreleasepools are an ObjC compatibility feature. They aren't necessary in 
>> standalone Swift.
> 
> But they are necessary in Swift programs on Apple platforms (that don’t use 
> RunLoop, anyway). Philippe, what do you think? What’s the right way to write 
> cross-platform code that doesn’t use RunLoop or dispatch_main for an implicit 
> autorelease pool?
> 
> (/me remembers +[NSAutoreleasePool drain] from the ObjC-GC days)

If you must, you could conditionally define `autoreleasepool` to just call its 
argument as a compatibility shim.

-Joe
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to