Re: Elisp performance

2009-07-30 Thread Daniel Kraft
Ken Raeburn wrote: > And maybe that's enough. There's other stuff in Emacs besides variable bindings that would require dynamic-wind support, like flet, save-excursion (preserves current buffer and position), with-output-to-string and with-output-to-temp-buffer (preserve 'standard-output'), a

Re: Elisp performance

2009-07-30 Thread Daniel Kraft
Hi Neil, Neil Jerram wrote: Daniel Kraft writes: Lambda arguments are still always dynamically bound, which is quite a pity as it inhibits tail-call optimization; This prompted me to wonder if using fluids is the best way to implement dynamic binding. Perhaps I'm forgetting something basic,

Re: Elisp performance

2009-07-30 Thread Daniel Kraft
Ken Raeburn wrote: Obviously, it would help a lot to do so. On the other hand, switching to primitive-ref's would help even more, but I fear we can not easily do so, because we can not know if a symbol targets a primitive or was rebound at compile time... BTW, a quick test with Scheme: [

Re: %nil once again

2009-07-30 Thread Daniel Kraft
Neil Jerram wrote: Andy Wingo writes: Other things needed would be for instance terminating rest-arguments by %nil rather than '() and the like. Why is that needed? I.e. Why is it important for a rest argument to be terminated with %nil instead of with () ? Well, I don't think it is "impo

Re: %nil once again

2009-07-30 Thread Daniel Kraft
Hi Neil, Neil Jerram wrote: The only downside I can see to this is that if code were to be ported from elisp to Scheme there would now be code that assumed a '() return as false when #f would be false, but this could be fixed using a predicate like elisp-false? (or null-or-false? or ... somethin

Re: [Guile-commits] GNU Guile branch, master, updated. release_1-9-1-17-g77332b2

2009-07-30 Thread Mike Gran
On Fri, 2009-07-31 at 00:57 +0200, Ludovic Courtès wrote: Hello! > > "Michael Gran" writes: > > > The branch, master has been updated > >via 77332b21a01fac906ae4707426e00f01e62c0415 (commit) > > from e5dc27b86d0eaa470f92cdaa9f4ed2a961338c49 (commit) > > Oops, I hadn't realized t

Re: Elisp performance

2009-07-30 Thread Ken Raeburn
On Jul 30, 2009, at 16:18, Neil Jerram wrote: The main thing I believe that makes a fluid different from a normal variable is that a fluid can have a different value in each thread - which is not relevant to Elisp. Not yet, at least. And maybe that's enough. There's other stuff in Emacs besid

Re: Reporting unused local variables

2009-07-30 Thread Ludovic Courtès
Hello! I just committed the changes summarized below that add `-W unused-variable' to "guile-tools compile". It appears to work well, but only has approximate source location info for `define-macro' expansions, for instance (but that's another story). Daniel: could you try it with the Elisp fron

Re: [Guile-commits] GNU Guile branch, master, updated. release_1-9-1-18-g904a78f

2009-07-30 Thread Ludovic Courtès
"Michael Gran" writes: > commit 904a78f11d2d11a58d5df365a44c4fbbd4c96df3 > Author: Michael Gran > Date: Wed Jul 29 06:38:32 2009 -0700 > > Add 32-bit characters > > This adds the 32-bit standalone characters. Strings are still > 8-bit. Characters larger than 8-bit can only b

Re: [Guile-commits] GNU Guile branch, master, updated. release_1-9-1-17-g77332b2

2009-07-30 Thread Ludovic Courtès
Hello! "Michael Gran" writes: > The branch, master has been updated >via 77332b21a01fac906ae4707426e00f01e62c0415 (commit) > from e5dc27b86d0eaa470f92cdaa9f4ed2a961338c49 (commit) Oops, I hadn't realized this was in `master'. Was it intended? (I don't remember seeing a discuss

Re: [PATCH] %nil-handling optimization and fixes v1

2009-07-30 Thread Neil Jerram
Andy Wingo writes: > Hi Mark, > > This is also not a patch review yet :) > > On Thu 09 Jul 2009 18:11, Mark H Weaver writes: > >> I added the following macros, whose names explicitly state how %nil >> should be handled. See the comments in the patch for more information >> about these. Hi Mark

Re: %nil once again

2009-07-30 Thread Neil Jerram
Andy Wingo writes: >> Other things needed would be for instance terminating rest-arguments >> by %nil rather than '() and the like. Why is that needed? I.e. Why is it important for a rest argument to be terminated with %nil instead of with () ? Neil

Re: %nil once again

2009-07-30 Thread Neil Jerram
Clinton Ebadi writes: > Why not eliminate %nil/#nil and replace it with ... '(). This would > allow elisp to reuse all (or at least most) of the Scheme list functions > without having to muddy Scheme semantics with special #f/#nil handling, > but would require a very tiny elisp specific truth pre

Re: review/merge request: wip-array-refactor

2009-07-30 Thread Neil Jerram
Andy Wingo writes: > Hi Neil, > > Thanks for the review. > > On Wed 22 Jul 2009 23:48, Neil Jerram writes: > >> I have two overall questions in mind. >> >> - What do you have in mind as regards releasing this? Even though it >> looks good, I think it would be better to let it mature for a whi

Re: Elisp performance

2009-07-30 Thread Neil Jerram
Daniel Kraft writes: > Lambda arguments are still always dynamically bound, which is quite a > pity as it inhibits tail-call optimization; This prompted me to wonder if using fluids is the best way to implement dynamic binding. Perhaps I'm forgetting something basic, but surely it's using `dyna

Re: Porting GNU Projects - Guile

2009-07-30 Thread Neil Jerram
bornlibra23 writes: > Thanks Mike for the heads up but the problem I think is with the source code > itself. I get the same error on linux though it doesnt die there. I > preprocessed the code & changed the line like so : >>From (ch) == ' ' | (ch) == '\t') to (ch) == ' ' || (ch) == '\t')