On Nov 22, 2018, at 06:54, ThutmoseIII Thoth thutmosethree@gmail.com wrote:
[…]
How well do these debugging/profiling facilities work with ABCL? Will I be able to find out the name of lisp functions being called during a profile or only Java functions? CCL has this problem where we cannot get the lisp functions names in profiling, only the objective C methods.
The inspectability of the JVM call stack is certainly better than Clojure even from just reading the function names.
Using a [customized version of SLIME][1] allows the use the [ABCL-INTROSPECT][2], which is probably the most advanced way of debugging ABCL.
[1]: https://github.com/easye/slime/tree/evenson-20170914a [2]:https://gitlab.common-lisp.net/abcl/abcl/tree/master/contrib/abcl-introspect
As for your suspecting that your application is spawning more threads than you would expect, from your code snippet I can’t really offer much other than to wonder what the definition on the DISCONNECT involves. Again providing an example of code, even a stripped down toy application that demonstrates the problem would be enoromously more useful for me to help out.
—
With Maxima, which is a single-thread application abcl uses more than one CPU at a time. I guess java contains housekeeping magic it can run in parallel to the application that is running. Perhaps that is what the user is seeing.
On Nov 26, 2018, at 17:41, Gunter Königsmann gunter@peterpall.de wrote:
With Maxima, which is a single-thread application abcl uses more than one CPU at a time. I guess java contains housekeeping magic it can run in parallel to the application that is running. Perhaps that is what the user is seeing.
In general, there will be more than one thread running in the JVM even for nominally single-threaded application such as Maxima. For instance, depending on the JVM version and the options it is invoked with, the underlying JVM garbage collector will be run on its own thread.
armedbear-devel@common-lisp.net