Hi Jürgen,

Thanks for your response!  See mine below.

On Fri, Apr 10, 2020 at 7:31 AM Dr. Jürgen Sauermann <
mail@jürgen-sauermann.de> wrote:

> Hi Blake,
>
> see below.
>
> Jürgen
>
> On 4/10/20 1:34 PM, Blake McBride wrote:
>
> Hi Jürgen,
>
> Please see my response in-line below.
>
> On Fri, Apr 10, 2020 at 5:07 AM Dr. Jürgen Sauermann <
> mail@jürgen-sauermann.de> wrote:
>
>> Hi Blake,
>>
>> I see what you are after.
>>
>> You said earlier that you don't care how functions are stored externally.
>> At the same time you want  the internal representation to not contain
>> additional spaces.
>>
>> However, the internal representation is what is being stored on )SAVE
>> or )DUMP. Therefore your requirement on the internal representation
>> prevents the functions to be store in a way that preserves the indentation
>> inserted by the user.
>>
>
> First, I have never wanted to preserve the indentation provided by the
> user.  In fact, I explicitly do not.  APL is not an ALGOL-family language.
>
> This is the core of the disagreement between you and me.
> You don't and I do.
>

Yes, indeed.  I just realized that with my last email.  Before that, I
couldn't understand why you were saying what you were saying.


> Second, there is, in this case, little relationship between the internal
> representation and the format of the save/dump files.  You can store
> functions internally left justified and format them for a save/dump any way
> you like - just like the del editor.
>
>
>>
>> In other words, if I would folllow your requirement on the internal
>> representation, then I have no choice than to follow suit in the external
>> representation.
>>
>
> Not at all.  You have C++ functions that write out the APL code.  Those
> C++ functions can provide whatever format you like.
>
>
> Yes, I have C++ functions that write out the APL code. But the argument of
> the
> function that writes an APL function in .apl or .xml format is the
> internal representation.
> There is no other representation once ⎕FX or the ∇-editor have done their
> work.
> If we discard additional spaces in the internal representation then they
> gone
> forever and there is no way to get them back.
>

Agreed.  I see the problem.


>
>
>> In yet other words, you want the "leading-space-less" representation
>> to be used everywhere: internally, in the ∇editor, in ⎕CR, and in .apl
>> and .xml files.
>>
>
> That's not what I am saying.  You store the functions internally
> left-justified.  When you do [⎕] in the del editor, the del editor adds
> the desired formatting at that point.  So, the user will see the comment
> and label lines indented differently as they should be when the user sees
> the function from the del editor.
>
>
> Its not what you are saying but it is the immediate consequences of it,
>
>
>> IMHO the fact that the ∇-editor removes indentation is a nuisance
>> rather than a feature. You are used to it and want it back. The
>> GNU APL mechanism for solving this kind of differences in opinions
>> is preferences files and not fundamental changes of principles
>> of the implementation.
>>
>
> APL is what is defined by IBM and the standard.  You can do whatever you
> like - but it won't be APL.  I have several years working with IBM APL.
> I've also used several other APL's and, with very few exceptions, they
> follow the IBM standard.  I have a keen eye and am merely trying to assist.
>
> And I appreciate that.
>
> As a side note, what started all of this a few years ago is that the way
> you were handling function spaces actually broke code I had.  My APL Editor
> uses ⎕CR to get at a function for editing purposes.  I had used that editor
> professionally for years on IBM APL, TSR APL, APL 68000, Harris APL, and
> others.  They all provided the function left-justified.  Your ⎕CR did not.
>
>
> As I said earlier, I will fix ⎕CR to not show leading spaces and
> independently of the
> user's preference file. That does not, however, imply a change of the
> internal
> representation. The internal representation plays a role in more places
> than those
> that the APL user sees and therefore fixing ⎕CR is far simpler than
> changing the
> internal implementation.
>

Although that does fix ⎕CR, it still causes other problems that initiated
this whole second round of discussions.  In other words, I think your
efforts to support your preference is causing a rippling effect in other
areas - like the  ⎕CR problem.



>> I will be happy to make GNU APL behave as you prefer, but I refuse
>> to make it behave in a way that I do not prefer. Especially your
>> Rule #2 below is what I would hate to see. IMHO an editor should
>> change the text entered by a user as little as possible, even if the
>> old IBM APL2 editor did so.
>>
>
> My suggestions have nothing to do with my preferences.  This is the way
> all APL's I've used work.
>
> If you have a non-APL preference, it's your APL, support what you like.  I
> am merely providing feedback on difference from the standard.  It's up to
> you to follow that or support your personal
>
> Neither the APL standard (ISO) nor IBM's APL2 Language reference is
> specific concerning
> leading spaces in tge ∇-editor. IBM itself has taken quite some freedom to
> implement the
> ∇-editor differently on its different platforms. Therefore the "standard"
> that you refer to
> seems to be a common behaviour  of several implementations.
>

Although I agree, it is "common behavior of several implementations", it is
also what long-time APL users expect.  When we don't see it, we start to
question what else is different.  Additionally, as we've already seen,
those changes have unintended consequences.


preferences.  Perhaps I can recommend this:
>
> 1.  provide the standard out-of-the-box
> 2.  add a preferences option to support your preference, and perhaps
> others, as an option
>
> This way when people who know APL download and install GNU-APL, they'll
> see what they expect to see.  When they dig into GNU APL they'll see the
> option and make a personal decision.
>
> I will do something along those lines. However, to prevent existing GNU
> APL users from
> surprises (i.e. for the sake of backward compatibility), I will make the
> current behaviour
> the default.
>

I deeply appreciate all that you have done.  It is my opinion that, in the
long run, you will have played a very major role in the survival of APL.  I
feel that a small change here and a small change there over a long period
of time will morph APL into something else.  That is one of the reasons I
don't want change.

Thanks!

Blake

Reply via email to