annotate lisp/cedet/semantic/elp.el @ 104426:7b59e774c522

cedet/semantic/elp.el: New file.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 29 Aug 2009 22:15:12 +0000
parents
children 9d5ed9214322
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
104426
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
1 ;;; semantic-elp.el --- Bind ELP to measure Semantic
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
2
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
3 ;; Copyright (C) 2008, 2009 Free Software Foundation, Inc.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
4
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
5 ;; Author: Eric M. Ludlam <eric@siege-engine.com>
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
6 ;; X-RCS: $Id: semantic-elp.el,v 1.16 2009/04/02 01:18:33 zappo Exp $
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
7
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
9
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
10 ;; GNU Emacs is free software: you can redistribute it and/or modify
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
12 ;; the Free Software Foundation, either version 3 of the License, or
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
13 ;; (at your option) any later version.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
14
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
19
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
22
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
23 ;;; Commentary:
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
24 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
25 ;; Provide fast ways to profile various (often slow) Semantic processes.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
26
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
27 (require 'elp)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
28 (require 'data-debug)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
29 (require 'semantic/adebug)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
30 (require 'semantic/tag-ls)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
31 (require 'semantic/tag-file)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
32 (require 'semantic/db)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
33 (require 'semantic/db-find)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
34 (require 'semantic/db-typecache)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
35 (require 'semantic/scope)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
36 (require 'semantic/analyze/fcn)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
37 (require 'semantic/analyze)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
38 (require 'semantic/analyze/complete)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
39
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
40 ;;; Code:
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
41 (defvar semantic-elp-emacs-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
42 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
43 append
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
44 copy-sequence
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
45 expand-file-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
46 file-exists-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
47 file-name-directory
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
48 file-name-nondirectory
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
49 file-attributes
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
50 file-truename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
51 find-buffer-visiting
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
52 length
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
53 locate-file
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
54 nconc
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
55 nreverse
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
56 sort
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
57 string<
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
58 string=
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
59 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
60 "List of Emacs functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
61
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
62 (defvar semantic-elp-eieio-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
63 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
64 eieio-generic-call
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
65 eieio-generic-call-primary-only
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
66 eieiomt-method-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
67 eieio-generic-form
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
68 eieio-oref
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
69 eieio-oset
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
70 obj-of-class-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
71 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
72 "List of EIEIO functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
73
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
74 (defvar semantic-elp-ede-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
75 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
76 ede-current-project
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
77 ede-directory-get-open-project
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
78 ede-expand-filename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
79 ede-expand-filename-impl
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
80 ede-locate-file-in-project
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
81 ede-locate-file-in-project-impl
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
82 ede-system-include-path
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
83 ede-toplevel
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
84 ede-toplevel-project
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
85 ede-directory-project-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
86 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
87 "List of EDE functions to watch out for.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
88
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
89 (defvar semantic-elp-semantic-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
90 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
91 semantic-ctxt-current-argument
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
92 semantic-ctxt-current-assignment
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
93 semantic-ctxt-current-class-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
94 semantic-ctxt-current-function
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
95 semantic-ctxt-current-symbol-and-bounds
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
96 semantic-current-tag
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
97 semantic-dependency-tag-file
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
98 semantic-equivalent-tag-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
99 semantic-fetch-tags
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
100 semantic-fetch-tags-fast
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
101 semantic-find-tag-by-overlay
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
102 semantic-sort-tags-by-name-decreasing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
103 semantic-sort-tags-by-name-increasing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
104 semantic-sort-tags-by-name-then-type-increasing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
105 semantic-sort-tags-by-type-decreasing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
106 semantic-sort-tags-by-type-increasing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
107 semantic-tag-clone
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
108 semantic-tag-components
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
109 semantic-tag-copy
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
110 semantic-tag-external-member-children
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
111 semantic-tag-file-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
112 semantic-tag-function-arguments
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
113 semantic-tag-function-parent
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
114 semantic-tag-get-attribute
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
115 semantic-tag-in-buffer-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
116 semantic-tag-include-filename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
117 ;;semantic-tag-lessp-name-then-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
118 semantic-tag-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
119 semantic-tag-new-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
120 semantic-tag-of-class-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
121 semantic-tag-of-type-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
122 semantic-tag-of-type-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
123 semantic-tag-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
124 semantic-tag-prototype-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
125 semantic-tag-set-faux
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
126 semantic-tag-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
127 semantic-tag-type-members
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
128 semantic-tag-type-superclasses
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
129 semantic-tag-with-position-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
130 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
131 "List of core Semantic functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
132 (defvar semantic-elp-semantic-find-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
133 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
134 semantic-find-tags-by-class
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
135 semantic-find-tags-by-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
136 semantic-find-tags-by-name-regexp
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
137 semantic-find-tags-by-scope-protection
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
138 semantic-find-tags-by-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
139 semantic-find-tags-for-completion
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
140 semantic-find-tags-included
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
141 semantic-find-tags-of-compound-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
142 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
143 "List of semantic-find routines for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
144
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
145 (defvar semantic-elp-semanticdb-core-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
146 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
147 semanticdb-cache-get
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
148 semanticdb-current-database-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
149 semanticdb-file-table
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
150 semanticdb-file-table-object
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
151 semanticdb-full-filename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
152 semanticdb-get-buffer
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
153 semanticdb-get-table-index
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
154 semanticdb-refresh-references
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
155 semanticdb-refresh-table
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
156 semanticdb-needs-refresh-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
157 semanticdb-directory-loaded-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
158 semanticdb-full-filename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
159 semanticdb-create-table-for-file
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
160 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
161 "List of core Semanticdb functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
162
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
163 (defvar semantic-elp-include-path-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
164 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
165 semanticdb-find-incomplete-cache-entries-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
166 semanticdb-find-load-unloaded
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
167 semanticdb-find-table-for-include
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
168 semanticdb-find-throttle-active-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
169 semanticdb-find-translate-path-default
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
170 semanticdb-find-translate-path-brutish-default
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
171 semanticdb-find-translate-path-includes--internal
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
172 semanticdb-find-translate-path-includes-default
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
173 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
174 "List of include path calculation functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
175
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
176 (defvar semantic-elp-semanticdb-find-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
177 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
178 semanticdb-fast-strip-find-results
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
179 semanticdb-find-results-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
180 semanticdb-find-tags-by-class
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
181 semanticdb-find-tags-by-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
182 semanticdb-find-tags-by-name-regexp
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
183 semanticdb-find-tags-collector
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
184 semanticdb-find-tags-external-children-of-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
185 semanticdb-find-tags-for-completion
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
186 semanticdb-strip-find-results
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
187 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
188 "List of semanticdb find functions to profile.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
189 You may also need `semantic-elp-include-path-list'.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
190
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
191 (defun semantic-elp-core-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
192 "Do an ELP reset, and enable profiling of the core system."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
193 (elp-reset-all)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
194 (elp-instrument-list semantic-elp-emacs-core-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
195 (elp-instrument-list semantic-elp-eieio-core-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
196 (elp-instrument-list semantic-elp-ede-core-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
197 (elp-instrument-list semantic-elp-semantic-core-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
198 (elp-instrument-list semantic-elp-semanticdb-core-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
199 (elp-instrument-list semantic-elp-semanticdb-find-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
200 (elp-instrument-list semantic-elp-include-path-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
201 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
202
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
203
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
204 (defun semantic-elp-include-path-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
205 "Enable profiling for `semanticdb-find-translate-path'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
206 (semantic-elp-core-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
207 (elp-set-master 'semanticdb-find-translate-path-default)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
208 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
209
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
210 (defvar semantic-elp-typecache-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
211 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
212 semantic-analyze-split-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
213 semanticdb-get-typecache
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
214 semanticdb-typecache-merge-streams
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
215 semanticdb-typecache-safe-tag-members
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
216 semanticdb-typecache-apply-filename
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
217 semanticdb-typecache-file-tags
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
218 semanticdb-typecache-include-tags
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
219 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
220 "List of typecaching functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
221
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
222 (defun semantic-elp-profile-typecache (tab)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
223 "Profile the typecache. Start with table TAB."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
224 (let ((tc (semanticdb-get-typecache tab)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
225 (semanticdb-typecache-file-tags tab)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
226 (semanticdb-typecache-include-tags tab)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
227 tc))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
228
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
229 (defun semantic-elp-typecache-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
230 "Enable profiling for `semanticdb-get-typecache'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
231 (semantic-elp-include-path-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
232 (elp-instrument-list semantic-elp-typecache-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
233 (elp-set-master 'semantic-elp-profile-typecache)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
234 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
235
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
236 (defvar semantic-elp-scope-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
237 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
238 semantic-analyze-find-tag
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
239 semantic-analyze-scope-nested-tags
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
240 semantic-analyze-scoped-types
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
241 semantic-analyze-scoped-types
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
242 semantic-analyze-tag-prototype-p
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
243 semantic-analyze-scoped-type-parts
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
244 semantic-calculate-scope
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
245 semantic-ctxt-scoped-types
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
246 semantic-get-all-local-variables
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
247 semantic-scope-find
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
248 semanticdb-typecache-find
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
249 semanticdb-typecache-merge-streams
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
250 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
251 "List of scope calculation functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
252
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
253 (defun semantic-elp-scope-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
254 "Enable profiling for `semanticdb-calculate-scope'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
255 (semantic-elp-core-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
256 (elp-instrument-list semantic-elp-typecache-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
257 (elp-instrument-list semantic-elp-scope-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
258 (elp-set-master 'semantic-calculate-scope)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
259 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
260
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
261 (defvar semantic-elp-analyze-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
262 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
263 semantic-analyze-current-symbol
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
264 semantic-analyze-current-context
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
265 semantic-analyze-dereference-metatype
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
266 semantic-analyze-find-tag-sequence
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
267 semantic-analyze-interesting-tag
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
268 semantic-analyze-pop-to-context
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
269 semantic-analyze-select-best-tag
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
270 semantic-analyze-tag-type
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
271 semantic-analyze-type-to-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
272 semantic-analyze-type-constraint
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
273 semantic-analyze-scoped-type-parts
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
274 semantic-cache-data-to-buffer
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
275 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
276 "List of analyzer calculation functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
277
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
278 (defun semantic-elp-analyze-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
279 "Enable profiling for `semanticdb-analyze-current-context'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
280 (semantic-elp-scope-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
281 (elp-instrument-list semantic-elp-analyze-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
282 (elp-set-master 'semantic-analyze-current-context)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
283 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
284
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
285 (defvar semantic-elp-symref-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
286 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
287 semantic-symref-hits-in-region
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
288 semantic-symref-test-count-hits-in-tag
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
289 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
290 "List of symref functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
291
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
292 (defun semantic-elp-analyze-symref-hits ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
293 "Enable profiling for `semanticdb-analyze-current-context'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
294 (semantic-elp-analyze-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
295 (elp-instrument-list semantic-elp-symref-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
296 (elp-set-master 'semantic-symref-test-count-hits-in-tag)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
297 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
298
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
299 (defvar semantic-elp-complete-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
300 '(
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
301 semantic-analyze-possible-completions
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
302 semantic-analyze-possible-completions-default
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
303 semantic-analyze-tags-of-class-list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
304 semantic-analyze-type-constants
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
305 semantic-unique-tag-table-by-name
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
306 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
307 "List of smart completion functions for profiling.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
308
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
309 (defun semantic-elp-complete-enable ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
310 "Enable profiling for `semanticdb-analyze-current-context'."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
311 (semantic-elp-analyze-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
312 (elp-instrument-list semantic-elp-complete-list)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
313 (elp-set-master 'semantic-analyze-possible-completions)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
314 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
315
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
316 ;;; Storage Classes
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
317 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
318 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
319 (defclass semantic-elp-data ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
320 ((raw :initarg :raw
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
321 :type list
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
322 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
323 "The raw ELP data.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
324 (sort :initform time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
325 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
326 "Which column do we sort our data by during various dumps.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
327 (sorted :initform nil
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
328 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
329 "The sorted and filtered version of this data.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
330 (total :initarg :total
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
331 :initform nil
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
332 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
333 "The total time spent in the operation.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
334 Recorded outside of ELP.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
335 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
336 "Class for managing ELP data.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
337
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
338 (defmethod semantic-elp-change-sort ((data semantic-elp-data) &optional newsort)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
339 "Change the sort in DATA object to NEWSORT."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
340 (cond ((eq newsort 'rotate)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
341 (let* ((arot '((time . avg)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
342 (avg . calls)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
343 (calls . name)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
344 (name . time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
345 (next (cdr (assoc (oref data sort) arot)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
346 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
347 (oset data sort next)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
348 ((null newsort)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
349 nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
350 (t
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
351 (oset data sort newsort)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
352 (let ((r (copy-sequence (oref data raw)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
353 (s (oref data sort)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
354 (cond ((eq s 'time)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
355 (oset data sorted (sort r (lambda (a b)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
356 (> (aref a 1) (aref b 1))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
357 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
358 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
359 ((eq s 'avg)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
360 (oset data sorted (sort r (lambda (a b)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
361 (> (aref a 2) (aref b 2))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
362 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
363 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
364 ((eq s 'calls)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
365 (oset data sorted (sort r (lambda (a b)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
366 (> (aref a 0) (aref b 0))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
367 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
368 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
369 ((eq s 'name)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
370 (oset data sorted (sort r (lambda (a b)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
371 (string< (aref a 3) (aref b 3))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
372 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
373 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
374 (t (message "Don't know how to resort with %s" s)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
375 ))))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
376
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
377 (defun semantic-elp-goto-function (point)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
378 "Goto the function from the ELP data.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
379 Argument POINT is where to get the data from."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
380 (let* ((data (get-text-property point 'ddebug))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
381 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
382 (find-function (intern-soft (aref data 3)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
383 ))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
384
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
385 (defmethod semantic-elp-dump-table ((data semantic-elp-data)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
386 prefix)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
387 "dump out the current DATA table using PREFIX before each line."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
388 (let* ((elpd (oref data sorted))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
389 (spaces (make-string (- (length prefix) 2) ? ))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
390 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
391 (data-debug-insert-simple-thing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
392 "Calls\t Total Time\t Avg Time/Call\tName"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
393 spaces " " 'underline)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
394 (dolist (d elpd)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
395 (when (> (aref d 0) 0) ;; We had some calls
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
396 (let ((start (point))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
397 (end nil))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
398 (data-debug-insert-simple-thing
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
399 (format " % 4d\t% 2.7f\t% 2.7f\t%s"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
400 (aref d 0) (aref d 1) (aref d 2) (aref d 3))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
401 spaces " " nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
402 (setq end (1- (point)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
403 (put-text-property start end 'ddebug d)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
404 (put-text-property start end 'ddebug-noexpand t)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
405 (put-text-property start end 'ddebug-function
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
406 'semantic-elp-goto-function)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
407 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
408 ))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
409 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
410 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
411
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
412 (defmethod data-debug/eieio-insert-slots ((data semantic-elp-data)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
413 prefix)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
414 "Show the fields of ELP data in an adebug buffer.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
415 Ignore the usual, and format a nice table."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
416 (data-debug-insert-thing (object-name-string data)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
417 prefix
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
418 "Name: ")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
419 (let* ((cl (object-class data))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
420 (cv (class-v cl)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
421 (data-debug-insert-thing (class-constructor cl)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
422 prefix
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
423 "Class: ")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
424 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
425
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
426 (data-debug-insert-thing (oref data :total)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
427 prefix
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
428 "Total Time Spent: ")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
429
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
430 (let ((s (oref data sort))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
431 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
432 ;; Show how it's sorted:
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
433 (let ((start (point))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
434 (end nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
435 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
436 (insert prefix "Sort Method: " (symbol-name s))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
437 (setq end (point))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
438 ;; (data-debug-insert-thing s prefix "Sort Method: ")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
439 (put-text-property start end 'ddebug data)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
440 (put-text-property start end 'ddebug-noexpand t)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
441 (put-text-property start end 'ddebug-indent(length prefix))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
442 (put-text-property start end 'ddebug-prefix prefix)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
443 (put-text-property start end 'ddebug-function
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
444 'semantic-elp-change-sort-adebug)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
445 (put-text-property start end 'help-echo
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
446 "Change the Sort by selecting twice.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
447 (insert "\n"))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
448
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
449 ;; How to sort the raw data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
450 (semantic-elp-change-sort data)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
451 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
452 ;; Display
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
453 (semantic-elp-dump-table data prefix)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
454 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
455
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
456 (defun semantic-elp-change-sort-adebug (point)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
457 "Change the sort function here. Redisplay.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
458 Argument POINT is where the text is."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
459 (let* ((data (get-text-property point 'ddebug))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
460 (prefix (get-text-property point 'ddebug-prefix))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
461 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
462 ;; Get rid of the old table.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
463 (data-debug-contract-current-line)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
464 ;; Change it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
465 (semantic-elp-change-sort data 'rotate)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
466 (end-of-line)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
467 (forward-word -1)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
468 (delete-region (point) (point-at-eol))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
469 (insert (symbol-name (oref data sort)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
470 ;; Redraw it.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
471 (save-excursion
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
472 (end-of-line)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
473 (forward-char 1)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
474 (semantic-elp-dump-table data prefix))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
475 ))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
476
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
477 (defclass semantic-elp-object-base (eieio-persistent)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
478 ((file-header-line :initform ";; SEMANTIC ELP Profiling Save File")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
479 (total :initarg :total
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
480 :type number
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
481 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
482 "Amount of time spent during the entire collection.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
483 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
484 "Base elp object.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
485
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
486 (defclass semantic-elp-object (semantic-elp-object-base)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
487 ((time :initarg :time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
488 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
489 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
490 "Times for calculating something.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
491 (answer :initarg :answer
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
492 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
493 "Any answer that might be useful."))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
494 "Simple elp object for remembering one analysis run.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
495
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
496 (defclass semantic-elp-object-analyze (semantic-elp-object-base)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
497 ((pathtime :initarg :pathtime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
498 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
499 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
500 "Times for calculating the include path.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
501 (typecachetime :initarg :typecachetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
502 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
503 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
504 "Times for calculating the typecache.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
505 (scopetime :initarg :scopetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
506 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
507 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
508 "Times for calculating the typecache")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
509 (ctxttime :initarg :ctxttime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
510 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
511 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
512 "Times for calculating the context.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
513 (completiontime :initarg :completiontime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
514 :type semantic-elp-data
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
515 :documentation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
516 "Times for calculating the completions.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
517 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
518 "Results from a profile run.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
519
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
520 ;;; ELP hackery.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
521 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
522
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
523 (defvar semantic-elp-last-results nil
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
524 "Save the last results from an ELP run for more post processing.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
525
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
526 (defun semantic-elp-results (name)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
527 "Fetch results from the last run, and display.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
528 Copied out of elp.el and modified only slightly.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
529 Argument NAME is the name to give the ELP data object."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
530 (let ((resvec
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
531 (mapcar
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
532 (function
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
533 (lambda (funsym)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
534 (let* ((info (get funsym elp-timer-info-property))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
535 (symname (format "%s" funsym))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
536 (cc (aref info 0))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
537 (tt (aref info 1)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
538 (if (not info)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
539 (insert "No profiling information found for: "
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
540 symname)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
541 ;;(setq longest (max longest (length symname)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
542 (vector cc tt (if (zerop cc)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
543 0.0 ;avoid arithmetic div-by-zero errors
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
544 (/ (float tt) (float cc)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
545 symname)))))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
546 elp-all-instrumented-list))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
547 ) ; end let
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
548 (setq semantic-elp-last-results (semantic-elp-data name :raw resvec))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
549 (elp-reset-all))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
550 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
551
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
552 ;;; The big analyze and timer function!
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
553 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
554 ;;
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
555
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
556 (defvar semantic-elp-last-run nil
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
557 "The results from the last elp run.")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
558
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
559 (defun semantic-elp-analyze ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
560 "Run the analyzer, using ELP to measure performance."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
561 (interactive)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
562 (let ((elp-recycle-buffers-p nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
563 (totalstart (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
564 (totalstop nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
565 start stop
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
566 path pathtime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
567 typecache typecachetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
568 scope scopetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
569 ctxt ctxttime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
570 completion completiontime)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
571 ;; Force tag table to be up to date.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
572 (semantic-clear-toplevel-cache)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
573 (semantic-fetch-tags)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
574 ;; Path translation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
575 (semantic-elp-include-path-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
576 (progn
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
577 (setq start (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
578 (setq path (semanticdb-find-translate-path nil nil))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
579 (setq stop (current-time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
580 (semantic-elp-results "translate-path")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
581 (setq pathtime semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
582 (oset pathtime :total (semantic-elapsed-time start stop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
583 ;; typecache
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
584 (let* ((tab semanticdb-current-table)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
585 (idx (semanticdb-get-table-index tab))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
586 (tc nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
587 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
588 (semantic-elp-typecache-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
589 (progn
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
590 (setq start (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
591 (setq tc (semantic-elp-profile-typecache tab))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
592 (setq stop (current-time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
593 (setq typecache tc))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
594 (semantic-elp-results "typecache")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
595 (setq typecachetime semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
596 (oset typecachetime :total (semantic-elapsed-time start stop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
597 ;; Scope
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
598 (semantic-elp-scope-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
599 (progn
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
600 (setq start (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
601 (setq scope (semantic-calculate-scope))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
602 (setq stop (current-time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
603 (semantic-elp-results "scope")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
604 (setq scopetime semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
605 (oset scopetime :total (semantic-elapsed-time start stop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
606 ;; Analyze!
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
607 (semantic-elp-analyze-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
608 (progn
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
609 (setq start (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
610 (setq ctxt (semantic-analyze-current-context)) ; skip caching
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
611 (setq stop (current-time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
612 (semantic-elp-results "analyze")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
613 (setq ctxttime semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
614 (oset ctxttime :total (semantic-elapsed-time start stop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
615 ;; Complete!
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
616 (semantic-elp-complete-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
617 (progn
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
618 (setq start (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
619 (setq completion (semantic-analyze-possible-completions ctxt))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
620 (setq stop (current-time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
621 (semantic-elp-results "complete")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
622 (setq completiontime semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
623 (oset completiontime :total (semantic-elapsed-time start stop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
624 ;; Finish it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
625 (setq totalstop (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
626 ;; build it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
627 (let ((elpobj (semantic-elp-object-analyze
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
628 "ELP"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
629 :total (semantic-elapsed-time totalstart totalstop)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
630 :pathtime pathtime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
631 :typecachetime typecachetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
632 :scopetime scopetime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
633 :ctxttime ctxttime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
634 :completiontime completiontime
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
635 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
636 (data-debug-show elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
637 (setq semantic-elp-last-run elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
638 (let ((saveas (read-file-name "Save Profile to: " (expand-file-name "~/")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
639 "semantic.elp" nil "semantic.elp")))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
640 (oset elpobj :file saveas)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
641 (eieio-persistent-save elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
642 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
643 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
644
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
645 (defun semantic-elp-idle-work ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
646 "Run the idle work scheduler, using ELP to measure performance."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
647 (interactive)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
648 (let ((elp-recycle-buffers-p nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
649 (totalstart nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
650 (totalstop nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
651 ans time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
652 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
653 ;; Path translation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
654 (semantic-elp-core-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
655 (setq totalstart (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
656 (semantic-idle-scheduler-work-parse-neighboring-files)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
657 (setq totalstop (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
658 (semantic-elp-results "")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
659 (setq time semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
660 (oset time :total (semantic-elapsed-time totalstart totalstop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
661 ;; build it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
662 (let ((elpobj (semantic-elp-object
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
663 "ELP"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
664 :total (semantic-elapsed-time totalstart totalstop)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
665 :time time)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
666 (data-debug-show elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
667 (setq semantic-elp-last-run elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
668 (let ((saveas (read-file-name "Save Profile to: " (expand-file-name "~/")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
669 "semantic.elp" nil "semantic.elp")))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
670 (oset elpobj :file saveas)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
671 (eieio-persistent-save elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
672 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
673 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
674
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
675 (defun semantic-elp-searchdb ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
676 "Run a semanticdb search routine with the profiler.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
677 The expectation is that you will edit this fcn with different
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
678 `semanticdb-find-' routines."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
679 (interactive)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
680 (let ((elp-recycle-buffers-p nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
681 (totalstart nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
682 (totalstop nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
683 ans time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
684 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
685 ;; reset
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
686 (semantic-clear-toplevel-cache)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
687 (semantic-fetch-tags)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
688
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
689 ;; Path translation
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
690 (semantic-elp-include-path-enable)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
691 (setq totalstart (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
692
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
693 (setq ans (semanticdb-find-tags-by-name-regexp "task" nil))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
694
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
695 (setq totalstop (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
696 (semantic-elp-results "")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
697 (setq time semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
698 (oset time :total (semantic-elapsed-time totalstart totalstop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
699 ;; build it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
700 (let ((elpobj (semantic-elp-object
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
701 "ELP"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
702 :total (semantic-elapsed-time totalstart totalstop)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
703 :time time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
704 :answer ans)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
705 (data-debug-show elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
706 (setq semantic-elp-last-run elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
707 (let ((saveas (read-file-name "Save Profile to: " (expand-file-name "~/")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
708 "semantic.elp" nil "semantic.elp")))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
709 (oset elpobj :file saveas)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
710 (eieio-persistent-save elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
711 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
712 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
713
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
714 (defun semantic-elp-symref-hit-count ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
715 "Run a `semantic-symref-test-count-hits-in-tag' with elp on."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
716 (interactive)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
717 (let ((elp-recycle-buffers-p nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
718 (totalstart nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
719 (totalstop nil)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
720 ans time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
721 )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
722 ;; reset
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
723 (semantic-clear-toplevel-cache)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
724 (semantic-fetch-tags)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
725
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
726 ;; Build up caches so we get user use timings.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
727 (semantic-analyze-current-context)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
728
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
729 ;; Enable everything for analysis.
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
730 (semantic-elp-analyze-symref-hits)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
731
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
732 ;; Do the analysis
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
733 (setq totalstart (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
734
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
735 (setq ans (semantic-symref-test-count-hits-in-tag))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
736
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
737 (setq totalstop (current-time))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
738
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
739 (semantic-elp-results "")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
740 (setq time semantic-elp-last-results)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
741 (oset time :total (semantic-elapsed-time totalstart totalstop))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
742 ;; build it
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
743 (let ((elpobj (semantic-elp-object
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
744 "ELP"
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
745 :total (semantic-elapsed-time totalstart totalstop)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
746 :time time
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
747 :answer ans)))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
748 (data-debug-show elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
749 (setq semantic-elp-last-run elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
750 ;;(let ((saveas (read-file-name "Save Profile to: " (expand-file-name "~/")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
751 ;; "semantic.elp" nil "semantic.elp")))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
752 ;; (oset elpobj :file saveas)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
753 ;; (eieio-persistent-save elpobj)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
754 ;; )
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
755 )))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
756
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
757 (defun semantic-elp-show-last-run ()
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
758 "Show the last elp run."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
759 (interactive)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
760 (when (not semantic-elp-last-run)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
761 (error "No last run to show"))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
762 (data-debug-show semantic-elp-last-run))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
763
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
764 (defun semantic-elp-load-old-run (file)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
765 "Load an old run from FILE, and show it."
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
766 (interactive "fLast Run File: ")
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
767 (setq semantic-elp-last-run
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
768 (eieio-persistent-read file))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
769 (data-debug-show semantic-elp-last-run))
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
770
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
771 (provide 'semantic/elp)
7b59e774c522 cedet/semantic/elp.el: New file.
Chong Yidong <cyd@stupidchicken.com>
parents:
diff changeset
772 ;;; semantic-elp.el ends here