* Re: New g-wrap supported in guile-gtk--rotty-0.1! [not found] ` <874qwhsa2u.fsf@zip.com.au> @ 2003-12-04 9:02 ` Andreas Rottmann 2003-12-04 14:14 ` Mikael Djurfeldt [not found] ` <1074535797.1517.64.camel@localhost> 1 sibling, 1 reply; 11+ messages in thread From: Andreas Rottmann @ 2003-12-04 9:02 UTC (permalink / raw) Cc: guile-user [ CC'd guile-user, since maybe someone has an idea how to implement this ] Kevin Ryde <user42@zip.com.au> writes: > Andreas Rottmann <a.rottmann@gmx.at> writes: >> >> I now get ~3.6 seconds of loading time for (gnome gtk) with the above >> referenced code, gcc 3.3.2 -O2 and Guile 1.7 on my Athlon 900. The >> loading time is mostly spent in scm_add_method(), FWIW... > > I wonder if some lazy initializing would be possible, like catch a > failed method dispatch and add only at that time. (But my ignorance > of goops is pretty profound, so maybe it's not feasible.) > I don't really know. Maybe one could postpone the method creation until the first instance of that class has been instantiated... > gtk+gnome is pretty big, there might be a good chance an application > would use only a modest number of widgets and functions. Those needed > to get the first window up could be even fewer. (Always good to get > the first window up quickly, since the user is waiting, waiting ...) > Yes, I also think that we *have* to get the "time-to-initial-window" at least under 1 second for a hello world program... Andy -- Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62 Say NO to Software Patents! -- http://petition.eurolinux.org/ _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: New g-wrap supported in guile-gtk--rotty-0.1! 2003-12-04 9:02 ` New g-wrap supported in guile-gtk--rotty-0.1! Andreas Rottmann @ 2003-12-04 14:14 ` Mikael Djurfeldt 2003-12-04 17:21 ` Andreas Rottmann 2003-12-04 22:33 ` Andreas Rottmann 0 siblings, 2 replies; 11+ messages in thread From: Mikael Djurfeldt @ 2003-12-04 14:14 UTC (permalink / raw) Cc: guile-user, djurfeldt, guile-gtk-general Andreas Rottmann <a.rottmann@gmx.at> writes: > [ CC'd guile-user, since maybe someone has an idea how to implement > this ] > > Kevin Ryde <user42@zip.com.au> writes: > >> Andreas Rottmann <a.rottmann@gmx.at> writes: >>> >>> I now get ~3.6 seconds of loading time for (gnome gtk) with the above >>> referenced code, gcc 3.3.2 -O2 and Guile 1.7 on my Athlon 900. The >>> loading time is mostly spent in scm_add_method(), FWIW... >> >> I wonder if some lazy initializing would be possible, like catch a >> failed method dispatch and add only at that time. (But my ignorance >> of goops is pretty profound, so maybe it's not feasible.) >> > I don't really know. Maybe one could postpone the method creation > until the first instance of that class has been instantiated... > >> gtk+gnome is pretty big, there might be a good chance an application >> would use only a modest number of widgets and functions. Those needed >> to get the first window up could be even fewer. (Always good to get >> the first window up quickly, since the user is waiting, waiting ...) >> > Yes, I also think that we *have* to get the "time-to-initial-window" > at least under 1 second for a hello world program... GOOPS is, as yet, only optimized for fast execution. Creation of objects and *especially* method creation involves a lot of work, most of which is done by interpreted Scheme code. This is not an architectural problem, though, and it is certainly possible to speed things up. An improvement of method addition on the algorithm level that could help this particular case would be to allow for adding multiple methods at once. Presently, every call to scm_add_method involves re-computing the methods list of the GF which means that adding N methods to a GF is O(N^2). An improvement on the implementation level would be to do part (or all) of the work in C. This, however, should be done with preserved respect for the MOP. Anyone who wants to do this should talk to me first. (Unfortunately, I can't do any work on GOOPS right now. Hopefully I'll be able to go over a few issues with GOOPS starting next summer.) M _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: New g-wrap supported in guile-gtk--rotty-0.1! 2003-12-04 14:14 ` Mikael Djurfeldt @ 2003-12-04 17:21 ` Andreas Rottmann 2003-12-04 22:33 ` Andreas Rottmann 1 sibling, 0 replies; 11+ messages in thread From: Andreas Rottmann @ 2003-12-04 17:21 UTC (permalink / raw) Cc: guile-user, guile-gtk-general Mikael Djurfeldt <mdj@mit.edu> writes: [ First of all: Thanks for the quick answer ] > Andreas Rottmann <a.rottmann@gmx.at> writes: > > > Yes, I also think that we *have* to get the "time-to-initial-window" > > at least under 1 second for a hello world program... > > GOOPS is, as yet, only optimized for fast execution. Creation of > objects and *especially* method creation involves a lot of work, most > of which is done by interpreted Scheme code. > > This is not an architectural problem, though, and it is certainly > possible to speed things up. > > An improvement of method addition on the algorithm level that could > help this particular case would be to allow for adding multiple > methods at once. Presently, every call to scm_add_method involves > re-computing the methods list of the GF which means that adding N > methods to a GF is O(N^2). > Ok, so we'd have a scm_add_methods() with this approach, I guess. I'll have a look into this. I definitly want to have fast bindings when Guile 1.8 comes out. > An improvement on the implementation level would be to do part (or > all) of the work in C. This, however, should be done with preserved > respect for the MOP. Anyone who wants to do this should talk to me > first. > Best would probably to go for algorithmic performance increase at the SCM level first and if that doesn't suffice, factor the critical parts out into C. > (Unfortunately, I can't do any work on GOOPS right now. Hopefully > I'll be able to go over a few issues with GOOPS starting next summer.) > I'll do a bit of code study in the next days/week, and come back to you when I have questions, if that's OK. Once I've wrapped my head around the code, I'll try to implement scm_add_methods() and see how much that gains us. -- Andreas Rottmann _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: New g-wrap supported in guile-gtk--rotty-0.1! 2003-12-04 14:14 ` Mikael Djurfeldt 2003-12-04 17:21 ` Andreas Rottmann @ 2003-12-04 22:33 ` Andreas Rottmann 2003-12-06 16:18 ` Andreas Rottmann 1 sibling, 1 reply; 11+ messages in thread From: Andreas Rottmann @ 2003-12-04 22:33 UTC (permalink / raw) Cc: guile-user, guile-gtk-general Mikael Djurfeldt <mdj@mit.edu> writes: >> Yes, I also think that we *have* to get the "time-to-initial-window" >> at least under 1 second for a hello world program... > > GOOPS is, as yet, only optimized for fast execution. Creation of > objects and *especially* method creation involves a lot of work, most > of which is done by interpreted Scheme code. > > This is not an architectural problem, though, and it is certainly > possible to speed things up. > > An improvement of method addition on the algorithm level that could > help this particular case would be to allow for adding multiple > methods at once. Presently, every call to scm_add_method involves > re-computing the methods list of the GF which means that adding N > methods to a GF is O(N^2). > Unfortunatly, I guess this will not help much. First, most generics in the binding have only one method. Second, I'm not exactly sure how to get complexity down: compute-new-methods currently checks each of current methods against a duplicate specialization. However, it may be save to assume that all methods passed to internal-add-methods! have different specializers, so I could at least add them if there are not any methods yet. > An improvement on the implementation level would be to do part (or > all) of the work in C. This, however, should be done with preserved > respect for the MOP. Anyone who wants to do this should talk to me > first. > Hmm, this would probably mean pulling internal-add-methods! and (part of) the functions it calls down to the C level. What exactly do I have to consider wrt MOP here? Andy -- Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62 Any technology not indistinguishable from magic is insufficiently advanced. -- Terry Pratchett _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: New g-wrap supported in guile-gtk--rotty-0.1! 2003-12-04 22:33 ` Andreas Rottmann @ 2003-12-06 16:18 ` Andreas Rottmann 0 siblings, 0 replies; 11+ messages in thread From: Andreas Rottmann @ 2003-12-06 16:18 UTC (permalink / raw) Andreas Rottmann <a.rottmann@gmx.at> writes: > Unfortunatly, I guess this will not help much. First, most generics in > the binding have only one method. Second, I'm not exactly sure how to > get complexity down: compute-new-methods currently checks each of > current methods against a duplicate specialization. However, it may be > save to assume that all methods passed to internal-add-methods! have > different specializers, so I could at least add them if there are not > any methods yet. > >> An improvement on the implementation level would be to do part (or >> all) of the work in C. This, however, should be done with preserved >> respect for the MOP. Anyone who wants to do this should talk to me >> first. >> > Hmm, this would probably mean pulling internal-add-methods! and (part > of) the functions it calls down to the C level. What exactly do I > have to consider wrt MOP here? > I now have a (seemingly) working version of internal-add-methods! in C. Strange enough, it does not yield in a performance increase over the scheme code. Maybe someone want's to review my code and point me at bottlenecks or other glitches? I got a significant speedup with a unrelated measure, however: I blocked GC during the registering of a wrapset (where all the method and GF creation takes place). This bought me a 20% increase of loading speed... Cheers, Andy -- Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at http://www.8ung.at/rotty | GnuPG Key: http://www.8ung.at/rotty/gpg.asc Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62 This reality is really just a fucked-up dream -- Papa Roach _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
[parent not found: <1074535797.1517.64.camel@localhost>]
* [GOOPS] Specializing <generic> to allow lazy method addition [not found] ` <1074535797.1517.64.camel@localhost> @ 2004-01-23 11:38 ` Andreas Rottmann 2004-01-27 15:17 ` Mikael Djurfeldt 0 siblings, 1 reply; 11+ messages in thread From: Andreas Rottmann @ 2004-01-23 11:38 UTC (permalink / raw) Andy Wingo <wingo@pobox.com> writes: > On Thu, 2003-12-04 at 02:25, Kevin Ryde wrote: >> I wonder if some lazy initializing would be possible, like catch a >> failed method dispatch and add only at that time. (But my ignorance >> of goops is pretty profound, so maybe it's not feasible.) > > This is really a direct response to Andreas' question a couple days ago, > which I have read but don't have on my laptop... > > I think I said something like make `add-method' cache methods, only > adding them when `no-method' is called. We can look at the GOOPS manual > (goops.info) to see what I mean. > > `Method Definition Internals' states that after ensuring the generic and > creating the method, that the method is added to the generic via the > generic `add-method!'. If the generics we create are actually subclasses > of <generic>, we can specify `add-method!' to just keep the method in a > holding pen of sorts. Which is to say, > > (define-class <guile-gnome-generic> (<generic>) > (temp-methods :init-value '())) > (define-method (add-method! (generic <guile-gnome-generic>) > (method <method>)) > ;; Note we don't call next-method > (slot-set! generic 'temp-methods > (cons method (slot-ref generic 'temp-methods)))) > I tried to play around with this a bit and it seems it is not viable ATM; I experienced the problem described already in [0] and [1]. It seems noone has answered why %invalidate-method cache insists on a pure generic (from goops.c, in scm_sys_invalidate_method_cache_x): SCM_ASSERT (SCM_PUREGENERICP (gf), gf, SCM_ARG1, FUNC_NAME); and what 'pure' generics are all about; FWICT, pureness is a flag set for all built-in generic classes. Would someone of GOOPS knowledge please be so kind to shed some light on this issue? [0] http://mail.gnu.org/archive/html/guile-user/2002-04/msg00197.html [1] http://mail.gnu.org/archive/html/guile-user/2003-07/msg00061.html Thanks, Andy -- Andreas Rottmann | Rotty@ICQ | 118634484@ICQ | a.rottmann@gmx.at http://yi.org/rotty | GnuPG Key: http://yi.org/rotty/gpg.asc Fingerprint | DFB4 4EB4 78A4 5EEE 6219 F228 F92F CFC5 01FD 5B62 Python is executable pseudocode, Perl is executable line-noise. _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [GOOPS] Specializing <generic> to allow lazy method addition 2004-01-23 11:38 ` [GOOPS] Specializing <generic> to allow lazy method addition Andreas Rottmann @ 2004-01-27 15:17 ` Mikael Djurfeldt 2004-01-27 23:27 ` Stephen Compall 2004-02-01 19:41 ` Guile warts (was: [GOOPS] Specializing <generic> to allow lazy method addition) Andy Wingo 0 siblings, 2 replies; 11+ messages in thread From: Mikael Djurfeldt @ 2004-01-27 15:17 UTC (permalink / raw) Cc: Guile Users, djurfeldt, guile-gtk-general Andreas Rottmann <a.rottmann@gmx.at> writes: >> (define-class <guile-gnome-generic> (<generic>) >> (temp-methods :init-value '())) >> (define-method (add-method! (generic <guile-gnome-generic>) >> (method <method>)) >> ;; Note we don't call next-method >> (slot-set! generic 'temp-methods >> (cons method (slot-ref generic 'temp-methods)))) >> > I tried to play around with this a bit and it seems it is not viable > ATM; I experienced the problem described already in [0] and [1]. It > seems noone has answered why %invalidate-method cache insists on a > pure generic (from goops.c, in scm_sys_invalidate_method_cache_x): > > SCM_ASSERT (SCM_PUREGENERICP (gf), gf, SCM_ARG1, FUNC_NAME); > > and what 'pure' generics are all about; FWICT, pureness is a flag set > for all built-in generic classes. Would someone of GOOPS knowledge > please be so kind to shed some light on this issue? The mechanism which allows you to subclass builtin classes like <generic> and specialize functions to them is called meta object protocols, or MOPs. While the MOP for <class> works, the MOP for <generic> isn't yet implemented. This is a shame and I've for very long had had the hope to find time to fix it. What we really quickly should do is to document this situation so that people know that they cannot yet subclass <generic>. The purity flag, which you ask about, marks that a class is "untouched" by the user so that the C runtime can count on specific slots existing and residing at specific locations within an object. The idea is that the runtime will look for specialized functions only if the class isn't pure. M _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [GOOPS] Specializing <generic> to allow lazy method addition 2004-01-27 15:17 ` Mikael Djurfeldt @ 2004-01-27 23:27 ` Stephen Compall 2004-01-28 2:14 ` Mikael Djurfeldt 2004-02-01 19:41 ` Guile warts (was: [GOOPS] Specializing <generic> to allow lazy method addition) Andy Wingo 1 sibling, 1 reply; 11+ messages in thread From: Stephen Compall @ 2004-01-27 23:27 UTC (permalink / raw) Cc: Andreas Rottmann, Guile Users, guile-gtk-general Mikael Djurfeldt <mdj@mit.edu> writes: > While the MOP for <class> works, the MOP for <generic> isn't yet > implemented. This is a shame and I've for very long had had the hope > to find time to fix it. What we really quickly should do is to > document this situation so that people know that they cannot yet > subclass <generic>. > > The purity flag, which you ask about, marks that a class is > "untouched" by the user so that the C runtime can count on specific > slots existing and residing at specific locations within an object. > > The idea is that the runtime will look for specialized functions only > if the class isn't pure. Please tell me if this is accurate: all the Scheme-level procedure calls in libguile eventually go through scm_apply in eval.c, which contains a switch-on-type for the various kinds of applicable objects. The case that calls `scm_apply_generic', the generic I added a method to in trying to make a callable class, first checks for one of the flags in the struct, which is why I get "wrong type to apply" anyway. I ask this because I am more interested in making objects of any class applicable. One case of this is my makefile processor, which essentially processes forms, and used to be in closure form (where you applied the `object' to each form). -- Stephen Compall or s11 or sirian The Tao doesn't take sides; it gives birth to both wins and losses. The Guru doesn't take sides; she welcomes both hackers and lusers. The Tao is like a stack: the data changes but not the structure. the more you use it, the deeper it becomes; the more you talk of it, the less you understand. Hold on to the root. JSOFC3IP number key monarchist SWAT ARPA credit card gamma ASIO quarter S Key Watergate assassinate lock picking colonel MD2 _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [GOOPS] Specializing <generic> to allow lazy method addition 2004-01-27 23:27 ` Stephen Compall @ 2004-01-28 2:14 ` Mikael Djurfeldt 0 siblings, 0 replies; 11+ messages in thread From: Mikael Djurfeldt @ 2004-01-28 2:14 UTC (permalink / raw) Cc: Guile Users, djurfeldt, Andreas Rottmann, guile-gtk-general Stephen Compall <s11@member.fsf.org> writes: > Mikael Djurfeldt <mdj@mit.edu> writes: > >> While the MOP for <class> works, the MOP for <generic> isn't yet >> implemented. This is a shame and I've for very long had had the hope >> to find time to fix it. What we really quickly should do is to >> document this situation so that people know that they cannot yet >> subclass <generic>. >> >> The purity flag, which you ask about, marks that a class is >> "untouched" by the user so that the C runtime can count on specific >> slots existing and residing at specific locations within an object. >> >> The idea is that the runtime will look for specialized functions only >> if the class isn't pure. > > Please tell me if this is accurate: all the Scheme-level procedure > calls in libguile eventually go through scm_apply in eval.c, which > contains a switch-on-type for the various kinds of applicable > objects. (There is dispatch on type also within the evaluator (scm_ceval).) > The case that calls `scm_apply_generic', the generic I added a method > to in trying to make a callable class, first checks for one of the > flags in the struct, which is why I get "wrong type to apply" anyway. This is correct. > I ask this because I am more interested in making objects of any class > applicable. One case of this is my makefile processor, which > essentially processes forms, and used to be in closure form (where you > applied the `object' to each form). The correct way to make an applicable object is (sorry---couldn't think of a better example): (define (incrementor-function o x) (+ x (increment o))) (define-class <incrementor> () (increment #:init-value 1 #:init-keyword #:increment) #;metaclass <operator-class> #:procedure incrementor-function) (define x (make <incrementor> #:increment 2)) (x 1) --> 3 (set! (increment x) 3) (x 1) --> 4 Here all objects of class <incrementor> behave the same. You can also subclass <entity> where every object has individual behavior. These also come in variants which have setters, in which case you can give a meaning to expresions like: (set! (x ...) ...) M _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://mail.gnu.org/mailman/listinfo/guile-user ^ permalink raw reply [flat|nested] 11+ messages in thread
* Guile warts (was: [GOOPS] Specializing <generic> to allow lazy method addition) 2004-01-27 15:17 ` Mikael Djurfeldt 2004-01-27 23:27 ` Stephen Compall @ 2004-02-01 19:41 ` Andy Wingo 2004-02-05 19:03 ` Guile warts Mikael Djurfeldt 1 sibling, 1 reply; 11+ messages in thread From: Andy Wingo @ 2004-02-01 19:41 UTC (permalink / raw) Cc: guile-devel [cc'ing to devel for the bug list -- please reply to -devel] On Tue, 2004-01-27 at 17:17, Mikael Djurfeldt wrote: > While the MOP for <class> works, the MOP for <generic> isn't yet > implemented. I might poke around with this, we'll see. But I reply for a different reason: <class>, in (guile-user), is not the same as <class> in (oop goops). guile> (use-modules (oop goops)) guile> <class> $2 = #<struct 805c4d0:805c4d0> guile> (module-ref (resolve-module '(oop goops)) '<class>) $3 = #<<class> <class> 80863b0> guile> (is-a? <class> <class>) $4 = #f There are some warts that I see with guile 1.6, that I don't think are fixed yet. I'm making this list to see if there are any objections to it. Some of these I might get to patching and perhaps others are inspired to fix some. * The <class> issue Can be solved by exporting <class> from (oop goops) ? * The default namespace is a mess The problem lies mostly in the fact that bindings used by internal routines from boot-9.scm are exported, by default, to (guile-user). The solution is difficult to see. As evidence to the problem, do you really think that routines like `make-root-module' should be exported to the normal namespace? Really though. Press TAB at the guile command prompt, it's ridiculous. ** There are undocumented reserved words, like `app' and `repl' These really really need to go, somehow. But again, the byzantine nature of the module system makes it difficult to see the answer. At the very least, these words (and perhaps others, and if we don't actually do anything all of boot-9.scm) must be documented. Why can't I have a module called (gnome gtk repl)? ** Some things in the default namespace should really be in modules of their own POSIX, for instance, should be in (os posix) or something. inet-*. All the environment functions. module-*. ... I speak as a hacker on guile-gnome, which can output a holy shitload of bindings. Every existing binding is important. When I load up gstreamer and gtk+, I get the following conflicts: .append .delete .hash .load .merge .seek .write .close .error .id .map .raise .select .yield Some of them need to keep their vanilla meanings, like map, write, delete, load, and append. Maybe yield. But the others should come from (os posix). And the irritating thing is that (define-method ...) just overshadows the bindings on these ones, doesn't create the primitive-generic. I don't want to sound negative. I'm so much happier programming in guile scheme than in any other language I've tried. But I do want feedback from the devs: are these complaints valid, and is there anyone who is working on them? The boot-9 problems are prolly the worst and most difficult. Thanks for reading :-) -- Andy Wingo <wingo@pobox.com> _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Guile warts 2004-02-01 19:41 ` Guile warts (was: [GOOPS] Specializing <generic> to allow lazy method addition) Andy Wingo @ 2004-02-05 19:03 ` Mikael Djurfeldt 0 siblings, 0 replies; 11+ messages in thread From: Mikael Djurfeldt @ 2004-02-05 19:03 UTC (permalink / raw) Cc: Guile Users, djurfeldt, guile-devel Andy Wingo <wingo@pobox.com> writes: > I don't want to sound negative. I'm so much happier programming in guile > scheme than in any other language I've tried. But I do want feedback > from the devs: are these complaints valid, and is there anyone who is > working on them? The boot-9 problems are prolly the worst and most > difficult. Although I don't have time for Guile development work right now, I think I can speak for the other developers when saying that your points are very valid. Regarding the name space, this is something which should have been done long ago. If you want a workaround, note that you can construct a module with hand-picked bindings: (define-module (pure-r5rs) :pure :use-module (ice-9 r5rs)) Also lookup :select in the Guile NEWS file. M _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2004-02-05 19:03 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <87smkc5b22.fsf@alice.rotty.yi.org> [not found] ` <874qwhsa2u.fsf@zip.com.au> 2003-12-04 9:02 ` New g-wrap supported in guile-gtk--rotty-0.1! Andreas Rottmann 2003-12-04 14:14 ` Mikael Djurfeldt 2003-12-04 17:21 ` Andreas Rottmann 2003-12-04 22:33 ` Andreas Rottmann 2003-12-06 16:18 ` Andreas Rottmann [not found] ` <1074535797.1517.64.camel@localhost> 2004-01-23 11:38 ` [GOOPS] Specializing <generic> to allow lazy method addition Andreas Rottmann 2004-01-27 15:17 ` Mikael Djurfeldt 2004-01-27 23:27 ` Stephen Compall 2004-01-28 2:14 ` Mikael Djurfeldt 2004-02-01 19:41 ` Guile warts (was: [GOOPS] Specializing <generic> to allow lazy method addition) Andy Wingo 2004-02-05 19:03 ` Guile warts Mikael Djurfeldt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).