bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Attention: Saving workspaces


From: Hans-Peter Sorge
Subject: Re: Attention: Saving workspaces
Date: Mon, 7 Dec 2020 18:28:35 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0

Hi,

is there a way that )DUMP preserves function fidelity - that is - keep empty lines and indents?
It would improve readability a lot by eg. separating code and next comment by a space line.

Best Regards
Hans-Peter

Am 08.11.20 um 20:07 schrieb Dr. Jürgen Sauermann:
Hi everybody,

I am currently doing some rework of the )SAVE and )LOAD commands.

Before updating GNU APL from SVN the next time (and in the near future), please make sure
that you have made a backup of all your workspaces.

If you prefer )DUMP over )SAVE to store your workspaces, then you are fine because
nothing will be changed there.

If you normally )SAVE your workspaces, then please note the following.

A.  )SAVE and )LOAD are intended for short term storage, i.e. the )SAVEd workspace
  should be be )LOADed with the same (SVN-) version of the interpreter. Even tthough
I am   trying my best to keep these commands backward-compatible, I cannot guarantee
that I will always succeed.

B. The only advantage of )SAVE over )DUMP is that it stores the )SI stack. This is
   sometimes necessary when:

B1. sending a workspace for trouble-shooting (and only if the )SI stack is relevant), or
B2. to interrupt APL code troubleshooting and continue the next day.

In contrast to the old days (where a )SAVEd  APL session) could be completely
restored) this is no longer the case. There are more and more components that
do not allow their state to be serialized, and as a consequence the workspace
)LOADed will increasingly differ from the workspace )SAVEd before. That, in
turn, will make the )LOAD and )SAVE commands more and more meaningless.

C. If you want to stay with )SAVE then I would recommend the following procedure
for updating GNU APL:

C1.  )DUMP the workspace as a precaution for one of the subsequent steps failing.
C2.  If appropriate: )SIC. This will not only make the saved workspace smaller but will
       also significantly reduce the probability that something will go wrong later.
C3.  )SAVE the workspace.
C4.  update the interpreter (typically from SVN).
C5.  )LOAD the workspace again and check that it still works.
C6.  )SAVE the workspace again.
C7.  repeat the steps above (except C4 ) for all your workspaces.

D. The reason for the ongoing changes is that a specific case (a derived function lurking
     on the )SI stack) is currently not handled properly by )SAVE and )LOAD. Currently you
     get a warning if that happens, but in the long run this should work. That is somewhat
     difficult, though, and therefore it will take a while before this is fixed.

Best Regards,
Jürgen






reply via email to

[Prev in Thread] Current Thread [Next in Thread]