2017-08-20 21:47 GMT+02:00, Daniel Kochmański <dan...@turtleware.eu>: > Did you try again (without restarting ECL on Android) to slime-connect > to Android host? I don't remember, but I think I had such problem, but > connecting again worked (but it may be just my imagination). > > Other ideas: are you sure your slime and swank versions match? > > Did you try to update slime and swank to the newest (i.e taken from > github) versions?
oh yes, I tried everything I could imagine... Both slime and swank versions match (it showed a warning previously, so I updated them to the latest version, on both computers). Me thinks it's something trivial, which simply needs some more fantasy and patience (as always...). In fact, I have no experience with remote Slime connections, so this is my first try. (Never mind, I like "puzzles" like this one, they teach you so much about things you didn't even intend to learn!) Paul > > > On 20.08.2017 21:39, PR wrote: >> 2017-08-19 23:25 GMT+02:00, Daniel Kochmański <dan...@turtleware.eu>: >>> AFAIR I was connecting over wifi to the REPL on my Android device. >>> >>> If the port forwarding works fine - do you have some logs either from >>> emacs or running ECL process which show what's going on? >> ok, just to report the current state: >> >> - if I run '(start-swank)' from the desktop (same sources as on >> android), it works locally >> - PC and tablet are connected via USB >> - both PC and tablet are in the same wlan, and can ping each other >> - port forwarding is enabled: 'adb forward tcp:4005 tcp:4005' >> - if I try to connect from the PC to Swank running on the tablet, >> Emacs logs these messages: >> >> >> <snip Emacs messages> >> >> Connecting to Swank on port 4005.. >> Lisp connection closed unexpectedly: connection broken by remote peer >> >> error in process filter: if: Lisp connection closed unexpectedly >> error in process filter: Lisp connection closed unexpectedly >> Error running timer `slime-process-available-input': (error >> "Selecting deleted buffer") >> >> </snip Emacs messages> >> >> >> So, still no luck... >> >> Paul >> >> >> >> >> >> >>> Daniel >>> >>> >>> On 19.08.2017 22:24, PR wrote: >>>> 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. >>>> >>>> Paul >>>> >>>> >>>> 2017-08-19 17:27 GMT+02:00, Daniel Kochmański <dan...@turtleware.eu>: >>>>> Hello, >>>>> >>>>> 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 >>>>> https://gitlab.common-lisp.net/ecl/ecl-android/blob/master/assets/lisp/etc/user.lisp >>>>> >>>>> (defun start-swank () >>>>> (format t "Starting swank server~%") >>>>> (mp:process-run-function >>>>> "SLIME-listener" >>>>> (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[0] of the running Lisp process, or NIL." >>>>> "org.lisp.ecl") >>>>> >>>>> Hope this helps. >>>>> >>>>> Best regards, >>>>> >>>>> Daniel >>>>> >>>>> >>>>> 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 >>>>>> help! >>>>>> Below the link to the current APK of the REPL (you'll need android >>>>>> version >= 4.1, API >= 16): >>>>>> >>>>>> http://lights-of-holiness.eu/tmp/repl.apk >>>>>> >>>>>> 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 >>>>>> connection >>>>>> (start-swank) ; same as above (needs to byte-compile all >>>>>> 'contribs') >>>>>> >>>>>> If I run: >>>>>> >>>>>> (mp:all-processes) >>>>>> >>>>>> it lists the running "SLIME-listener" process, so it seems to work... >>>>>> >>>>>> Thanks for any help! >>>>>> >>>>>> Paul >>>>>> >>> > >