----- Forwarded message from [EMAIL PROTECTED] -----

Date: Fri, 12 May 2000 15:02:55 +0200
Subject: CPAN Upload: JPRIT/Event-0.77.tar.gz
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED],
    [EMAIL PROTECTED]

The uploaded file

    Event-0.77.tar.gz

has entered CPAN as

  file: $CPAN/authors/id/JPRIT/Event-0.77.tar.gz
  size: 148538 bytes
   md5: fbcc4a392dcd6e9ea0a9ed923b24bac3

No action is required on your part
Request entered by: JPRIT (Joshua N. Pritikin)
Request entered on: Fri, 12 May 2000 13:02:11 GMT
Request completed:  Fri, 12 May 2000 13:02:55 GMT

        Virtually Yours,
        Id: paused,v 1.68 1999/10/22 14:39:12 k Exp k 


----- End forwarded message -----

# This is a patch for Event-0.76 to update it to Event-0.77
# 
# To apply this patch:
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'applypatch' program with this patch file as input.
#
# If you do not have 'applypatch', it is part of the 'makepatch' package
# that you can fetch from the Comprehensive Perl Archive Network:
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz
# In the above URL, 'x' should be 2 or higher.
#
# To apply this patch without the use of 'applypatch':
# STEP 1: Chdir to the source directory.
# STEP 2: Run the 'patch' program with this file as input.
#
#### End of Preamble ####

#### Patch data follows ####
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/ChangeLog' 
'/usr/tmp/mp5615.d/new/Event-0.77/ChangeLog'
Index: ./ChangeLog
--- ./ChangeLog Wed Apr 26 13:13:37 2000
+++ ./ChangeLog Fri May 12 08:18:06 2000
@@ -1,3 +1,13 @@
+2000-05-12  Joshua Pritikin  <[EMAIL PROTECTED]>
+
+       * Release 0.77.
+
+2000-05-10  Joshua Pritikin  <[EMAIL PROTECTED]>
+
+       * Fixed an obscure SEGV discovered by [EMAIL PROTECTED]
+
+       * EventAPI += NVtime.
+
 2000-04-26  Joshua Pritikin  <[EMAIL PROTECTED]>
 
        * Release 0.76.
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/Event.xs' 
'/usr/tmp/mp5615.d/new/Event-0.77/Event.xs'
Index: ./Event.xs
--- ./Event.xs  Wed Apr 26 16:08:04 2000
+++ ./Event.xs  Wed May 10 17:22:09 2000
@@ -40,6 +40,31 @@ static void Event_warn(const char* pat, 
 #  define warn Event_warn
 #endif
 
+/* this is not well tested but could be very useful for debugging */
+#if 0
+#ifdef warn
+#  undef warn
+#endif
+#define warn Event_warn
+
+static void Event_warn(const char* pat, ...) {
+    STRLEN n_a;
+    dSP;
+    SV *msg;
+    va_list args;
+    /* perl_require_pv("Carp.pm");     Couldn't possibly be unloaded.*/
+    va_start(args, pat);
+    msg = sv_newmortal();
+    sv_vsetpvfn(msg, pat, strlen(pat), &args, Null(SV**), 0, 0);
+    va_end(args);
+    SvREADONLY_on(msg);
+    PUSHMARK(SP);
+    XPUSHs(msg);
+    PUTBACK;
+    perl_call_pv("Carp::carp", G_DISCARD);
+}
+#endif
+
 #ifdef croak
 #  undef croak
 #endif
@@ -131,8 +156,8 @@ static pe_event_stats_vtbl Estat;
 static double IntervalEpsilon = 0.0002;
 static int TimeoutTooEarly=0;
 
-static double (*myNVtime)();
-#define NVtime() (*myNVtime)()
+static struct EventAPI api;
+#define NVtime() (*api.NVtime)()
 
 static int pe_sys_fileno(SV *sv, char *context);
 
@@ -279,36 +304,34 @@ BOOT:
   boot_group();
   boot_queue();
   {
-      struct EventAPI *api;
       SV *apisv;
-      New(PE_NEWID, api, 1, struct EventAPI);
-      api->Ver = EventAPI_VERSION;
-      api->start = pe_watcher_start;
-      api->queue = queueEvent;
-      api->now = pe_watcher_now;
-      api->suspend = pe_watcher_suspend;
-      api->resume = pe_watcher_resume;
-      api->stop = pe_watcher_stop;
-      api->cancel = pe_watcher_cancel;
-      api->tstart = pe_timeable_start;
-      api->tstop  = pe_timeable_stop;
-      api->new_idle =   (pe_idle*  (*)(HV*,SV*))    pe_idle_allocate;
-      api->new_timer =  (pe_timer* (*)(HV*,SV*))    pe_timer_allocate;
-      api->new_io =     (pe_io*    (*)(HV*,SV*))    pe_io_allocate;
-      api->new_var =    (pe_var*   (*)(HV*,SV*))    pe_var_allocate;
-      api->new_signal = (pe_signal*(*)(HV*,SV*))    pe_signal_allocate;
-      api->add_hook = capi_add_hook;
-      api->cancel_hook = pe_cancel_hook;
-      api->install_stats = pe_install_stats;
-      api->collect_stats = pe_collect_stats;
-      api->AllWatchers = &AllWatchers;
-      api->watcher_2sv = watcher_2sv;
-      api->sv_2watcher = sv_2watcher;
-      api->event_2sv = event_2sv;
-      api->sv_2event = sv_2event;
-      api->unloop = pe_unloop;
+      api.Ver = EventAPI_VERSION;
+      api.start = pe_watcher_start;
+      api.queue = queueEvent;
+      api.now = pe_watcher_now;
+      api.suspend = pe_watcher_suspend;
+      api.resume = pe_watcher_resume;
+      api.stop = pe_watcher_stop;
+      api.cancel = pe_watcher_cancel;
+      api.tstart = pe_timeable_start;
+      api.tstop  = pe_timeable_stop;
+      api.new_idle =   (pe_idle*  (*)(HV*,SV*))    pe_idle_allocate;
+      api.new_timer =  (pe_timer* (*)(HV*,SV*))    pe_timer_allocate;
+      api.new_io =     (pe_io*    (*)(HV*,SV*))    pe_io_allocate;
+      api.new_var =    (pe_var*   (*)(HV*,SV*))    pe_var_allocate;
+      api.new_signal = (pe_signal*(*)(HV*,SV*))    pe_signal_allocate;
+      api.add_hook = capi_add_hook;
+      api.cancel_hook = pe_cancel_hook;
+      api.install_stats = pe_install_stats;
+      api.collect_stats = pe_collect_stats;
+      api.AllWatchers = &AllWatchers;
+      api.watcher_2sv = watcher_2sv;
+      api.sv_2watcher = sv_2watcher;
+      api.event_2sv = event_2sv;
+      api.sv_2event = sv_2event;
+      api.unloop = pe_unloop;
       apisv = perl_get_sv("Event::API", 1);
-      sv_setiv(apisv, (IV)api);
+      sv_setiv(apisv, (IV)&api);
       SvREADONLY_on(apisv);
   }
 
@@ -370,7 +393,7 @@ cache_time_api()
        SV **svp = hv_fetch(PL_modglobal, "Time::NVtime", 12, 0);
        if (!svp || !*svp || !SvIOK(*svp))
            XSRETURN_NO;
-       myNVtime = (double(*)()) SvIV(*svp);
+       api.NVtime = (double(*)()) SvIV(*svp);
        XSRETURN_YES;
 
 void
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/TODO' 
'/usr/tmp/mp5615.d/new/Event-0.77/TODO'
Index: ./TODO
--- ./TODO      Mon Apr 24 09:42:25 2000
+++ ./TODO      Mon May  8 11:15:09 2000
@@ -1,5 +1,3 @@
-integrate with IPC::Open2/3
-
 finish up lexical warnings
 
 omitting parked=>1 should be a warning, not an error?
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/c/watcher.c' 
'/usr/tmp/mp5615.d/new/Event-0.77/c/watcher.c'
Index: ./c/watcher.c
--- ./c/watcher.c       Mon Apr 24 09:37:24 2000
+++ ./c/watcher.c       Wed May 10 17:05:48 2000
@@ -116,6 +116,11 @@ WKEYMETH(_watcher_callback) {
                if (gv && isGV(gv))
                    ok=1;
            }
+           else {
+               warn("Event: package '%s' doesn't exist (creating)",
+                    SvPV(pkgsv, n_a));
+               pkg = gv_stashsv(pkgsv, 1);
+           }
            if (!ok) {
                warn("Event: callback method %s->%s doesn't exist",
                     HvNAME(pkg), name);
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event.pm' 
'/usr/tmp/mp5615.d/new/Event-0.77/lib/Event.pm'
Index: ./lib/Event.pm
--- ./lib/Event.pm      Wed Apr 26 13:13:50 2000
+++ ./lib/Event.pm      Fri May 12 08:17:03 2000
@@ -13,7 +13,7 @@ use Carp;
 eval { require Carp::Heavy; };  # work around perl_call_pv bug XXX
 use vars qw($VERSION @EXPORT_OK
            $API $DebugLevel $Eval $DIED $Now);
-$VERSION = '0.76';
+$VERSION = '0.77';
 
 # If we inherit DynaLoader then we inherit AutoLoader; Bletch!
 require DynaLoader;
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event.pod' 
'/usr/tmp/mp5615.d/new/Event-0.77/lib/Event.pod'
Index: ./lib/Event.pod
--- ./lib/Event.pod     Mon Apr 24 09:26:26 2000
+++ ./lib/Event.pod     Mon May  8 11:16:20 2000
@@ -681,6 +681,8 @@ There seems to be some sort of bug in th
 
 =head2 WHY MICROSOFT WINDOWS MIGHT BE FASTER THAN UNIX
 
+This section is concerned with advanced kernel architecture.
+
 B<A scalable and explicit event delivery mechanism for UNIX>
 
 I<Abstract:> UNIX applications not wishing to block when doing I/O often
gdiff -up '/usr/tmp/mp5615.d/old/Event-0.76/lib/Event/EventAPI.h' 
'/usr/tmp/mp5615.d/new/Event-0.77/lib/Event/EventAPI.h'
Index: ./lib/Event/EventAPI.h
--- ./lib/Event/EventAPI.h      Tue Apr 25 13:37:56 2000
+++ ./lib/Event/EventAPI.h      Wed May 10 10:41:16 2000
@@ -211,6 +211,7 @@ struct EventAPI {
 
     /* EVERYTHING ELSE */
     void (*unloop)(SV *);
+    double (*NVtime)();
 };
 
 static struct EventAPI *GEventAPI=0;
#### End of Patch data ####

#### ApplyPatch data follows ####
# Data version        : 1.0
# Date generated      : Fri May 12 09:01:18 2000
# Generated by        : makepatch 2.00 (2.0BETA)
# Recurse directories : Yes
# p 'ChangeLog' 25474 958133886 0100444
# p 'Event.xs' 18615 957993729 0100444
# p 'TODO' 1775 957798909 0100444
# p 'c/watcher.c' 9400 957992748 0100444
# p 'lib/Event.pm' 4074 958133823 0100444
# p 'lib/Event.pod' 24978 957798980 0100444
# p 'lib/Event/EventAPI.h' 5624 957969676 0100444
#### End of ApplyPatch data ####

#### End of Patch kit [created: Fri May 12 09:01:18 2000] ####
#### Checksum: 236 8131 25869 ####

Reply via email to