Changeset 11299


Ignore:
Timestamp:
08/31/08 20:19:05 (15 years ago)
Author:
ehuelsmann
Message:

Fix DEFPACKAGE.24 and DEFPACKAGE.25 ansi-tests.

We're now at 58 failing tests.

Location:
trunk/j/src/org/armedbear/lisp
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Autoload.java

    r11297 r11299  
    377377        autoload("hash-table-test", "HashTableFunctions");
    378378        autoload("hash-table-test", "HashTableFunctions");
    379         autoload("import", "PackageFunctions");
     379        autoload("%import", "PackageFunctions");
    380380        autoload("input-stream-p", "input_stream_p");
    381381        autoload("integer-decode-float", "FloatFunctions");
  • trunk/j/src/org/armedbear/lisp/defpackage.lisp

    r11297 r11299  
    4747                     :format-arguments
    4848                     (list key1 key2 common)))))))))
     49
     50(defun ensure-available-symbols (symbols)
     51   symbols)
    4952
    5053(defmacro defpackage (package &rest options)
     
    119122          ,@(apply #'append (mapcar #'rest shadowing-imports))))
    120123    `(%defpackage ,(string package) ',nicknames ',size
    121                   ',shadows ',shadowing-imports ',(if use-p use nil)
    122                   ',imports ',interns ',exports ',doc)))
     124                  ',shadows (ensure-available-symbols ',shadowing-imports)
     125                  ',(if use-p use nil)
     126                  (ensure-available-symbols ',imports) ',interns ',exports ',doc)))
  • trunk/j/src/org/armedbear/lisp/package.lisp

    r11297 r11299  
    3535      (return-from make-package (find-package name)))))
    3636
     37;; Redefines function from defpackage.lisp, because there it's lacking restart-case
     38
     39(defun ensure-available-symbols (imports)
     40  (remove nil
     41          (mapcar #'(lambda (package-and-symbols)
     42                      (let* ((package (find-package (designated-package-name (car package-and-symbols))))
     43                             (new-symbols
     44                              (remove nil
     45                                      (mapcar #'(lambda (sym)
     46                                                  (restart-case
     47                                                      (progn
     48                                                        (unless (find-symbol sym package)
     49                                                          (error 'package-error
     50                                                                 "The symbol ~A is not present in package ~A." sym (package-name package)))
     51                                                        sym)
     52                                                    (skip ()
     53                                                      :report "Skip this symbol."
     54                                                      nil)))
     55                                              (cdr package-and-symbols)))))
     56                        (when new-symbols
     57                          (cons package new-symbols))))
     58                  imports)))
     59
     60
     61
     62
    3763(defun import (symbols &optional (package *package* package-supplied-p))
    3864  (dolist (symbol (if (listp symbols) symbols (list symbols)))
Note: See TracChangeset for help on using the changeset viewer.