Change 31798 forgot to add the op 'once' to Opcode.pm
[p5sagit/p5-mst-13.2.git] / ext / Opcode / Opcode.pm
index ff3899f..a92fc28 100644 (file)
@@ -1,19 +1,19 @@
 package Opcode;
 
-require 5.002;
+use 5.006_001;
 
-use vars qw($VERSION $XS_VERSION @ISA @EXPORT_OK);
+use strict;
 
-$VERSION = "1.04";
-$XS_VERSION = "1.03";
+our($VERSION, @ISA, @EXPORT_OK);
+
+$VERSION = "1.10";
 
-use strict;
 use Carp;
 use Exporter ();
-use DynaLoader ();
-@ISA = qw(Exporter DynaLoader);
+use XSLoader ();
 
 BEGIN {
+    @ISA = qw(Exporter);
     @EXPORT_OK = qw(
        opset ops_to_opset
        opset_to_ops opset_to_hex invert_opset
@@ -28,7 +28,7 @@ sub opset_to_hex ($);
 sub opdump (;$);
 use subs @EXPORT_OK;
 
-bootstrap Opcode $XS_VERSION;
+XSLoader::load 'Opcode', $VERSION;
 
 _init_optags();
 
@@ -163,7 +163,7 @@ accumulated set of ops at that point.
 
 =item an operator set (opset)
 
-An I<opset> as a binary string of approximately 43 bytes which holds a
+An I<opset> as a binary string of approximately 44 bytes which holds a
 set or zero or more operators.
 
 The opset and opset_to_ops functions can be used to convert from
@@ -185,7 +185,7 @@ tags and sets. All are available for export by the package.
 =item opcodes
 
 In a scalar context opcodes returns the number of opcodes in this
-version of perl (around 340 for perl5.002).
+version of perl (around 350 for perl-5.7.0).
 
 In a list context it returns a list of all the operator names.
 (Not yet implemented, use @names = opset_to_ops(full_opset).)
@@ -330,7 +330,7 @@ invert_opset function.
 
     list lslice splice push pop shift unshift reverse
 
-    cond_expr flip flop andassign orassign and or xor
+    cond_expr flip flop andassign orassign dorassign and or dor xor
 
     warn die lineseq nextstate scope enter leave setstate
 
@@ -350,7 +350,7 @@ available memory).
 
     anonlist anonhash
 
-Note that despite the existance of this optag a memory resource attack
+Note that despite the existence of this optag a memory resource attack
 may still be possible using only :base_core ops.
 
 Disabling these ops is a I<very> heavy handed way to attempt to prevent
@@ -373,14 +373,15 @@ used to implement a resource attack (e.g., consume all available CPU time).
 
 These ops enable I<filehandle> (rather than filename) based input and
 output. These are safe on the assumption that only pre-existing
-filehandles are available for use.  To create new filehandles other ops
-such as open would need to be enabled.
+filehandles are available for use.  Usually, to create new filehandles
+other ops such as open would need to be enabled, if you don't take into
+account the magical open of ARGV.
 
     readline rcatline getc read
 
     formline enterwrite leavewrite
 
-    print sysread syswrite send recv
+    print say sysread syswrite send recv
 
     eof tell seek sysseek
 
@@ -394,6 +395,8 @@ These are a hotchpotch of opcodes still waiting to be considered
 
     padsv padav padhv padany
 
+    once
+
     rv2gv refgen srefgen ref
 
     bless -- could be used to change ownership of objects (reblessing)
@@ -414,6 +417,13 @@ These are a hotchpotch of opcodes still waiting to be considered
 
     entertry leavetry -- can be used to 'hide' fatal errors
 
+    entergiven leavegiven
+    enterwhen leavewhen
+    break continue
+    smartmatch
+
+    custom -- where should this go
+
 =item :base_math
 
 These ops are not included in :base_core because of the risk of them being
@@ -431,19 +441,20 @@ beyond the scope of the compartment.
 
 These ops are related to multi-threading.
 
-    lock threadsv
+    lock
 
 =item :default
 
 A handy tag name for a I<reasonable> default set of ops.  (The current ops
 allowed are unstable while development continues. It will change.)
 
-    :base_core :base_mem :base_loop :base_io :base_orig :base_thread
+    :base_core :base_mem :base_loop :base_orig :base_thread
+
+This list used to contain :base_io prior to Opcode 1.07.
 
 If safety matters to you (and why else would you be using the Opcode module?)
 then you should not rely on the definition of this, or indeed any other, optag!
 
-
 =item :filesys_read
 
     stat lstat readlink
@@ -550,18 +561,17 @@ SystemV Interprocess Communications:
 =item :dangerous
 
 This tag is simply a bucket for opcodes that are unlikely to be used via
-a tag name but need to be tagged for completness and documentation.
+a tag name but need to be tagged for completeness and documentation.
 
     syscall dump chroot
 
-
 =back
 
 =head1 SEE ALSO
 
-ops(3) -- perl pragma interface to Opcode module.
+L<ops> -- perl pragma interface to Opcode module.
 
-Safe(3) -- Opcode and namespace limited execution compartments
+L<Safe> -- Opcode and namespace limited execution compartments
 
 =head1 AUTHORS