From: Alan R. <ala...@gm...> - 2008-09-23 21:42:29
|
Has anyone thought about how to have access to locals, either when interpreted or compiled?-Alan |
From: Mark E. <ev...@pa...> - 2008-09-24 07:30:30
|
Alan Ruttenberg wrote: > Has anyone thought about how to have access to locals, either when > interpreted or compiled? […] I have thought about it around a year ago, but did not get very far. From what I remember, fixing the source location identification information was the first step, but don't count on the accuracy of that information. Maybe my understanding of ABCL has matured to the point that I could profitably take another look, when I get the time. Mark <ev...@pa...> -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." |
From: Mark E. <ev...@pa...> - 2008-09-29 16:58:52
|
Mark Evenson wrote: > Alan Ruttenberg wrote: >> Has anyone thought about how to have access to locals, either when >> interpreted or compiled? > […] > > I have thought about it around a year ago, but did not get very far. > From what I remember, fixing the source location identification > information was the first step, but don't count on the accuracy of that > information. […] Fulfilling this request requires a much greater knowledge of the Java stack frame than currently exists in either the interpreter or the compiler by my analysis (see EXT::DUMP-JAVA-STACK and the implementation of the internal class org.armedbear.lisp.LispThread$StackFrame to dump as list into SLIME). Particularly, ABCL needs a notion of identifying Lisp frames with actually executing JVM frames, and a more precise notion of correspondence. I would suggest that the current compiler (in 'jvm.lisp') currently provides the only plausible of knowledge in the mapping, so it would be naturally be best to start annotating the Lisp notion of a local variable with the Java VM, with the caveat that it might apply only to Atomic types (i.e. Lists would be treated lazily). Let me keep thinking… Attached, see the SLIME-APROPOS-PACKAGE for ABCL's ('EXT' externals package) as it stands in 0.0.10.21.3. off to the conference dinner, Mark <ev...@pa...> %CADDR Function: (not documented) %CADR Function: (not documented) %CAR Function: (not documented) %CDR Function: (not documented) *AUTOLOAD-VERBOSE* Variable: (not documented) *BATCH-MODE* Variable: (not documented) *DEBUG-CONDITION* Variable: (not documented) *DEBUG-LEVEL* Variable: (not documented) *DISASSEMBLER* Variable: (not documented) *ED-FUNCTIONS* Variable: (not documented) *ENABLE-INLINE-EXPANSION* Variable: (not documented) *LISP-HOME* Variable: (not documented) *PRINT-STRUCTURE* Variable: (not documented) *REQUIRE-STACK-FRAME* Variable: (not documented) *SAVED-BACKTRACE* Variable: (not documented) *SUPPRESS-COMPILER-WARNINGS* Variable: (not documented) *WARN-ON-REDEFINITION* Variable: (not documented) ADJOIN-EQL Function: (not documented) ARGLIST Function: (not documented) ASSQ Function: (not documented) ASSQL Function: (not documented) AUTOLOAD Function: (not documented) AUTOLOAD-MACRO Function: (not documented) AUTOLOADP Function: (not documented) AVER Function: (not documented) BACKTRACE-AS-LIST Function: (not documented) CHAR-TO-UTF8 Function: (not documented) CHARPOS Function: (not documented) CLASSP Function: (not documented) COLLECT Function: (not documented) COMPILE-FILE-IF-NEEDED Function: (not documented) COMPILE-SYSTEM Function: (not documented) COMPILER-ERROR Function: (not documented) Class: (not documented) COMPILER-UNSUPPORTED-FEATURE-ERROR Class: (not documented) CURRENT-THREAD Function: (not documented) DEFSUBST Function: (not documented) DESCRIBE-COMPILER-POLICY Function: (not documented) DESTROY-THREAD Function: (not documented) DOUBLE-FLOAT-NEGATIVE-INFINITY Variable: (not documented) DOUBLE-FLOAT-POSITIVE-INFINITY Variable: (not documented) DUMP-JAVA-STACK Function: (not documented) EXIT Function: (not documented) FEATUREP Function: (not documented) FILE-DIRECTORY-P Function: (not documented) FIXNUMP Function: (not documented) GC Function: (not documented) GET-FLOATING-POINT-MODES Function: (not documented) GET-MUTEX Function: (not documented) GET-SOCKET-STREAM Function: :ELEMENT-TYPE must be CHARACTER or (UNSIGNED-BYTE 8); the default is CHARACTER. GETENV Function: (not documented) GROVEL-JAVA-DEFINITIONS Function: (not documented) INTERRUPT-LISP Function: (not documented) INTERRUPT-THREAD Function: (not documented) MAILBOX Class: (not documented) MAILBOX-EMPTY-P Function: (not documented) MAILBOX-PEEK Function: (not documented) MAILBOX-READ Function: (not documented) MAILBOX-SEND Function: (not documented) MAKE-MAILBOX Function: (not documented) MAKE-MUTEX Function: (not documented) MAKE-SERVER-SOCKET Function: (not documented) MAKE-SLIME-INPUT-STREAM Function: (not documented) MAKE-SLIME-OUTPUT-STREAM Function: (not documented) MAKE-SOCKET Function: (not documented) MAKE-TEMP-FILE Function: (not documented) MAKE-THREAD Function: (not documented) MAKE-THREAD-LOCK Function: (not documented) MAPCAR-THREADS Function: (not documented) MEMQ Function: (not documented) MEMQL Function: (not documented) MOST-NEGATIVE-JAVA-LONG Variable: (not documented) MOST-POSITIVE-JAVA-LONG Variable: (not documented) MUTEX Class: (not documented) NEQ Function: (not documented) NIL-VECTOR Class: (not documented) PRECOMPILE Function: (not documented) PRECOMPILE-FORM Function: (not documented) PROBE-DIRECTORY Function: (not documented) QUIT Function: (not documented) RELEASE-MUTEX Function: (not documented) RESOLVE Function: (not documented) RUN-SHELL-COMMAND Function: (not documented) SERVER-SOCKET-CLOSE Function: (not documented) SET-FLOATING-POINT-MODES Function: (not documented) SHOW-RESTARTS Function: (not documented) SIMPLE-SEARCH Function: (not documented) SIMPLE-STRING-FILL Function: (not documented) SIMPLE-STRING-SEARCH Function: (not documented) SINGLE-FLOAT-NEGATIVE-INFINITY Variable: (not documented) SINGLE-FLOAT-POSITIVE-INFINITY Variable: (not documented) SLIME-INPUT-STREAM Class: (not documented) SLIME-OUTPUT-STREAM Class: (not documented) SOCKET-ACCEPT Function: (not documented) SOCKET-CLOSE Function: (not documented) SOCKET-LOCAL-ADDRESS Function: Returns the local address of the given socket as a dotted quad string. SOCKET-LOCAL-PORT Function: Returns the local port number of the given socket. SOCKET-PEER-ADDRESS Function: Returns the peer address of the given socket as a dotted quad string. SOCKET-PEER-PORT Function: Returns the peer port number of the given socket. SOURCE Function: (not documented) SOURCE-FILE-POSITION Function: (not documented) SOURCE-PATHNAME Function: (not documented) SPECIAL-VARIABLE-P Function: (not documented) STRING-FIND Function: (not documented) STRING-INPUT-STREAM-CURRENT Function: (not documented) STRING-POSITION Function: (not documented) STYLE-WARN Function: (not documented) THREAD Class: (not documented) THREAD-ALIVE-P Function: (not documented) THREAD-LOCK Function: (not documented) THREAD-NAME Function: (not documented) THREAD-UNLOCK Function: (not documented) THREADP Function: (not documented) TRULY-THE Function: (not documented) UPTIME Function: (not documented) WITH-MUTEX Function: (not documented) WITH-THREAD-LOCK Function: (not documented) -- "A screaming comes across the sky. It has happened before, but there is nothing to compare to it now." |