swift-sh icon indicating copy to clipboard operation
swift-sh copied to clipboard

Work as interpreter

Open mxcl opened this issue 6 years ago • 2 comments

Strictly should be able to do this too.

mxcl avatar Jan 16 '19 20:01 mxcl

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"?

mattt avatar Jan 17 '19 15:01 mattt

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.

mxcl avatar Jan 17 '19 17:01 mxcl