develooper Front page | perl.perl5.porters | Postings from January 2009

Re: LSB perl modules, pass 2

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
January 22, 2009 02:44
Subject:
Re: LSB perl modules, pass 2
Message ID:
20090122104402.GQ2919@plum.flirble.org
On Wed, Jan 21, 2009 at 04:32:36PM -0500, Stew Benedict wrote:

> Remaining modules:
> 
> mysql> select ILMname from InterpretedLanguageModule where ILMlanguage=1 
> and ILMappearedin = '3.2';
> ILMname
> AnyDBM_File

Remove that and dbmopen will fail. So it breaks a builtin.

(It's referenced in pp_sys.c and toke.c)

> AutoLoader

http://www.perlpunks.de/corelist/version?module=AutoLoader&submit.query=Show+version

shows that it's been in the perl core since 5.000 so not having it will break
expectations.

(That site happens to provide a convenient way to query the data in
Module::CoreList)


> CGI

Many third party scripts assume that this is present. It's been included since
5.004. However, FreeBSD stripped it from their default perl install at about
FreeBSD 6.0, so there's precedence for not having it.

> CPAN

A lot of documentation assumes that this (and the shell interface 'cpan')
exist.

> Cwd

Been in the core since 5.000. Use is encouraged.

> Carp

Been in the core since 5.000. Commonly used, and expected to be ubiquitous.

> Data::Dumper

Added in 5.005. Commonly used, and now expected to be ubiquitous.

> Encode

Taking encode out breaks most forms of localised IO.

> English

Whilst we'd love it to go, it's referenced everywhere.
(And been present since 5.000)

> Exporter

Everything will break without this

> ExtUtils::MakeMaker

You won't be able to install extensions without this.

> Fcntl

There was a consensus about two years back that if the user removed this
module at ./Configure time, then *they* broke their perl. ie that perl and
Perl modules can assume that this is present.

> File::Find

Been present since 5.000. Not going to go away.

> File::Spec

Been present since 5.00405. Its use is encouraged to foster portability.

> File::Temp

Been present since 5.6.1. Whilst this is relatively recent, its use is
encouraged as it's way better than most people's idea of a temporary file.

> FileHandle

Whilst you can take FileHandle out and not break everything, you can't take
both it and IO out.

> FindBin

Been present since 5.00307. Not going to go away. Widely used.

> Getopt::Std

Been present since 5.000. Not going to go away.

> IO::Handle

Referenced in gv.c

> PerlIO
> PerlIO::encoding
> PerlIO::scalar
> PerlIO::via
> PerlIO::via::QuotedPrint

None of these are going to go away. PerlIO::scalar is needed to implement
one variant of open.

> Scalar::Util

Not going to go away. It would be useful to specify that the 'weaken'
function should work. At least one Linux distribution managed to "upgrade"
from the XS implementation (which can support it) to the pure Perl
implementation (which cannot) which broke installed end-user code.

It would be good for everyone's credibility not to repeat that.

> Shell

Personally I'm considering that that should go. But that would be in 5.14

> Socket

Present since 5.000. Provides essential socket related constants.

> Storable

Although only present since 5.8.0, it's not going away, and is widely assumed
to be present.

> Switch

Yes. Please kill it!
(Not likely to go away until 5.14)

> Symbol

Present since 5.002. Whilst it is a dependency of other modules, and unlikely
to go away, I suspect it shouldn't be listed as it's mainly an implementation
detail.

> Sys::Hostname

Present since 5.000. Widely referenced.

> Test

Effectively this is deprecated. Best not to list it.

> Test::Simple

Assumed to be present. (as per previous message)

> UNIVERSAL

That's an implementation detail.

> constant

Present since 5.004. Remove would break a lot of documented code.

> integer

A core pragma. Should be present.

> locale

A core pragma. Should be present.

> overload

A core pragma. Should be present.

> strict

A core pragma. Should be present.

> warnings

A core pragma. Should be present.

> warnings::register

Sufficiently documented that code expects it to be there, and quite stable.

Arguably all the core pragmata should be present, and maybe I should have
included 'bytes' and 'utf8' in the list of common ones, but if any of the
above aren't present, I wouldn't consider it "Perl"


Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About