guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: emacs packages


From: Federico Beffa
Subject: Re: emacs packages
Date: Thu, 18 Jun 2015 20:24:16 +0200

On Wed, Jun 17, 2015 at 10:00 PM, Alex Kost <address@hidden> wrote:
> Mark H Weaver (2015-06-17 21:42 +0300) wrote:
>
>> Federico Beffa <address@hidden> writes:
>>
>>> What do you think about the attached implementation?
>>
>> [...]
>>
>>> +(define (emacs-byte-compile files)
>>> +  "Byte compile FILES, a list of file names."
>>> +  (if (pair? files)
>>> +      (for-each (lambda (f)
>>> +                  (let ((expr `(let ()
>>> +                                 (push ,(dirname f) load-path)
>>> +                                 (byte-compile-file ,f))))
>>> +                    (emacs-batch-eval expr)))
>>> +                files)
>>> +      (error "emacs-byte-compile failed: not a list of files!" files)))
>>> +
>>
>> I would prefer to let an emacs expert (Alex?) comment on this, but here
>
> (I don't consider myself an expert, I'm definitely much less experienced
> with Emacs than you or Ludovic.)
>
>> are some preliminary comments:
>>
>> * I wouldn't bother checking the type of 'files', since 'for-each' will
>>   do that.  Also, () is a list but not a pair.
>>
>> * Maybe use 'progn' instead of 'let ()' ?
>>
>> * Instead of launching a separate emacs process for each file, how about
>>   passing the list of filenames into emacs and do the loop within emacs
>>   itself?
>
> I totally agree with these comments.  However since the goal is to
> compile all elisp files in some directory, perhaps we may just use
> 'byte-recompile-directory' instead of looping 'byte-compile-file'.
>
> Also I think there is a problem.  An emacs package can require other
> packages, so for a successful compiling, 'load-path' should be augmented
> not only with the directory of the original package, but with the
> directories of the required packages as well.

Thanks for all the good suggestions. I will try to address them.

Regards,
Fede



reply via email to

[Prev in Thread] Current Thread [Next in Thread]