Тема: Старые LISP`ы в 20002

Многие лиспы, написанные для 14-го и ниже не работают в 2002. Слышал, что есть примочка. Помогите пожалуйста, кто знает!

Re: Старые LISP`ы в 20002

"Для 14-го и ниже" - расплывчато. Корректно написанные программы, использующие AutoLisp (не Visual Lisp) работают нормально. Почти все. Разумеется, программа должна быть в кодировке win1251. Требуется конвертирование файлов для DOS-версий, если в них, конечно, не все по английски.

Проблемы могут быть, если неправильно именовались команды и опции (например "ОТРЕЗОК", а не "_.LINE" и т.п.).

В 15х изменились имена некоторых функций Visual Lisp. Вообще Visual Lisp очень изменился. Кроме того, по-другому используются некоторые системные переменные.

"Примочка" называется Migration Assistent, идет с 2000. Ей можно задать кучу лиспов, которые она просмотрит и вставит свои комментарии в сомнительных местах. А исправлять надо вручную. Обычно это точки применения "OSNAP" и там, где работа с открытием файлов.

Re: Старые LISP`ы в 20002

Спасибо за хорошую подсказку. В Migration нашёл много полезного. Но почему-то не работают конструкции типа
(command "dim" "home" SS "" command) и в то же время
AutoLisp Analyzer не считает их ошибкой.

Re: Старые LISP`ы в 20002

К анализеру должен прилагаться человек с головой. Такая программа, естественно, реагирует только на то, что в нее зашили. Она только пометит сомнительные места, и то хорошо.

Синтаксис командной строки надо анализировать, особенно для команд интерактивного типа, таких как размеры.

Надо ВНИМАТЕЛЬНО читать справку. Есть варианты синтаксиса с разными префиксами. Ту же команду "DIM" полностью русифицированный Автокад не поймет. Он ее не знает, а знает "родную" "_.DIM". То же с опциями. Их надо начинать с "_". Многие команды имеют префикс "-". Поведение некоторых команд при наборе с клавиатуры может отличаться от вызова в функции command.

Однако большинство ПРАВИЛЬНО написанных программ переносятся легко. Есть опыт переноса нескольких сотен сразу из версии 10 в 15. С минимальной коректировкой, на уровне смены кодировки и нескольких автозамен в текстовом редакторе.