From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.user Subject: Re: guile-lib things Date: Thu, 08 Jul 2004 20:01:17 +0100 Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Message-ID: <1089313277.19378.60.camel@localhost> References: <1088100238.1855.207.camel@localhost> <87isdfpjzy.fsf@trouble.defaultvalue.org> <20040627214307.GT3998@backlot.linas.org> <1088531031.1484.94.camel@localhost> <873c4csn5t.fsf@trouble.defaultvalue.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_fridge-2333-1089386408-0001-2" X-Trace: sea.gmane.org 1089386453 20324 80.91.224.253 (9 Jul 2004 15:20:53 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 9 Jul 2004 15:20:53 +0000 (UTC) Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Fri Jul 09 17:20:26 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1BixAn-0004Eu-00 for ; Fri, 09 Jul 2004 17:20:25 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BixCy-0001Oj-0u for guile-user@m.gmane.org; Fri, 09 Jul 2004 11:22:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1BixCu-0001OH-SC for guile-user@gnu.org; Fri, 09 Jul 2004 11:22:36 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1BixCt-0001Nl-UJ for guile-user@gnu.org; Fri, 09 Jul 2004 11:22:36 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1BixCt-0001Ni-Sv for guile-user@gnu.org; Fri, 09 Jul 2004 11:22:35 -0400 Original-Received: from [216.166.232.203] (helo=johnson-resources.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1BixAW-0004SR-K7 for guile-user@gnu.org; Fri, 09 Jul 2004 11:20:08 -0400 Original-Received: from localhost (mantis.schoolnet.na [::ffff:196.44.140.238]) (AUTH: LOGIN wingo) by johnson-resources.com with esmtp; Fri, 09 Jul 2004 11:20:01 -0400 Original-Received: from wingo by localhost with local (Exim 3.36 #1 (Debian)) id 1Bie99-0000Vn-00 for ; Thu, 08 Jul 2004 20:01:27 +0100 Original-To: Guile Users In-Reply-To: <873c4csn5t.fsf@trouble.defaultvalue.org> X-Mailer: Ximian Evolution 1.5.7 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.user:3321 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.user:3321 This is a MIME-formatted message. If you see this text it means that your E-mail software does not support MIME-formatted messages. --=_fridge-2333-1089386408-0001-2 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit Hey Rob, On Wed, 2004-06-30 at 17:20 -0500, Rob Browning wrote: > For what it's worth, one part that I snipped from my earlier message > (just to make it more concise) basically agress with you here. That's cool. It's good to see we have a consensus about something :-) > more concretely, say (slib format), (slib uri), and (slib posix-time), > if slib were represented directly as guile modules. This is interesting! I think I know how it could be done, too. Set a custom module binder proc to (slib). Since submodules are (stupidly!) bound to symbols within the parent module, we could catch undefined symbols, and then require the lib. Bling. The tricky thing would be to make sure that the interface of the modules doesn't also exhibit this behavior. Oh this is interesting indeed. I hacked up a prototype, and attached it. First you have to use (slib), which sets up the lazy binder. Then when you use (slib foo), it tries to require the foo. It's very much tied to guile's module implementation, which is pretty evil, but it does work: (use-modules ((slib) (slib stdio))) (printf "%s" "Hello world!") =| Hello world! -- Andy Wingo http://ambient.2y.net/wingo/ --=_fridge-2333-1089386408-0001-2 Content-Type: text/x-scheme; charset=iso-8859-1 Content-Transfer-Encoding: base64 Content-Description: Content-Disposition: inline; filename=slib.scm KGRlZmluZS1tb2R1bGUgKHNsaWIpKQ0KDQooZGVmaW5lIHNsaWItbW9kdWxlIChjdXJyZW50LW1v ZHVsZSkpDQoNCjs7IFRoZSBpc3N1ZTogdGhlIGJpbmRlciBwcm9jIGNhbid0IHJlZmVyZW5jZSBh bnkgdmFyaWFibGVzIHRoYXQgYXJlbid0DQo7OyBsb2NhbCB0byB0aGlzIG1vZHVsZSwgZHVlIHRv IHRoZSBsb29rdXAgb3JkZXIgaW4gbW9kdWxlX3ZhcmlhYmxlIGluDQo7OyBtb2R1bGVzLmMuIFNv IHdlIHB1dCB0aGUgYmluZGVyIGluIGl0cyBvd24gbW9kdWxlLg0KDQooZGVmaW5lLW1vZHVsZSAo c2xpYiAlYmluZGVyLW1vZHVsZSkNCiAgIzp1c2UtbW9kdWxlIChpY2UtOSBzbGliKSkNCg0KKGRl ZmluZSAoYmluZGVyIG1vZHVsZSBzeW0gZGVmaW5lPykNCiAgKHBrIHN5bSkNCiAgKGFuZCAobm90 IChlcT8gc3ltICclbW9kdWxlLXB1YmxpYy1pbnRlcmZhY2UpKQ0KICAgICAgIChsZXQgKChuZXct bW9kIChtYWtlLW1vZHVsZSAzMSkpKQ0KICAgICAgICAgKHNldC1tb2R1bGUta2luZCEgbmV3LW1v ZCAnZGlyZWN0b3J5KQ0KICAgICAgICAgKHNldC1tb2R1bGUtbmFtZSEgbmV3LW1vZCBgKHNsaWIg LHN5bSkpDQogICAgICAgICAoYmVhdXRpZnktdXNlci1tb2R1bGUhIG5ldy1tb2QpDQogICAgICAg ICAobW9kdWxlLXVzZSEgbmV3LW1vZCAocmVzb2x2ZS1pbnRlcmZhY2UgJyhpY2UtOSBzbGliKSkp DQogICAgICAgICAoYW5kDQogICAgICAgICAgKGZhbHNlLWlmLWV4Y2VwdGlvbg0KICAgICAgICAg ICAobGV0ICgob2xkLW1vZHVsZSAjZikpDQogICAgICAgICAgICAgKGR5bmFtaWMtd2luZA0KICAg ICAgICAgICAgICAgICAobGFtYmRhICgpIChzZXQhIG9sZC1tb2R1bGUgKHNldC1jdXJyZW50LW1v ZHVsZSBuZXctbW9kKSkpDQogICAgICAgICAgICAgICAgIChsYW1iZGEgKCkgKHJlcXVpcmUgc3lt KSAjdCkNCiAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKSAoc2V0LWN1cnJlbnQtbW9kdWxlIG9s ZC1tb2R1bGUpKSkpKQ0KICAgICAgICAgIChiZWdpbg0KICAgICAgICAgICAgKG1vZHVsZS11c2Uh IChtb2R1bGUtcHVibGljLWludGVyZmFjZSBuZXctbW9kKSBuZXctbW9kKQ0KICAgICAgICAgICAg KG1ha2UtdmFyaWFibGUgbmV3LW1vZCkpKSkpKQ0KDQooZGVmaW5lLW1vZHVsZSAoc2xpYikpDQoN CihzZXQtbW9kdWxlLWJpbmRlciEgc2xpYi1tb2R1bGUNCiAgICAgICAgICAgICAgICAgICAgKG1v ZHVsZS1yZWYgKHJlc29sdmUtbW9kdWxlICcoc2xpYiAlYmluZGVyLW1vZHVsZSkpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdiaW5kZXIpKQ0K --=_fridge-2333-1089386408-0001-2 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Guile-user mailing list Guile-user@gnu.org http://lists.gnu.org/mailman/listinfo/guile-user --=_fridge-2333-1089386408-0001-2--