<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
            "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>
<title>perl6-Porters archive @ ASPN</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Browse/Threaded/perl6-Porters</link>
<description>For the maintenance, development, and porting of the programming language Perl.</description>
<language>en-us</language>
<copyright>Copyright 2005, ActiveState</copyright>
<managingEditor>aspn-feedback@activestate.com</managingEditor>
<webMaster>aspn-feedback@activestate.com</webMaster>

<image>
<title>perl6-Porters @ ASPN Mail Archive</title>
<url>http://ASPN.ActiveState.com/ASPN/img/logo_78x25.gif</url>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Browse/Threaded/perl6-Porters</link>
</image>

<item>
<title>Warnings, strict, and CPAN (Re: Closures and default lexical-scope for
 subs)</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/481346</link>
<description>&lt;PRE>Edward Peschko wrote:
> 
> > I personally think that this is something Larry is going to have to
> > decide. However, I would like to note that leaving these off by default
> > lowers the transition curve to Perl 6 immensely for those people that
> > use Perl as a glue/scripting/sysadmin language.
> 
> Right, but what I don't understand is that its two extra characters at the end
> of a command line... whats the big deal about typing '-q' on one line in
> scripts? Its easy enough to advertise '-q' and put it in big lights...

Yes and no, I think. As Alan Burlinson pointed out earlier, this is
*not* a purely clean-slate we have here to work with. There are lots and
lots and lots of users who know how Perl works. Many of these users
don't even know that you can do this:

   my $x = 5;

Let alone that this:

   my $x, $y, $z;

Doesn't DWIM, again according to what most people think.

> > Key: Not everyone becomes a Perl expert. Many people never leave
> > novice/intermediate level. This doesn't mean that we should design the
> > language for these people, but it also doesn't mean we should thumb our
> > noses at them.
> 
> So - why is it a religious issue then? I respect the fact that you want to
> write scripts without 'use strict'. I do this all the time. But I really think
> that its a small price to pay to put '-q' on the #!/usr/bin/perl command line
> for the vast benefits that it would give us all as far as CPAN goes.

Let's separate the CPAN thing out for a moment. "use strict" and "use
warnings" are not the universal solutions to CPAN quality issues, at
least as far as I'm aware.

As for the -q thing, I think it is far *less* of a burden to add "use
strict" and "use warnings" when you're writing a big piece of code. When
you're writing 5 lines, every extra character counts. When you're
writing 500 or 5000 lines, 2 lines of "use" statements are nothing.

> So - in the place of a '-q', would you support a mechanism for making
> sure that CPAN is '-w' clean? If so, how would you enforce it?

Absolutely, 100%. But this is a separate issue. For example, a big
problem with CPAN is also packaging. There's lots of modules that don't
use the h2xs/Makefile.PL approach. Also, many modules on CPAN have been
in beta for years, and not just 0.99 beta but 0.02 beta, broken and
uninstallable. There's also a lot of modules that don't run under -T.
But "strict" won't fix these issues.

If we're interested in increased CPAN quality, there's a bunch of stuff
we can do. We can have a standard test suite that's run against every
module uploaded to check if it's installable and compiles basically. We
can check for -w, -T, use strict, and tons of other stuff. We can check
for the packaging to make sure that "perl -MCPAN -e shell" will install
the stuff cleanly. If there's simple problems (misnamed tar files, a
$VERSION split onto multiple lines), we can even auto-fix this. Then
send all the results to the user who uploaded the module.

Heck, I'd even volunteer to head up a project to do this. But I think
it's a separate issue from "use strict" and "use warnings", let's not
confuse the two.

-Nate
&lt;/PRE></description>
</item>

<item>
<title>Re: Closures and default lexical-scope for subs</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/481270</link>
<description>&lt;PRE>> I personally think that this is
something Larry is going to have to
> decide. However, I would like to note that leaving these off by default
> lowers the transition curve to Perl 6 immensely for those people that
> use Perl as a glue/scripting/sysadmin language.

Right, but what I don't understand is that its two extra characters at the end
of a command line... whats the big deal about typing '-q' on one line in 
scripts? Its easy enough to advertise '-q' and put it in big lights...

My point is that '-w' is pretty much useless because people contribute modules 
to CPAN that don't have '-w' turned on, and you get lots of junk output from 
your scripts because other people don't adhere to the '-w'.

Hell, *I* don't use '-w' because of this.

> Key: Not everyone becomes a Perl expert. Many people never leave
> novice/intermediate level. This doesn't mean that we should design the
> language for these people, but it also doesn't mean we should thumb our
> noses at them.

So - why is it a religious issue then? I respect the fact that you want to 
write scripts without 'use strict'. I do this all the time. But I really think
that its a small price to pay to put '-q' on the #!/usr/bin/perl command line
for the vast benefits that it would give us all as far as CPAN goes.

So - in the place of a '-q', would you support a mechanism for making sure that
CPAN is '-w' clean? If so, how would you enforce it?

Ed

(
ps - if you want to take this offline, its fine by me. If this issue has been
covered before, you can tell me the arguments for/against it. 

But right now I do consider '-w' broken because of this; and it doesn't 
give me much comfort that lots of the modules on CPAN could have hidden bugs 
in them because -w is too difficult to use.
)
&lt;/PRE></description>
</item>

<item>
<title>Re: "Art Of Unix Programming" on Perl</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/478511</link>
<description>&lt;PRE>Hiya, I wasnt expecting this but here is my $.02,

Eric Raymond, is interesting but his contribtution is going to cause a lot more
grief than contracting revenue and salary bonuses.

Perl is frozen at 5.5.3 for me, which is not a problem.  I would like a virtual
machine built into the kernel, but more than anything, my industry (unix) needs
a rock solid kernel to get control of the operations.  

Edward Peschko and Simon Cozens :
> > Perl usage has grown respectably, but the language itself has been
> stagnant
> > > for two years or more.
> > 
> > Bah. Looks like my Perl5-Porters summaries have been completely in vain. :)
> 
> yeah, he's full of BS here.


=====
John van Vlaanderen

      #############################################
      #    CXN, Inc. Contact:  john@...   #		  #
      #      Proud Sponsor of Perl/Unix of NY	  #
      #        http://puny.vm.com		  #		    
      #############################################

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35 
a year!  http://personal.mail.yahoo.com/
&lt;/PRE></description>
</item>

<item>
<title>Re: "Art Of Unix Programming" on Perl</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/477641</link>
<description>&lt;PRE>On Fri, Feb 09, 2001 at 07:06:46PM
+0000, Simon Cozens wrote:
> Eric Raymond's book-in-development ``The Art of Unix Programming'' says
> this about the future of Perl:
> 
> > Perl usage has grown respectably, but the language itself has been stagnant
> > for two years or more.
> 
> Bah. Looks like my Perl5-Porters summaries have been completely in vain. :)

yeah, he's full of BS here.
> 
> If that other is Perl 6, I don't think we're stalled, are we? Language design
> is waiting on Larry to produce the spec, and internals design is going on
> quietly but steadily. We're in the design stage. That'll probably last a while
> because scripting languages and interpreters aren't easy things to design, and
> are even harder to get right.

Well, sometimes I think things *are* stalled. I'm thinking of updating my book
to perl 6, and maybe writing a new one, except that it is very difficult
to start, let alone convince an editor to put the time and effort into such a 
project if you can't even point to a spec.

And - correct me if I'm wrong - but there isn't even a status available on how
far the spec process is coming. I'm not saying that every day or even every 
week - but once a month might be nice. Last time I heard, he was going through
'topic by topic' and was going to release verdicts bit-by-bit. But that was 
on Dec. 20th.

Ed
&lt;/PRE></description>
</item>

<item>
<title>the perl6-porters list</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420918</link>
<description>&lt;PRE>This will be the last posting on this list before I remove it. 
 
 mail bootstrap-subscribe@... to join the new incarnation.
 
 
 
  - ask  
 
 -- 
 ask bjoern hansen - &lt;http://www.netcetera.dk/~ask/>
 more than 70M impressions per day, &lt;http://valueclick.com>
&lt;/PRE></description>
</item>

<item>
<title>perl5 in C++ (was Re: Creature Freep)</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420917</link>
<description>&lt;PRE>On Sat, 24 Oct 1998, "Felix S. Gallo"
&lt;fsg@... wrote:
 > Chip writes:
 > >According to Felix S. Gallo:
 > >> 1.  Describe the goal.  I don't believe Perl can be usefully rewritten in
 > >> C++ [*] before the next Perl conference in any case [...]
 > >
 > >Yes, that's the target.
 > >> [*] as if
 > >We shall see.  (Were I a betting man I'd clean up.	:-))
 > 
 > Never bet against a British pedant -- I can always win by redefining
 > usefully.  For my current claim, I think 'usefully' means that it's written
 > in C++ style; Perl is right now written in C++ if you make a few
 > minor changes.
 
 Below are those minor changes (with gratuitous Linux dependencies),
 for anyone wishing to play around.
 
 I'm interested in Joel Spolsky's article,
 &lt;URL:http://joel.editthispage.com/stories/storyReader$47>, on not
 rewriting big programs from scratch.
 
 Apologies for straying from the path.	:-)
 
 -John
 
 
 This is not a proper patch and requires care and feeding.  Here is how
 I apply it, more or less:
 
     cd perl-5.6.0
     chmod u+w hints/linux.sh
     echo timetype=time_t >> hints/linux.sh
     ./Configure -ds
     !patch -p0 &lt; patchfile
 
     make all test
 
 Then do stuff like this until it's Perl 6:
 
     inline NV&amp; sv::NVX () { return ((XPVNV*)sv_any)->xnv_nv; }
     #define SvNVX(sv)	((sv)->NVX())
 
 
 --- gv.h~	Sun Feb  6 14:32:59 2000
 +++ gv.h	Sun Jun 25 11:17:29 2000
 @... -19,7 +19,7 @...
      U32		gp_cvgen;	/* generational validity of cached gv_cv */
      U32		gp_flags;	/* XXX unused */
      line_t	gp_line;	/* line first declared at (for -w) */
 -    char *	gp_file;	/* file first declared in (for -w) */
 +    const char *gp_file;	/* file first declared in (for -w) */
  };
  
  #if defined(CRIPPLED_CC) &amp;&amp; (defined(iAPX286) || defined(M_I286) || defined(I80286))
 --- gv.c~	Tue Mar 21 00:28:10 2000
 +++ gv.c	Sun Jun 25 01:22:20 2000
 @... -982,7 +982,7 @...
		     gv_check(hv);		/* nested package */
	    }
	    else if (isALPHA(*HeKEY(entry))) {
 -		char *file;
 +		const char *file;
		gv = (GV*)HeVAL(entry);
		if (SvTYPE(gv) != SVt_PVGV || GvMULTI(gv))
		    continue;
 --- mg.c~	Fri Mar 17 20:24:04 2000
 +++ mg.c	Sun Jun 25 11:54:19 2000
 @... -21,6 +21,10 @...
  # include &lt;unistd.h>
  #endif
  
 +#ifdef I_GRP
 +# include &lt;grp.h>
 +#endif
 +
  #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
  #  ifndef NGROUPS
  #    define NGROUPS 32
 @... -688,9 +692,7 @...
	break;
      case '~':
	s = IoFMT_NAME(GvIOp(PL_defoutgv));
 -	if (!s)
 -	    s = GvENAME(PL_defoutgv);
 -	sv_setpv(sv,s);
 +	sv_setpv(sv,s ? s : GvENAME(PL_defoutgv));
	break;
  #ifndef lint
      case '=':
 --- pp_hot.c~	Fri Mar 17 22:11:42 2000
 +++ pp_hot.c	Sun Jun 25 10:10:29 2000
 @... -836,60 +836,52 @...
      }
      if (PL_delaymagic &amp; ~DM_DELAY) {
	if (PL_delaymagic &amp; DM_UID) {
 -#ifdef HAS_SETRESUID
 -	    (void)setresuid(PL_uid,PL_euid,(Uid_t)-1);
 -#else
 -#  ifdef HAS_SETREUID
 +#ifdef HAS_SETREUID
	    (void)setreuid(PL_uid,PL_euid);
 -#  else
 -#    ifdef HAS_SETRUID
 +#else
 +#  ifdef HAS_SETRUID
	    if ((PL_delaymagic &amp; DM_UID) == DM_RUID) {
		(void)setruid(PL_uid);
		PL_delaymagic &amp;= ~DM_RUID;
	    }
 -#    endif /* HAS_SETRUID */
 -#    ifdef HAS_SETEUID
 +#  endif /* HAS_SETRUID */
 +#  ifdef HAS_SETEUID
	    if ((PL_delaymagic &amp; DM_UID) == DM_EUID) {
		(void)seteuid(PL_uid);
		PL_delaymagic &amp;= ~DM_EUID;
	    }
 -#    endif /* HAS_SETEUID */
 +#  endif /* HAS_SETEUID */
	    if (PL_delaymagic &amp; DM_UID) {
		if (PL_uid != PL_euid)
		    DIE(aTHX_ "No setreuid available");
		(void)PerlProc_setuid(PL_uid);
	    }
 -#  endif /* HAS_SETREUID */
 -#endif /* HAS_SETRESUID */
 +#endif /* HAS_SETREUID */
	    PL_uid = PerlProc_getuid();
	    PL_euid = PerlProc_geteuid();
	}
	if (PL_delaymagic &amp; DM_GID) {
 -#ifdef HAS_SETRESGID
 -	    (void)setresgid(PL_gid,PL_egid,(Gid_t)-1);
 -#else
 -#  ifdef HAS_SETREGID
 +#ifdef HAS_SETREGID
	    (void)setregid(PL_gid,PL_egid);
 -#  else
 -#    ifdef HAS_SETRGID
 +#else
 +#  ifdef HAS_SETRGID
	    if ((PL_delaymagic &amp; DM_GID) == DM_RGID) {
		(void)setrgid(PL_gid);
		PL_delaymagic &amp;= ~DM_RGID;
	    }
 -#    endif /* HAS_SETRGID */
 -#    ifdef HAS_SETEGID
 +#  endif /* HAS_SETRGID */
 +#  ifdef HAS_SETEGID
	    if ((PL_delaymagic &amp; DM_GID) == DM_EGID) {
		(void)setegid(PL_gid);
		PL_delaymagic &amp;= ~DM_EGID;
	    }
 -#    endif /* HAS_SETEGID */
 +#  endif /* HAS_SETEGID */
	    if (PL_delaymagic &amp; DM_GID) {
		if (PL_gid != PL_egid)
		    DIE(aTHX_ "No setregid available");
		(void)PerlProc_setgid(PL_gid);
	    }
 -#  endif /* HAS_SETREGID */
 -#endif /* HAS_SETRESGID */
 +#endif /* HAS_SETREGID */
	    PL_gid = PerlProc_getgid();
	    PL_egid = PerlProc_getegid();
	}
 --- sv.c~	Wed Mar 22 21:44:37 2000
 +++ sv.c	Sun Jun 25 11:55:29 2000
 @... -15,6 +15,11 @...
  #define PERL_IN_SV_C
  #include "perl.h"
  
 +/* XXX If this causes problems, set i_unistd=undef in the hint file.	*/
 +#ifdef I_UNISTD
 +#include &lt;unistd.h>
 +#endif
 +
  #define FCALL *f
  #define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) sv_force_normal(sv)
  
 @... -2540,7 +2545,7 @...
	if (dtype &lt;= SVt_PVGV) {
    glob_assign:
	    if (dtype != SVt_PVGV) {
 -		char *name = GvNAME(sstr);
 +		const char *name = GvNAME(sstr);
		STRLEN len = GvNAMELEN(sstr);
		sv_upgrade(dstr, SVt_PVGV);
		sv_magic(dstr, dstr, '*', name, len);
 --- pp_sys.c~	Sun Mar 19 02:18:10 2000
 +++ pp_sys.c	Sun Jun 25 12:53:08 2000
 @... -36,10 +36,16 @...
  #endif
  
  #ifdef HAS_SYSCALL   
 -#ifdef __cplusplus		  
 +#ifdef __cplusplus
 +#ifndef __GLIBC__
 +/* XXX Who put this here?  Is someone compiling Perl with a C++ compiler
 +   on a system that has syscall and doesn't declare it in a header file?
 +   Really??  This breaks g++ on Linux because syscall returns long.
 +   Hence my GNU Libc exclusion.  -jtobey  */
  extern "C" int syscall(unsigned long,...);
  #endif
  #endif
 +#endif
  
  #ifdef I_SYS_WAIT
  # include &lt;sys/wait.h>
 @... -3971,7 +3977,13 @...
  #ifdef HAS_GETPRIORITY
      who = POPi;
      which = TOPi;
 +#if defined(__GLIBC__) &amp;&amp; defined(__cplusplus)
 +    /* XXX GNU Libc documents `which' as int but declares it as enum
 +	 __priority_which in &lt;sys/resource.h>, so let's not take chances.  */
 +    SETi( ((int (*)(int, int))getpriority)(which, who) );
 +#else
      SETi( getpriority(which, who) );
 +#endif
      RETURN;
  #else
      DIE(aTHX_ PL_no_func, "getpriority()");
 @... -3989,7 +4001,13 @...
      who = POPi;
      which = TOPi;
      TAINT_PROPER("setpriority");
 +#if defined(__GLIBC__) &amp;&amp; defined(__cplusplus)
 +    /* XXX GNU Libc documents `which' as int but declares it as enum
 +	 __priority_which in &lt;sys/resource.h>, so let's not take chances.  */
 +    SETi( ((int (*)(int, int, int))setpriority)(which, who, niceval) >= 0 );
 +#else
      SETi( setpriority(which, who, niceval) >= 0 );
 +#endif
      RETURN;
  #else
      DIE(aTHX_ PL_no_func, "setpriority()");
 --- sv.h~	Thu Mar  9 12:40:40 2000
 +++ sv.h	Sun Jun 25 11:49:08 2000
 @... -290,7 +290,7 @...
      HV*		xmg_stash;	/* class package */
  
      GP*		xgv_gp;
 -    char*	xgv_name;
 +    const char*	xgv_name;
      STRLEN	xgv_namelen;
      HV*		xgv_stash;
      U8		xgv_flags;
 --- op.c~	Tue Mar 21 00:06:34 2000
 +++ op.c	Sun Jun 25 11:51:36 2000
 @... -5498,7 +5498,7 @...
  
			/* is this op a FH constructor? */
			if (is_handle_constructor(o,numargs)) {
 -			    char *name = Nullch;
 +			    const char *name = Nullch;
			    STRLEN len;
  
			    flags = 0;
 --- ext/DB_File/DB_File.xs~	Tue Feb 15 00:42:40 2000
 +++ ext/DB_File/DB_File.xs	Sun Jun 25 12:38:45 2000
 @... -140,6 +140,10 @...
  
  #include &lt;fcntl.h> 
  
 +#ifdef __cplusplus
 +extern "C" void __getBerkeleyDBInfo();
 +#endif
 +
  /* #define TRACE */
  #define DBM_FILTERING
  
 @... -380,7 +384,7 @...
  
  #endif /* DBM_FILTERING */
  
 -#define my_sv_setpvn(sv, d, s) sv_setpvn(sv, (s ? d : (void*)""), s)
 +#define my_sv_setpvn(sv, d, s) sv_setpvn(sv, (s ? (const char*)d : ""), s)
  
  #define OutputValue(arg, name)						{ if
(RETVAL == 0) { 					    @... -507,8 +511,8 @...
  
      PUSHMARK(SP) ;
      EXTEND(SP,2) ;
 -    PUSHs(sv_2mortal(newSVpvn(data1,key1->size)));
 -    PUSHs(sv_2mortal(newSVpvn(data2,key2->size)));
 +    PUSHs(sv_2mortal(newSVpvn((const char *)data1,key1->size)));
 +    PUSHs(sv_2mortal(newSVpvn((const char *)data2,key2->size)));
      PUTBACK ;
  
      count = perl_call_sv(CurrentDB->compare, G_SCALAR); 
 @... -563,8 +567,8 @...
  
      PUSHMARK(SP) ;
      EXTEND(SP,2) ;
 -    PUSHs(sv_2mortal(newSVpvn(data1,key1->size)));
 -    PUSHs(sv_2mortal(newSVpvn(data2,key2->size)));
 +    PUSHs(sv_2mortal(newSVpvn((const char *)data1,key1->size)));
 +    PUSHs(sv_2mortal(newSVpvn((const char *)data2,key2->size)));
      PUTBACK ;
  
      count = perl_call_sv(CurrentDB->prefix, G_SCALAR); 
 @... -768,7 +772,6 @...
      SV **	svp;
      HV *	action ;
      DB_File	RETVAL = (DB_File)safemalloc(sizeof(DB_File_type)) ;
 -    void *	openinfo = NULL ;
      INFO	* info	= &amp;RETVAL->info ;
      STRLEN	n_a;
  
 @... -808,7 +811,6 @...
		croak("DB_File can only tie an associative array to a DB_HASH database") ;
  
	      RETVAL->type = DB_HASH ;
 -	      openinfo = (void*)info ;
    
	      svp = hv_fetch(action, "hash", 4, FALSE); 
  
 @... -843,7 +845,6 @...
		croak("DB_File can only tie an associative array to a DB_BTREE database");
  
	      RETVAL->type = DB_BTREE ;
 -	      openinfo = (void*)info ;
     
	      svp = hv_fetch(action, "compare", 7, FALSE);
	      if (svp &amp;&amp; SvOK(*svp))
 @... -892,7 +893,6 @...
		croak("DB_File can only tie an array to a DB_RECNO database");
  
	      RETVAL->type = DB_RECNO ;
 -	      openinfo = (void *)info ;
  
	    info->db_RE_flags = 0 ;
  
 @... -1011,7 +1011,7 @...
	      Flags |= DB_TRUNCATE ;
  #endif
  
 -	  status = db_open(name, RETVAL->type, Flags, mode, NULL, openinfo, &amp;RETVAL->dbp) ;

 +	  status = db_open(name, RETVAL->type, Flags, mode, NULL, info, &amp;RETVAL->dbp) ; 
	  if (status == 0)
  #if DB_VERSION_MAJOR == 2 &amp;&amp; DB_VERSION_MINOR &lt; 6
	      status = (RETVAL->dbp->cursor)(RETVAL->dbp, NULL, &amp;RETVAL->cursor) ;
 @... -1027,9 +1027,9 @...
  #else
  
  #if defined(DB_LIBRARY_COMPATIBILITY_API) &amp;&amp; DB_VERSION_MAJOR > 2
 -    RETVAL->dbp = __db185_open(name, flags, mode, RETVAL->type, openinfo) ; 
 +    RETVAL->dbp = __db185_open(name, flags, mode, RETVAL->type, info) ; 
  #else    
 -    RETVAL->dbp = dbopen(name, flags, mode, RETVAL->type, openinfo) ; 
 +    RETVAL->dbp = dbopen(name, flags, mode, RETVAL->type, info) ; 
  #endif /* DB_LIBRARY_COMPATIBILITY_API */
  
  #endif
 --- ext/DB_File/version.c~	Sun Jan 23 08:15:45 2000
 +++ ext/DB_File/version.c	Sun Jun 25 12:34:01 2000
 @... -25,7 +25,7 @...
  
  #include &lt;db.h>
  
 -void
 +EXTERN_C void
  __getBerkeleyDBInfo()
  {
      SV * version_sv = perl_get_sv("DB_File::db_version", GV_ADD|GV_ADDMULTI) ;
 --- ext/B/B.xs~	Thu Feb 24 20:49:18 2000
 +++ ext/B/B.xs Sun Jun 25 11:23:20 2000
 @... -1054,7 +1054,7 @...
  GvLINE(gv)
	B::GV	gv
  
 -char *
 +const char *
  GvFILE(gv)
	B::GV	gv
  
 --- ext/B/typemap~	Thu Oct 28 17:35:07 1999
 +++ ext/B/typemap	Sun Jun 25 11:18:38 2000
 @... -31,6 +31,7 @...
  SSize_t		T_IV
  STRLEN		T_IV
  PADOFFSET	T_UV
 +const char *	T_PV
  
  INPUT
  T_OP_OBJ
 --- config.sh.orig	Sun Jun 25 13:43:19 2000
 +++ config.sh	Sun Jun 25 13:49:12 2000
 @... -52,7 +52,7 @...
  c=''
  castflags='0'
  cat='cat'
 -cc='cc'
 +cc='g++'
  cccdlflags='-fpic'
  ccdlflags='-rdynamic'
  ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64'
 @... -76,8 +76,8 @...
  cppflags='-fno-strict-aliasing -I/usr/local/include'
  cpplast='-'
  cppminus='-'
 -cpprun='cc -E'
 -cppstdin='cc -E'
 +cpprun='g++ -E'
 +cppstdin='g++ -E'
  cppsymbols='_FILE_OFFSET_BITS=64 __GNUC_MINOR__=95 _LARGEFILE_SOURCE=1
_POSIX_C_SOURCE=199506 _POSIX_SOURCE=1 __STDC__=1 __i386=1 __i386__=1 __linux=1 __linux__=1
__unix=1 __unix__=1'
  crosscompile='undef'
  cryptlib=''
 @... -383,7 +383,7 @...
  dlsrc='dl_dlopen.xs'
  doublesize='8'
  drand01='drand48()'
 -dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob
GDBM_File IO IPC/SysV ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog attrs
re'
 +dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob
GDBM_File IO IPC/SysV Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog attrs re'
  eagain='EAGAIN'
  ebcdic='undef'
  echo='echo'
 @... -392,7 +392,7 @...
  eunicefix=':'
  exe_ext=''
  expr='expr'
 -extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob
GDBM_File IO IPC/SysV ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog attrs
re Errno'
 +extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob
GDBM_File IO IPC/SysV Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog attrs re Errno'
  fflushNULL='define'
  fflushall='undef'
  find=''
 @... -532,7 +532,7 @...
  known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob
GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname
Sys/Syslog Thread attrs re'
  ksh=''
  large=''
 -ld='cc'
 +ld='g++'
  lddlflags='-shared -L/usr/local/lib'
  ldflags=' -L/usr/local/lib'
  ldlibpthname='LD_LIBRARY_PATH'
 --- ext/Devel/DProf/DProf.xs~	Fri Feb  4 11:43:02 2000
 +++ ext/Devel/DProf/DProf.xs	Sun Jun 25 11:59:02 2000
 @... -3,6 +3,11 @...
  #include "perl.h"
  #include "XSUB.h"
  
 +/* XXX If this causes problems, set i_unistd=undef in the hint file.	*/
 +#ifdef I_UNISTD
 +#include &lt;unistd.h>
 +#endif
 +
  /* For older Perls */
  #ifndef dTHR
  #  define dTHR int dummy_thr
 @... -60,7 +65,7 @...
	  clock_t tms_utime;  /* cpu time spent in user space */
	  clock_t tms_stime;  /* cpu time spent in system */
	  clock_t realtime;   /* elapsed real time, in ticks */
 -	  char *name;
 +	  const char *name;
	  U32 id;
	  opcode ptype;
  };
 @... -210,7 +215,7 @...
  }   
  
  static void
 -prof_dumps(pTHX_ U32 id, char *pname, char *gname)
 +prof_dumps(pTHX_ U32 id, const char *pname, const char *gname)
  {
      PerlIO_printf(g_fp,"&amp; %"UVxf" %s %s\n", (UV)id, pname, gname);
  }   
 @... -241,8 +246,8 @...
	}
	else if (ptype == OP_GV) {
	    U32 id = g_profstack[base++].id;
 -	    char *pname = g_profstack[base++].name;
 -	    char *gname = g_profstack[base++].name;
 +	    const char *pname = g_profstack[base++].name;
 +	    const char *gname = g_profstack[base++].name;
  
	    prof_dumps(aTHX_ id, pname, gname);
	}
 @... -318,7 +323,8 @...
  
      {
	SV **svp;
 -	char *gname, *pname;
 +	const char *gname;
 +	const char *pname;
	CV *cv;
  
	cv = INT2PTR(CV*,SvIVX(Sub));
 --- ext/File/Glob/bsd_glob.c~	Thu Mar  2 12:53:17 2000
 +++ ext/File/Glob/bsd_glob.c	Sun Jun 25 12:08:02 2000
 @... -63,6 +63,11 @...
  #include &lt;perl.h>
  #include &lt;XSUB.h>
  
 +/* XXX If this causes problems, set i_unistd=undef in the hint file.	*/
 +#ifdef I_UNISTD
 +#include &lt;unistd.h>
 +#endif
 +
  #include "bsd_glob.h"
  #ifdef I_PWD
  #	include &lt;pwd.h>
 @... -637,6 +642,12 @...
	/* NOTREACHED */
  }
  
 +#ifdef __cplusplus
 +typedef Direntry_t *(*readdirfunc_t)(DIR*);
 +#else
 +typedef Direntry_t *(*readdirfunc_t)();
 +#endif
 +
  static int
  glob3(Char *pathbuf, Char *pathend, Char *pattern,
	Char *restpattern, glob_t *pglob)
 @... -646,14 +657,7 @...
	int err;
	int nocase;
	char buf[MAXPATHLEN];
 -
 -	/*
 -	 * The readdirfunc declaration can't be prototyped, because it is
 -	 * assigned, below, to two functions which are prototyped in glob.h
 -	 * and dirent.h as taking pointers to differently typed opaque
 -	 * structures.
 -	 */
 -	Direntry_t *(*readdirfunc)();
 +	readdirfunc_t readdirfunc;
  
	*pathend = BG_EOS;
	errno = 0;
 @... -689,9 +693,9 @...
  
	/* Search directory for matching names. */
	if (pglob->gl_flags &amp; GLOB_ALTDIRFUNC)
 -		readdirfunc = pglob->gl_readdir;
 +		readdirfunc = (readdirfunc_t)pglob->gl_readdir;
	else
 -		readdirfunc = my_readdir;
 +		readdirfunc = (readdirfunc_t)my_readdir;
	while ((dp = (*readdirfunc)(dirp))) {
		register U8 *sc;
		register Char *dc;
 @... -859,7 +863,7 @...
		g_Ctoc(str, buf);
  
	if (pglob->gl_flags &amp; GLOB_ALTDIRFUNC)
 -		return((*pglob->gl_opendir)(buf));
 +		return((DIR*)(*pglob->gl_opendir)(buf));
	else
	    return(PerlDir_open(buf));
  }
 
 -- 
 John Tobey, late nite hacker &lt;jtobey@...
 \\\								   ///
 ]]]		 With enough bugs, all eyes are shallow.	   [[[
 ///								   \\
&lt;/PRE></description>
</item>

<item>
<title>Re: ANSI Perl:  NO F* WAY !!!</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420916</link>
<description>&lt;PRE>On a counter-note, I was kinda
anti-ANSI, too.  But a late night
 discussion on #perl has me swayed a little bit, Abigail and mjd scored
 some good points for standardization:
 
 
    Schwern: Hmmm, Mr. Rosler misses the point of standardization.
     yrlnry: schwern: I somehow doubt that.
    Schwern: Well, why "officially" standardize something that's not fractured?
     pudge_: Schwern, so businesses can rely on it.
    Schwern: Yay.  They already can rely on it.
     pudge_: no, not on perl
     pudge_: on a standard
    Schwern: Perl people are absolutely crazy about backwards compatibility.
     pudge_: i am not saying i agree
     pudge_: you asked why standardize, and i told you :)
     pudge_: actually
    Schwern: ...but that's his argument.  Yeah.
     yrlnry: crazy in the sense of ignoring it in an irrational and self-destructive way,
perhaps.
     pudge_: one could make an argument that perl IS fractured
    Schwern: I'm just afraid it'll get frozen in time like C.
     pudge_: you havce 5.004 over there, 5.005 here, and 5.6 out there
    Schwern: Pudge:  Standardization won't help that anymore than it helped C++
     pudge_: Schwern, my hope is that Perl WILL get frozen in time.
    Schwern: There's still tons of non-ANSI C++ compilers out there.
     pudge_: when it is done.
    fimmtiu: C++'s problems are not a result of standardization.
    fimmtiu: C++'s problems are because it's a poorly designed language.
    Schwern: fimmtiu:  Not what I'm saying.
     pudge_: C++ has only one problem.
     pudge_: it's not perl!
 
	 **later**
 
    Abigail: What do people think of the Larry Rosler interview?
    Schwern: Abigail:  His arguments for turning Perl into hundreds of pages of unreadable
documents are less than convincing.
    PerlJam: Abigail: I'm composing email to Larry Rosler about it right now.  I think he's
clued but misguided.
    Schwern: Abigail:  THen again... we already have man pages...
    PerlJam: What Schwern just said.
    Abigail: I didn't see him talking about "unreadable" documentation.
    Schwern: Abigail:  Ever read an ANSI spec?
    Abigail: Schwern: yes.
    PerlJam: Abigail: What do *you* think about it?
    Schwern: Abigail:  Not the clearest things in the universe.
    Schwern: And has a language as complicated as Perl ever been spec'd?
    PerlJam: Schwern: C++
     yrlnry: schwern: Have you read the ANSI C standard?  I don't think it's unreadable.
    Schwern: C++ has nothing on Perl.
    Schwern: mjd:  My copies in storage, I've seen a few gems.
    quidity: If we had a standards committee, would we have to adopt strict definitions of
all the Larry Wall quotes as well?
    Abigail: I think that it would benefit Perl in the long run to standardize it. However,
it should be a standard that allows things that are "deprecated" to be removed in future
versions. 
	uri: mjd: ever read the pl/1 specs? total gibberish.
     yrlnry: uri: No, I haven't had that pleasure.
	uri: mjd: the pleasure^Wpain was all mine
    Abigail: One of the problems now is that certain things aren't well defined, and if
behaviour chances from version to version, a bugreport can be dismissed as "well, it was
never well defined, so it isn't a bug".
    Schwern: I'm more afraid of calcification of Perl than anything else.
	uri: mjd: i wrote massive runtime library stuff from that spec. i still have the
scars
      dngor: That's what Ilya means when he says Perl is nondeterministic, right?
     yrlnry: Another problem is that the current development team doesn't seem to
particularly care about backward compatibility anyway.
    Abigail: For instance, what should the following print: sub AUTOLOAD {print $AUTOLOAD}
*foo = *bar; foo ();  ?  (It prints different things in 5.005 and 5.6 for instance).
    Schwern: mjd:  Odd, I've always found p5p to be absolutely rabid about that.
     yrlnry: schwern: You haven't been paying very much attention then.
    Schwern: Not since 5.6.0 came out.
     yrlnry: Not since about three yeasr ago, it appears.
     yrlnry: Try reading perldelta sometime.
     clintp: The theme is "Well, we can break backward compatability, as long as it's not
something important that anyone in p5p uses."
     yrlnry: Or if Larry decides that the new way is more useful.
     clintp: For varying degrees of "important"
    Abigail: "Important" often meaning "I don't like the new way of doing it, so the old
way is important".
    Schwern: Here's the question.  Would an ANSI spec chisel Perl in stone?  Would there be
no more new features because of it (or effectively because they weren't in the standard)?
     yrlnry: Well, that didn't happen to C.  Why would it happen to Perl?
    PerlJam: Schwern: in as much as C is "chiselled in stone"
    Schwern: C relies more on its libraries than its core language.
	uri: schwern: i think the issue is less about features than clarifying what perl is
supposed to do in odd places. it is too empirical sometimes.
    PerlJam: Perl needs to be redesigned from the ground up (again)
 *** mandrake- (mandrake@... has joined channel #perl
    Abigail: Having a Perl standard means that other people could write compatible Perl
compilers/interpreters.
  mandrake-: huh
    Schwern: I'd consider C to be (arguably) "complete"
     yrlnry: Schwern: Regardless of what you think, the new standard is standardizing
features that have been introduced after 1989.
    Schwern: mjd:  What new standard?
    PerlJam: uri: ah
     yrlnry: schwern: There is a new ANSI C standard in development.
    Abigail: C9x
    Schwern: There's a new ANSI C standard?  I had no idea.
    Schwern: of course, this will take another decade to be widely adopted...
     yrlnry: That makes like five things you have cirticized and argued about in the last
twelve hours that you had no idea about.
    Schwern: mjd:  That's why I have you here, dear.
    PerlJam: Schwern: Have you seen GNU C lately?
    Abigail: Schwern: there are a hell of a lot more C compilers and run time environments
out there then there are Perl compilers.
    Abigail: (Perl compiler being perl, not perlcc).
 
 
 -- 
 
 Michael G Schwern	http://www.pobox.com/~schwern/	   schwern@...
 &lt;GuRuThuG> make a channel called Perl, and infest it with joking and
 fun....it doesnt make alot of sense.
&lt;/PRE></description>
</item>

<item>
<title>ANSI Perl:  NO F* WAY !!!</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420915</link>
<description>&lt;PRE>Perl is my only language, its a
monoculture like a family, dysfunctional at
 times, but show me a family isn't (at times).
 
 In fact the whole public domain seems a little goofy at times but I stick with
 it because I know the end results are going to be fantastic.
 
 Perl is designed in a true democracy, chaotic at times.  Even the group
 decision to keep the Y2K "bug" intact is endearing.
 
 It seems Larry Rosler wants to change all that.
 
 I am cut+pasting from 
 http://www.perl.com/pub/2000/06/rosler.html?wwwrrr_20000606.txt
 
 In his own words:
 
 LR: I believe that [ Perl needs ANSI standardization ], in order to increase
 its acceptability...
 
 ME:  Perl is already everywhere, it is the single most used language on the
 web, Java lacks performance an always seems to be in court.  A few stuffed
 shirts seem to be in denial about perl but their days are numbered anyway.
 
 LR: I was experimenting with CGI programming using shell ... Soon I discovered
 that Perl ... was much more expressive and much 
 
 ME: Duh !!  Shell is nearly useless.
 
 LR:  ... 'official' Perl semantics has [ err, have ] never been adequately
 characterized independent of the implementation, so is subject to arbitrary
 change.
 
 ME: Arbitrary ??  I can honestly say that I have never seen a single perl
 feature that didn't make me proud of the perl way of making decisions.  Its a
 model for the whole human race :)
 
 LR: Building on quicksand is acceptable for 'scripts' of limited longevity 
 
 ME: Hugh ??  Knowing systems operations, I am guessing most scripts will out
 live Bell Labs, even UN*X
 
 LR: Ilya Zakharevitch is most outspoken in his view that Perl is not (yet?) a
 'programming' language!
 
 ME: Applications building language !!	Perl does not seek to replace C, but
 work w/ it (and the others.) Its a philosophy _and_ a desert topping.
 
 LR: people should devote their attention to firming up the semantics and making
 sure that the implementation conforms to those semantics, rather than the other
 way around
 
 ME: No more swiss-army-chainsaw, :`(
 
 Joe Johnston: Or to Perl's charmingly permissive OO implementation. 
  
 ME: Gush !!
 
 LR: I am less concerned about individual programmers [ and ] more concerned
 about major corporations or government agencies 
 
 ME:  Perl is a collage of individuals who wont be denied, even in the
 workplace. It seems LR wants to hand it over to the suits.  
 
 The new economy smart enough to reject corporate welfare and bold enough to
 take on the lazy big-caps.  Perl is the language to do it. 
 
 LR:  Samuel Johnson: "When a man knows he is to be hanged in a fortnight, it
 concentrates his mind wonderfully."
 
 ME: Better start thinking a little smarter because the small-caps are the clear
 winners, the old economy is hanging by a thread and doesn't even know it.
 
 LR: Python is [in]sufficient to give it a critical mass and I don't think
 significant inroads are being made. 
 
 ME: My sources tell me that Python is _the_ language to learn from.  It will
 never achieve chainsaw status, and thats probably a good thing.  Small is
 beautiful.  Thanks for denigrating it, now I'm going to take the plunge.
 
 LR: I have never needed to write an object in any program.  And, as I said, to
 me OO is a big yawner.
 
 ME: Hey, news flash: CPAN = OO modules !!
 
 Joe Johnston:	How much longer do you see the "Internet Goldrush" continuing? 
 
 LR: Judging by the recent performance of the NASDAQ, it may be over already.
 
 ME: Well since then the gold rush has half returned.  This statement is typical
 of the cynicism and ignorance that caused the tumble in the first place.
 
 I support the small-caps but dont want work for them for the simple reason that
 they will make me work.  
 
 Fact is that you can actually fall asleep in your big-cap cubicle for years...
 I dont sleep, obviously, but I spend all my time fathoming how perl is going to
 save our werld.  
 
 The economy today is global.  The NASDAQ collapse was thought of as an internet
 failure, but that was the media talking out their ass.
 
 A quick lesson:  There are several indexes which show the whole picture.  While
 the connection between the stocks and investment is dubious at best, its the
 only game in the global village.  We, the privileged, vote for our economy by
 buy stocks in the sectors we support, usually through funds.
 
 DOW:  The fat cats, receivers of corporate welfare
 S&amp;P 500: Generally midcaps, it spans the distance to the next layer, the
 Russell 2000:	Small, aggressive successful companies who pray each and every
 day for lower interest rates 
 NASDAQ: Similar to the Russell 2000, in fact the charts are parallel.	
 
 The trend since y2k is clear.	Smaller companies, despite high interest rates,
 started eating the bigcaps for lunch.	Technology is a key booster, but other
 stuff is going on.  
 
 Leading up to March 10th peak the whole world was elated.  To quote some old
 cowboy, "you spit in the desert and a flower blooms."	
 
 In a way, these broken investments are the best because recovery is pure
 growth, and growth is profit.	For example, the application of translation
 software to an array of B2B applications simply drops state of the art business
 services on any broken nation instantly fixing it making it a viable trading
 partner.
 
 From y2k until the end of March, the naz and the dow were oscillating against
 each other.  Growth possibilities brought down the dow, interest rate fears
 boosted the dow and killed the naz.  Now both are growing, but, face it, the
 big caps are doomed, though we may have to topple the berlin wall here in US.
 
 Clearly, the big-caps are not interested in seeing their coporate welfare
 evaoprate, nor do they want to be gobbled alive by the up-and-comings.
 
 Greenspan exists to keep their machine running.  His contradictory statements
 would have made Nixon blush.  His claims of controlling inflation are pure lie,
 he only seeks to lower one number, OUR salaries.
 
 That and only that number will determine interest rate hikes.	The problem is
 that we are worth the money, and always have been.  And perlers are worth even
 ore.
 
 LR: Each of us is working on the Perl Golf tournament
 
 ME: There ya go !!
 
 
 
 
 
 =====
 John van Vlaanderen
 
       #############################################
       #    CXN, Inc. Contact:	john@...   #		   #
       #      Proud Sponsor of Perl/Unix of NY	   #
       #	http://puny.vm.com		   #		     
       #############################################
 
 __________________________________________________
 Do You Yahoo!?
 Yahoo! Photos -- now, 100 FREE prints!
 http://photos.yahoo.com
&lt;/PRE></description>
</item>

<item>
<title>RE: Simplfied vector&lt;> ?</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420914</link>
<description>&lt;PRE>From: Chip Salzenberg [mailto:chip@...
 > 
 > The standard C++ vector&lt;> container is almost perfect for use in Perl
 > arrays and the data stack.  But it has a major weakness...  It's _so_
 > general that it doesn't use memcpy() [or moral equivalent] when it has
 > to grow.  Instead, it uses copy constructors in a loop.  That could be
 > a major performance issue with vector&lt;Counted_p&lt;T>>.
 > 
 > Now, I could write a vector&lt;> -- it's not that hard, as C++ goes --
 > but I'm wondering if anyone has a lead on such a thing already, and/or
 > library(ies) of such handy classes.
 
 I don't know if/how such details are or should be handled, but you might
 want to take a look at boost (www.boost.org) or ask on the boost mailing
 list (boost@... The people there have done a lot of work on
 extensions to the STL classes, and may have what you want (I recall
 something about a fast allocator, which may help performance of the standard
 containers - if not, I'm sure there are people on the list who would be
 interested in thrashing out performance issues like this).
 
 On a related note, boost already has a counted pointer class, and they are
 working hard on efficiency issues for it, so that may be worth a look, too.
 
 Paul.
&lt;/PRE></description>
</item>

<item>
<title>Re: Better mousetrap ^W Makefile</title>
<link>http://ASPN.ActiveState.com/ASPN/Mail/Message/perl6-Porters/420913</link>
<description>&lt;PRE>I like it.
 
 Its 4K+ lines are clearly enough written to break them up into a number of
 smaller modules specific to their packages and methods.  This would allow hooks
 for upstream applications to implement aspects of the module.
 
 A lot of the methods only use packages as a place to keep them, they are
 independant of the class structures.  These could go into a utility modules
 like the ones I am creating from the perl power tools for NT.
 
 Documentation at the end implies that its success depends on the evolution of
 modules in the rest of perl.  Nice !!!
 
  
 
 =====
 John van Vlaanderen
 
       #############################################
       #    CXN, Inc. Contact:	john@...   #		   #
       #      Proud Sponsor of Perl/Unix of NY	   #
       #	http://www.thinman.com/puny	   #		     
       #############################################
 
 __________________________________________________
 Do You Yahoo!?
 Send instant messages &amp; get email alerts with Yahoo! Messenger.
 http://im.yahoo.com/
&lt;/PRE></description>
</item>

</channel>
</rss>