Dan Sugalski wrote:
>
> I'm not sure this is all necessary. Wouldn't we be reasonably better off
if
> we instead just shipped off bytecode compiled versions of the scripts?
> Seems easier to ship that way than as an archive of stuff. (We can, if its
> deemed useful, define the bytecode format in a way that allows us to
> package up versions of modules that can be optionally loaded from the main
> perl install instead)
>
> Seems simpler, and it also means you can, at the time the program is
> initally compiled, crank up the optimization level a lot so you're handing
> out the fastest version of your code you can.
>
> Dan
>


At a first glance, I really found that's much better. But I saw three small
problems:
1. updating the version of modules in the big-bloated-bytecode would
potentially have to recompile the script and all other modules.
2. it doesn't work for scripts/modules deployed in source code format.
3. it doesn't work for modules that use C extensions.

Well, the first is not a big problem, since it's probably a very rare
situation and probably the script code would change a bit if modules'
versions change. The second also is not a big issue, since source code can
always be downloaded separately, and who wants the source code probably can
handle separate module downloading and installing.

Actually, I think the archive approach is more general, because it wouldn't
have this kind of problems and would allow other resources to be deployed
together with the code, like documentation, perhaps even text files and
images used by a Perl/Tk application.



Other thing that looks like a difference at first, is that the shipped
bytecode would run directly and the archive would have to be installed to
run. I think that's actually not true, as Perl 6 will probably use one of
its own's new magic filehandles to read the sources/bytecodes, and one of
that filehandled can be tied to decompress the archive on-the-fly and pass
the code to the interpreter.

And pure bytecode applications would be actually distributed on the
`.noarch' kind of par archive, to contrast the `.src' kind.

Did I miss something here? Is it just me, or you also think this
(deploy/install) is essential for a language be used by `layman-users', and
not only JAPHs.

- Branden

Reply via email to