sprof output not ideal for unnamed LAMBDAs

Bug #805100 reported by David Lichteblau on 2011-07-03
This bug affects 1 person
Affects Status Importance Assigned to Milestone

Bug Description

In an effort to distinguish different unnamed LAMBDAs, sprof currently reports them using the code component's start PC. That makes output technically correct, but not very informative.

Untested patch against ~ attached just for the record.

Nikodemus Siivola (nikodemus) wrote :

An alternative take.

CL-USER> (defun bar (x) (lambda () (incf x)))

CL-USER> (bar 12)
#<CLOSURE (LAMBDA () :IN BAR) {10038C3869}>

Similarly for FLET and LABELS.

Changed in sbcl:
assignee: nobody → Nikodemus Siivola (nikodemus)
importance: Undecided → Medium
status: New → Triaged
Changed in sbcl:
status: Triaged → In Progress
Nikodemus Siivola (nikodemus) wrote :

commit 2050b7c3644ab235aaf1959795bb33e89bd571a3
Author: Nikodemus Siivola <email address hidden>
Date: Tue Aug 9 19:05:42 2011 +0300

    better inner and anonymous function names

     * New concept: "name context". It is either name of the outermost non-NIL
       block in the current lexenv (FIXME: would be better to have the outermost
       global function name instead) or the source-namestring of the file in which
       the function resides.

     * Name anonymous functions as

        (LAMBDA <lambda-list> :IN <context>)

     * Name FLET and LABELS functions as

        (FLET <name> :IN <context>)


        (LABELS <name> :IN <context>)

       Adjust tests to suit.

     * Remove BLOCK-GENSYM as this fulfills the same goals, and together
       they make backtraces overly noisy.

Changed in sbcl:
assignee: Nikodemus Siivola (nikodemus) → nobody
status: In Progress → Fix Committed
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers