On Saturday 14 February 2004 04:55, stefan kersten wrote:
consider an installation running 12 hours a day. the program
creates objects (events, synthesis patches, processes)
dynamically and non-deterministically, e.g. based on room
temperature or the number of unemployed people in germany
(which seems to be unbounded).
or imagine a performance involving devices with limited
resources (e.g. PDAs). i wouldn't want the application to
crash _anytime_ because it's running out of memory. it's not
really comparable to a recording situation, where you can
start over when that happens.
so yes, for some applications i'd call it an unreliable
hack.
Sure, I agree, in your application, it's better not to use a conventional GC.
I was just saying, that in _some_ applications, it's not a problem at all. I
was just trying to remind people not to automatically reject the approach of
deferred GC, when the running time of the application is time-limited.
(And of course I wasn't talking about PDA's here. Was I? I certainly apologize
if I gave you the impression that I advocate using a garbage-collecting
language for a flash-based system and/or PDA. I'm quite curious where you
got this idea(?))
Larry Troxler
when do you turn it back on?
Simple. You do a full GC whenever you stop a real-time
run.
that's like cleaning your appartment whenever you have
nothing important to do. there's always something to do, so
you have to do the cleaning incrementally and if possible
non-interruptively, or the garbage will spill out of the
windows.
haha. It all depends. I could say that it's like trying to clean the garbage
out of your car while you're driving.
I think the point is, that we probably agree, and we are just talking about
different application.
i'm not opposed to garbage collection per se, i
just think
that there are implementations better suited for realtime
work (like those found in supercollider, rscheme and maybe
squeak) than the reference counting or mark-and-sweep
algorithms used in most scripting languages. supercollider,
as a bonus for object oriented folks, also has constant time
method lookup.
Hmm, note to self - look into Supercollider...
Actually I have no doubt that you are right, in the sense that I understand
that supercollider is a langauge developed specifically for real-time sound
generation. I really need to look into it.
Incidentally,
it's interesting to see that there is not much mention of
using Ruby instead of Python, in the Linux computer-music world.
Presumably Python must still have an advantage in some areas?
i don't know if there are big differences in performance
(but since we're talking about garbage collection, ruby has
a mark-and-sweep collector). i, for one, favor ruby for its
cleaner object model, and snd has a ruby but no python
interface :)
<sk>
Actually, that was just a general question about the two languages, and not
specifically about comparing the GC between the two; I'm sorry if that wasn't
clear. I had got the impression that Ruby is intended to obsolete Python, in
the sense that there are no major disadvantages to using Ruby vs. Python
(apart from the current popularity of Python, of course).
But, at least on this list, it seems that Ruby has not yet displaced Python as
the scripting language of choice, and I wonder if there is a valid reason for
that, apart from inertia and politics.
Larry Troxler