This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
hjstein@bfr.co.il (Harvey J. Stein) writes: > 1. Tcl/Tk avoids long GC pauses by never garbage collecting. The > process grows without bound over time. Would you prefer this? No. I claimed that a "GUI is a typical thing to write in a scripting language". Then I used Tcl/Tk as an example because you typically do the GUI in Tcl/Tk. > 3. Emacs has a non generational GC that's on the slow side. Does its > pauses cause a significant degradation of it's UI? I don't think this is a fair comparison since you are less sensitive to short pauses in a keyboard/text-based application such as Emacs. Responsiveness is more important in a GUI. It needs to have a "stable feeling". (But before I got my Ultra machine I *was* disturbed a lot even in Emacs precisely because of irregular delays of response.) > 4. I wrote a tetris game for STk. It has a non generational > conservative GC. The pauses are unnoticable because I increased > the heap allocation at the beginning & call gc at times when it > won't be noticable to the user. Well, what can I say. I have a GUI for my simulator written in Guile and it doesn't feel nice to interact with due to the irregular short pauses. But then I didn't change heap allocation or call gc. I'm a little bit afraid of relying on such things because I imagine that there are situations where it is hard to avoid GC even with these measures. I also would prefer not to have to think of these kind of things when writing scripts in Guile. GC is supposed to relieve the user from thoughts about memory resources. I would like to be relieved from thinking about GC as well. Finally, such measures (calling GC at the dynamically right places) could have a bad influence on program structure. > 6. How often do you have to wait for programs to do things in general? > I often have to wait for netscape, make, gcc, ... and none of them > have gc. Why is waiting for gc a big deal, but waiting for DNS > resolution, or page formatting, or anything else acceptable? I haven't claimed that waiting for GC is a big deal in general. I claim that it is a big deal when you're writing GUI code in Scheme. > You stated that if the gc always scans all of memory then the gc > pauses can be long, and if the gc pauses are long then it's bad for > the GUI. > > The real issue is *how* big, *how* long, and *how* bad. Agreed. I want a behaviour "smooth" enough not to have to worry about GC when writing GUI:s. /mdj