On platforms and runtimes

Aleix Pol aleixpol at kde.org
Mon May 22 23:58:37 UTC 2017


Hey KDevelop, Friedrich,
Friedrich pushed me to define platform and runtime as it seems like
they're the same concept. I was planning to send him an e-mail about
that but thought that maybe it would make sense to you guys.

Maybe that makes sense:
- a platform is what you use
- a runtime is what allows to reach the platform

Example:
A platform is opensuse. If you are an opensuse user you can reach it
by using the host system or by using something like docker or chroot,
hence the runtime.
If you use ArchLinux the host system won't be opensuse, but we can
still use docker to target opensuse.

Example:
A platform is the Android NDK.
The runtime is the tooling provided by the NDK that allows to target Android.

Example:
A platform is 192.168.1.111
A runtime is ssh+sftp+the actual system

The new abstraction provides 4 tools to interact with the platform:
- Path IRuntime::pathInRuntime(Path)
- Path IRuntime::pathInHost(Path)
- void startProcess(Q/KProcess*)
- QByteArray getenv(QByteArray name)

By being able to access files in the runtime and execute processes in
it, we have everything we need to target a platform for KDevelop, from
any platform.

Does that make sense?

Aleix


More information about the KDevelop-devel mailing list