Work as interpreter
mxcl opened this issue · comments
Strictly should be able to do this too.
For reference: @asciibomb3r wrote a great post on the Swift.org blog announcing support for the --repl
flag in swift run
.
When combined with the --package-path
option, building in REPL support for swift-sh
could theoretically be as straightforward as invoking the builtin swift run
command directly. Unfortunately, swift run --repl
doesn't seem to support packages generated as executables:
$ swift --version
Apple Swift version 5.0-dev (LLVM 9a8bf9ce12, Clang eba26b8d1c, Swift b74d54a27c)
Target: x86_64-apple-darwin18.2.0
$ swift run --repl --package-path ~/Library/Developer/swift-sh.cache/foo
'foo' /Users/mattt/Library/Developer/swift-sh.cache/foo: error: unable to synthesize a REPL product as there are no library targets in the package
...then again, I'm not sure what the expected behavior would be for an executable. "Start a REPL with all of the top-level declarations in this main.swift
file"?
Yeah indeed I wasn’t thinking it through, but I think you're on to the right track with the --package-path
. It probably should checkout each dependency and --package-path
those. Which would be quite useful when developing a script, since you could play with the dependencies.