Date: Tuesday, May 31, 2011 @ 06:26:41
Author: rtoy
Path: /project/cmucl/cvsroot/src
Added: bootfiles/20b/boot-2011-04-01-cross.lisp
Modified: code/commandline.lisp code/print.lisp code/unidata.lisp
compiler/sparc/parms.lisp compiler/x86/parms.lisp
i18n/locale/cmucl.pot lisp/lisp.c
Add -unidata option to specify unidata.bin file.
This change requires a cross-compile. Use boot-2011-04-01-cross.lisp
as the cross-compile script.
bootfiles/20b/boot-2011-04-01-cross.lisp:
o New cross-compile bootstrap file
lisp/lisp.c:
o Recognize -unidata option and setup *UNIDATA-PATH* appropriately.
code/commandline.lisp:
o Add defswitch for unidata so we don't get complaints about unknown
switch.
code/unidata.lisp:
o Rename +UNIDATA-PATH+ to *UNIDATA-PATH*, since it's not a constant
anymore.
o Update code to use new name.
code/print.lisp:
o Update code to use *UNIDATA-PATH*
compiler/sparc/parms.lisp:
o Add *UNIDATA-PATH* to list of static symbols.
o Add back in spare-9 and spare-8 static symbols since we need to do a
cross-compile for this change anyway.
compiler/x86/parms.lisp:
o Add *UNIDATA-PATH* to list of static symbols.
o Reorder the static symbols in a more logical arrangment so that the
spare symbols are at the end.
i18n/local/cmucl.pot:
o Update
------------------------------------------+
bootfiles/20b/boot-2011-04-01-cross.lisp | 11 +++++++++++
code/commandline.lisp | 6 +++++-
code/print.lisp | 6 +++---
code/unidata.lisp | 8 ++++----
compiler/sparc/parms.lisp | 6 +++++-
compiler/x86/parms.lisp | 22 ++++++++++++----------
i18n/locale/cmucl.pot | 4 ++++
lisp/lisp.c | 9 ++++++++-
8 files changed, 52 insertions(+), 20 deletions(-)
Index: src/bootfiles/20b/boot-2011-04-01-cross.lisp
diff -u /dev/null src/bootfiles/20b/boot-2011-04-01-cross.lisp:1.1
--- /dev/null Tue May 31 06:26:41 2011
+++ src/bootfiles/20b/boot-2011-04-01-cross.lisp Tue May 31 06:26:40 2011
@@ -0,0 +1,11 @@
+;; Add -unidata command line option to allow user to tell cmucl where
+;; the unidata.bin file is.
+;;
+;; To build 2011-06, you need to do a cross-compile. Use this as the
+;; cross-compile bootstrap file.
+
+#+x86
+(load "target:tools/cross-scripts/cross-x86-x86.lisp")
+
+#+sparc
+(load "target:tools/cross-scripts/cross-sparc-sparc.lisp")
Index: src/code/commandline.lisp
diff -u src/code/commandline.lisp:1.26 src/code/commandline.lisp:1.27
--- src/code/commandline.lisp:1.26 Tue Nov 2 11:30:04 2010
+++ src/code/commandline.lisp Tue May 31 06:26:40 2011
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/code/commandline.lisp,v 1.26 2010/11/02 18:30:04 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/code/commandline.lisp,v 1.27 2011/05/31 13:26:40 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -301,6 +301,10 @@
"Enables printing of messages indication how CMUCL is searching for
its default core file.")
+(defswitch "unidata" nil
+ "Specify the unidata.bin file to be used."
+ "filename")
+
#+x86
(intl:with-textdomain ("cmucl" "cmucl-x86-vm")
(defswitch "fpu" nil
Index: src/code/print.lisp
diff -u src/code/print.lisp:1.131 src/code/print.lisp:1.132
--- src/code/print.lisp:1.131 Tue Apr 20 10:57:45 2010
+++ src/code/print.lisp Tue May 31 06:26:40 2011
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/code/print.lisp,v 1.131 2010/04/20 17:57:45 rtoy Rel $")
+ "$Header: /project/cmucl/cvsroot/src/code/print.lisp,v 1.132 2011/05/31 13:26:40 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -2164,9 +2164,9 @@
;;; is initialized.
#+unicode
(defun reinit-char-attributes ()
- (unless (probe-file +unidata-path+)
+ (unless (probe-file *unidata-path*)
(cerror _"Continue anyway" _"Cannot find ~S, so unicode support is not available"
- +unidata-path+)
+ *unidata-path*)
(return-from reinit-char-attributes nil))
(flet ((set-bit (char bit)
(let ((code (char-code char)))
Index: src/code/unidata.lisp
diff -u src/code/unidata.lisp:1.25 src/code/unidata.lisp:1.26
--- src/code/unidata.lisp:1.25 Sat Apr 2 13:11:31 2011
+++ src/code/unidata.lisp Tue May 31 06:26:40 2011
@@ -4,7 +4,7 @@
;;; This code was written by Paul Foley and has been placed in the public
;;; domain.
;;;
-(ext:file-comment "$Header: /project/cmucl/cvsroot/src/code/unidata.lisp,v 1.25 2011/04/02 20:11:31 rtoy Exp $")
+(ext:file-comment "$Header: /project/cmucl/cvsroot/src/code/unidata.lisp,v 1.26 2011/05/31 13:26:40 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -16,9 +16,9 @@
(export '(string-to-nfd string-to-nfkc string-to-nfkd string-to-nfc
unicode-complete unicode-complete-name))
-(defconstant +unidata-path+ #p"ext-formats:unidata.bin")
+(defvar *unidata-path* "ext-formats:unidata.bin")
-(defvar *unidata-version* "$Revision: 1.25 $")
+(defvar *unidata-version* "$Revision: 1.26 $")
(defstruct unidata
range
@@ -495,7 +495,7 @@
(read-vector lvec stm :endian-swap :network-order)
(values split hvec mvec lvec))))
(declare (ignorable #'read16 #'read32 #'read-ntrie))
- (with-open-file (,stm +unidata-path+ :direction :input
+ (with-open-file (,stm *unidata-path* :direction :input
:element-type '(unsigned-byte 8))
(unless (unidata-locate ,stm ,locn)
(error (intl:gettext "No data in file.")))
Index: src/compiler/sparc/parms.lisp
diff -u src/compiler/sparc/parms.lisp:1.62 src/compiler/sparc/parms.lisp:1.63
--- src/compiler/sparc/parms.lisp:1.62 Sat Dec 4 09:32:34 2010
+++ src/compiler/sparc/parms.lisp Tue May 31 06:26:40 2011
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/compiler/sparc/parms.lisp,v 1.62 2010/12/04 17:32:34 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/compiler/sparc/parms.lisp,v 1.63 2011/05/31 13:26:40 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -345,10 +345,14 @@
;; FP constants
*fp-constant-0d0*
*fp-constant-0f0*
+
+ lisp::*unidata-path*
;; Some spare static symbols. Useful for adding another static
;; symbol without having to do a cross-compile. Just rename one
;; of these to the desired name.
+ spare-9
+ spare-8
spare-7
spare-6
spare-5
Index: src/compiler/x86/parms.lisp
diff -u src/compiler/x86/parms.lisp:1.42 src/compiler/x86/parms.lisp:1.43
--- src/compiler/x86/parms.lisp:1.42 Tue Dec 21 18:12:52 2010
+++ src/compiler/x86/parms.lisp Tue May 31 06:26:40 2011
@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group(a)cs.cmu.edu.
;;;
(ext:file-comment
- "$Header: /project/cmucl/cvsroot/src/compiler/x86/parms.lisp,v 1.42 2010/12/22 02:12:52 rtoy Exp $")
+ "$Header: /project/cmucl/cvsroot/src/compiler/x86/parms.lisp,v 1.43 2011/05/31 13:26:40 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -351,6 +351,15 @@
;; common slot unbound check.
pcl::..slot-unbound..
+ ;; Used by CGC.
+ *x86-cgc-active-p*
+ ;; Foreign linkage stuff
+ lisp::*linkage-table-data*
+ system::*global-table*
+
+ *current-region-free-pointer*
+ *current-region-end-addr*
+
;; These are filled in the C run-time.
lisp::*cmucl-lib*
lisp::*cmucl-core-path*
@@ -361,8 +370,10 @@
:key-and-value
:key-or-value
+ lisp::*unidata-path*
;; Spare symbols. Rename these when you need to add some static
;; symbols and don't want to do a cross-compile.
+ spare-9
spare-8
spare-7
spare-6
@@ -372,16 +383,7 @@
spare-2
spare-1
- ;; Used by CGC.
- *x86-cgc-active-p*
- ;; Foreign linkage stuff
- lisp::*linkage-table-data*
- system::*global-table*
- *current-region-free-pointer*
- *current-region-end-addr*
*static-blue-bag* ; Must be last or change C code
-
-
))
(defparameter static-functions
Index: src/i18n/locale/cmucl.pot
diff -u src/i18n/locale/cmucl.pot:1.18 src/i18n/locale/cmucl.pot:1.19
--- src/i18n/locale/cmucl.pot:1.18 Thu Dec 2 13:12:40 2010
+++ src/i18n/locale/cmucl.pot Tue May 31 06:26:40 2011
@@ -6010,6 +6010,10 @@
msgstr ""
#: src/code/commandline.lisp
+msgid "Specify a new path to the unidata.bin file to be used."
+msgstr ""
+
+#: src/code/commandline.lisp
msgid "~&Usage: ~A <options>~2%"
msgstr ""
Index: src/lisp/lisp.c
diff -u src/lisp/lisp.c:1.81 src/lisp/lisp.c:1.82
--- src/lisp/lisp.c:1.81 Sun Dec 26 08:04:43 2010
+++ src/lisp/lisp.c Tue May 31 06:26:41 2011
@@ -1,7 +1,7 @@
/*
* main() entry point for a stand alone lisp image.
*
- * $Header: /project/cmucl/cvsroot/src/lisp/lisp.c,v 1.81 2010/12/26 16:04:43 rswindells Exp $
+ * $Header: /project/cmucl/cvsroot/src/lisp/lisp.c,v 1.82 2011/05/31 13:26:41 rtoy Exp $
*
*/
@@ -446,6 +446,7 @@
const char *default_core;
const char *lib = NULL;
const char *cmucllib = NULL;
+ const char *unidata = NULL;
fpu_mode_t fpu_type = AUTO;
boolean monitor;
@@ -547,6 +548,8 @@
monitor = TRUE;
} else if (strcmp(arg, "-debug-lisp-search") == 0) {
debug_lisp_search = TRUE;
+ } else if (strcmp(arg, "-unidata") == 0) {
+ unidata = *++argptr;
}
#ifdef i386
else if (strcmp(arg, "-fpu") == 0) {
@@ -786,6 +789,10 @@
SetSymbolValue(BATCH_MODE, T);
}
+ if (unidata) {
+ SetSymbolValue(UNIDATA_PATH, alloc_string(unidata));
+ }
+
/*
* Pick off sigint until the lisp system gets far enough along to
* install it's own.