We discussed this topic in the community meeting today. Everyone agree that having such separation is helpful
There is a suggestion to allow the VM to still take executable, and implicitly call ex.jit() in that case. This will allow us to make things backward compatible
ex: relax.Executable = relax.build(mod, target)
# this works
vm = relax.VirtualMachine(ex.jit(), device)
# implicitly call ex.jit()
vm = relax.VirtualMachine(ex, device)
We also agree that the name “jit” can be further iterated, a few candidates were discussed and we did not come up with a better alternative, so we will stay with this name for now, while allow the common case to not having to depend on explicit calling of jit.
We will proceed with an implementation of the discussed results and continue to iterate on the UX if needed.