Swift iPad 的 Apple Swift Playgrounds 应用程序如何执行代码?
How does Apple's Swift Playgrounds app for iPad execute code?
iPad 的 Swift Playgrounds 应用如何执行代码?
他们是否已将 LLVM 工具链移植到 ARM 并即时编译,或者他们是否使用完全不同的方式来执行 Swift 代码?
我怎样才能完成与 iOS 类似的事情(即动态执行 Swift 代码)?
Apple 的 general-audience nor developer 营销材料都没有说 Swift Playgrounds 是 "real code"。但是可以自己验证(或者至少找到一些强有力的证据)Swift Playgrounds 确实 运行 完整的编译器工具链并生成原生 arm64 代码。
提示:如果您在 Mac(或者 Windows box,我猜?)的 iTunes 中下载 App Store 应用程序,您可以找到相应的 .ipa
文件在您的本地文件系统中。除非您是啤酒爱好者,否则 IPA 只是 zip 存档,其中包含同步时安装到 iOS 设备上的应用程序包,因此您可以使用您喜欢的实用程序(包括 macOS 中的内置 Archive Utility,或 unzip
命令行工具)并稍微了解一下它们的内部工作原理。
如果您使用 Swift Playgrounds 执行此操作,您会发现 Xcode 中找到的 SDK 和工具链的几乎完整副本,包括一些特定于 [=12] 链接二进制文件的文件=] 架构。 (您不会找到编译器和相关工具的任何命令行二进制文件,但是在 Swift 编译器的开源代码中没有关于 LLVM 工具链 as libraries.) You can also find some evidence of arm64 as a compiler-host architecture 的 运行ning 部分的新内容。
所以,是的——缺少 Apple 的官方确认,看起来 Swift Playgrounds 在 iOS 设备上编译和 运行s 本机代码。 (如果你稍微考虑一下,否则这样做没有多大意义——在某种 interpreted/emulated 环境中 运行ning Swift 代码会降低性能。而且可能使Apple stated goal 提供对整个 iOS 工具包的访问非常困难。)
不,例如 third-party apps still can't do that. Since 2010 it's been possible for third party apps to use tools that provide embedded scripting environments — game engines use this to speed up game design & development, and other apps provide coding environments for Python and Lua。但您可能会想象,允许第三方应用程序编译和 运行 本机代码可能是一场安全噩梦...
iPad 的 Swift Playgrounds 应用如何执行代码?
他们是否已将 LLVM 工具链移植到 ARM 并即时编译,或者他们是否使用完全不同的方式来执行 Swift 代码?
我怎样才能完成与 iOS 类似的事情(即动态执行 Swift 代码)?
Apple 的 general-audience nor developer 营销材料都没有说 Swift Playgrounds 是 "real code"。但是可以自己验证(或者至少找到一些强有力的证据)Swift Playgrounds 确实 运行 完整的编译器工具链并生成原生 arm64 代码。
提示:如果您在 Mac(或者 Windows box,我猜?)的 iTunes 中下载 App Store 应用程序,您可以找到相应的 .ipa
文件在您的本地文件系统中。除非您是啤酒爱好者,否则 IPA 只是 zip 存档,其中包含同步时安装到 iOS 设备上的应用程序包,因此您可以使用您喜欢的实用程序(包括 macOS 中的内置 Archive Utility,或 unzip
命令行工具)并稍微了解一下它们的内部工作原理。
如果您使用 Swift Playgrounds 执行此操作,您会发现 Xcode 中找到的 SDK 和工具链的几乎完整副本,包括一些特定于 [=12] 链接二进制文件的文件=] 架构。 (您不会找到编译器和相关工具的任何命令行二进制文件,但是在 Swift 编译器的开源代码中没有关于 LLVM 工具链 as libraries.) You can also find some evidence of arm64 as a compiler-host architecture 的 运行ning 部分的新内容。
所以,是的——缺少 Apple 的官方确认,看起来 Swift Playgrounds 在 iOS 设备上编译和 运行s 本机代码。 (如果你稍微考虑一下,否则这样做没有多大意义——在某种 interpreted/emulated 环境中 运行ning Swift 代码会降低性能。而且可能使Apple stated goal 提供对整个 iOS 工具包的访问非常困难。)
不,例如 third-party apps still can't do that. Since 2010 it's been possible for third party apps to use tools that provide embedded scripting environments — game engines use this to speed up game design & development, and other apps provide coding environments for Python and Lua。但您可能会想象,允许第三方应用程序编译和 运行 本机代码可能是一场安全噩梦...