* Conditional compilation to avoid "assignment to free variable"
@ 2008-09-24 19:46 Michael Hoffman
2008-09-24 19:54 ` Joost Diepenmaat
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Michael Hoffman @ 2008-09-24 19:46 UTC (permalink / raw)
To: help-gnu-emacs
I use the same .emacs file on multiple systems, and each have various
packages installed. There are various forms in my .emacs to only
interact with these packages if they are actually installed:
(when (locate-library "auctex")
(load "auctex.el" nil t t)
(setq TeX-auto-save t))
When I byte-compile, however, I get a warning like this:
emacs.el:320:9:Warning: assignment to free variable `TeX-auto-save'
Is there a way to skip over that form at compile time if the library
cannot be found? I tried various permutations of using
eval-when-compile, but I still get the warning.
I suppose the other solution is to wrap the setq in a boundp check, but
this seems silly as the result of the boundp check will be the same as
the result of locate-library.
In this case, I may be able to use a custom variable instead but I am
looking for a more general solution.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Conditional compilation to avoid "assignment to free variable"
2008-09-24 19:46 Conditional compilation to avoid "assignment to free variable" Michael Hoffman
@ 2008-09-24 19:54 ` Joost Diepenmaat
2008-09-24 21:34 ` Chetan
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Joost Diepenmaat @ 2008-09-24 19:54 UTC (permalink / raw)
To: help-gnu-emacs
Michael Hoffman <4g4trz802@sneakemail.com> writes:
> I use the same .emacs file on multiple systems, and each have various
> packages installed. There are various forms in my .emacs to only
> interact with these packages if they are actually installed:
>
> (when (locate-library "auctex")
> (load "auctex.el" nil t t)
> (setq TeX-auto-save t))
>
> When I byte-compile, however, I get a warning like this:
>
> emacs.el:320:9:Warning: assignment to free variable `TeX-auto-save'
>
> Is there a way to skip over that form at compile time if the library
> cannot be found? I tried various permutations of using
> eval-when-compile, but I still get the warning.
Did you try the following?
(eval-when-compile
(require 'my-macro-package))
(when (locate-library "auctex")
(setq TeX-auto-save t))
HTH,
Joost.
--
Joost Diepenmaat | blog: http://joost.zeekat.nl/ | work: http://zeekat.nl/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Conditional compilation to avoid "assignment to free variable"
2008-09-24 19:46 Conditional compilation to avoid "assignment to free variable" Michael Hoffman
2008-09-24 19:54 ` Joost Diepenmaat
@ 2008-09-24 21:34 ` Chetan
2008-09-24 22:09 ` Glenn Morris
2008-09-25 0:11 ` Chetan
3 siblings, 0 replies; 5+ messages in thread
From: Chetan @ 2008-09-24 21:34 UTC (permalink / raw)
To: help-gnu-emacs
Michael Hoffman <4g4trz802@sneakemail.com> writes:
> I use the same .emacs file on multiple systems, and each have various packages
> installed. There are various forms in my .emacs to only interact with these
> packages if they are actually installed:
>
> (when (locate-library "auctex")
> (load "auctex.el" nil t t)
> (setq TeX-auto-save t))
>
> When I byte-compile, however, I get a warning like this:
>
> emacs.el:320:9:Warning: assignment to free variable `TeX-auto-save'
>
> Is there a way to skip over that form at compile time if the library cannot be
> found? I tried various permutations of using eval-when-compile, but I still get
> the warning.
>
> I suppose the other solution is to wrap the setq in a boundp check, but this
> seems silly as the result of the boundp check will be the same as the result of
> locate-library.
>
> In this case, I may be able to use a custom variable instead but I am looking
> for a more general solution.
C-h f eval-when-compile
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Conditional compilation to avoid "assignment to free variable"
2008-09-24 19:46 Conditional compilation to avoid "assignment to free variable" Michael Hoffman
2008-09-24 19:54 ` Joost Diepenmaat
2008-09-24 21:34 ` Chetan
@ 2008-09-24 22:09 ` Glenn Morris
2008-09-25 0:11 ` Chetan
3 siblings, 0 replies; 5+ messages in thread
From: Glenn Morris @ 2008-09-24 22:09 UTC (permalink / raw)
To: help-gnu-emacs
Michael Hoffman wrote:
> (when (locate-library "auctex")
> (load "auctex.el" nil t t)
> (setq TeX-auto-save t))
>
> When I byte-compile, however, I get a warning like this:
>
> emacs.el:320:9:Warning: assignment to free variable `TeX-auto-save'
Byte-compiling your .emacs is pretty much a waste of time (you've
probably already invested more time in it than it might ever save you).
Worry about warnings while doing so is really a waste of time; but the
standard method of suppressing free variable warnings is
(defvar TeX-auto-save)
(setq TeX-auto-save t)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Conditional compilation to avoid "assignment to free variable"
2008-09-24 19:46 Conditional compilation to avoid "assignment to free variable" Michael Hoffman
` (2 preceding siblings ...)
2008-09-24 22:09 ` Glenn Morris
@ 2008-09-25 0:11 ` Chetan
3 siblings, 0 replies; 5+ messages in thread
From: Chetan @ 2008-09-25 0:11 UTC (permalink / raw)
To: help-gnu-emacs
Michael Hoffman <4g4trz802@sneakemail.com> writes:
> I use the same .emacs file on multiple systems, and each have various packages
> installed. There are various forms in my .emacs to only interact with these
> packages if they are actually installed:
>
> (when (locate-library "auctex")
> (load "auctex.el" nil t t)
> (setq TeX-auto-save t))
>
> When I byte-compile, however, I get a warning like this:
>
> emacs.el:320:9:Warning: assignment to free variable `TeX-auto-save'
>
> Is there a way to skip over that form at compile time if the library cannot be
> found? I tried various permutations of using eval-when-compile, but I still get
> the warning.
>
> I suppose the other solution is to wrap the setq in a boundp check, but this
> seems silly as the result of the boundp check will be the same as the result of
> locate-library.
>
> In this case, I may be able to use a custom variable instead but I am looking
> for a more general solution.
I don't have auctex installed, so I cannot check. However, I am
wondering, what is this variable used for? Does tex mode not use
auto-save-mode? Or if it is for saving file before running tex, does is
not use the compile infrastructure?
Chetan
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-09-25 0:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-24 19:46 Conditional compilation to avoid "assignment to free variable" Michael Hoffman
2008-09-24 19:54 ` Joost Diepenmaat
2008-09-24 21:34 ` Chetan
2008-09-24 22:09 ` Glenn Morris
2008-09-25 0:11 ` Chetan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).