Re: perldelta, take 3
authorTim Bunce <Tim.Bunce@ig.co.uk>
Fri, 3 Jan 1997 17:48:46 +0000 (17:48 +0000)
committerChip Salzenberg <chip@atlantic.net>
Sat, 4 Jan 1997 05:44:00 +0000 (17:44 +1200)
commit7cfe7857715f78206e6d7d6f7fd52983de4dec44
tree55d33b94087c668409ba6cf60795a0640994b358
parent40da2db335c65d50d3bca886fcc7161ed72faf74
Re: perldelta, take 3

> From: Tom Christiansen <tchrist@mox.perl.com>

Some quick thoughts:

> =head1 NAME
>
> perldelta - what's new for perl5.004 (version 0.3)

To avoid any confusion: s/version/perldelta version/

> =head2 Internal Change: Safe Module Absorbed into Opcode
>
> A new Opcode module subsumes 5.003's Safe module.  The Safe
> interface is still available, so existing scripts should still
> work, but users are encouraged to read the new Opcode documentation.
> (Note too, that after 5.004 is installed, you will no longer be
> able to run Safe under the 5.003 binary.)

Opcode does not supercede Safe. Safe is now implemented on top of Opcode.
Opcode is purely functional. Safe implements OO 'compartments'.
I'd suggest you say something like:

=head2 New Opcode Module and Revised Safe Module

A new Opcode module supports the creation, manipulation and application
of opcode masks. The revised Safe module has a new API and is implemented
using the new Opcode module. Users are encouraged to read the new Opcode
and Safe documentation. (Note too, that after 5.004 is installed, you will
no longer be able to run Safe under the 5.003 binary.)

> =item use Module VERSION LIST
>
> If the VERSION argument is present between Module and LIST, then the
> C<use> will fail if the $VERSION variable in package Module is
> less than VERSION.
>
> Note that there is not a comma after the version!

+ This is similar to the existing version checking mechanism in the
+ Exporter module but it's faster and can be used with modules that
+ don't use the Exporter. It is the recommended method for new code.

> =head2 New Built-in Methods
>
> The C<UNIVERSAL> package automatically contains the following methods that
> are inherited by all other classes:
>
> =item isa ( CLASS )
> =item can ( METHOD )
> =item VERSION ( [ VERSION ] )
>
>     use A 1.2 qw(some imported subs);
>
>     A->VERSION( 1.2 );
>     $ref->is_instance();    # True

I don't see is_instance described anywhere. I think it needs a few words.

> =head1 Pragmata
>
> Three new pragmatic modules exist:
>
> =item use ops
>
> Restrict unsafe operations when compiling

! Disable named/unsafe opcodes when compiling perl code

> =head1 Efficiency Enhancements
>
> All hash keys with the same string are only allocated once, so
> even if you have 100 copies of the same hash, the immutable keys
> never have to be re-allocated.
>
> Functions that do nothing but return a fixed value are now inlined.

! Functions with an empty prototype that do nothing but return a
! fixed value are now inlined. E.g., sub PI () { 3.14159 }

p5p-msgid: <9701031748.AA15335@toad.ig.co.uk>
pod/perlnews.pod