Swift 5.5 was the first release to move some components of the compiler itself from C++ to Swift, the new swift-driver and swift-help binaries (the Swift package manager binaries like swift-build and swift-test were already written in Swift).
$ ./swift-5.5-RELEASE-centos8/usr/bin/swift -h -v
Swift version 5.5 (swift-5.5-RELEASE)
Target: x86_64-unknown-linux-gnu
/home/butta/swift-5.5-RELEASE-centos8/usr/bin/swift-help swift
OVERVIEW: Swift compiler
...
I think that having part of the toolchain written in Swift is great as it lower the entry cost for SE proposal which requires a working implementation.
Also, I suspect most today Swift developers (including me) would not be able to contribute without learning more about compilers but maybe those could find more approchable to build tooling interacting with those Swift components. Maybe those already building tooling could go a bit deeper in the toolchain.
I remember it was stated that writing the whole compiler in Swift wasn't a goal per se but having front end components written in Swift might make Swift tooling better and from what I get It's something that need improvements for Swift to thrive on platforms other than Apple's.
This causes problems when the two drivers fall out of sync, for example, I was not able to compile the stdlib with the new swift driver natively on Android when I tried it last month with the Oct. 21 trunk source snapshot. The new driver complains that it cannot find the flags -disable-autolinking-runtime-compatibility-concurrency and -disable-implicit-distributed-module-import, but if I pass in --skip-early-swift-driver to use the old driver instead, it builds fine.
I advocated in the first linked thread to just ditch the old driver, which would require current platforms to build the new driver with a prebuilt Swift toolchain and future platform ports of Swift to cross-compile a bootstrap compiler.
This causes problems when the two drivers fall out of sync, for example, I was not able to compile the stdlib with the new swift driver natively on Android when I tried it last month with the Oct. 21 trunk source snapshot.
Turns out out-of-sync drivers was not the issue, instead it was the issue that Artem was trying to fix in my second link, that a symlinked swift-driver then tries to build with the prebuilt Swift toolchain and not the one you are freshly building. I had run into this issue months earlier on linux, but didn't connect it to this instance on Android because the errors were different. Simply copying over swift-driver manually instead fixed it, and that's what Artem's merged pull already did in trunk a couple days after the Oct. 21 tag I built, so this is fixed now.