Custom Query (1030 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (907 - 909 of 1030)

Ticket Resolution Summary Owner Reporter
#698 fixed premature package checking in reader Gary Byers gz
Description

See ticket:697#comment:2

#629 fixed prepended ELF symbols and execute permissions R. Matthew Emerson gz
Description

At 11/18/2009 03:43 AM, Gary Byers wrote:

The :PREPEND-KERNEL option to SAVE-APPLICATION sets the execute permission bits on the output file; this is appropriate when the intent is to create an executable file (by prepending the lisp kernel to the heap image), but isn't when the option is used to prepend ELF symbol info for oprofile's benefit. (It seems that the ELF file looks "executable enough" to Linux that it tries to to execute it and segfaults; it'd be nicer and less confusing if attempts to execute the image file just failed like other attempts to execute non-executable files fail.)

One way to address this problem without changing any interfaces would be to have the code that processes the :PREPEND-KERNEL option copy the executable bits from the prepended file to the output file (rather than unconditionally setting them), so that an image with an executable file prepended to it would generally be executable and an image with symbol info prepended to it would generally not be.

I think that this'd be as simple as changing (in OPEN-DUMPLISP-FILE)

    (when prepend-fd
      (setq mode (logior #o111 mode)))

to

    (when prepend-fd
      (let* ((prepend-fd-mode (nth-value 1 (%fstat prepend-fd))))
        (setq mode (logior (logand prepend-fd-mode #o111) mode))))
#9 fixed problem compiling CLASP Gary Byers Joshua Moody
Description

Hi Gary,

I found another problem related to the compilation of CLASP.

OpenMCL 1.1-pre-070408: darwin-ppc32, darwin-ppc64, linux-x86-64

  1. updated from cvs at 12:00 PM 16 April 2007
  1. executed (ccl::rebuild-ccl :full t) on platforms listed above
  1. encountered the following problem on all platforms listed above when compiling:
CLASP> (defun invert-matrix (matrix &optional into-matrix)                                                                                                                                                
  "If matrix is singular returns nil, else returns its inverse.                                                                                                                                           
   If into-matrix is supplied, inverse is returned in it,                                                                                                                                                 
    otherwise a new array is created."                                                                                                                                                                    
  (let* ((dims (array-dimensions matrix))                                                                                                                                                                 
         (rows (car dims))                                                                                                                                                                                
         (cols (cadr dims)))                                                                                                                                                                              
    (unless (= rows cols)                                                                                                                                                                                 
      (error () "Matrix ~s not square" matrix))                                                                                                                                                           
    (if (null into-matrix)                                                                                                                                                                                
        (setq into-matrix (make-array dims))                                                                                                                                                              
        (let ((dims-into (array-dimensions into-matrix)))                                                                                                                                                 
          (unless (and (= rows (car dims-into)) (= cols (cadr dims-into)))                                                                                                                                
            (error () "into-matrix ~s does not have same dimensions as matrix ~s" into-matrix                                                                                                             
                   matrix))))                                                                                                                                                                             
    (let ((xcols (+ rows cols))                                                                                                                                                                           
          (vv (make-array rows)))                                                                                                                                                                         
      (dotimes (r rows)                                                                                                                                                                                   
        (let ((v (make-array xcols :initial-element #o0)))                                                                                                                                                
          (setf (aref v (+ r rows)) #o1)                                                                                                                                                                  
          (dotimes (c cols)                                                                                                                                                                               
            (setf (aref v c) (aref matrix r c)))                                                                                                                                                          
          (setf (aref vv r) v)))                                                                                                                                                                          
      (dotimes (r rows)                                                                                                                                                                                   
        (let ((imax #o-1)                                                                                                                                                                                 
              (vmax #o-1))                                                                                                                                                                                
          (do ((i r (1+ i)))                                                                                                                                                                              
              ((= i rows))                                                                                                                                                                                
            (let ((v (abs (aref (aref vv i) r))))                                                                                                                                                         
              (cond                                                                                                                                                                                       
                ((> v vmax) (setq vmax v) (setq imax i)))))                                                                                                                                               
          (cond ((zerop vmax) (return-from invert-matrix ())))                                                                                                                                            
          (cond ((not (= r imax))                                                                                                                                                                         
                 (let ((exch-temp (aref vv r)))                                                                                                                                                           
                   (setf (aref vv r) (aref vv imax))                                                                                                                                                      
                   (setf (aref vv imax) exch-temp)))))                                                                                                                                                    
        (let ((pivot-row (aref vv r)))                                                                                                                                                                    
          (do ((d (aref pivot-row r))                                                                                                                                                                     
               (i (1+ r) (1+ i)))                                                                                                                                                                         
              ((= i xcols))                                                                                                                                                                               
            (setf (aref pivot-row i)                                                                                                                                                                      
                  (/ (aref pivot-row i) d)))                                                                                                                                                              
          (do ((i (1+ r) (1+ i)))                                                                                                                                                                         
              ((= i rows))                                                                                                                                                                                
            (let ((row (aref vv i)))                                                                                                                                                                      
              (do ((d (aref row r))                                                                                                                                                                       
                   (j (1+ r) (1+ j)))                                                                                                                                                                     
                  ((= j xcols))                                                                                                                                                                           
                (setf (aref row j) (- (aref row j) (* d (aref pivot-row j)))))))))                                                                                                                        
      (do ((r (1- rows) (1- r)))                                                                                                                                                                          
          ((= r #o0))                                                                                                                                                                                     
        (let ((pivot-row (aref vv r)))                                                                                                                                                                    
          (do ((i (1- r) (1- i)))                                                                                                                                                                         
              ((< i #o0))
             (do ((d (aref row r))                                                                                                                                                                       
                   (j rows (1+ j)))                                                                                                                                                                       
                  ((= j xcols))                                                                                                                                                                           
                (setf (aref row j) (- (aref row j) (* d (aref pivot-row j)))))))))                                                                                                                        
      (dotimes (r rows)                                                                                                                                                                                   
        (let ((v (aref vv r)))                                                                                                                                                                            
          (dotimes (c cols)                                                                                                                                                                               
            (setf (aref into-matrix r c) (aref v (+ c cols)))))))                                                                                                                                         
    (values into-matrix))) =>
value (VARIABLE  . "ccl:l1;l1-typesys.lisp.newest") is not of the expected type (SATISFIES CCL::CTYPE-P).

Backtrace:
  0: (CCL::TYPE-SPECIFIER)
  1: (CCL::ACODE-FORM-TYPE '(#<VAR  #x30004147ECAD>) #<VAR  #x30004147EC2D>)
  2: (CCL::NX1-NOTE-VAR-BINDING '(25674 (24614 #<VAR  #x30004147F7DD>) (24614 #<VAR  #x30004144330D>)) '(#<VAR  #x30004147ECAD>))
  3: (CCL::NX1-NOTE-VAR-BINDINGS '(#<VAR  #x30004147EC2D> #<VAR  #x30004147ECAD>) 'NIL)
  4: (CCL::NX1-LET '(LET ((D #) (I #)) (TAGBODY (GO #1=#:G38) #:G37 (TAGBODY #) (PSETQ I #) #1# (UNLESS # #))) #<LEXICAL-ENVIRONMENT  #x30004147F48D>)
  5: (CCL::NX1-COMBINATION #<LEXICAL-ENVIRONMENT  #x30004147F48D> '(LET ((D #) (I #)) (TAGBODY (GO #1=#:G38) #:G37 (TAGBODY #) (PSETQ I #) #1# (UNLESS # #))))
  6: (CCL::NX1-FORM '(LET ((D #) (I #)) (TAGBODY (GO #1=#:G38) #:G37 (TAGBODY #) (PSETQ I #) #1# (UNLESS # #))))
  7: (CCL::NX1-BLOCK '(BLOCK NIL (LET (# #) (TAGBODY # #:G37 # # #:G38 #))) #<LEXICAL-ENVIRONMENT  #x30004147F96D>)
  8: (CCL::NX1-COMBINATION #<LEXICAL-ENVIRONMENT  #x30004147F96D> '(DO ((D #) (I # #)) ((= I XCOLS)) (SETF (AREF PIVOT-ROW I) (/ # D))))
  9: (CCL::NX1-FORM '(DO ((D #) (I # #)) ((= I XCOLS)) (SETF (AREF PIVOT-ROW I) (/ # D))))
 10: (CCL::NX1-FORMLIST '((DO (# #) (#) (SETF # #)) (DO (#) (#) (LET # #))))
 11: (CCL::NX1-PROGN-BODY 'NIL)
 12: (CCL::NX1-ENV-BODY '((DO (# #) (#) (SETF # #)) (DO (#) (#) (LET # #))) #<LEXICAL-ENVIRONMENT  #x3000414430FD>)
 13: (CCL::NX1-LET* '(LET* ((PIVOT-ROW #)) (DO (# #) (#) (SETF # #)) (DO (#) (#) (LET # #))) #<LEXICAL-ENVIRONMENT  #x3000414430FD>)

This function can be found in clasp/dev/matrices.lisp.

This is old code (pre-1990) that compiles fine under ACL, MCL, LispWorks, and the OpenMCL 2006-10-24 release.

I've attached a tarball of the CLASP asdf system (unix-newlines).

Thanks,

jjm

Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.