sprof output not ideal for unnamed LAMBDAs

Bug #805100 reported by David Lichteblau
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
Medium
Unassigned

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 ~1.0.47.30 attached just for the record.

Revision history for this message
David Lichteblau (david-lichteblau) wrote :
Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

An alternative take.

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

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
Revision history for this message
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>)

       and

        (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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.