I finally released a better shell for AI::Prolog. When 0.65 hits the shelves (any minute now), the optional aiprolog shell will now require Term::ReadLine and Term::ReadKey. This will give you command history (so you can up arrow to previous commands) and allow you to type a ';' (semicolon) to get successive results, just as you would with a regular Prolog shell. It also prints out "Yes" and "No" at appropriate spots so you better understand what's going on. Naturally, if you choose not to install the shell, the extra modules will not be added to prerequisites. (Seems I'm learning quite a bit about putting together a proper Makefile.PL.)
All things considered, this is a much easier shell to use and people who are already familiar with Prolog will feel at home.
In order to make your META.yml file accurate, dynamically adding modules to Makefile.PL at runtime is frowned upon. The workaround in a case like yours is to use Module::Build and its recommends
and/or auto_features
paramters.
—Theory
Re:Build
Ovid on 2005-05-11T17:13:12
Yeah, I was concerned about that, but I'm not ready to go the Module::Build route yet as there are still some folks out there who kick up a fuss about using it. I suppose I should bite the bullet. And recommends doesn't work because these modules are required if the shell is installed. What's auto_features? Does M::B have something that cleanly handles this?
Re:Build
Theory on 2005-05-11T17:51:14
auto_features
allows you to enable the shell only if the prerequisites are already installed. Randy has worked some on adding advanced version checking to M::B (via a mini-language he calls dEx), but it's not in yet. Once it is, you'll be able to specify a collection of modules for a particular feature, and it will prompt the user to see if they want the feature and add the module prerequisites if they do.But he hasn't been working on it for a while...
—Theory