Project

General

Profile

Feature #3164

missing undoable behaviour with global vars and persistent procedures

Added by Constantin Asofiei almost 8 years ago. Updated almost 8 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
version:

History

#2 Updated by Constantin Asofiei almost 8 years ago

The remaining issue I was investigating as part of 3109c, regarding shared/extent vars and their undo support, is strange.

After expanding the test cases (see testcases/uast/variables/var_persistent.p and associated programs), the issue is more complex.

When undoing at a greater scope than the defining one, it survives only the first global var - any other global shared var defined in the same scope gets 'deleted', getting this error:

Attempt to reference an UNDO GLOBAL variable after a transaction backout has removed its definition. (9084)
Error attempting to push run time parameters onto the stack. (984)

For dynamic extent vars, the issue is even weirder: only the first extent var which has its size set survives (in terms of its size being set) after an undo at the caller's scope; any other var has its extent undone (thus extent(x) reports unknown for these vars).

When (and if) we decide to implement this, we will need to 1. expand the var_persistent.p set some more and 2. add conversion changes to keep track of the very first global shared and dyn ext var defined in a program; this way, when undoing at an outer scope, these can be handled differently than the other vars.

Also available in: Atom PDF