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: unified field theory! Date: Sun, 23 May 2010 23:12:35 +0200 Message-ID: References: <201005231652.42280.stefan.tampe@spray.se> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1274649109 18651 80.91.229.12 (23 May 2010 21:11:49 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 23 May 2010 21:11:49 +0000 (UTC) Cc: guile-devel@gnu.org To: stefan Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sun May 23 23:11:48 2010 connect(): No such file or directory 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 1OGISV-00031S-Dr for guile-devel@m.gmane.org; Sun, 23 May 2010 23:11:43 +0200 Original-Received: from localhost ([127.0.0.1]:43717 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGISU-0003gT-OH for guile-devel@m.gmane.org; Sun, 23 May 2010 17:11:42 -0400 Original-Received: from [140.186.70.92] (port=57403 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OGISR-0003gO-2b for guile-devel@gnu.org; Sun, 23 May 2010 17:11:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OGISP-0003BB-Hf for guile-devel@gnu.org; Sun, 23 May 2010 17:11:38 -0400 Original-Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:46509 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OGISP-00035M-EN for guile-devel@gnu.org; Sun, 23 May 2010 17:11:37 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 1AA81B5730; Sun, 23 May 2010 17:10:56 -0400 (EDT) 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=kJEbTxMdu6Wpz7RBa3nXgcOwmAM=; b=Uj0VMS XlA21tG9JEGxRMA4UtrvXGmniHX5sSd6t7XvMZr5GZlcvdsqranPLbgQFk1zxlPE DtbAIKZI5SSg2oa7TiJtAxMBI1TL6hH9UisQy1GccPB4IXmrmdWgwBSsQ9UiKbVc XqdD0U4lXZLaS8xsWtkEXhQWa/E+ozDGgUv9I= 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=Wvt4+gIKTCKpj/dETQqvhPh2tz/NvHEy 7ACZNEPZq/NRqG9suGH6KikWuzAJQVl5+rwFf5F+eMmdKPtJLOYyfLhwbHnsHk2I VOKfaCsGvpugKluZjEtquc8eMG0MbvqZL0uETQnJhpMdRRJsqpdX7pNHyf2e2lCz QycKITYuxyY= Original-Received: from a-pb-sasl-quonix. (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id DB49AB572D; Sun, 23 May 2010 17:10:54 -0400 (EDT) Original-Received: from unquote (unknown [81.38.179.115]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 094B7B5729; Sun, 23 May 2010 17:10:52 -0400 (EDT) In-Reply-To: <201005231652.42280.stefan.tampe@spray.se> (stefan's message of "Sun, 23 May 2010 16:52:42 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) X-Pobox-Relay-ID: ACCAE8D0-66AF-11DF-984A-D033EE7EF46B-02397024!a-pb-sasl-quonix.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:10358 Archived-At: Hi Stefan, On Sun 23 May 2010 16:52, stefan writes: > I did introduce prompts to the example unify code, and the comparison > resulted in > no-prompt : 37ms > gp-prompt : 35ms > guile-prompts : 49ms > > I think using guile prompts are acceptable here. But they are on the expensive > side, especially in the light that unwinding should not put a significan > mark on the timings. Good news that it's OK, and agreed that it's on the expensive side; but this may be fixed in Guile. (For example, we could (and probably should) maintain the dynamic context as a proper stack rather than a consed list. This has the same performance tradeoffs that heap frames versus stack frames have, regarding continuations; but the advantages to the normal case are more important. In addition some prompts and aborts may be reduced to normal control flow at compile time. This is a parenthetical note, due to the tangential relevance to your code.) > II) > unify variables and fluid variables are close in nature. So it would be cool > to understand the difference better. i will dive in on that. Interesting question. Please let us know of your results. > III) > One cool thing is to abstract out matchers. As a result you get a little tool > to create top down parsers. here we go, consider > > (udef (((? integer? X) . L) (cons X L) > (L (cons #f L)))) > > A matcher for an integer! All of this is very stimulating! Perhaps even more so for someone as ignorant as myself, as I have more to learn. It does seem that you are nearing a point where your code can be generally useful. What do you think about starting a project on savannah or gitorious, and tracking your code in git, together with these test cases? If you are not familiar with the process, we can help you out. It would be interesting to follow your hackings. Cheers, Andy -- http://wingolog.org/