From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Jerram Newsgroups: gmane.lisp.guile.user Subject: Re: Need help to understand a macro Date: Tue, 23 Mar 2010 00:50:47 +0000 Message-ID: <874ok7lv2w.fsf@ossau.uklinux.net> References: <20100319085701.GA31143@raven.wolf.lan> <20100322195025.GC31143@raven.wolf.lan> <20100322210149.GF31143@raven.wolf.lan> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1269305516 4917 80.91.229.12 (23 Mar 2010 00:51:56 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 23 Mar 2010 00:51:56 +0000 (UTC) Cc: guile-user@gnu.org To: Josef Wolf Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Mar 23 01:51:45 2010 Return-path: Envelope-to: guile-user@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 1NtsLM-0007bR-U1 for guile-user@m.gmane.org; Tue, 23 Mar 2010 01:51:41 +0100 Original-Received: from localhost ([127.0.0.1]:42023 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NtsLM-0005fG-Eh for guile-user@m.gmane.org; Mon, 22 Mar 2010 20:51:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NtsKp-0005bC-Tt for guile-user@gnu.org; Mon, 22 Mar 2010 20:51:07 -0400 Original-Received: from [140.186.70.92] (port=47062 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NtsKo-0005b3-EX for guile-user@gnu.org; Mon, 22 Mar 2010 20:51:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NtsKm-0004wX-P8 for guile-user@gnu.org; Mon, 22 Mar 2010 20:51:06 -0400 Original-Received: from mail3.uklinux.net ([80.84.72.33]:44190) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NtsKm-0004wR-Hx for guile-user@gnu.org; Mon, 22 Mar 2010 20:51:04 -0400 Original-Received: from arudy (host86-182-154-126.range86-182.btcentralplus.com [86.182.154.126]) by mail3.uklinux.net (Postfix) with ESMTP id 6145D1F664F; Tue, 23 Mar 2010 00:51:03 +0000 (GMT) Original-Received: from arudy (arudy [127.0.0.1]) by arudy (Postfix) with ESMTP id D1B8838026; Tue, 23 Mar 2010 00:50:47 +0000 (GMT) In-Reply-To: <20100322210149.GF31143@raven.wolf.lan> (Josef Wolf's message of "Mon, 22 Mar 2010 22:01:49 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 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: , Original-Sender: guile-user-bounces+guile-user=m.gmane.org@gnu.org Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.user:7719 Archived-At: Josef Wolf writes: > BTW: While we're at the docs, what I find confusing about guile documentation > is that it talks extensively about the C bindings, but has not much to say > about the language itself and how guile differs from the standard (extensions, > limitations). But maybe I've just not got the big picture yet... I have some changes pending that may help a bit with that. For the standards that Guile follows, I think it's pretty faithful, so there isn't much to say about limitations. So that just leaves saying what those standards are, and extensions. For the former, one of my pending changes for the 2.0 manual has this: =================== Guile implements Scheme as described in the Report on the Algorithmic Language Scheme (usually known as @acronym{R5RS}), providing clean and general data and control structures. Guile goes beyond the rather austere language presented in @acronym{R5RS}, extending it with a module system, full access to @acronym{POSIX} system calls, networking support, multiple threads, dynamic linking, a foreign function call interface, powerful string processing, and many other features needed for programming in the real world. The Scheme community has recently agreed and published R6RS, the latest installment in the RnRS series. R6RS significantly expands the core Scheme language, and standardises many non-core functions that implementations -- including Guile -- have previously done in different ways. Guile has been updated to incorporate some of the features of R6RS, and to adjust some existing features to conform to the R6RS specification, but it is by no means a complete R6RS implementation. Between R5RS and R6RS, the SRFI process (@url{http://srfi.schemers.org/}) standardised interfaces for many practical needs, such as multithreading programming and multidimensional arrays. Guile supports many SRFIs, as documented in detail in @ref{SRFI Support}. In summary, so far as relationship to the Scheme standards is concerned, Guile is an R5RS implementation with many extensions, some of which conform to SRFIs or to the relevant parts of R6RS. =================== As far as extensions are concerned, I think it is very likely that the manual isn't always clear about what things are standardized and what are extensions. But I'm not sure what to do about it - do you have a suggestion? Also, how much does it matter in practice? Regards, Neil