Changeset 13963
- Timestamp:
- 06/13/12 11:39:16 (9 years ago)
- Location:
- trunk/abcl
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/doc/asdf/asdf.texinfo
r13922 r13963 2925 2925 @section Controlling source file character encoding 2926 2926 2927 Starting with ASDF 2.21, components accept a @code{:encoding} option. 2927 Starting with ASDF 2.21, components accept a @code{:encoding} option 2928 so authors may specify which character encoding should be used 2929 to read and evaluate their source code. 2930 When left unspecified, the encoding is inherited 2931 from the parent module or system; 2932 if no encoding is specified at any point, 2933 the default @code{:autodetect} is assumed. 2928 2934 By default, only @code{:default}, @code{:utf-8} 2929 2935 and @code{:autodetect} are accepted. 2930 @code{:autodetect} is the default, andcalls2936 @code{:autodetect}, the default, calls 2931 2937 @code{*encoding-detection-hook*} which by default always returns 2932 2938 @code{*default-encoding*} which itself defaults to @code{:default}. 2939 2933 2940 In other words, there now are plenty of extension hooks, but 2934 2941 by default ASDF follows the backwards compatible behavior … … 2949 2956 on an implementation that supports unicode. 2950 2957 We recommend that you avoid using unprotected @code{:encoding} specifications 2951 until after ASDF 2.21 becomes widespread, hopefully by the end of 2012.2958 until after ASDF 2.21 or later becomes widespread, hopefully by the end of 2012. 2952 2959 2953 2960 While it offers plenty of hooks for extension, … … 3157 3164 from the @code{xcvb-driver} system that is distributed with XCVB: 3158 3165 @url{http://common-lisp.net/project/xcvb}. 3159 It's only alternative that supports3166 It's the only alternative that supports 3160 3167 as many implementations and operating systems as ASDF does, 3161 3168 and provides well-defined behavior outside Unix (i.e. on Windows). … … 3226 3233 to see if the new API is present. 3227 3234 @emph{All} versions of ASDF should have the @code{:asdf} feature. 3235 3236 Additionally, all versions of asdf 2 3237 define a function @code{(asdf:asdf-version)} you may use to query the version; 3238 and the source code of recent versions of asdf 2 features the version number 3239 prominently on the second line of its source code. 3228 3240 3229 3241 If you are experiencing problems or limitations of any sort with ASDF 1, … … 3454 3466 See @code{enable-asdf-binary-locations-compatibility} in 3455 3467 @pxref{Controlling where ASDF saves compiled files,,Backward Compatibility}. 3456 But thou shal lnot load ABL on top of ASDF 2.3468 But thou shalt not load ABL on top of ASDF 2. 3457 3469 3458 3470 @end itemize … … 3470 3482 where the namestring might have previously sufficed; 3471 3483 moreover when evaluation is desired @code{#.} must be used, 3472 where it wasn't necessary in the toplevel @code{:pathname} argument. 3484 where it wasn't necessary in the toplevel @code{:pathname} argument 3485 (but necessary in other @code{:pathname} arguments). 3473 3486 3474 3487 @item … … 3486 3499 Or you can fix your implementation to not be quite that slow 3487 3500 when recursing through directories. 3488 @emph{Update}: performance bug fixed the hard way in 2.010.3501 @emph{Update}: This performance bug fixed the hard way in 2.010. 3489 3502 3490 3503 @item … … 3543 3556 If ASDF isn't loaded yet, then @code{(require "asdf")} 3544 3557 should load the version of ASDF that is bundled with your system. 3558 If possible so should @code{(require "ASDF")}. 3545 3559 You may have it load some other version configured by the user, 3546 3560 if you allow such configuration. -
trunk/abcl/src/org/armedbear/lisp/asdf.lisp
r13922 r13963 1 1 ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*- 2 ;;; This is ASDF 2.2 1: Another System Definition Facility.2 ;;; This is ASDF 2.22: Another System Definition Facility. 3 3 ;;; 4 4 ;;; Feedback, bug reports, and patches are all welcome: … … 117 117 ;; "2.345.0.7" would be your seventh local modification of official release 2.345 118 118 ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6 119 (asdf-version "2.2 1")119 (asdf-version "2.22") 120 120 (existing-asdf (find-class 'component nil)) 121 121 (existing-version *asdf-version*) … … 1344 1344 :accessor module-if-component-dep-fails) 1345 1345 (default-component-class 1346 :initform *default-component-class*1346 :initform nil 1347 1347 :initarg :default-component-class 1348 1348 :accessor module-default-component-class))) … … 2789 2789 (default-directory)))) 2790 2790 2791 (defun* find-class* (x &optional (errorp t) environment) 2792 (etypecase x 2793 ((or standard-class built-in-class) x) 2794 (symbol (find-class x errorp environment)))) 2795 2791 2796 (defun* class-for-type (parent type) 2792 2797 (or (loop :for symbol :in (list … … 2800 2805 :return class) 2801 2806 (and (eq type :file) 2802 (or (and parent (module-default-component-class parent)) 2803 (find-class *default-component-class*))) 2807 (find-class* 2808 (or (loop :for module = parent :then (component-parent module) :while module 2809 :thereis (module-default-component-class module)) 2810 *default-component-class*) nil)) 2804 2811 (sysdef-error "don't recognize component type ~A" type))) 2805 2812 … … 2887 2894 ;; the following list of keywords is reproduced below in the 2888 2895 ;; remove-keys form. important to keep them in sync 2889 components pathname default-component-class2896 components pathname 2890 2897 perform explain output-files operation-done-p 2891 2898 weakly-depends-on depends-on serial in-order-to … … 2914 2921 :parent parent 2915 2922 (remove-keys 2916 '(components pathname default-component-class2923 '(components pathname 2917 2924 perform explain output-files operation-done-p 2918 2925 weakly-depends-on depends-on serial in-order-to) … … 2928 2935 (component-pathname ret) ; eagerly compute the absolute pathname 2929 2936 (when (typep ret 'module) 2930 (setf (module-default-component-class ret)2931 (or default-component-class2932 (and (typep parent 'module)2933 (module-default-component-class parent))))2934 2937 (let ((*serial-depends-on* nil)) 2935 2938 (setf (module-components ret) … … 3688 3691 (when (plusp (length h)) `((,(truenamize h) ,*wild-inferiors*) ()))) 3689 3692 ;; The below two are not needed: no precompiled ASDF system there 3690 ;;#+ecl (,(translate-logical-pathname "SYS:**;*.*") ())3693 #+ecl (,(translate-logical-pathname "SYS:**;*.*") ()) 3691 3694 ;; #+clozure ,(ignore-errors (list (wilden (let ((*default-pathname-defaults* #p"")) (truename #p"ccl:"))) ())) 3692 3695 ;; All-import, here is where we want user stuff to be: … … 4012 4015 4013 4016 (defun* directory-files (directory &optional (pattern *wild-file*)) 4014 (setf directory (pathname directory)) 4015 (when (wild-pathname-p directory) 4016 (error "Invalid wild in ~S" directory)) 4017 (unless (member (pathname-directory pattern) '(() (:relative)) :test 'equal) 4018 (error "Invalid file pattern ~S" pattern)) 4019 (when (typep directory 'logical-pathname) 4020 (setf pattern (make-pathname-logical pattern (pathname-host directory)))) 4021 (let ((entries (ignore-errors (directory* (merge-pathnames* pattern directory))))) 4022 (filter-logical-directory-results 4023 directory entries 4024 #'(lambda (f) 4025 (make-pathname :defaults directory 4026 :name (pathname-name f) 4027 :type (make-pathname-component-logical (pathname-type f)) 4028 :version (make-pathname-component-logical (pathname-version f))))))) 4017 (let ((dir (pathname directory))) 4018 (when (typep dir 'logical-pathname) 4019 ;; Because of the filtering we do below, 4020 ;; logical pathnames have restrictions on wild patterns. 4021 ;; Not that the results are very portable when you use these patterns on physical pathnames. 4022 (when (wild-pathname-p dir) 4023 (error "Invalid wild pattern in logical directory ~S" directory)) 4024 (unless (member (pathname-directory pattern) '(() (:relative)) :test 'equal) 4025 (error "Invalid file pattern ~S for logical directory ~S" pattern directory)) 4026 (setf pattern (make-pathname-logical pattern (pathname-host dir)))) 4027 (let ((entries (ignore-errors (directory* (merge-pathnames* pattern dir))))) 4028 (filter-logical-directory-results 4029 directory entries 4030 #'(lambda (f) 4031 (make-pathname :defaults dir 4032 :name (make-pathname-component-logical (pathname-name f)) 4033 :type (make-pathname-component-logical (pathname-type f)) 4034 :version (make-pathname-component-logical (pathname-version f)))))))) 4029 4035 4030 4036 (defun* directory-asd-files (directory) … … 4400 4406 (system (find-system (string-downcase name) nil))) 4401 4407 (when system 4402 (operate *require-asdf-operator* system :verbose nil )4408 (operate *require-asdf-operator* system :verbose nil :force-not (loaded-systems)) 4403 4409 t)))) 4404 4410
Note: See TracChangeset
for help on using the changeset viewer.