From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: The progress of hacking guile and prolog Date: Fri, 26 Nov 2010 11:45:02 +0100 Message-ID: References: <201010212223.23822.stefan.itampe@gmail.com> <87bp66q8g5.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1290768072 23752 80.91.229.12 (26 Nov 2010 10:41:12 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 26 Nov 2010 10:41:12 +0000 (UTC) Cc: guile-devel@gnu.org To: Noah Lavine Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Nov 26 11:41:06 2010 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PLvji-00041B-0s for guile-devel@m.gmane.org; Fri, 26 Nov 2010 11:41:02 +0100 Original-Received: from localhost ([127.0.0.1]:52412 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PLvjh-0004AW-8Z for guile-devel@m.gmane.org; Fri, 26 Nov 2010 05:41:01 -0500 Original-Received: from [140.186.70.92] (port=34890 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PLvje-0004AR-40 for guile-devel@gnu.org; Fri, 26 Nov 2010 05:40:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PLvjc-0002lA-Vl for guile-devel@gnu.org; Fri, 26 Nov 2010 05:40:58 -0500 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:59841 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PLvjc-0002kw-S6 for guile-devel@gnu.org; Fri, 26 Nov 2010 05:40:56 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id E3A0A2F1B; Fri, 26 Nov 2010 05:41:11 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=JgJzDJSQAYgOf6vVqhJN23WKJJc=; b=Adb/kG QAc4Tg4dY0uQkbEsJqpoH2Z5phUdxNw4KdLun5MkXXDNHuzvfgHo6zxKsdCV30wY FUsrM5oQkmy/h8kvHYjKQ5kuwETAQk6XSBS1Cz3d0JSf0ghh8yzEn/zV+/cRjSWS ph/Ieo8HNHLaXwx99+2NB9oMPx3kPUSl8Gcmw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=P8qakVpCqXm5N1dBOsTfF1gAM3IFFG+w c9/cvZQwY7v5MfWOZMVxYvDRFOrJVWYWiRC1fEJYrL46MruxTKZM+3gvl/c0C7R3 66aF9IuHBK2GoKzCXsPuly26X2AY6pPQqLGRdv3QftgwLOEhO5tp8ovr1wOCFzk1 tquBB9wqv/w= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id D01E32F1A; Fri, 26 Nov 2010 05:41:10 -0500 (EST) Original-Received: from unquote.localdomain (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 12E102F13; Fri, 26 Nov 2010 05:41:08 -0500 (EST) In-Reply-To: (Noah Lavine's message of "Tue, 23 Nov 2010 20:54:37 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: AEFCADB4-F949-11DF-A406-DF8536391E49-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11204 Archived-At: Hi Noah, On Wed 24 Nov 2010 02:54, Noah Lavine writes: > What I'm thinking of is like racket contracts, but with the idea of > "trusted modules", which might involve static checking. Yeah, definitely. Like the interface between typed and untyped code in racket, also. I don't know very much about the relationship between types and contracts, though. > I'm curious in general though whether it would be possible and > worthwhile to statically check programmer-defined ideas, as long as > the interface is easy enough to use. For instance, what if you could > ask Guile to check that your tree structure always remained a binary > tree? Or better, what if you wrote a GUI program and checked that the > callbacks you passed to the GUI library would always return? (I know > it's not possible in general, but I think it will work for a subset of > procedures that will include some interesting ones.) It's certainly interesting! As I understand things (which is not very far), Racket allows for this via other "languages". Guile could do that too. We might need some more generic support for this kind of thing in the compiler infrastructure or in tree-il or whatever, but I would like to make it possible to experiment with these linguistic ideas, with the kind of isolation provided by modules. Cheers, Andy -- http://wingolog.org/