Учитывая простейший из быстрых файлов:
println("lol")
Тривиально запустить это в командной строке с помощью xcrun swift -i lol.swift
или скомпилировать в исполняемый файл с помощью xcrun swift lol.swift -o lol
, но как насчет простого доказательства концепции для emscripten?
Раньше я не использовал emscripten, но получил пример приветствия, использующий C++, работающий с http://kripken.github.io/emscripten-site/docs/getting_started/Tutorial.html и также хотел скомпилировать свой код Swift.
Я попытался
xcrun swift lol.swift -emit-bc -o lol.bc
emcc lol.bc
Но получить
Value: %1 = call { i8*, i64, i64 } @_TFSS37_convertFromBuiltinUTF16StringLiteralfMSSFTBp17numberOfCodeUnitsBw_SS(i8* bitcast ([4 x i16]* @0 to i8*), i64 3)
LLVM ERROR: Unrecognized struct value
Traceback (most recent call last):
File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/emcc", line 1540, in <module>
shared.Building.llvm_opt(final, link_opts)
File "/Users/glen/Downloads/emsdk_portable/emscripten/1.16.0/tools/shared.py", line 1267, in llvm_opt
assert os.path.exists(target), 'Failed to run llvm optimizations: ' + output
AssertionError: Failed to run llvm optimizations:
Мысли?