Android question: how to connect to swank, running on android?
polos.ruetz at gmail.com
Sat Aug 19 20:24:11 UTC 2017
thanks to both of you, but it still doesn't work.
>From the PC, I did:
$ adb forward tcp:4005 tcp:4005
so, this part works.
Daniel, I already "stole" the functions from the "ecl-android" project
(prior to post my question); without them I would have been lost...
So, I'll have to play around a little... Of course I will post the
solution here, if I get it to work.
2017-08-19 17:27 GMT+02:00, Daniel Kochmański <daniel at turtleware.eu>:
> swank listens by default only for localhost connections (for a good
> reason!). To force it to listen for connections from specific host other
> than 127.0.0.1 you have to bind swank::*loopback-interface* to it. For
> instance to listen for connections from everywhere on port 4005 you
> could use functions from
> (defun start-swank ()
> (format t "Starting swank server~%")
> (lambda ()
> (let ((swank::*loopback-interface* "0.0.0.0"))
> (swank:create-server :port 4005
> :dont-close t
> ;; :style nil #|:spawn|#
> (defun stop-swank ()
> (format t "Stopping swank server~%")
> (swank:stop-server 4005)
> (format t ";; Swank off-line~%"))
> Note, that newest slime/swank should support :spawn communication style
> just fine with ECL (my PR was merged lately). In that case it should be
> enough to call create-server which won't block (note that in the example
> above we create separate thread for that).
> Since ECL isn't run from CLI but as shared library, it is useful to
> define implementation for implementation program (don't remeber for
> sure, but I think lack of this caused some problems later)
> (defimplementation lisp-implementation-program ()
> "Return the argv of the running Lisp process, or NIL."
> Hope this helps.
> Best regards,
> On 19.08.2017 16:32, PR wrote:
>> Hi again,
>> so, the progress of the new android REPL is going well, it already
>> runs Quicklisp and can start swank, and right there I'm stuck now:
>> How does one connect from the local computer to the android device,
>> which is running the SLIME-listener?
>> They are connected via USB, and the device is /not/ rooted.
>> Since this is certainly of public interest, I ask here, thanks for any
>> Below the link to the current APK of the REPL (you'll need android
>> version >= 4.1, API >= 16):
>> After launching the app, do (there is currently no feedback of the
>> progress, sorry):
>> (quicklisp) ; should take less than a minute, with a fast internet
>> (start-swank) ; same as above (needs to byte-compile all 'contribs')
>> If I run:
>> it lists the running "SLIME-listener" process, so it seems to work...
>> Thanks for any help!
More information about the ecl-devel