Pascal J. Bourguignon writes:
I compiled and installed successfully ecl-android on a cyanogen cm-12.1 android on Sansung Galaxy S4.
After getting quicklisp:
- I tried (ql:add-to-init-file) but I'm not sure it was successful, since it waits for a newline input.
Init file isn't loaded at start. You may add loading it in user.lisp under
assets/lisp/etc/user.lisp
in ecl-android sources. I'd advise you though to use (get-quicklisp) instead, because it replaces QL minitar and gunzip with precompiled versions (much faster then the bytecompiled ones).
- I tried to start swank, either from the menu, or by evaluating (start-swank), but in both case, I got an error (ERROR in eval).
You should put slime-2.14/ in assets/lisp/home/ . I'll add it to the readme later.
I guess next step will be to integrate with my application, or to improve the user interface for the "ECL Android" app.
I wouldn't recommend integrating ecl-android yet. As mentioned a few times it's an alpha quality and as you have noticed it has many shortcomings. I hope to improve this state soon (after assembling the next ECL Quarterly).
Some notes regarding working with ecl-android: - all lisp files are in assets/lisp/ directory - they are extracted on the first boot of the application, so if you modify for instance user.lisp and install application over the previous installation it won't get updated unless you'll clear the application data - first loaded file is etc/init.lisp, then it's etc/user.lisp, please customize the latter (not the former file) - environment variables: $ROOT points to the toplevel lisp directory (assets/lisp) $ECLDIR never change this ($ROOT/lib) $ETC contains init.lisp, user.lisp ($ROOT/etc) $HOME contains user files ($ROOT/home)
working lisp library maintains two fifos: $ROOT/ecl_output and $ROOT/ecl_input . Input isn't used yet (had some problems with the slime and working stdin) and output is slurped and shown in the APP.
Application has special service (android-specific) which enables two intents: "ENSURE_LISP" and "EVAL" - the latter takes data argument which contains sexp to exec. This part *is* prone to change. You may export this service to the other applications by modifying AndroidManifest.xml (that means that you will be able to call lisp from application which isn't derivered from ecl-android).
Best regards, Daniel