From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Israelsson Tampe Newsgroups: gmane.lisp.guile.devel Subject: Re: Programming racket like in guile Date: Sat, 23 Feb 2013 17:28:34 +0100 Message-ID: <3014872.gsymz6pLlL@warperdoze> References: <1787022.v0icS3ncxM@warperdoze> <87sj4nahfs.fsf@Kagami.home> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit X-Trace: ger.gmane.org 1361637338 1459 80.91.229.3 (23 Feb 2013 16:35:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 23 Feb 2013 16:35:38 +0000 (UTC) Cc: Ian Price To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Feb 23 17:36:01 2013 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1U9I4t-00015I-VI for guile-devel@m.gmane.org; Sat, 23 Feb 2013 17:36:00 +0100 Original-Received: from localhost ([::1]:34474 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9I4Z-0005QL-Fe for guile-devel@m.gmane.org; Sat, 23 Feb 2013 11:35:39 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59571) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9I4Q-0005QE-9q for guile-devel@gnu.org; Sat, 23 Feb 2013 11:35:37 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U9I4K-00038x-JD for guile-devel@gnu.org; Sat, 23 Feb 2013 11:35:30 -0500 Original-Received: from mail-lb0-f176.google.com ([209.85.217.176]:56335) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U9I4K-00038n-Ak for guile-devel@gnu.org; Sat, 23 Feb 2013 11:35:24 -0500 Original-Received: by mail-lb0-f176.google.com with SMTP id s4so1252169lbc.7 for ; Sat, 23 Feb 2013 08:35:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:cc:subject:date:message-id:user-agent :in-reply-to:references:mime-version:content-transfer-encoding :content-type; bh=ZM9nFINO8gdXwrmG905Z7gTkVvLiBi3HV1QG6kwdv7I=; b=psGkj0TVoNKUEVaXbnCixgVwNCdXMN/svOhPCNcZ/HxsBihI4Had62OzE8A+m8Hmyb 2duIW/yIdMwcAam6r40V+E/2GPOl6jYtXc+2pqphFVOpCLUq3WlfeUqin78TVZVkbQWG elkllwfx5Ks9WHxKi9eQmMQuxvO1qrlKvf4BSUS7t5nZM2tVHvQYHGqtI3CmZiFJhPmF UocNLZnztASYxANjEsXTH97Rr0II8AdtC24LubkMxzvoWmBD/VusEkK0oHxQ/HBfABAv PkteqKvxdOEignaE24zyB9ohKcJgOOqkFxAqNdbZ+Zo3XyL4ZArl0hBSsG0yJHablXTV GZCA== X-Received: by 10.152.132.138 with SMTP id ou10mr5001620lab.56.1361636918140; Sat, 23 Feb 2013 08:28:38 -0800 (PST) Original-Received: from warperdoze.localnet (1-1-1-39a.veo.vs.bostream.se. [82.182.254.46]) by mx.google.com with ESMTPS id ng6sm3357642lab.2.2013.02.23.08.28.36 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 23 Feb 2013 08:28:37 -0800 (PST) User-Agent: KMail/4.9.4 (Linux/3.5.0-24-generic; KDE/4.9.4; x86_64; ; ) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.217.176 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 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 Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:15816 Archived-At: Let me illustrate the problem. Consider macro syntax-parse written in (language racket). My view is that the sourcecode for that code should just have been copied from the racket sources in order to keep the code maintainable. Could we use that macro from whithin a guile scheme program? sometimes but for this example the syntax-parse macro uses so many features in racket syntax expander that you simply cannot use it without copying the racket macro framework. So you have racket macros and you have guile macros and they do not compose. But we would like to be able to use syntax-parse in guile scheme. Hence we must port over the code, and I can tell you that porting syntax-parse is not trivial. Should we mix guile syntax parse and racket syntax parse in the same namespace. It is the same store when it comes to porting over common lisp ideoms. If you would like to port cl's loop macro to guile you cannot use the sources. The reason is that cl uses tagbody and tagbody is not supported in tree-il. So you write a separate port in scheme with syntax-parse and friends and use that. On the other hand I had a though of extending tree-il with a tagbody form and use that as a separate language, again macros would not compose and the same issue will appear. Say that we manage to unify the macrology, no problem, then we can just use re-export. Hope this show some light on the problem /Stefan