This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Programming Anti-patterns in Shell and Perl Scripts


On 28/06/2011 2:53 PM, Sravan Bhamidipati wrote:
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?
I don't use bash-completion myself, but my understanding is that it can be very slow, if for no other reason than fork() is slow in cygwin. If your de-anti-pattern transformation causes fewer calls to fork() -- and the above expr example suggests it does -- it could be very worthwhile.

Implementation-wise, you probably want to start here: http://www.cygwin.com/contrib.html

Ryan


-- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]