Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
abcl
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abcl
abcl
Commits
96203e39
Commit
96203e39
authored
Dec 28, 2016
by
mevenson@1c010e3e-69d0-11dd-93a8-456734b0d56f
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
abcl-introspect: document new ABCL-CONTRIB
parent
cd5c7b65
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
18 deletions
+67
-18
README.markdown
contrib/README.markdown
+20
-11
abcl-introspect.asd
contrib/abcl-introspect/abcl-introspect.asd
+3
-5
abcl.tex
doc/manual/abcl.tex
+44
-2
No files found.
contrib/README.markdown
View file @
96203e39
...
@@ -43,25 +43,34 @@ jfli
...
@@ -43,25 +43,34 @@ jfli
[
jfli
]:
http://sourceforge.net/projects/jfli/
[
jfli
]:
http://sourceforge.net/projects/jfli/
mvn
mvn
A collection of various useful JVM artifacts downloaded and cached by
the Aether Maven connector. Requires the maven-3.0.3 executable "mvn"
A collection of various useful JVM artifacts downloaded and cached
(or "mvn.bat" under MSFT Windows) to be in the current processes's
by the Aether Maven connector. Requires the maven-3.0.3
path.
executable "mvn" (or "mvn.bat" under MSFT Windows) to be in the
current processes's path. These artifacts load the binary
artifacts necessary in the current JVM process,
mvn currently includes
only the single artifact
:
mvn currently includes:
jna
jna
Cache, from the network if necessary, the jna-4.2.2.jar binary
JNA provides an the ability to dynamically link to shared
artifact in the current JVM process, allowing the
executables on the host platform, needed by CFFI.
bootstrapping of dynamically linking to shared executables on
the host platform.
log4j
An example of a dependency without an explicit version.
abcl-introspect
Advanced introspection of Java and Lisp runtime classes
representation.
# Colophon
# Colophon
Mark
<evenson.not.org@gmail.com>
Mark
<evenson.not.org@gmail.com>
Created: 2011-09-11
Created: 2011-09-11
Revised: 2016-1
0-01
Revised: 2016-1
2-28
<>
abcl:documents
<
release
#
abcl-contrib
.
jar
>
.
<>
abcl:documents
<
abcl
.
org
/
release
/
1
.
5
.
0
/
#
abcl-contrib
.
jar
>
.
contrib/abcl-introspect/abcl-introspect.asd
View file @
96203e39
...
@@ -4,8 +4,6 @@
...
@@ -4,8 +4,6 @@
(
asdf:defsystem
:abcl-introspect
(
asdf:defsystem
:abcl-introspect
:author
"Alan Ruttenberg"
:author
"Alan Ruttenberg"
:version
"1.0.0"
:version
"1.0.0"
:description
"Introspection on compiled function to aid source location other debugging functions.ñ"
:description
"Introspection on compiled function to aid source location other debugging functions."
:depends-on
()
:depends-on
(
jss
)
:components
:components
((
:file
"abcl-introspect"
)))
((
:file
"abcl-introspect"
))
)
doc/manual/abcl.tex
View file @
96203e39
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
\title
{
Armed Bear Common Lisp User Manual
}
\title
{
Armed Bear Common Lisp User Manual
}
\date
{
Version 1.5.0-dev
\\
\date
{
Version 1.5.0-dev
\\
\smallskip
\smallskip
Octo
ber 2016
}
Decem
ber 2016
}
\author
{
Mark Evenson
\and
Erik H
\"
{
u
}
lsmann
\and
Rudolf Schlatte
\and
\author
{
Mark Evenson
\and
Erik H
\"
{
u
}
lsmann
\and
Rudolf Schlatte
\and
Alessio Stalla
\and
Ville Voutilainen
}
Alessio Stalla
\and
Ville Voutilainen
}
...
@@ -1292,6 +1292,9 @@ semantics to the execution of \code{REQUIRE} on the following symbols:
...
@@ -1292,6 +1292,9 @@ semantics to the execution of \code{REQUIRE} on the following symbols:
\item
\code
{
jss
}
Introduces dynamic inspection of present
\item
\code
{
jss
}
Introduces dynamic inspection of present
symbols via the
\code
{
SHARPSIGN-DOUBLE-QUOTE
}
macros as Java Syntax
symbols via the
\code
{
SHARPSIGN-DOUBLE-QUOTE
}
macros as Java Syntax
Sucks
Sucks
\item
\code
{
abcl-introspect
}
Provides a framework for
introspecting runtime Java and Lisp object values.
\end{enumerate}
\end{enumerate}
\end{description}
\end{description}
...
@@ -1311,7 +1314,7 @@ reader in the definition of the \code{SHARPSIGN-DOUBLE-QUOTE}
...
@@ -1311,7 +1314,7 @@ reader in the definition of the \code{SHARPSIGN-DOUBLE-QUOTE}
\section
{
ASDF
}
\section
{
ASDF
}
asdf-3.1.7.
27
(see
\cite
{
asdf
}
) is packaged as core component of
\textsc
{
ABCL
}
,
asdf-3.1.7.
43
(see
\cite
{
asdf
}
) is packaged as core component of
\textsc
{
ABCL
}
,
but not initialized by default, as it relies on the
\textsc
{
CLOS
}
subsystem
but not initialized by default, as it relies on the
\textsc
{
CLOS
}
subsystem
which can take a bit of time to start
\footnote
{
While this time is
which can take a bit of time to start
\footnote
{
While this time is
``merely'' on the order of seconds for contemporary 2011 machines,
``merely'' on the order of seconds for contemporary 2011 machines,
...
@@ -1472,6 +1475,45 @@ The contrib contains a pure-Java version of JFLI.
...
@@ -1472,6 +1475,45 @@ The contrib contains a pure-Java version of JFLI.
\url
{
http:
//
abcl.org
/
svn
/
tags
/
1
.
4
.
0
/
contrib
/
jfli
/
README
}
.
\url
{
http:
//
abcl.org
/
svn
/
tags
/
1
.
4
.
0
/
contrib
/
jfli
/
README
}
.
\section
{
abcl
-
introspect
}
A compiled function is an instance of a class
-
This class has
multiple instances if it represents a closure, or a single instance if
it represents a non
-
closed
-
over function.
The ABCL compiler stores constants that are used in function execution
as private java fields. This includes symbols used to invoke function,
locally
-
defined functions
(
such as via labels or flet
)
and string and
other literal
ABCL
-
INTROSPECT provides access to those internal values, and
uses them in at least two ways. First, to annotate locally defined
functions with the top
-
level function they are defined within, and
second to search for callers of a give function
\footnote
{
Since java
functions are strings, local fields also have these strings. In the
context of looking for callers of a function you can also give a
string that names a java method. Same caveat re: false positives.
}
. This may yield some false positives, such as when a symbol that
names a function is also used for some other purpose. It can also have
false negatives, as when a function is inlined. Still, it's pretty
useful. The second use to to find source locations for frames in the
debugger. If the source location for a local function is asked for the
location of its 'owner' is instead returns.
In order to record information about local functions, ABCL defines a
function
-
plist, which is for the most part unused, but is used here
with set of keys indicating where the local function was defined and
in what manner, i.e. as normal local function, as a method function,
or as an initarg function. There may be other places functions are
stashed away
(
defstructs come to mind
)
and this file should be added
to to take them into account as they are discovered.
ABCL
-
INTROSPECT does not depend on jss, but provides a bit of
jss
-
specific functionality if jss
*
is
*
loaded.
\url
{
http:
//
abcl.org
/
svn
/
abcl
/
contrib
/
abcl
-
introspect
/
}
.
\chapter
{
History
}
\chapter
{
History
}
\index
{
History
}
\index
{
History
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment