]> git.vpit.fr Git - perl/modules/re-engine-Hooks.git/commitdiff
This is 0.02 v0.02
authorVincent Pit <vince@profvince.com>
Sat, 31 Mar 2012 15:48:48 +0000 (17:48 +0200)
committerVincent Pit <vince@profvince.com>
Sat, 31 Mar 2012 15:48:48 +0000 (17:48 +0200)
Changes
META.json
META.yml
README
lib/re/engine/Hooks.pm
t/re-engine-Hooks-TestDist/lib/re/engine/Hooks/TestDist.pm

diff --git a/Changes b/Changes
index ffac2bfb50e8bf9c39d97745ecbd0f24eaf4e9a2..99668af101d80e64b40753696bf6eb6f65cd6060 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,14 @@
 Revision history for re-engine-Hooks
 
+0.02    2012-02-31 15:50 UTC
+        + Chg : INCOMPATIBLE CHANGE : Arguments are now passed to
+                reh_register() through a configuration structure.
+        + Chg : The node compilation hook is now called when a branch is
+                converted into a trie.
+        + Fix : The module now builds correctly on perl 5.15.5 and greater.
+        + Fix : Duplicated symbols on Windows should have been pruned.
+        + Fix : The module is now be thread-safe.
+
 0.01    2012-03-29 22:00 UTC
         First version, released on an unsuspecting world.
 
index 97d8a4eac723ae04de7944eb8ad88d55024ef558..962b407c18a8294fb7d77b4bae5dcef6bd5e9c4c 100644 (file)
--- a/META.json
+++ b/META.json
@@ -60,5 +60,5 @@
          "url" : "http://git.profvince.com/?p=perl%2Fmodules%2Fre-engine-Hooks.git"
       }
    },
-   "version" : "0.01"
+   "version" : "0.02"
 }
index e3747ae84c01d2392c693cef7be0a66730bf17c7..1b256aa9b821ad7409b500ad0a0c965cff257849 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -35,4 +35,4 @@ resources:
   homepage: http://search.cpan.org/dist/re-engine-Hooks/
   license: http://dev.perl.org/licenses/
   repository: http://git.profvince.com/?p=perl%2Fmodules%2Fre-engine-Hooks.git
-version: 0.01
+version: 0.02
diff --git a/README b/README
index 24d8b590d774247a4f41577af83068bc06b4bfb6..812b41dfa25c92584927b2f8919a3f05af291c3f 100644 (file)
--- a/README
+++ b/README
@@ -3,14 +3,14 @@ NAME
     engine.
 
 VERSION
-    Version 0.01
+    Version 0.02
 
 SYNOPSIS
     In your XS file :
 
         #include "re_engine_hooks.h"
 
-        STATIC void dri_comp_hook(pTHX_ regexp *rx, regnode *node) {
+        STATIC void dri_comp_node_hook(pTHX_ regexp *rx, regnode *node) {
          ...
         }
 
@@ -23,7 +23,10 @@ SYNOPSIS
 
         BOOT:
         {
-         reh_register("Devel::Regexp::Instrument", dri_comp_hook, dri_exec_hook);
+         reh_config cfg;
+         cfg.comp_node = dri_comp_node_hook;
+         cfg.exec_node = dri_exec_node_hook;
+         reh_register("Devel::Regexp::Instrument", &cfg);
         }
 
     In your Perl module file :
@@ -38,7 +41,7 @@ SYNOPSIS
         use re::engine::Hooks; # Before loading our own shared library
 
         BEGIN {
-         $VERSION = '0.01';
+         $VERSION = '0.02';
          require DynaLoader;
          push @ISA, 'DynaLoader';
          __PACKAGE__->bootstrap($VERSION);
@@ -71,42 +74,58 @@ DESCRIPTION
 C API
     The C API is made available through the re_engine_hooks.h header file.
 
-  "reh_comp_hook"
-    The typedef for the regexp compilation phase hook. Currently evaluates
-    to :
+  "reh_comp_node_hook"
+    The typedef for the regexp node compilation phase hook. Currently
+    evaluates to :
 
-        typedef void (*reh_comp_hook)(pTHX_ regexp *, regnode *);
+        typedef void (*reh_comp_node_hook)(pTHX_ regexp *, regnode *);
 
   "reh_exec_hook"
-    The typedef for the regexp execution phase hook. Currently evaluates to
-    :
+    The typedef for the regexp node_execution phase hook. Currently
+    evaluates to :
 
-        typedef void (*reh_exec_hook)(pTHX_ regexp *, regnode *, regmatch_info *, regmatch_state *);
+        typedef void (*reh_exec_node_hook)(pTHX_ regexp *, regnode *, regmatch_info *, regmatch_state *);
+
+  "reh_config"
+    A typedef'd struct that holds a set of all the different callbacks
+    publicized by this module. It has the following members :
+
+    *   "comp_node"
+
+        A function pointer of type "reh_comp_node_hook" that will be called
+        each time a regnode is compiled. Allowed to be "NULL" if you don't
+        want to call anything for this phase.
+
+    *   "exec_node"
+
+        A function pointer of type "reh_exec_node_hook" that will be called
+        each time a regnode is executed. Allowed to be "NULL" if you don't
+        want to call anything for this phase.
 
   "reh_register"
-        void reh_register(pTHX_ const char *key, reh_comp_hook comp, reh_exec_hook exec);
+        void reh_register(pTHX_ const char *key, reh_config *cfg);
 
-    Registers under the given name "key" a callback "comp" that will run
-    during the compilation phase and a callback "exec" that will run during
-    the execution phase. Null function pointers are allowed in case you
-    don't want to hook one of the phases. "key" should match with the
-    argument passed to "enable" and "disable" in Perl land. An exception
-    will be thrown if "key" has already been used to register callbacks.
+    Registers the callbacks specified by the "reh_config *" object "cfg"
+    under the given name "key". "cfg" can be a pointer to a static object of
+    type "reh_config". "key" is expected to be a nul-terminated string and
+    should match the argument passed to "enable" and "disable" in Perl land.
+    An exception will be thrown if "key" has already been used to register
+    callbacks.
 
 PERL API
   "enable"
         enable $key;
 
-    Lexically enables the hooks associated with the key $key
+    Lexically enables the hooks associated with the key $key.
 
   "disable"
         disable $key;
 
-    Lexically disables the hooks associated with the key $key
+    Lexically disables the hooks associated with the key $key.
 
 EXAMPLES
-    See the t/re-engine-Hooks-TestDist/ directory in the distribution. It
-    implements a couple of simple examples.
+    Please refer to the t/re-engine-Hooks-TestDist/ directory in the
+    distribution. It implements a couple of simple examples.
 
 DEPENDENCIES
     perl 5.10.1.
index 97da688e29e21f3c1e1e2a61ef7927eea2a1dad5..27770029de5445e8e4d5775b7ebd965e9d708882 100644 (file)
@@ -11,7 +11,7 @@ re::engine::Hooks - Hookable variant of the Perl core regular expression engine.
 
 =head1 VERSION
 
-Version 0.01
+Version 0.02
 
 =cut
 
@@ -20,7 +20,7 @@ our ($VERSION, @ISA);
 sub dl_load_flags { 0x01 }
 
 BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.02';
  require DynaLoader;
  push @ISA, qw<Regexp DynaLoader>;
  __PACKAGE__->bootstrap($VERSION);
@@ -63,7 +63,7 @@ In your Perl module file :
     use re::engine::Hooks; # Before loading our own shared library
 
     BEGIN {
-     $VERSION = '0.01';
+     $VERSION = '0.02';
      require DynaLoader;
      push @ISA, 'DynaLoader';
      __PACKAGE__->bootstrap($VERSION);
index c155f36466fd3194ed74bffbfc9b2ccddeaf3035..05747ff4f5e08ee065e54d2a4bab7d1bc419a2f4 100644 (file)
@@ -10,7 +10,7 @@ our ($VERSION, @ISA);
 use re::engine::Hooks;
 
 BEGIN {
- $VERSION = '0.01';
+ $VERSION = '0.02';
  require DynaLoader;
  push @ISA, 'DynaLoader';
  __PACKAGE__->bootstrap($VERSION);