Menu

#96 %ZSHOWVTOLCL regression in GT.M V7.1-001 (GTM-DE512004)

open
nobody
None
5
2025-02-05
2025-02-05
No

Hi,

I noticed what looks like a regression in %ZSHOWVTOLCL.m while testing out GT.M V7.1-001.

Below is a test case.It tries to set a local variable to a value that is 0.5Mib in size. But it has control characters in it. And it does a ZSHOW "V" into a global and uses %ZSHOWVTOLCL to get it back from the global to the local variable. This test passes with V7.1-000 but fails with V7.1-001 with an error. I don't expect this test case to error out as I am still well within the 1Mib maximum size for a local variable value.

setenv gtmgbldir "mumps.gld"
setenv gtmroutines ". $gtm_dist"
echo "change -segment DEFAULT -file=mumps.dat\nchange -region DEFAULT -record_size=1048576" | $gtm_dist/mumps -run GDE
$gtm_dist/mupip create
$gtm_dist/mumps -run test
$ cat test.m
        kill ^x
        set x=$translate($justify(1,2**19)," ",$char(3))
        set ^y=x        ; save a copy of the local variable in a global ^y for later comparison
        zshow "v":^x    ; zshow "v" into global ^x
        kill x          ; kill local x in preparation for it to be restored from global ^x
        if $$^%ZSHOWVTOLCL("^x")        ; restore local x from zshow "v" output stored in global ^x
        if x'=^y write "FAIL",! ; check that restored local x matches global ^y
        else  write "PASS",!
        quit

When I run this with V7.1-000, I get the output PASS. But when I run it with V7.1-001, I get the following error.

> $gtm_dist/mumps -run test
Could not work ^x("V") into a value within current processing limits

1 items skipped due to errors
%GTM-E-UNDEF, Undefined local variable: x
                At M source location +7^x

GTM>

This change seems related to http://tinco.pair.com/bhaskar/gtm/doc/articles/GTM_V7.1-001_Release_Notes.html#GTM-DE512004.

Can you please confirm if this is a regression or an intentional change?

Thanks,
Narayanan.

Discussion


Log in to post a comment.