Hi Hans-Peter,

this looks like a misunderstanding of how )COPY of )DUMPed files works.

In the classical )SAVE/)COPY case the )COPY is atomic.
In the )DUMP/)COPY case the )COPY is not atomic. In that
case the )LOAD only starts the copy but does not finalize it.

In fact the )COPY proceeds immediately after the current statement
has been computed (noting that )COPY is an APL command and
⍎'ing it is a GNU APL extension that is a little abused in your example).

IOW: the entire line (!) of your example is completely executed first
and then the actual )COPY takes place. I would assume that if you
place the second ⎕TS on a separate line then the measurement of
the )COPY time should be correct.

Best Regards,
Jürgen


On 2/26/25 20:24, Hans-Peter Sorge wrote:
Hi,

The Diamond operator is not always working as advertised.

<cit>
Several statements on the same line are separated by the APL character ◊ (called /Diamond/). Note that different statements on the same line are executed from left to right while each statement is evaluated from right to left.
</cit>

apl -q
/⍝ ⋄ sequential here/
* ⎕TS ⋄ ⎕DL 10 ⋄ ⎕TS*
2025 2 26 20 9 52 385
10.016916
2025 2 26 20 10 2 402


 ⍝ ⋄ is a ║operator:-?
*    v←10000⍴' '**
     )WSID DIAMOND*
WAS CLEAR WS
* )DUMP*
2025-02-26  20:10:50 (GMT+1)

*⎕TS ⋄ ⍎')COPY DIAMOND v' ⋄ ⎕TS*
2025 2 26 20 11 31 571
DUMPED 2025-02-26  20:10:50 (GMT+1)
2025 2 26 20 11 31 575 /⍝ time stamp 4[ms] later /
/
⍝ )copy still busy/.
*     ⎕TS*
2025 2 26 20 11 45 866 /⍝ Copy done 14[s] later

/Best Regards
Hans-Peter/
/

Reply via email to