Changeset 15739


Ignore:
Timestamp:
Feb 18, 2013, 1:02:50 AM (7 years ago)
Author:
gb
Message:

merge recent changes from trunk

Location:
release/1.9/source
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/1.9/source/lib/read.lisp

    r15306 r15739  
    9090          (make-array nil :initial-contents (read-internal stream t nil t)))
    9191         ((and (integerp dimensions) (> dimensions 0))
    92           (let ((init-list (read-internal stream t nil t)))
    93             (cond ((not (typep init-list 'sequence))
    94                    (signal-reader-error stream "The form following a #~SA reader macro should have been a sequence, but it was: ~S" dimensions init-list))
    95                   ((= (length init-list) 0)
     92          (let ((initial-contents (read-internal stream t nil t)))
     93            (cond ((not (typep initial-contents 'sequence))
     94                   (signal-reader-error stream "The form following a #~SA reader macro should have been a sequence, but it was: ~S" dimensions initial-contents))
     95                  ((= (length initial-contents) 0)
    9696                   (make-array (make-list dimensions :initial-element 0)))
    9797                  ((= dimensions 1)
    98                    (make-array (length init-list) :initial-contents init-list))
    99                   ((vectorp init-list)
     98                   (make-array (length initial-contents) :initial-contents initial-contents))
     99                  (t
    100100                   (let ((dlist (make-list dimensions)))
    101101                     (do ((dl dlist (cdr dl))
    102                           (il init-list (svref il 0)))
     102                          (il initial-contents (if (> (length il) 0)
     103                                                 (etypecase il
     104                                                   (list (car il))
     105                                                   ((vector t) (aref il 0))))))
    103106                         ((null dl))
    104                        (if (vectorp il)
    105                            (rplaca dl (length il))
    106                            (signal-reader-error stream "Initial contents for #A is inconsistent with dimensions: #~SA~S" dimensions init-list)))
    107                      (make-array dlist :initial-contents init-list)))
    108                   ((listp init-list)
    109                    (let ((dlist (make-list dimensions)))
    110                      (do ((dl dlist (cdr dl))
    111                           (il init-list (car il)))
    112                          ((null dl))
    113                        (if (listp il)
    114                            (rplaca dl (list-length il))
    115                            (signal-reader-error stream "Initial contents for #A is inconsistent with dimensions: #~SA~S" dimensions init-list)))
    116                      (make-array dlist :initial-contents init-list)))
    117                   (t
    118                    (signal-reader-error stream "#~SA~S invalid." dimensions init-list)))))
     107                       (rplaca dl (length il)))
     108                     (make-array dlist :initial-contents initial-contents))))))
    119109         (t (signal-reader-error stream "Dimensions argument to #A not a non-negative integer: ~S" dimensions)))))
    120110
  • release/1.9/source/lisp-kernel/platform-freebsdx8664.h

    r15706 r15739  
    6060extern void freebsd_sigreturn(ExceptionInformation *);
    6161#define SIGNUM_FOR_INTN_TRAP SIGBUS
    62 #define IS_MAYBE_INT_TRAP(info,xp) ((xp->uc_mcontext.mc_trapno == T_PROTFLT) && ((xp->uc_mcontext.mc_err & 7) == 2))
    63 #define IS_PAGE_FAULT(info,xp) (xp->uc_mcontext.mc_trapno == T_PAGEFLT)
     62#define IS_MAYBE_INT_TRAP(info,xp) (((uint32_t)(xp->uc_mcontext.mc_trapno) == T_PROTFLT) && ((xp->uc_mcontext.mc_err & 7) == 2))
     63#define IS_PAGE_FAULT(info,xp) ((uint32_t)(xp->uc_mcontext.mc_trapno) == T_PAGEFLT)
    6464#define SIGRETURN(context) do {freebsd_sigreturn(context); \
    6565    Bug(context,"sigreturn returned"); \
  • release/1.9/source/lisp-kernel/threads.h

    r15473 r15739  
    2525#ifndef WINDOWS
    2626#include <pthread.h>
     27#include <dlfcn.h>
    2728#endif
    2829#ifdef WINDOWS
Note: See TracChangeset for help on using the changeset viewer.