Mercurial > hg > xemacs-beta
diff lisp/packages.el @ 227:0e522484dd2a r20-5b12
Import from CVS: tag r20-5b12
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:12:37 +0200 |
parents | d44af0c54775 |
children | 52952cbfc5b5 |
line wrap: on
line diff
--- a/lisp/packages.el Mon Aug 13 10:11:42 2007 +0200 +++ b/lisp/packages.el Mon Aug 13 10:12:37 2007 +0200 @@ -50,6 +50,28 @@ ;;; Code: +;;; Package versioning + +(defvar packages-package-list nil + "database of loaded packages and version numbers") + +(defun package-provide (name version) + (if (not (assq name packages-package-list)) + (setq packages-package-list + (cons (cons name version) packages-package-list)))) + +(defun package-require (name version) + (let ((pkg (assq name packages-package-list))) + (cond ((null pkg) + (error "Package %s has not been loaded into this XEmacsen" + name)) + ((< (cdr pkg) version) + (error "Need version %g of package %s, got version %g" + version name (cdr pkg))) + (t t)))) + +;;; Build time stuff + (defvar autoload-file-name "auto-autoloads.el" "Filename that autoloads are expected to be found in.") @@ -68,6 +90,8 @@ (defvar packages-unbytecompiled-lisp '("paths.el" + "dumped-lisp.el" + "dumped-pkg-lisp.el" "version.el") "Lisp packages that should not be byte compiled.") @@ -184,6 +208,21 @@ (if append-p (append load-path (list (concat package "/lisp/"))) (cons (concat package "/lisp/") load-path))) + + ;; Locate and process a dumped-lisp.el file if it exists + (if (and (running-temacs-p) + (file-exists-p (concat package "/lisp/dumped-lisp.el"))) + (let (package-lisp) + (load (concat package "/lisp/dumped-lisp.el")) + (if package-lisp + (progn + (if (boundp 'preloaded-file-list) + (setq preloaded-file-list + (append preloaded-file-list package-lisp))) + (if (fboundp 'load-gc) + (setq dumped-lisp-packages + (append dumped-lisp-packages package-lisp))))))) + (if user-package (condition-case nil (load (concat package "/lisp/" @@ -199,6 +238,21 @@ (if append-p (append load-path (list (concat dir "/"))) (cons (concat dir "/") load-path))) + + ;; Locate and process a dumped-lisp.el file if it exists + (if (and (running-temacs-p) + (file-exists-p (concat dir "/dumped-lisp.el"))) + (let (package-lisp) + (load (concat dir "/dumped-lisp.el")) + (if package-lisp + (progn + (if (boundp 'preloaded-file-list) + (setq preloaded-file-list + (append preloaded-file-list package-lisp))) + (if (fboundp 'load-gc) + (setq dumped-lisp-packages + (append dumped-lisp-packages package-lisp))))))) + (if user-package (condition-case nil (progn