Dmitry Antipov | 16 Sep 18:59 2014

Why malformed let-form is silently accepted?

(let 1) ==> eval: Wrong type argument: sequencep, 1
(let [1 2 3 4]) ==> nil ???


Dmitry Antipov | 16 Sep 10:50 2014

MS-Windows tester wanted for trunk

I have a plan to make USE_STACK_LISP_OBJECTS the default if ENABLE_CHECKING
in a week or so.  On GNU/Linux, now I'm sure that there are no silly crashes,
and I would like to be sure on MS-Windows too.  So I need help from someone
who can 1) bootstrap trunk revision >= 117888 with --enable-checking and
whether the very basic editing doesn't cause crash.

Thanks in advance,

Daniel Colascione | 16 Sep 02:19 2014

Hash values of symbols: why look at the name?

Right now, this form always evaluates to t:

  (eql (sxhash (make-symbol "a")) (sxhash (make-symbol "a")))

This form always evaluates to nil:

  (equal (make-symbol "a") (make-symbol "a"))

The hash of a symbol is the hash of its namel; that seems silly, since
symbol equality is based on identity. We should be able to just use the
symbol address instead, right?

=== modified file 'src/fns.c'
--- src/fns.c	2014-09-15 05:09:44 +0000
+++ src/fns.c	2014-09-16 00:14:52 +0000
 <at>  <at>  -4482,13 +4482,10  <at>  <at> 

     case Lisp_Misc:
+    case Lisp_Symbol:
       hash = XHASH (obj);

-    case Lisp_Symbol:
-      obj = SYMBOL_NAME (obj);
-      /* Fall through.  */
     case Lisp_String:
       hash = sxhash_string (SSDATA (obj), SBYTES (obj));
(Continue reading)

Dani Moncayo | 15 Sep 17:06 2014

Build failure: emacs-24 branch on MS-Windows

I've just built the current trunk successfully, but the current
emacs-24 branch fails here like this:

Loading loadup.el (source)...
Using load-path (c:/msys/home/Dani/emacs/emacs-24/lisp
Loading emacs-lisp/byte-run...
Loading emacs-lisp/backquote...
Loading subr...
Loading version...
Loading widget...
Loading custom...
Loading emacs-lisp/map-ynp...
Loading international/mule...
Loading international/mule-conf...
Loading env...
Loading format...
Loading bindings...
Loading cus-start...
Loading window...
Loading files...
Loading emacs-lisp/macroexp...
Loading cus-face...
Loading faces...
Loading button...
(Continue reading)

Lars Magne Ingebrigtsen | 15 Sep 14:45 2014

Image rescaling

Most of the image format decoders (jpeg and gif, for instance) do not
support image rescaling.  So shr uses ImageMagick for all its image

There are two problems with this:

1) ImageMagick is crashy.  Virtually all Emacs crashes I get happen deep
in the ImageMagic code.  I mean, I don't get a lot of crashes, but they
happen from time to time, and are pretty annoying.

2) Some people run Emacs without ImageMagick built in, but usually have
the other libraries enabled.

So I would propose to add a general image scaling function, and use that
in all the image handling functions.  Without image rescaling, Emacs is
pretty useless for anything that involves handling images.

Does this sound OK to everybody?

And if so, is there an FSF-copyright-assigned quality image rescaling
function out there that I could adapt to Emacs so that I don't have to
write it myself?  >"?


(domestic pets only, the antidote for overdose, milk.)
   bloggy blog:

Dmitry Antipov | 15 Sep 11:16 2014

trunk r117870 -> emacs-24

Please consider changes from trunk revision 117870 for emacs-24 branch.
Without that, the latter is not immune against the following crashes
(64-bit only):

;; crash - overflow in font_parse_family_registry
(defun oops0 ()
   (let* ((size 2200000000)
          (s (make-string size 97)))
     (aset s 0 42)
     (aset s 1000 45)
     (x-family-fonts s)))

;; crash - overflow in make_temp_name
(defun oops1 ()
   (make-temp-name (make-string 2200000000 97)))


Glenn Morris | 15 Sep 02:37 2014

summer of code results

Looks like the summer of code is over.
I think there were a couple (?) of Emacs projects (besides Guile-Emacs).
Just like last year, I've heard nothing at all about them on this list.
So: what were the results?

Lars Magne Ingebrigtsen | 15 Sep 01:27 2014

Regexps and strings once again

(Skip to 1) if you're not interested in why I started thinking about
this now.)

I was just fiddling around with a DOM traversal library (i.e., "document
object model", or something -- HTML traversal, like), and it has
functions for finding nodes by various criteria, like IDs.  So there are
functions like `dom-by-id' that take a DOM fragment and an ID and
returns the matching nodes.

I wrote the function as taking a regexp.  And I find what I'm doing
wrong 90% of the time when using it is that I expect an exact match, but
instead I'm getting all matching nodes.

This reminded me of this pretty general problem once again.  We have
oodles of functions in Emacs that does matching either on exact(ish)
strings, or regexps, and then we have an optional parameter that says
whether we want to interpret the string as an exact string or a

It's kinda annoying, especially when the function defaults to the
interpretation you don't want.  And you have to remember which optional
parameter you're supposed to set.

So:  Here's yet another suggestion for how to deal with regexps in a
more general way in Emacs.  Or rather two.

1) New Special Syntax

A while ago, there was some suggestion about introducing a special
syntax for string literals, and it didn't really go anywhere, because
(Continue reading)

Drew Adams | 14 Sep 23:30 2014

Dired restrictions on arbitrary file & dir listings

1. Let users create arbitrary Dired listings interactively?

You can open Dired for virtually any list of files and dirs
(root directories such as c:/ and / should not be included).
Today, you cannot do this interactively, but you can do it by
passing a cons DIRNAME arg to `dired': the car is the Dired
buffer name, and the cdr is the list of files/dirs.

This feature has been present from the beginning, AFAIK, but
users are not very aware of it.

Why not let users do this interactively, by using a prefix
arg <= 0?  A prefix arg >= 0 means prompt for `ls' switches.
A non-positive arg would prompt for the buffer name and files.
(The current behavior of plain `C-u' would be preserved.)

I do this in Dired+, modifying `dired-read-dir-and-switches'.
It loops with `read-file-name' using lax completion, so you
can use glob patterns to specify multiple files/dirs at once.

2. Remove `dired-insert-subdir-validate'?  

You can use `i' to insert a subdir listing, but function
`dired-insert-subdir-validate' is a gatekeeper that prevents
you from inserting a directory in these two cases:

* it is not in the same directory tree as `default-directory'

* the `ls' switches you request for the listing to insert
  "conflict" with those for the main listing, where this means
(Continue reading)

Sebastian Wiesner | 14 Sep 10:11 2014

tabulated-list-revert runs hook before re-printing the table


tabulated-list-mode implements a custom `revert-buffer-function' named `tabulated-list-revert',
which does not run the standard `after-revert-hook` function as far as I can see.

Instead, it has its own hook `tabulated-list-revert-hook', but this hook runs *before* the list is
re-printed with `tabulated-list-print'.

Hence, the hook still works on the “old” list, before it is updated.

What is the rationale for this?  When does the hook make sense in its current implementation?

Wouldn't it be rather more useful to run the hook *after* re-printing the error list, so that the hook can
work with the newly refreshed list?

My use case was to automatically resize a custom tabulated-list-mode to fit its contents after every
update.  Currently that doesn't seem possible…

Thank you
Sebastian Wiesner

Christopher Allan Webber | 11 Sep 18:29 2014

Guile emacs thread (again)

Hello!  It's been a while since the topic has come up on this list, but
many of us are interested in it, and maybe some developers don't know,
and I hadn't seen any conversations on the list despite recent progress.

Anyway, it seems that BT Templeton's emacs on guile project this summer
has gone fairly well, and it looks like almost everything runs.  See:

I remember reading Andy Wingo's email about this a few years ago,
"guile and emacs and elisp, oh my!":

I found it very inspiring.  It seems those things are fairly close.

So this email is partly a:
 - What now?  What's the chance of work towards guilemacs moving over to
   an official emacs git branch, and that port happening, anytime soon?
 - Is anyone running it?  How's it going for you?

(I'm mid-compile of the guile wip branch right now...!)
 - Chris