Thanks!

I have:  DISCARD-INDENTATION Yes
in my ~/.gnu-apl/preferences file, however:

       ∇abc
[1] 1
[2]      2
[3]          3
[4] [⎕]
    ∇
[0]   abc
[1]   1
[2]        2
[3]            3
    ∇
[4] ∇
      ∇abc[⎕]∇
    ∇
[0]   abc
[1]   1
[2]        2
[3]            3
    ∇

As you can see, the indents are still there.

Thanks.

Blake


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

> Hi Blake
>
> to conclude the discussion I made the following changes (*SVN 1259*):
>
> 1. *⎕CR* will always remove unnecessary leading and trailing spaces.
>
> Unfortunately this deprives the fans of indentation of any possibility
> to obtain their loved indented version back into APL. Therefore:
>
> 2. The unmodified (indented) version of a defined function can now be
>    obtained with dyadic *37 ⎕CR* instead of monadic *⎕CR*.
>
> 3. Indentation can be controlled with preference *DISCARD-INDENTATION*.
>  If set to *Yes* then (hopefully) all indentation is rigorously removed,
> and regardless
>  of whether the function is created via *)LOAD*, the *∇*-editor, or *⎕FX*.
>
> Users should be warned that setting *DISCARD-INDENTATION *might also
> (negatively) affect the content of multi-line strings in defined functions
> and
> maybe *⎕INP*.
>
> At this point I am not sure if all cases were properly caught, so please
> test
> this preference extensively and let me know if it fails.
>
> Best Regards,
> Jürgen
>
>
>
> On 4/10/20 2:52 PM, Blake McBride wrote:
>
> 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