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. - BrandenThread Previous | Thread Next