all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Peter Keller <psilord@cs.wisc.edu>
To: help-gnu-emacs@gnu.org
Subject: Re: What is the best way to navigate #ifdef and #endif in C program
Date: Wed, 4 Aug 2010 15:09:05 +0000 (UTC)	[thread overview]
Message-ID: <i3bvqg$857$1@news.eternal-september.org> (raw)
In-Reply-To: ec393a0c-91ad-4f23-9088-362140b6ccd5@x21g2000yqa.googlegroups.com

In comp.lang.lisp Elena <egarrulo@gmail.com> wrote:
> On Aug 4, 10:27?am, p...@informatimago.com (Pascal J. Bourguignon)
> wrote:
>> This is the reason why there is no point asking whether there is a
>> feature X in CL. ?You can always add any feature to the language,
>> thanks to its macros or reader macros, and metalinguistic abilities in
>> general.
> 
> Can macros really add features or can they just add syntactic sugar? A
> custom "case" statement is just syntactic sugar, tail call
> optimization is a feature.

This book:

http://letoverlambda.com/index.cl/toc

Specifically:
http://letoverlambda.com/index.cl/guest/chap5.html#sec_4

Would show you how to write a macro such that it adds Scheme's tail call
optimized "named let" into Common Lisp.  This goes beyond the concept
of syntactic sugar and enters the domain of pure code transformation.

So yes, you can add features.

However, I don't know if you can add "any" feature to CL. :)

For example, could I add the ability for a function to introspect
into its own display and see an annotated mapping of the machine
registers in context? Or could I ask a piece of memory how many times
it has been moved in a generational garbage collector and where was
its last physical location?

Of course, I could add these things, but not with CL as it exists
today since there is no means to get that information outside of
implementation specific APIs which extend the meaning and domain of CL.

Later,
-pete




  parent reply	other threads:[~2010-08-04 15:09 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-03  0:31 What is the best way to navigate #ifdef and #endif in C program Daniel (Youngwhan)
2010-08-04  4:45 ` [OT] " Fren Zeee
2010-08-04 10:27   ` Pascal J. Bourguignon
2010-08-04 10:38     ` Alessio Stalla
2010-08-04 11:57       ` Pascal J. Bourguignon
2010-08-04 14:37     ` Elena
2010-08-04 14:59       ` Arzobispo Andante
2010-08-04 15:09       ` Peter Keller [this message]
2010-08-04 15:35         ` Peter Keller
2010-08-05 19:04         ` Elena
2010-08-05 21:10           ` Peter Keller
2010-08-05 23:46             ` Pascal J. Bourguignon
     [not found]           ` <8c27aoFij2U1@mid.individual.net>
2010-08-06 11:17             ` Elena
2010-08-06 13:55               ` Pascal J. Bourguignon
2010-08-04 16:20   ` Elena
2010-08-04 16:23   ` Elena
2010-08-05 18:00   ` Emmy Noether
2010-08-06  4:59   ` [OT] " Aaron W. Hsu
2010-08-05 17:30 ` Johan Bockgård
2010-08-06 17:03 ` Alan Mackenzie

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

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

  git send-email \
    --in-reply-to='i3bvqg$857$1@news.eternal-september.org' \
    --to=psilord@cs.wisc.edu \
    --cc=help-gnu-emacs@gnu.org \
    /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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.