[ecl-android v0.0.1]

Daniel Kochmański daniel at turtleware.eu
Tue Nov 10 07:19:39 UTC 2015


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

-- 
Daniel Kochmański | Poznań, Poland ;; aka jackdaniel
www.turtleware.eu

"Be the change that you wish to see in the world." - Mahatma Gandhi



More information about the ecl-devel mailing list