Mercurial > emacs
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 |
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 |