RFC: Removing the integrated REPL

After the integrated REPL was removed, directly invoking swift (when LLDB is not built) produces a crash:

$ swift
Assertion failed: (!Files.empty() || failedToLoad()), function getFiles, file swift-dev/swift/include/swift/AST/Module.h, line 363.
...
Stack dump:
0.	Program arguments: swift-dev/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/swift-frontend -frontend -repl -enable-objc-interop -sdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.16.sdk -color-diagnostics -target-sdk-version 10.16 -module-name REPL
1.	Swift version 5.3-dev (LLVM 609d16e6ecd05b0, Swift ed0e6288d1c5b8a)
...

It would be less confusing if this instead produced a diagnostic, like swiftc when invoked with no files:

$ swiftc
<unknown>:0: error: no input files

I filed an issue: [SR-13186] `swift` invocation crashes after integrated REPL was removed · Issue #55626 · apple/swift · GitHub.

2 Likes