unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Stefan Israelsson Tampe <stefan.itampe@gmail.com>
To: guile-devel@gnu.org
Cc: Ian Price <ianprice90@googlemail.com>
Subject: Re: Programming racket like in guile
Date: Sat, 23 Feb 2013 17:28:34 +0100	[thread overview]
Message-ID: <3014872.gsymz6pLlL@warperdoze> (raw)
In-Reply-To: <CA+U71=MScTvqiqqhUyQZERaGv+qVX7q-iU8JeoFZQQAHqYy5MA@mail.gmail.com>

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




  reply	other threads:[~2013-02-23 16:28 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-21 20:59 Programming racket like in guile stefan.itampe
2013-02-22 15:56 ` Ludovic Courtès
2013-02-22 19:04   ` stefan.itampe
2013-02-24 21:07     ` Ludovic Courtès
2013-02-24 21:47       ` Stefan Israelsson Tampe
2013-02-23  0:54 ` Daniel Hartwig
2013-02-23  2:32   ` Ian Price
2013-02-23 15:39     ` Noah Lavine
2013-02-23 16:28       ` Stefan Israelsson Tampe [this message]
2013-02-23 12:44   ` Stefan Israelsson Tampe
2013-02-23 15:36     ` Noah Lavine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3014872.gsymz6pLlL@warperdoze \
    --to=stefan.itampe@gmail.com \
    --cc=guile-devel@gnu.org \
    --cc=ianprice90@googlemail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).