view Tools/scripts/dutree.doc @ 87690:66c1c9f32567 default tip

Add use_weakref option to functools.lru_cache The use_weakref option makes lru_cache create weak references to the function arguments when creating the cache key, which prevents them from staying in the memory forever even after all other references to them are gone. This is a proof of concept for http://bugs.python.org/issue19859
author Radomir Dopieralski <devel@sheep.art.pl>
date Tue, 03 Dec 2013 16:02:48 +0100
parents e15bea971a5b
children
line wrap: on
line source

Path: cwi.nl!sun4nl!mcsun!uunet!cs.utexas.edu!convex!usenet
From: tchrist@convex.COM (Tom Christiansen)
Newsgroups: comp.lang.perl
Subject: Re: The problems of Perl (Re: Question (silly?))
Message-ID: <1992Jan17.053115.4220@convex.com>
Date: 17 Jan 92 05:31:15 GMT
References: <17458@ector.cs.purdue.edu> <1992Jan16.165347.25583@cherokee.uswest.com> <=#Hues+4@cs.psu.edu>
Sender: usenet@convex.com (news access account)
Reply-To: tchrist@convex.COM (Tom Christiansen)
Organization: CONVEX Realtime Development, Colorado Springs, CO
Lines: 83
Nntp-Posting-Host: pixel.convex.com

From the keyboard of flee@cs.psu.edu (Felix Lee):
:And Perl is definitely awkward with data types.  I haven't yet found a
:pleasant way of shoving non-trivial data types into Perl's grammar.

Yes, it's pretty aweful at that, alright.  Sometimes I write perl programs
that need them, and sometimes it just takes a little creativity.  But
sometimes it's not worth it.  I actually wrote a C program the other day
(gasp) because I didn't want to deal with a game matrix with six links per node.

:Here's a very simple problem that's tricky to express in Perl: process
:the output of "du" to produce output that's indented to reflect the
:tree structure, and with each subtree sorted by size.  Something like:
:    434 /etc
:      |     344 .
:      |      50 install
:      |      35 uucp
:      |       3 nserve
:      |       |       2 .
:      |       |       1 auth.info
:      |       1 sm
:      |       1 sm.bak

At first I thought I could just keep one local list around
at once, but this seems inherently recursive.  Which means 
I need an real recursive data structure.  Maybe you could
do it with one of the %assoc arrays Larry uses in the begat
programs, but I broke down and got dirty.  I think the hardest
part was matching Felix's desired output exactly.  It's not 
blazingly fast: I should probably inline the &childof routine,
but it *was* faster to write than I could have written the 
equivalent C program.


--tom

--
"GUIs normally make it simple to accomplish simple actions and impossible
to accomplish complex actions."   --Doug Gwyn  (22/Jun/91 in comp.unix.wizards)

     Tom Christiansen           tchrist@convex.com      convex!tchrist