Metrolog / marks

Развитие проекта прекращено.
GNU General Public License v3.0
3 stars 1 forks source link

Восстанавливать стеки при возникновении исключений в библиотеке PostScript #84

Closed sergey-s-betke closed 6 years ago

sergey-s-betke commented 6 years ago

Требуемое поведение

В случае ошибки стеки необходимо восстанавливать.

Текущее поведение

Сейчас стеки имеют отличая от состояния до вызова проблемной функции.

sergey-s-betke commented 6 years ago

Напрашивается конструкция по типу try / finally.

sergey-s-betke commented 6 years ago

Для этой задачи напрашиваются собственные пролог и эпилог функций. Что вполне возможно.

Скажем:

/my_func function
end_function

При этом function будет:

а end_function:

Возможно - тут же открывать локальный словарь (но как определять его размер?). Как тот так:

10 dict begin {
  тело функции
} stopped  end  { stop } if

Тогда уже и сразу забирать параметры со стека в словарь. С контролем / приведением типов... Но это решение будет крайне медленным...

sergey-s-betke commented 6 years ago

Операторы языка типа length в случае исключения оставляют параметры на стеке. В общем - пока не вижу большой необходимости. Закрываю задачу.