Note that the Android port doesn't really do input. It's all event-driven
from the user interface. That said, I'll need to deal with quad-assignment.
Trying that right now would cause it to hang since there is no way to send
input to stdin.

So yeah, I'd need some mechanism by which I can be informed that the
running APL program is requesting input (quad-assignment). I haven't looked
at that yet though.

Regards,
Elias
On 16 Jun 2014 18:30, "Juergen Sauermann" <juergen.sauerm...@t-online.de>
wrote:

>  Hi Peter,
>
> I see a few problems with your proposal.
>
> Currently class *Input* has only static functions, so virtual methods can
> not be used to distinguish
> between different implementations of the same function.
>
> Suppose we would fix that by using *Input* instances. Instead of eg.
>
> #*ifdef HAVE_ANDROID*
>
> *line = Android_Input::get_line();*
>
> *#else*
>
> *line = Input::get_android_line();*
>
> *#endif*
>
> We would then have eg.
>
>
>
> *class Input { ... } class Android_Input: public Input { ... } class
> Normal_Input: public Input { ... }*
>
> *#ifdef HAVE_ANDROID*
>
> *  Android_Input a_input;*
>
> *   Input * input = a_input; *
> * #else*
>
> *   Normal_Input n_input;*
>
>
> *  Input * input = a_input; ** #endif*
>
> .*..*
> *line = input->get_line();*
>
> IMHO this is only adding complexity without really making things more
> elegant.
>
> And it does not solve the real problem, which I believe is the following.
> I assume
> that Elias' Java environment has a number of nasty (read: totally
> incompatible) things that
> I cant support in a reasonable (read: portable) way. The two derived
> classes would still need
> to be compiled, but one of them is not portable, which will create a lot
> of headache for all
> non-Android users.
>
> A much cleaner (or at least simpler) proposal, in my eyes, is this:
>
> 1. We use two files *Input.cc* and *AndroidInput.cc*.
> 2. Both use the same *Input.hh* so that all other source files are no
> affected. Not all functions
>     declared in *Input.hh* need to be implemented, so *AndroidInput.cc*.
> can be rather simple.
> 3. The *src/Makefile* decides which of the two files shall be compiled in
> a given environment.
>
> /// Jürgen
>
>
> On 06/16/2014 04:43 AM, Peter Teeson wrote:
>
> I suggest once again two abstract classes for I/O with virtual methods which 
> can then be inherited from and implemented by the user.
> This special case patching of fixes  is not elegant - to me it is smelly 
> coding.
> Sorry if I offend but that's my 2¢.
>
> Peter
>
> On 2014-06-15, at 4:06 PM, Elias Mårtenson <loke...@gmail.com> 
> <loke...@gmail.com> wrote:
>
>
>  Do you think it would be possible to apply this patch that avoids setting up 
> the output streams when compiling for Android? The Android version installs 
> its own that redirects the output to Java streams.
>
> Regards,
> Elias
> <streams.diff>
>
>
>
>
>

Reply via email to