From owner-cvs-all@FreeBSD.ORG Wed Aug 2 10:19:56 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AA20316A4E6; Wed, 2 Aug 2006 10:19:56 +0000 (UTC) (envelope-from sat@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A05FC43D69; Wed, 2 Aug 2006 10:19:55 +0000 (GMT) (envelope-from sat@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k72AJtD7034580; Wed, 2 Aug 2006 10:19:55 GMT (envelope-from sat@repoman.freebsd.org) Received: (from sat@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k72AJt1k034579; Wed, 2 Aug 2006 10:19:55 GMT (envelope-from sat) Message-Id: <200608021019.k72AJt1k034579@repoman.freebsd.org> From: Andrew Pantyukhin Date: Wed, 2 Aug 2006 10:19:55 +0000 (UTC) To: ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: ports/devel Makefile ports/devel/p5-Readonly-XS Makefile distinfo pkg-descr pkg-plist X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Aug 2006 10:19:56 -0000 sat 2006-08-02 10:19:55 UTC FreeBSD ports repository Modified files: devel Makefile Added files: devel/p5-Readonly-XS Makefile distinfo pkg-descr pkg-plist Log: Add port devel/p5-Readonly-XS: The Readonly module (q.v.) is an effective way to create non-modifiable variables. However, it's relatively slow. The reason it's slow is that is implements the read-only-ness of variables via tied objects. This mechanism is inherently slow. Perl simply has to do a lot of work under the hood to make tied variables work. This module corrects the speed problem, at least with respect to scalar variables. When Readonly::XS is installed, Readonly uses it to access the internals of scalar variables. Instead of creating a scalar variable object and tying it, Readonly simply flips the SvREADONLY bit in the scalar's FLAGS structure. Readonly arrays and hashes are not sped up by this, since the SvREADONLY flag only works for scalars. Arrays and hashes always use the tie interface. Why implement this as a separate module? Because not everyone can use XS. Not everyone has a C compiler. Also, installations with a statically-linked perl may not want to recompile their perl binary just for this module. Rather than render Readonly.pm useless for these people, the XS portion was put into a separate module. WWW: http://search.cpan.org/dist/Readonly-XS/ Justification: socialtext dependency Revision Changes Path 1.2385 +1 -0 ports/devel/Makefile 1.1 +24 -0 ports/devel/p5-Readonly-XS/Makefile (new) 1.1 +3 -0 ports/devel/p5-Readonly-XS/distinfo (new) 1.1 +23 -0 ports/devel/p5-Readonly-XS/pkg-descr (new) 1.1 +7 -0 ports/devel/p5-Readonly-XS/pkg-plist (new)