From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel,gmane.lisp.guile.user Subject: Guile warts (was: [GOOPS] Specializing to allow lazy method addition) Date: Sun, 01 Feb 2004 21:41:39 +0200 Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <1075664499.3688.125.camel@localhost> References: <87smkc5b22.fsf@alice.rotty.yi.org> <874qwhsa2u.fsf@zip.com.au> <1074535797.1517.64.camel@localhost> <87fze6x5bu.fsf_-_@alice.rotty.yi.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1075987750 5939 80.91.224.253 (5 Feb 2004 13:29:10 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 5 Feb 2004 13:29:10 +0000 (UTC) Cc: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Feb 05 14:29:04 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AojZ1-0005Ag-00 for ; Thu, 05 Feb 2004 14:29:03 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AojUG-0007hF-Sr for guile-devel@m.gmane.org; Thu, 05 Feb 2004 08:24:08 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1AojTP-0007cW-SU for guile-devel@gnu.org; Thu, 05 Feb 2004 08:23:15 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AojSq-0007XL-5K for guile-devel@gnu.org; Thu, 05 Feb 2004 08:23:11 -0500 Original-Received: from [216.166.232.203] (helo=ambient.2y.net) by monty-python.gnu.org with esmtp (SSLv2:DES-CBC3-MD5:168) (Exim 4.24) id 1AojRa-0007ME-1P for guile-devel@gnu.org; Thu, 05 Feb 2004 08:21:22 -0500 Original-Received: from localhost (softdnserr [::ffff:196.44.143.223]) (AUTH: LOGIN wingo) by ambient.2y.net with esmtp; Thu, 05 Feb 2004 08:21:09 -0500 Original-Received: from wingo by localhost with local (Exim 3.36 #1 (Debian)) id 1AnNTa-000159-00; Sun, 01 Feb 2004 21:41:50 +0200 Original-To: Guile Users In-Reply-To: X-Mailer: Ximian Evolution 1.4.4 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.devel:3343 gmane.lisp.guile.user:2760 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:3343 [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 works, the MOP for isn't yet > implemented. I might poke around with this, we'll see. But I reply for a different reason: , in (guile-user), is not the same as in (oop goops). guile> (use-modules (oop goops)) guile> $2 = # guile> (module-ref (resolve-module '(oop goops)) ') $3 = #< 80863b0> guile> (is-a? ) $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 issue Can be solved by exporting 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 _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel