allison at perl.org
Fri Feb 20 20:14:43 UTC 2009
François Perrad wrote:
> Allison, Reini,
> Before applying to existing languages, could you review my work on
> tools/dev/mk_languages_shell.pl (r36888-36892) ?
> Is it compliant with what we want (pdd30_install) ?
> $ perl tools/dev/mk_languages_shell.pl Xyz
> $ make -C languages/xyz
> $ make -C languages/xyz test
> $ make -C languages/xyz install
One general comment is that most languages (maybe all languages soon)
will be building from an installed Parrot, not from inside a languages/
directory in the Parrot build tree. So, either we need two scripts for
making a language shell (one for languages in the build tree and one for
those outside), or we need to assume that most newbie language
developers will be outside the build tree, and make that the default
case. That would imply removing all references to $(BUILD_DIR) from the
Also, it's good to show the default way of building a grammar, an
actions file, and builtins. We shouldn't dictate that every language has
MAINTAINER and STATUS files, or a doc directory using Pod format. I
wouldn't even generate information for dynamic pmcs and ops by default
(though we could have options for mk_languages_shell.pl that add stubs
for dynamic pmcs and ops if requested).
> I've some remarks :
> 1) the logic that creates path with version, is duplicate :
> - install_files.pl lines 145-147
> - install_dev_files lines 91-93
> - mk_languages_shell.pl lines 191-193
> The right place seems to be in config/init/install.pm
This logic is in config/init/install.pm, and install_files.pl and
install_dev_files.pl need to be updated to use it (I'll do that now).
So, instead of manually constructing the version directory, just append
"@versiondir@" (which will be empty for an install that isn't using
versioned directories). You can see an example in my Rakudo patch:
> 2) pbc_to_exe --install adds a prefix installable_, but for languages
> we need parrot- as prefix.
> The prefix installable_ is fine for parrot, pbc_dump, all that comes
> from C, but not from pbc.
I don't understand the problem here.
> 3) for languages with PMC or Ops, I wait for dynpmc.pl & dynoplibs.pl
Yes, those scripts are going away, to be replaced with makefiles So,
it's better to have mk_languages_shell.pl create sample makefiles (when
the appropriate options are turned on).
More information about the parrot-dev