X-Recipient: archive-cygwin@delorie.com
X-SWARE-Spam-Status: No, hits=0.7 required=5.0	tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL,URI_BLOGSPOT
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
From: Sravan Bhamidipati <bsravanin@gmail.com>
Date: Wed, 29 Jun 2011 00:23:57 +0530
Message-ID: <BANLkTinZih7DKLYxXxLBVpdmFn62Tu4kdA@mail.gmail.com>
Subject: Programming Anti-patterns in Shell and Perl Scripts
To: cygwin@cygwin.com
Content-Type: text/plain; charset=UTF-8
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

Hello Cygwin. :-)

I have been working on static code analysis from a performance
perspective, and I recently applied the concept to Shell and Perl
scripts. The most basic idea was to look for usages of Unix commands,
their combinations with pipes, and stuff like that to which
alternatives using Shell built-ins (or Perl functions) could be
possible. e.g. Using ((num++)) instead of `expr $num + 1`. In examples
where I had "fixed" anti-patterns, there was often a noticeable
improvement (mostly realized in the form of faster runtime). I have
also written a dirty parser and put together basic "guides" to go
about this: http://bsravanin.blogspot.com/search/label/anti-patterns.

Among Cygwin packages, bash-completion has some of the highest
programming anti-patterns, but there are various others as well. Does
this seem like a useful idea? If it is, what could be a good way of
going about implementing it?

Thanks,
Sravan

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

