Swift no Linux: faça o primeiro passo funcionar
Eu sou totalmente novo na velocidade. Acabou de ser lançado como código aberto para Linux e eu queria experimentá-lo. Isso está no ubuntu 14.04. O clang é instalado conforme os pré-requisitos.
<Edit>
: requisitos aqui request clang versão 3.6 também no ubuntu 14.04. Eu tentei primeiro essas primeiras etapas com o clang 3.4, mas desde então atualizei para 3.6 seguindo as instruções no link e tentei novamente. Mesmo resultado.</Edit>
Eu baixeihttps://swift.org/builds/ubuntu1404/swift-2.2-SNAPSHOT-2015-12-01-b/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz para ~ / Downloads /. Transcrição da instalação e primeiro passo rápido:
$ cd /tmp
$ tar xf ~/Downloads/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04.tar.gz
$ PATH=/tmp/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/bin/:"$PATH"
$ clang++ --version
Ubuntu clang version 3.6.0-2ubuntu1~trusty1 (tags/RELEASE_360/final) (based on LLVM 3.6.0)
Target: x86_64-pc-linux-gnu
Thread model: posix
$ which swift
/tmp/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/bin//swift
$ swift --version
Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c)
Target: x86_64-unknown-linux-gnu
$ swift
Welcome to Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c). Type :help for assistance.
1> 1 + 2
opening import file for module 'SwiftShims': No such file or directory
1>
De acordo comeste guia de introdução deveria ter impresso
$R0: Int = 3
O que há de errado e como posso corrigi-lo?
Edit: Tentando encontrar esse arquivo manualmente: Aparentemente, ele não está contido na instalação:
$ find swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/ | grep -i shims
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/FoundationShims.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/SwiftStddef.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/module.map
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/UnicodeShims.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/GlobalObjects.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/HeapObject.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/RuntimeShims.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/RefCount.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/RuntimeStubs.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/LibcShims.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/CoreFoundationShims.h
swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/shims/SwiftStdint.h
Edit: Quando eu tento oswift build
exemplo helloworld, esta saída é produzida:
/tmp/Hello$ swift build
<unknown>:0: error: opening import file for module 'Swift': No such file or directory
swift-build: exit(1): ["/tmp/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/bin/swiftc", "--driver-mode=swift", "-I", "/tmp/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/pm", "-L", "/tmp/swift-2.2-SNAPSHOT-2015-12-01-b-ubuntu14.04/usr/lib/swift/pm", "-lPackageDescription", "/tmp/Hello/Package.swift"]
Editar: novas descobertas até 22/12/2015
Desde que publiquei esta pergunta, pelo menos mais dois instantâneos do swift para linux foram lançados: 2015-12-10 e 2015-12-18. Eu tentei isso, mas eles não corrigem o problema.
Este tópico da lista de discussão aqui (pós 1, pós 2, pós 3) é sobre o mesmo problema. Foi sugerido lá que a instalação do swift no diretório inicial ajudaria. Não ajudou no meu caso, a mensagem de erro ainda é a mesma.
Mais interessante, esse encadeamento da lista de discussão contémuma análise do erro REPL criado com strace. Seria interessante comparar essa saída strace específica com a saída strace de um sistema em que o REPL trabalha.
Editar: Mais informações até 26/12/2015:
Um novo lançamento rápido foi lançado, 22/12/2015. Esta versão exibe o mesmo problema.
Outro tópico relacionado a esse problema apareceu na lista de discussão rápidacomeçando aqui. O usuário que está enfrentando o problema também postousaída strace aqui.