summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorRobin Houston <robin@cpan.org>2001-07-01 18:17:29 +0100
committerJarkko Hietaniemi <jhi@iki.fi>2001-07-02 13:13:08 +0000
commitc7f67cded5690e60ae429b85a94113069a682ea6 (patch)
tree286bd93118a8c9534e0353ce3187e89468e7cfc6 /ext
parente8fcfee608d20538ae034bd0b3da16756dcf59f8 (diff)
downloadperl-c7f67cded5690e60ae429b85a94113069a682ea6.tar.gz
version number & changes
Message-ID: <20010701171729.A30678@puffinry.freeserve.co.uk> p4raw-id: //depot/perl@11081
Diffstat (limited to 'ext')
-rw-r--r--ext/B/B/Deparse.pm30
1 files changed, 28 insertions, 2 deletions
diff --git a/ext/B/B/Deparse.pm b/ext/B/B/Deparse.pm
index 1560420251..e9426ce278 100644
--- a/ext/B/B/Deparse.pm
+++ b/ext/B/B/Deparse.pm
@@ -19,7 +19,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber cstring
CVf_METHOD CVf_LOCKED CVf_LVALUE
PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE PMf_SKIPWHITE
PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
-$VERSION = 0.60;
+$VERSION = 0.61;
use strict;
use warnings ();
@@ -92,6 +92,19 @@ use warnings ();
# - separate recognition of constant subs
# - rewrote continue block handling, now recoginizing for loops
# - added more control of expanding control structures
+# Changes between 0.60 and 0.61 (mostly by Robin Houston)
+# - many bug-fixes
+# - support for pragmas and 'use'
+# - support for the little-used $[ variable
+# - support for __DATA__ sections
+# - UTF8 support
+# - BEGIN, CHECK, INIT and END blocks
+# - scoping of subroutine declarations fixed
+# - compile-time output from the input program can be suppressed, so that the
+# output is just the deparsed code. (a change to O.pm in fact)
+# - our() declarations
+# - *all* the known bugs are now listed in the BUGS section
+# - comprehensive test mechanism (TEST -deparse)
# Todo:
# (See also BUGS section at the end of this file)
@@ -4100,9 +4113,22 @@ than in the input file.
=item *
+In fact, the above is a specific instance of a more general problem:
+we can't guarantee to produce BEGIN blocks or C<use> declarations in
+exactly the right place. So if you use a module which affects compilation
+(such as by over-riding keywords, overloading constants or whatever)
+then the output code might not work as intended.
+
+This is the most serious outstanding problem, and will be very hard
+to fix.
+
+=item *
+
If a keyword is over-ridden, and your program explicitly calls
the built-in version by using CORE::keyword, the output of B::Deparse
-will not reflect this.
+will not reflect this. If you run the resulting code, it will call
+the over-ridden version rather than the built-in one. (Maybe there
+should be an option to B<always> print keyword calls as C<CORE::name>.)
=item *