Custom Query (1030 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (844 - 846 of 1030)

Ticket Resolution Summary Owner Reporter
#1280 fixed Cannot INLINE functions created by MACROLET Robert Smith
Description

A function defined with MACROLET that is declaimed as INLINE doesn't seem to actually inline at the call site.

If you manually write the definition out without the MACROLET, inlining works as expected.

I have tried locally declaring the function as INLINE at the call site, and I have also tried doing a DECLAIM INLINE outside of the MACROLET, all to no avail.

See the interactions below to reproduce.

File def.lisp

(defpackage :foo
  (:use :cl)
  (:export fun))

(in-package :foo)

(macrolet ((def (name op)
             `(progn
                (declaim (inline ,name))
                (defun ,name (a b)
                  (,op a b)))))
  (def fun +))

File use.lisp

(in-package :cl-user)

(defun bar (a b)
  (declare (optimize speed (safety 0) (debug 0) (space 0)))
  (foo:fun a (* a b)))

REPL interaction (note the line marked with !!!!...!!)

CL-USER> (lisp-implementation-type)
"Clozure Common Lisp"
CL-USER> (lisp-implementation-version)
"Version 1.11-dev-r16361M-trunk  (LinuxARM32)"
CL-USER> (load (compile-file "def.lisp"))
#P"def.lafsl"
CL-USER> (load (compile-file "use.lisp"))
#P"use.lafsl"
CL-USER> (disassemble #'bar)
;; Source: "use.lisp.newest":23-122
  (mov imm0 (:$ 19))
  (stmdb (:! sp) (imm0 vsp fn lr))
  (mov fn temp2)
  (stmdb (:! vsp) (arg_z arg_y))        ;[12]

;;; (* a b)
  (sploadlr .SPbuiltin-times)           ;[16]
  (blx lr)

;;; (foo:fun a (* a b))
  (ldr arg_y (:@ vsp (:$ 4)))           ;[24]
  (mov nargs (:$ 8))
  (ldr temp1 (:@ fn 'FOO:FUN))          ; *** !!!!!!!!!!!!!!
  (ldmia (:! sp) (imm0 vsp fn lr))
  (ldr temp2 (:@ temp1 (:$ 6)))         ;[40]
  (ldr pc (:@ temp2 (:$ -2)))

;;; #<no source text>
NIL
#287 fixed Can't trace single-method generic functions gz gz
Description
? (defmethod frotz (x) (print x))
#<STANDARD-METHOD FROTZ (T)>
? (trace frotz)
NIL
? (frotz 17)
0> Calling (FROTZ 17) 
> Error: Too many arguments in call to #<METHOD-FUNCTION FROTZ (T)>:
>        2 arguments provided, at most 1 accepted. 
> While executing: #<STANDARD-METHOD FROTZ (T)>, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > 
#634 fixed Can't recover trac password R. Matthew Emerson gz
Description

See http://clozure.com/pipermail/openmcl-devel/2009-November/010735.html

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