* Can we add a function which is used to returned immediately within an source file for lib?
@ 2008-09-10 12:15 Yiyi Hu
2008-09-10 21:06 ` mail
0 siblings, 1 reply; 5+ messages in thread
From: Yiyi Hu @ 2008-09-10 12:15 UTC (permalink / raw)
To: emacs-devel
Can we add a function or extend (return t) to skip loading the rest of
source please?
Eg, my ~/.emacs
(defun byte-compile-file-if-newer (src)
(let ((result (concat src ".elc")))
(when (file-newer-than-file-p src result)
(byte-compile-file src)
(load-file result))))
(byte-compile-file-if-newer "~/.emacs")
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(auto-compression-mode t)
'(column-number-mode t)
'(cperl-indent-level 4)
'(delete-selection-mode t)
'(display-battery-mode t)
'(display-time-24hr-format t)
'(display-time-day-and-date t)
'(display-time-mode t)
'(encoded-kbd-mode t)
'(gnus-nntp-server "news.readfreenews.net")
'(indent-tabs-mode nil)
'(inferior-lisp-program "sbcl")
'(inhibit-eol-conversion t)
'(inhibit-startup-screen t)
'(initial-scratch-message nil)
'(menu-bar-mode nil)
'(mouse-avoidance-mode (quote exile) nil (avoid)))
For now, there is now way to support skip the rest of ~/.emacs after
(byte-compile-file-if-newer "~/.emacs").
As It's already discussed.
So, I make long history short
Can we have a function or exend (return t) function for skip loading
of reset of ~/.emacs after we load the compiled version of ~/.emacs?
(if (byte-compile-file-if-newer src-file)
(exit-loading-of-remaining-source))
If you really want to see the reason, It's ok, I'll explain them again.
Thanks.
PS:
I don't mean to flood across several lists, At last, according to
asking within #emacs and my understanding, I think emacs-devel should
be the right place for a feature request on elisp language itself.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Can we add a function which is used to returned immediately within an source file for lib?
2008-09-10 12:15 Can we add a function which is used to returned immediately within an source file for lib? Yiyi Hu
@ 2008-09-10 21:06 ` mail
2008-09-12 2:37 ` Yiyi Hu
0 siblings, 1 reply; 5+ messages in thread
From: mail @ 2008-09-10 21:06 UTC (permalink / raw)
To: emacs-devel
"Yiyi Hu" <yiyihu@gmail.com> writes:
> Can we add a function or extend (return t) to skip loading the rest of
> source please?
What's wrong with `if'?
--
BOFH excuse #77:
Typo in the code
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Can we add a function which is used to returned immediately within an source file for lib?
2008-09-10 21:06 ` mail
@ 2008-09-12 2:37 ` Yiyi Hu
2008-09-12 2:47 ` David Hansen
2008-09-12 2:51 ` Yiyi Hu
0 siblings, 2 replies; 5+ messages in thread
From: Yiyi Hu @ 2008-09-12 2:37 UTC (permalink / raw)
To: mail; +Cc: emacs-devel
What I want to do is simple:
When emacs starts, It checks if ~/.emacs is newer than ~/.emacs.elc,
if it does, then it recompiles the ~/.emacs, and load ~/.emacs.elc on
the fly. But skip the rest of ~/.emacs, The reason why I want this
will be explained.
The unless version has this problem.
(unless (byte-compile-file-if-newer "~/.emacs")
remaining lisp code ...)
Because, This will confuse M-x customize-* series functions.
Eg, when you put (customize-set-variables ....) things within (unless
(byte-compile-file-if-newer "~/.emacs") )
When you do M-x customzie-variable <RET> again, It will crate another
list which is like (customize-set-variables ...) outside of the file
level (unless () ...) statement. If you think It's ok, Please check
the example above. (customize-set-variables ..) will take effect and
last a session.
returning while loading source is a good feature to have.
On Wed, Sep 10, 2008 at 9:06 PM, <mail@justinbogner.com> wrote:
> "Yiyi Hu" <yiyihu@gmail.com> writes:
>
>> Can we add a function or extend (return t) to skip loading the rest of
>> source please?
>
> What's wrong with `if'?
>
> --
> BOFH excuse #77:
>
> Typo in the code
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Can we add a function which is used to returned immediately within an source file for lib?
2008-09-12 2:37 ` Yiyi Hu
@ 2008-09-12 2:47 ` David Hansen
2008-09-12 2:51 ` Yiyi Hu
1 sibling, 0 replies; 5+ messages in thread
From: David Hansen @ 2008-09-12 2:47 UTC (permalink / raw)
To: emacs-devel
On Fri, 12 Sep 2008 02:37:47 +0000 Yiyi Hu wrote:
> What I want to do is simple:
> When emacs starts, It checks if ~/.emacs is newer than ~/.emacs.elc,
> if it does, then it recompiles the ~/.emacs, and load ~/.emacs.elc on
> the fly. But skip the rest of ~/.emacs, The reason why I want this
> will be explained.
Do the time stamp check and recompile from .emacs but use another file
for the actual code.
> The unless version has this problem.
> (unless (byte-compile-file-if-newer "~/.emacs")
> remaining lisp code ...)
> Because, This will confuse M-x customize-* series functions.
> Eg, when you put (customize-set-variables ....) things within (unless
> (byte-compile-file-if-newer "~/.emacs") )
Use another `custom-file' (setq custom-file "~/.emacs.d/emacs-custom")
or w/ above suggestion the problem doesn't occur:
(when (have-to-recompile-my-init-file-p)
(byte-compile-file my-init-file))
(load my-init-file)
;; Custom stuff follows...
> returning while loading source is a good feature to have.
Well, you can always use `condition-case' and `error' but you need one
wrapper for it.
David
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Can we add a function which is used to returned immediately within an source file for lib?
2008-09-12 2:37 ` Yiyi Hu
2008-09-12 2:47 ` David Hansen
@ 2008-09-12 2:51 ` Yiyi Hu
1 sibling, 0 replies; 5+ messages in thread
From: Yiyi Hu @ 2008-09-12 2:51 UTC (permalink / raw)
To: mail; +Cc: emacs-devel
The example is,
If I do something like:
(if (byte-compile-file-if-newer "~/.emacs") (load-file "~/.emacs.elc"))
Here is a situation depends on wether ~/.emacs.elc exists.
If ~/.emacs.elc exists and ever being compiled with a line (defalias
'perl-mode 'cperl-mode), and we remove
(defalias 'perl-mode 'cperl-mode) in ~/.emacs, then, cperl-mode will
still be in effect for the first time we start emacs use the new
~/.emacs, we have to restart emacs again or manually byte-compile the
~/.emacs. The reason which causes this is, the side effect created in
old ~/.emacs.elc will still in effect.
On Fri, Sep 12, 2008 at 2:37 AM, Yiyi Hu <yiyihu@gmail.com> wrote:
> What I want to do is simple:
> When emacs starts, It checks if ~/.emacs is newer than ~/.emacs.elc,
> if it does, then it recompiles the ~/.emacs, and load ~/.emacs.elc on
> the fly. But skip the rest of ~/.emacs, The reason why I want this
> will be explained.
>
> The unless version has this problem.
> (unless (byte-compile-file-if-newer "~/.emacs")
> remaining lisp code ...)
> Because, This will confuse M-x customize-* series functions.
> Eg, when you put (customize-set-variables ....) things within (unless
> (byte-compile-file-if-newer "~/.emacs") )
> When you do M-x customzie-variable <RET> again, It will crate another
> list which is like (customize-set-variables ...) outside of the file
> level (unless () ...) statement. If you think It's ok, Please check
> the example above. (customize-set-variables ..) will take effect and
> last a session.
>
> returning while loading source is a good feature to have.
>
> On Wed, Sep 10, 2008 at 9:06 PM, <mail@justinbogner.com> wrote:
>> "Yiyi Hu" <yiyihu@gmail.com> writes:
>>
>>> Can we add a function or extend (return t) to skip loading the rest of
>>> source please?
>>
>> What's wrong with `if'?
>>
>> --
>> BOFH excuse #77:
>>
>> Typo in the code
>>
>>
>>
>>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-09-12 2:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-10 12:15 Can we add a function which is used to returned immediately within an source file for lib? Yiyi Hu
2008-09-10 21:06 ` mail
2008-09-12 2:37 ` Yiyi Hu
2008-09-12 2:47 ` David Hansen
2008-09-12 2:51 ` Yiyi Hu
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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).