Would these changes provide a workflow that is as concise and fast as what I'm currently doing? I think enabling developer productivity should be the number one goal of our tooling. There are many aspects of our system that developers need to be able to iterate quickly on. Some of these are related to loading apps and some are not, but working on any of them requires having a fast and easy to remember workflow.
+1 workflow needs to be easy although we might just need some better shell scripts...
That said, I don't quite understand why these mojo URLs require any special case support in the shell or why that logic should create any special headaches. Can't they be handled generically by some kind of URL scheme handler mechanism?
I can easily envision scenarios where we will want to load executables off of fixed media (especially when bootstrapping) or embedded into packages (like an Android apk) that should be resolved through non-http schemes (and where we would like to bypass the extra copy into the network cache and such).
The logic for stuff like this shouldn't necessarily pollute the shell, assuming it is well factored.
Jeff.
To unsubscribe from this group and stop receiving emails from it, send an email to mojo-dev+u...@chromium.org.
+1 workflow needs to be easy although we might just need some better shell scripts...
That said, I don't quite understand why these mojo URLs require any special case support in the shell or why that logic should create any special headaches. Can't they be handled generically by some kind of URL scheme handler mechanism?
I can easily envision scenarios where we will want to load executables off of fixed media (especially when bootstrapping) or embedded into packages (like an Android apk) that should be resolved through non-http schemes (and where we would like to bypass the extra copy into the network cache and such).
The logic for stuff like this shouldn't necessarily pollute the shell, assuming it is well factored.
Perhaps the file path (or opened raw file descriptor) should be the least common denominator. You'll want to mmap the contents anyways for efficiency. A data pipe only makes sense as something you would stream into a file cache. If the network service takes care of that then all we're left with is a file stored someplace.
We had an earlier conversation regarding the shell's special handling of elf binaries. I think in the end we'll want to shove all of that off into a content handler anyhow, even if the code ends up being linked into the shell executable for bootstrapping. (We might not even need to do that if something else, like init, takes care of starting the content handler instead.)
Eventually the work of forking a process and setting up a sandbox to run the code is going to be more than we'll want to have in the shell anyhow, at which point it might not make much sense to have the shell calling load library itself at all! ;)
Jeff.
Perhaps the file path (or opened raw file descriptor) should be the least common denominator. You'll want to mmap the contents anyways for efficiency.
A data pipe only makes sense as something you would stream into a file cache. If the network service takes care of that then all we're left with is a file stored someplace.
We had an earlier conversation regarding the shell's special handling of elf binaries. I think in the end we'll want to shove all of that off into a content handler anyhow, even if the code ends up being linked into the shell executable for bootstrapping. (We might not even need to do that if something else, like init, takes care of starting the content handler instead.)
Eventually the work of forking a process and setting up a sandbox to run the code is going to be more than we'll want to have in the shell anyhow, at which point it might not make much sense to have the shell calling load library itself at all! ;)
Not sure though if getting the target workflow "as fast and concise" as the one we have should block the switch. "mojo:" urls have meaning only in our repo, "developers" of Mojo apps in general have to work and already do work with real urls. We have to make the general workflow good; which we have better chances at if we use it ourselves.
I feel that having a fast and easy to use development workflow for people working on the system is essential to being able to improve the system. I don't think this is necessarily a competing goal with having a good workflow for developers, it just requires some more care and attention to detail.
I think the current state of our tooling is not sufficiently good for the behavior switch you are proposing here. I don't see any reason why the tools could not be improved to the point where the change you are proposing here does not slow down developers working on the system.
Do you think there is something blocking having a fast and easy workflow for Mojo developers without special handling for mojo: URLs?